/*============================================================================ * ## Plugin Info *---------------------------------------------------------------------------- * # Plugin Name * DoubleX RMMV Action Times *---------------------------------------------------------------------------- * # Terms Of Use * You shall keep this plugin's Plugin Info part's contents intact * You shalln't claim that this plugin's written by anyone other than * DoubleX or his aliases * None of the above applies to DoubleX or his aliases *---------------------------------------------------------------------------- * # Prerequisites * Nothing special *---------------------------------------------------------------------------- * # Links * This plugin: * 1. [url]http://pastebin.com/tX0C3AR2[/url] * Mentioned Patreon Supporters: * [url]https://www.patreon.com/posts/71738797[/url] *---------------------------------------------------------------------------- * # Author * DoubleX *---------------------------------------------------------------------------- * # Changelog * v1.00c(GMT 1300 27-1-2016): * 1. Fixed using 0 instead of 1 as the initial action times value * v1.00b(GMT 0900 11-11-2015): * 1. Added descriptions that will be shown in the plugin manager * 2. Fixed some syntax errors * v1.00a(GMT 1400 28-10-2015): * 1. 1st version of this plugin finished *============================================================================*/ /*: * @plugindesc Changes the Action Times traits from being each of them * calculated independently to be added together before calculating * that sum at once * @author DoubleX * @help * Under the default RMMV setting, if p = p1 + p2 + p3 + ... + pn, where pi is * the value of an Action Times trait, then the probability distribution on the * final action times will be: * P(0 or smaller) = 0 * P(1) = (1 - x1)(1 - x2)(1 - x3)...(1 - xn) * P(2) = x1(1 - x2)(1 - x3)(1 - x4)...(1 - xn) + x2(1 - x1)(1 - x3)(1 - x4)... * (1 - xn) + x3(1 - x1)(1 - x2)(1 - x4)...(1 - xn) + ... + xn(1 - x1)(1 - x2) * (1 - x3)...(1 - x(n - 1)) * P(3) = x1x2(1 - x3)(1 - x4)(1 - x5)...(1 - xn) + x1x3(1 - x1)(1 - x4)(1 - x5) * ...(1 - xn) + x1x4(1 - x2)(1 - x3)(1 - x5)...(1 - xn) + ... + x(n - 1)xn * (1 - x1)(1 - x2)(1 - x3)...(1 - x(n-2)) * ... * P(n + 1) = x1x2x3...xn * P(n + 2 or larger) = 0 * With this plugin's used, if a = the integer part of a p and r = the decimal * part of p, then the probability distribution on the final action times will * be: * P(a - 1 or smaller) = 0 * P(a) = 1 - r * P(a + 1) = r * P(a + 2 or larger) = 0 */ "use strict"; var DoubleX_RMMV = DoubleX_RMMV || {}; DoubleX_RMMV["Act_Times"] = "v1.00c"; /*============================================================================ * ## Plugin Implementations * You need not edit this part as it's about how this plugin works *---------------------------------------------------------------------------- * # Plugin Support Info: * 1. Prerequisites * - Little Javascript coding proficiency to fully comprehend this * plugin * 2. Function documentation * - The 1st part describes why this function's rewritten/extended for * rewritten/extended functions or what the function does for new * functions * - The 2nd part describes what the arguments of the function are * - The 3rd part informs which version rewritten, extended or created * this function * - The 4th part informs whether the function's rewritten or new * - The 5th part informs whether the function's a real or potential * hotspot * - The 6th part describes how this function works for new functions * only, and describes the parts added, removed or rewritten for * rewritten or extended functions only * Example: * /*---------------------------------------------------------------------- * * Why rewrite/extended/What this function does * *----------------------------------------------------------------------*/ /* // arguments: What these arguments are * function function_name(arguments) // Version X+; Rewrite/New; Hotspot * // Added/Removed/Rewritten to do something/How this function works * function_name_code * // * end // function_name *----------------------------------------------------------------------------*/ Game_Battler.prototype.makeActionTimes = function() { // Rewrite // Rewritten to use the sum of all action times at once instead var actPercent = this.actionPlusSet().reduce(function(r, p) { return r + p; }, 1); var actTimes = Math.floor(actPercent); return Math.random() < actPercent - actTimes ? actTimes + 1 : actTimes; // }; // Game_Battler.prototype.makeActionTimes /*============================================================================*/