Closed catloversg closed 2 weeks ago
Test code:
if (this.wanted !== 1 || wantedLevelGainPerCycle >= 0) { const oldWanted = this.wanted; const newWanted = oldWanted + wantedLevelGainPerCycle * numCycles; // Allows recovery when wanted / respect ratio is too high this.wanted = newWanted * (1 - justice * 0.001); const expectedWantedGainRate = this.wantedGainRate; const wrong = this.wantedGainRate - (newWanted - this.wanted); this.wantedGainRate = (this.wanted - oldWanted) / numCycles; console.log( `${new Date().toISOString().substring(14)},`, `Old wanted: ${oldWanted.toFixed(3)},`, `temp newWanted: ${newWanted.toFixed(3)},`, `New wanted: ${this.wanted.toFixed(3)},`, `expectedWantedGainRate: ${expectedWantedGainRate.toFixed(3)},`, `wantedGainRate: ${this.wantedGainRate.toFixed(3)},`, `wrong wantedGainRate: ${wrong.toFixed(3)}`, ); console.log( `recovery: newWanted - this.wanted: ${(newWanted - this.wanted).toFixed(3)},`, `newWanted - oldWanted: ${(newWanted - oldWanted).toFixed(3)},`, `Final change: this.wanted - oldWanted: ${(this.wanted - oldWanted).toFixed(3)},`, `justice reduction mult: ${(1 - justice * 0.001).toFixed(3)}`, ); // Prevent overflow if (this.wanted < 1 || (wantedLevelGainPerCycle <= 0 && this.wanted > oldWanted)) { this.wanted = 1; } }
Log 1:
46:09.200Z, Old wanted: 324.116, temp newWanted: 323.765, New wanted: 322.794, expectedWantedGainRate: -0.035, wantedGainRate: -0.132, wrong wantedGainRate: -1.006 recovery: newWanted - this.wanted: 0.971, newWanted - oldWanted: -0.351, Final change: this.wanted - oldWanted: -1.322, justice reduction mult: 0.997 46:11.190Z, Old wanted: 322.794, temp newWanted: 320.680, New wanted: 319.397, expectedWantedGainRate: -0.211, wantedGainRate: -0.340, wrong wantedGainRate: -1.494 recovery: newWanted - this.wanted: 1.283, newWanted - oldWanted: -2.114, Final change: this.wanted - oldWanted: -3.397, justice reduction mult: 0.996 46:13.189Z, Old wanted: 319.397, temp newWanted: 317.283, New wanted: 316.014, expectedWantedGainRate: -0.211, wantedGainRate: -0.338, wrong wantedGainRate: -1.481 recovery: newWanted - this.wanted: 1.269, newWanted - oldWanted: -2.114, Final change: this.wanted - oldWanted: -3.383, justice reduction mult: 0.996
Log 2:
46:19.185Z, Old wanted: 309.288, temp newWanted: 310.075, New wanted: 309.454, expectedWantedGainRate: 0.079, wantedGainRate: 0.017, wrong wantedGainRate: -0.541 recovery: newWanted - this.wanted: 0.620, newWanted - oldWanted: 0.787, Final change: this.wanted - oldWanted: 0.167, justice reduction mult: 0.998 46:21.188Z, Old wanted: 309.454, temp newWanted: 310.241, New wanted: 309.621, expectedWantedGainRate: 0.079, wantedGainRate: 0.017, wrong wantedGainRate: -0.542 recovery: newWanted - this.wanted: 0.620, newWanted - oldWanted: 0.787, Final change: this.wanted - oldWanted: 0.166, justice reduction mult: 0.998 46:23.178Z, Old wanted: 309.621, temp newWanted: 310.407, New wanted: 309.786, expectedWantedGainRate: 0.079, wantedGainRate: 0.017, wrong wantedGainRate: -0.542 recovery: newWanted - this.wanted: 0.621, newWanted - oldWanted: 0.786, Final change: this.wanted - oldWanted: 0.165, justice reduction mult: 0.998
Fixes #1403.
Test code:
Log 1:
Log 2:
Fixes #1403.