Attack Separator Script

separates attack into attack from self-created lines and attack from garbage lines

2019-07-02 يوللانغان نەشرى. ئەڭ يېڭى نەشرىنى كۆرۈش.

// ==UserScript==
// @name         Attack Separator Script
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  separates attack into attack from self-created lines and attack from garbage lines
// @author       Oki
// @match        https://*.jstris.jezevec10.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    window.addEventListener('load', function(){


/**************************
   Attack Separator Script
**************************/


var trim=a=>{a=a.slice(0,-1);a=a.substr(a.indexOf("{")+1);return a}

var oldFunc = Game.prototype.checkLineClears.toString()
oldFunc = "var rows0=0;var rows1=0;" + trim(oldFunc)

oldFunc = oldFunc.split(")};for(")
var rowVar = oldFunc[0].split("(")[oldFunc[0].split("(").length-1]
oldFunc = oldFunc.join(')};eval("rows"+ +(JSON.stringify(this.matrix['+rowVar+']).indexOf(8)<0)+"++");var oldSent=this.gamedata.linesSent;for(')

var split = oldFunc.split("> 0){this[_")

var inject = 'var distr=[rows1/(rows0+rows1),(rows0/(rows0+rows1))].map(x=>x*(this.gamedata.linesSent-oldSent));var sentHTML=this.sentElement.innerHTML.split("/");if(sentHTML!=0){distr[0]+= +sentHTML[0];distr[1]+= +sentHTML[1]};this.sentElement.innerHTML=distr[0].toFixed(2)+" / "+distr[1].toFixed(2);'

split[3] = split[3].replace("=","*/")
split[3] = split[3].replace(")",");"+inject)
for (var i = 0; i < split.length-1; i++) {
	split[i] += (i==2) ? "> 0){/*this[_" : "> 0){this[_"
}

oldFunc = split.join``
Game.prototype.checkLineClears = new Function(oldFunc);


    });
})();