Advertisement
Double_X

DoubleX RMMV Unison Item YEP_X_BattleSysCTB v100d

Feb 28th, 2016 (edited)
590
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*============================================================================
  2.  *    ## Plugin Info                                                          
  3.  *----------------------------------------------------------------------------
  4.  *    # Plugin Name                                                          
  5.  *      DoubleX RMMV Unison Item YEP_X_BattleSysCTB                          
  6.  *----------------------------------------------------------------------------
  7.  *    # Terms Of Use                                                          
  8.  *      You shall keep this plugin's Plugin Info part's contents intact      
  9.  *      You shalln't claim that this plugin's written by anyone other than    
  10.  *      DoubleX or his aliases                                                
  11.  *      None of the above applies to DoubleX or his aliases                  
  12.  *----------------------------------------------------------------------------
  13.  *    # Prerequisites                                                        
  14.  *      Plugins:                                                              
  15.  *      1. Yanfly Engine Plugins - Battle System - Charge Turn Battle        
  16.  *      2. DoubleX RMMV Unison Item Config                                    
  17.  *      3. DoubleX RMMV Unison Item Default                                  
  18.  *----------------------------------------------------------------------------
  19.  *    # Links                                                                
  20.  *      This plugin:                                                          
  21.  *      1. http://pastebin.com/frvi7pid                                      
  22.  *      Video:                                                                
  23.  *      1. https://www.youtube.com/watch?v=spAq2xP8sbM                        
  24.  *      Mentioned Patreon Supporters:
  25.  *      https://www.patreon.com/posts/71738797
  26.  *----------------------------------------------------------------------------
  27.  *    # Instructions                                                          
  28.  *      1. Place DoubleX RMMV Unison Item Config below YEP_BattleEngineCore  
  29.  *      2. Place this plugin below DoubleX RMMV Unison Item Default          
  30.  *----------------------------------------------------------------------------
  31.  *    # Author                                                                
  32.  *      DoubleX                                                              
  33.  *----------------------------------------------------------------------------
  34.  *    # Changelog                                                            
  35.  *      v1.00d(GMT 0300 29-10-2016):                                          
  36.  *      1. Fixed null item bug in next command when Start Actor Command is ON
  37.  *      v1.00c(GMT 0600 21-5-2016):                                          
  38.  *      1. Fixed BattleManager.asyncUnisonItems not using unique key          
  39.  *      2. Fixed not clearing actors in BattleManager.asyncUnisonItems        
  40.  *      v1.00b(GMT 1300 14-5-2016):                                          
  41.  *      1. In sync with the latest version of DoubleX RMMV Unison Item Config
  42.  *      v1.00a(GMT 1500 28-2-2016):                                          
  43.  *      1. 1st version of this plugin finished                                
  44.  *      2. Unison skills/items needing charging might be executed immediately
  45.  *         and/or cause the action order queue to be incorrect and/or outdated
  46.  *============================================================================*/
  47. /*:
  48.  * @plugindesc Lets you use unison skills/items with YEP_X_BattleSysCTB
  49.  * @author DoubleX
  50.  * @help
  51.  * Charge Rate -
  52.  * All actors needed for an unison skill/item will always have the same charge
  53.  * value when charging that skill/item
  54.  * unisonFunctionRule is used to set the unison charge rate for those actors
  55.  *
  56.  * Action Order Queue -
  57.  * Suppose an unison skill/item needs actors a1 and a2.
  58.  * The below definition will be used for synchronous unison skills/items:
  59.  * All battlers are next to each other - No other battlers are in between any
  60.  * of those battlers in the battler turn order queue.
  61.  * For example:
  62.  * 1. If the battler turn order queue is a1, a2, b1 or a2, a1, b1, then a1 and
  63.  *    a2 are next to each other. This still applies if a1 or a2 is charging an
  64.  *    action, although it'll be replaced by the unison one instead
  65.  * 2. If the battler turn order queue is a1, b1, a2 or a2, b1, a1, then a1 and
  66.  *    a2 aren't next to each other.
  67.  * That skill/item will be usable only if a1 and a2 are next to each other.
  68.  *
  69.  * Right after using that skill/item:
  70.  * 1. If the battler turn order queue was a1, a2, b1 or a2, a1, b1, then it'll
  71.  *    become b1
  72.  *
  73.  * Asynchronous unison skills/items:
  74.  * Right now asynchoronous unison skills/items won't work without charging    
  75.  * An asynchoronous unison skill/item is inputable by any battler needed by
  76.  * that skill/item as long as all the needed battlers are alive and pass the
  77.  * skill learn requirements for skills if any, and that battler passes the
  78.  * ordinary skill/item usability checks
  79.  * Battlers having inputted asynchronous unison skills/items will wait for all
  80.  * needed battlers to input those unison skills/items to execute them together
  81.  * They'll stop waiting if any needed battler's not alive
  82.  *============================================================================
  83.  */
  84.  
  85. var DoubleX_RMMV = DoubleX_RMMV || {};
  86. DoubleX_RMMV["Unison Item YEP_X_BattleSysCTB"] = 'v1.00d';
  87.  
  88. /*============================================================================
  89.  *    ## Plugin Implementations                                              
  90.  *       You need not edit this part as it's about how this plugin works      
  91.  *----------------------------------------------------------------------------
  92.  *    # Plugin Support Info:                                                  
  93.  *      1. Prerequisites                                                      
  94.  *         - Solid understanding to the default RMMV actor action input flows
  95.  *         - Decent Javascript coding proficiency to fully comprehend this    
  96.  *           plugin                                                          
  97.  *      2. Function documentation                                            
  98.  *         - The 1st part describes why this function's rewritten/extended for
  99.  *           rewritten/extended functions or what the function does for new  
  100.  *           functions                                                        
  101.  *         - The 2nd part describes what the arguments of the function are    
  102.  *         - The 3rd part informs which version rewritten, extended or created
  103.  *           this function                                                    
  104.  *         - The 4th part informs whether the function's rewritten or new    
  105.  *         - The 5th part informs whether the function's a real or potential  
  106.  *           hotspot                                                          
  107.  *         - The 6th part describes how this function works for new functions
  108.  *           only, and describes the parts added, removed or rewritten for    
  109.  *           rewritten or extended functions only                            
  110.  *         Example:                                                          
  111.  * /*----------------------------------------------------------------------
  112.  *  *    Why rewrite/extended/What this function does                      
  113.  *  *----------------------------------------------------------------------*/
  114. /* // arguments: What these arguments are                                    
  115.  * functionName = function(arguments) { // Version X+; Hotspot                
  116.  *     // Added/Removed/Rewritten to do something/How this function works    
  117.  *     functionContents                                                      
  118.  *     //                                                                    
  119.  * } // functionName                                                          
  120.  *----------------------------------------------------------------------------*/
  121.  
  122. if (DoubleX_RMMV["Unison Item Config"]) {
  123.  
  124. if (DoubleX_RMMV["Unison Item Default"]) {
  125.  
  126. if (Imported.YEP_X_BattleSysCTB) {
  127.  
  128. (function(UI, CTB) {
  129.  
  130.     'use strict';
  131.  
  132.     CTB.BattleManager = {};
  133.     var BMCTB = CTB.BattleManager;
  134.  
  135.     /*------------------------------------------------------------------------
  136.      *    New public instance variable                                        
  137.      *------------------------------------------------------------------------*/
  138.     // The cached mapping from async unison skills/items to all inputted actors
  139.     Object.defineProperty(BattleManager, 'asyncUnisonItems', {
  140.         get: function() { return this._asyncUnisonItems; },
  141.         configurable: true
  142.     });
  143.  
  144.     BattleManager.actionCastAnimation = function() {
  145.       if (!$gameSystem.isSideView() && this._subject.isActor()) return true;
  146.       if (!this._action.isAttack() && !this._action.isGuard() &&
  147.       this._action.isSkill()) {
  148.         // Rewritten
  149.         var ani = this._action.item().castAnimation;
  150.         if (ani > 0) {
  151.           var actorIds = this._action.item().meta.unisonItemActors;
  152.           if (actorIds.length > 1) {
  153.               var actors = actorIds.map(function(actorId) {
  154.                   return $gameActors.actor(actorId);
  155.               });
  156.               this._logWindow.showAnimation(this._subject, actors, ani);
  157.           } else {
  158.               this._logWindow.showAnimation(this._subject, [this._subject], ani);
  159.           }
  160.         }
  161.         //
  162.       }
  163.       return true;
  164.     }; //BattleManager.actionCastAnimation
  165.  
  166.     BattleManager.endCTBAction = function() {
  167.         if (Imported.YEP_BattleEngineCore) {
  168.           if (this._processingForcedAction) this._phase = this._preForcePhase;
  169.           this._processingForcedAction = false;
  170.         }
  171.         if (this._subject) this._subject.onAllActionsEnd();
  172.         if (this.updateEventMain()) return;
  173.         BMCTB.endCTBAct.call(this); // Rewritten
  174.         if (this.loadPreForceActionSettings()) return;
  175.         var chargedBattler = this.getChargedCTBBattler();
  176.         if (chargedBattler) {
  177.           this.startCTBAction(chargedBattler);
  178.         } else {
  179.           this.setCTBPhase();
  180.         }
  181.     }; // BattleManager.endCTBAction
  182.  
  183.     BMCTB.setup = BattleManager.setup;
  184.     BattleManager.setup = function(troopId, canEscape, canLose) { // v1.00b+
  185.         BMCTB.setup.apply(this, arguments);
  186.         this._asyncUnisonItems = {}; // Added
  187.     }; // BattleManager.setup
  188.  
  189.     BMCTB.selectNextCommand = BattleManager.selectNextCommand;
  190.     BattleManager.selectNextCommand = function() {
  191.         if (this.isCTB()) {
  192.           if (!this.actor()) return this.setCTBPhase();
  193.           this.resetNonPartyActorCTB();
  194.           this._subject = this.actor();
  195.           BMCTB.setupCTBCharge.call(this); // Rewritten
  196.           if (this.actor().isCTBCharging()) {
  197.             this.actor().spriteStepBack();
  198.             this.actor().requestMotionRefresh();
  199.             this._actorIndex = undefined;
  200.             this.setCTBPhase();
  201.           } else if (this.isValidCTBActorAction()) {
  202.             this.startCTBAction(this.actor());
  203.           } else {
  204.             if (this.actor()) this.ctbSkipTurn();
  205.             $gameParty.requestMotionRefresh();
  206.             this.setCTBPhase();
  207.           }
  208.         } else {
  209.           BMCTB.selectNextCommand.apply(this, arguments);
  210.         }
  211.     }; // BattleManager.selectNextCommand
  212.  
  213.     /*------------------------------------------------------------------------
  214.      *    Removes battlers that are no longer waiting for async unison item  
  215.      *------------------------------------------------------------------------*/
  216.     // battler: The battler needed for a marked async unison skill/item
  217.     BMCTB.removeAsyncUnisonBattler = function(battler) { // v1.00b+
  218.         if (!this._asyncUnisonItems) return;
  219.         var index;
  220.         // The 1st actor in the async unison skill/item actor list's the invoker
  221.         Object.keys(this._asyncUnisonItems).forEach(function(itemId) {
  222.             index = this._asyncUnisonItems[itemId].indexOf(battler);
  223.             if (index > 0) { this._asyncUnisonItems[itemId].splice(index, 1); }
  224.         }, this);
  225.         //
  226.     }; // BMCTB.removeAsyncUnisonActor
  227.  
  228.     /*------------------------------------------------------------------------
  229.      *    Ends the CTB Turn for all unison actors if unison skill/item's used
  230.      *------------------------------------------------------------------------*/
  231.     BMCTB.endCTBAct = function() {
  232.         var act = this._action, func = 'endTurnAllCTB';
  233.         this._asyncUnisonItems[act.item().id] = [];
  234.         BMCTB.callUnisonActors.call(this, this._subject, act, func);
  235.     }; // BMCTB.endCTBAct
  236.  
  237.     /*------------------------------------------------------------------------
  238.      *    Ends the CTB Turn for all unison actors if unison skill/item's used
  239.      *------------------------------------------------------------------------*/
  240.     BMCTB.setupCTBCharge = function() {
  241.         GBBCTB.markUnisonActors.call(this._subject); // Marks the unison invoker
  242.         var act = this._subject.inputtingAction(), fun = 'setupUnisonCTBCharge';
  243.         var item = act.item();
  244.         if (!item || item.meta.asyncUnisonItem) { return this._subject[fun](); }
  245.         BMCTB.callUnisonActors.call(this, this._subject, act, fun);
  246.     }; // BMCTB.setupCTBCharge
  247.  
  248.     /*------------------------------------------------------------------------
  249.      *    Asks each unison actor of act to call its battler function func    
  250.      *------------------------------------------------------------------------*/
  251.     /* invoker: The unison invoker
  252.      * act: The unison action
  253.      * func: The battler function to be called by all unison actors
  254.      */
  255.     BMCTB.callUnisonActors = function(invoker, act, func) {
  256.         invoker[func]();
  257.         var item = act.item();
  258.         if (!item) { return; }
  259.         var actorIds = item.meta.unisonItemActors;
  260.         if (actorIds.length <= 1) { return; }
  261.         // Sets the current action of all unison invokees as the unison action
  262.         var actor;
  263.         actorIds.forEach(function(actorId) {
  264.             if (actorId === invoker.actorId()) { return; }
  265.             actor = $gameActors.actor(actorId);
  266.             if (!actor) { return; }
  267.             GACTB.setUnisonAct.call(actor, item);
  268.             actor[func]();
  269.         });
  270.         //
  271.     }; // BMCTB.callUnisonActors
  272.  
  273.     /*------------------------------------------------------------------------
  274.      *    Checks if the actors can be regarded as unison actors              
  275.      *------------------------------------------------------------------------*/
  276.     /* invoker: The unison invoker
  277.      * actorIds: The list of id of unison actors
  278.      */
  279.     BMCTB.isUnisonTurnOrder = function(invoker, actorIds) {
  280.         // Checks if all unison actors are next to each other
  281.         var battlers = this.ctbTurnOrder(), battler, actors = [];
  282.         for (var index = 0, length = battlers.length; index < length; index++) {
  283.             battler = battlers[index];
  284.             if (battler === invoker) { continue; }
  285.             if (!battler.isActor()) { return false; }
  286.             if (actorIds.indexOf(battler.actorId()) < 0) { return false; }
  287.             if (actors.indexOf(battler) < 0) { actors.push(battler); }
  288.             if (actors.length >= actorIds.length - 1) { return true; }
  289.         }
  290.         //
  291.     }; // BMCTB.isUnisonTurnOrder
  292.  
  293.     var GBB = UI.Game_BattlerBase;
  294.     CTB.Game_BattlerBase = {};
  295.     var GBBCTB = CTB.Game_BattlerBase;
  296.  
  297.     Game_BattlerBase.prototype.canInput = function() {
  298.         if (!GBB.canInput.apply(this, arguments)) { return false; }
  299.         if (BattleManager.isCTB()) { return true; } // Added
  300.         if (!this.isActor() || !$gameParty.inBattle()) { return true; }
  301.         return this._unisonItemNumInputs < this._actions.length;
  302.     }; // Game_BattlerBase.prototype.canInput
  303.  
  304.     GBBCTB.canUseUnisonSkill = GBB.canUseUnisonSkill;
  305.     GBB.canUseUnisonSkill = function(skill) {
  306.         // Rewritten to check if all unison actors are next to each other
  307.         if (!BattleManager.isCTB()) {
  308.             return GBBCTB.canUseUnisonSkill.apply(this, arguments);
  309.         }
  310.         var mems = $gameParty.aliveMembers();
  311.         var actor, actorIds = skill.meta.unisonItemActors;
  312.         var async = skill.meta.asyncUnisonItem;
  313.         var learnFlags = skill.meta.unisonItemActorLearn;
  314.         for (var index = 0, length = actorIds.length; index < length; index++) {
  315.             actor = mems.filter(function(mem) {
  316.                 return mem.actorId() === actorIds[index];
  317.             })[0];
  318.             if (!actor) { return false; }
  319.             if (!async && !actor.meetsSkillConditions(skill)) { return false; }
  320.             if (learnFlags[index] && actor.skills().every(function(s) {
  321.                 return s !== skill;
  322.             })) { return false; }
  323.         }
  324.         if (async || !$gameParty.inBattle()) { return true; }
  325.         return BMCTB.isUnisonTurnOrder.call(BattleManager, this, actorIds);
  326.         //
  327.     }; // GBB.canUseUnisonSkill
  328.  
  329.     GBBCTB.canUseUnisonItem = GBB.canUseUnisonItem;
  330.     GBB.canUseUnisonItem = function(item) {
  331.         // Rewritten to check if all unison actors are next to each other
  332.         if (!BattleManager.isCTB()) {
  333.             return GBBCTB.canUseUnisonItem.apply(this, arguments);
  334.         }
  335.         if (!this.meetsItemConditions(item)) { return false; }
  336.         var mems = $gameParty.aliveMembers();
  337.         var actor, actorIds = item.meta.unisonItemActors;
  338.         for (var index = 0, length = actorIds.length; index < length; index++) {
  339.             if (actorIds[index] === this.actorId()) { continue; }
  340.             if (!mems.filter(function(mem) {
  341.                 return mem.actorId() === actorIds[index];
  342.             })[0]) { return false; }
  343.         }
  344.         if (!$gameParty.inBattle()) { return true; }
  345.         if (skill.meta.asyncUnisonItem) { return true; }
  346.         return BMCTB.isUnisonTurnOrder.call(BattleManager, this, actorIds);
  347.         //
  348.     }; // GBB.canUseUnisonItem
  349.    
  350.     GBBCTB.markUnisonActors = function() {
  351.         var item = this.currentAction().item();
  352.         if (!item) { return; }
  353.         this._unisonItemActors = item.meta.unisonItemActors;
  354.         if (!item.meta.asyncUnisonItem) { return; }
  355.         return GBBCTB.markAsyncUnisonItemActors.call(this, item);
  356.     }; // GBBCTB.markUnisonActors
  357.  
  358.     /*------------------------------------------------------------------------
  359.      *    Executes the async unison item when all unison actors inputted it  
  360.      *------------------------------------------------------------------------*/
  361.     // item: The current async unison skill/item
  362.     GBBCTB.markAsyncUnisonItemActors = function(item) { // v1.00b+
  363.         if (!BattleManager.asyncUnisonItems[item.id]) {
  364.             BattleManager.asyncUnisonItems[item.id] = [];
  365.         }
  366.         var actors = BattleManager.asyncUnisonItems[item.id];
  367.         // The 1st actor in the async unison skill/item actor list's the invoker
  368.         actors.push(this);
  369.         if (actors.length !== this._unisonItemActors.length) { return; }
  370.         var act = this.currentAction(), func = 'setupUnisonCTBCharge';
  371.         BMCTB.callUnisonActors.call(BattleManager, actors[0], act, func);
  372.         //
  373.     }; // GBBCTB.markAsyncUnisonItemActors
  374.  
  375.     CTB.Game_Battler = {};
  376.     var GBCTB = CTB.Game_Battler;
  377.  
  378.     /*------------------------------------------------------------------------
  379.      *    New public instance variables                                      
  380.      *------------------------------------------------------------------------*/
  381.     Object.defineProperties(Game_Battler.prototype, {
  382.         // The cached list of ids of all unison actors
  383.         'unisonItemActors': {
  384.             get: function() { return this._unisonItemActors; },
  385.             set: function(actorIds) { this._unisonItemActors = actorIds; },
  386.             configurable: true
  387.         },
  388.         // The flag showing whether the unison skill/item can be executed
  389.         'isUnisonItemReady': {
  390.             get: function() { return this._isUnisonItemReady; },
  391.             configurable: true
  392.         }
  393.     });
  394.  
  395.     GBCTB.initMembers = Game_Battler.prototype.initMembers;
  396.     Game_Battler.prototype.initMembers = function() {
  397.         GBCTB.initMembers.apply(this, arguments);
  398.         GBCTB.resetUnisonItem.call(this); // Added
  399.     }; // Game_Battler.prototype.initMembers
  400.  
  401.     GBCTB.onAllActionsEnd = Game_Battler.prototype.onAllActionsEnd;
  402.     Game_Battler.prototype.onAllActionsEnd = function() {
  403.         GBCTB.onAllActionsEnd.apply(this, arguments);
  404.         GBCTB.resetUnisonItem.call(this); // Added
  405.     }; // Game_Battler.prototype.onAllActionsEnd
  406.  
  407.     GBCTB.resetAllCTB = Game_Battler.prototype.resetAllCTB;
  408.     Game_Battler.prototype.resetAllCTB = function() {
  409.         GBCTB.resetAllCTB.apply(this, arguments);
  410.         GBCTB.resetUnisonItem.call(this); // Added
  411.     }; // Game_Battler.prototype.resetAllCTB
  412.  
  413.     Game_Battler.prototype.setupUnisonCTBCharge = function() { // New
  414.         if (BattleManager._bypassCtbEndTurn) { return; }
  415.         var item = this.currentAction().item();
  416.         if (item && item.speed < 0) {
  417.             this.setCTBCharging(true);
  418.             this._ctbChargeMod = item.speed;
  419.             this.setCTBCharge(0);
  420.         } else {
  421.             this._ctbChargeMod = 0;
  422.         }
  423.         this.setActionState('waiting');
  424.         this._isUnisonItemReady = item && item.meta.unisonItemActors.length > 1;
  425.     }; // Game_Battler.prototype.setupUnisonCTBCharge
  426.  
  427.     GBCTB.resetUnisonItem = function() { // v1.00b+
  428.         this._unisonItemActors = [];
  429.         this._isUnisonItemReady = false;
  430.         BMCTB.removeAsyncUnisonBattler.call(BattleManager, this);
  431.     }; // GBCTB.resetUnisonItem
  432.  
  433.     /*------------------------------------------------------------------------
  434.      *    Ensures the charging value is the same for all unison actors        
  435.      *------------------------------------------------------------------------*/
  436.     GBCTB.updateUnisonTick = function() {
  437.         var actors = this._unisonItemActors.map(function(actorId) {
  438.             return $gameActors.actor(actorId);
  439.         });
  440.         if (!actors.every(function(actor) { return actor.isAlive(); })) {
  441.             this.resetAllCTB();
  442.             return;
  443.         } else if (!actors.every(function(actor) {
  444.             return actor.isUnisonItemReady && actor.isCTBCharging();
  445.         })) {
  446.             this.setCTBCharge(0);
  447.             return;
  448.         }
  449.         var minDiff = Number.EPSILON * this.ctbChargeDestination();
  450.         var rule = $gameSystem.unisonItem.unisonFunctionRule;
  451.         var val = UI.RULES.call(this, rule, actors.map(function(actor) {
  452.             return actor.ctbCharge();
  453.         }));
  454.         actors.forEach(function(actor) {
  455.             // Ensures the unison invoker will always be the fastest
  456.             if (actor === this) { val += minDiff; }
  457.             //
  458.             actor.setCTBCharge(val);
  459.         }, this);
  460.     };
  461.  
  462.     var GA = UI.Game_Actor;
  463.     CTB.Game_Actor = {};
  464.     var GACTB = CTB.Game_Actor;
  465.  
  466.     Game_Actor.prototype.selectNextCommand = function() {
  467.         // Added
  468.         if (!BattleManager.isCTB()) {
  469.             var maxIndex = this._actions.length - this._unisonItemNumInputs - 1;
  470.             if (this._actionInputIndex>= maxIndex) { return false; }
  471.         }
  472.         //
  473.         return GA.selectNextCommand.apply(this, arguments);
  474.     }; // Game_Actor.prototype.selectNextCommand
  475.  
  476.     /*------------------------------------------------------------------------
  477.      *    Pretends that all unison invokees have indeed executed a real action
  478.      *------------------------------------------------------------------------*/
  479.     // item: The unison skill/item to be set
  480.     GACTB.setUnisonAct = function(item) {
  481.         this.makeActions();
  482.         if (DataManager.isSkill(item)) {
  483.             return this.currentAction().setSkill(item.id);
  484.         } else if (DataManager.isItem(item)) {
  485.             return this.currentAction().setItem(item.id);
  486.         }
  487.         this.clearActions(); // It's just to play safe
  488.     }; // GACTB.setUnisonAct
  489.  
  490.     /*------------------------------------------------------------------------
  491.      *    Ensures the charging value is the same for all unison actors        
  492.      *------------------------------------------------------------------------*/
  493.     Game_Party.prototype.updateTick = function() { // New
  494.         Game_Unit.prototype.updateTick.call(this);
  495.         this.aliveMembers().filter(function(mem) {
  496.             return mem.unisonItemActors.length > 1;
  497.         }).forEach(function(mem) { GBCTB.updateUnisonTick.call(mem); });
  498.     }; // Game_Party.prototype.updateTick
  499.  
  500.     var WBL = UI.Window_BattleLog;
  501.  
  502.     Window_BattleLog.prototype.displayAction = function(subject, item) {
  503.         WBL.displayAction.apply(this, arguments); // Rewritten
  504.     }; // Window_BattleLog.prototype.displayAction
  505.  
  506. })(DoubleX_RMMV.Unison_Item, DoubleX_RMMV.Unison_Item_YEP_X_BattleSysCTB = {});
  507.  
  508. } else {
  509.     alert('Place Unison Item YEP_X_BattleSysCTB below YEP_X_BattleSysCTB.');
  510. }
  511.  
  512. } else {
  513.     alert('Place Unison Item YEP_X_BattleSysCTB below Unison Item Default.');
  514. }
  515.  
  516. } else {
  517.     alert('Place Unison Item YEP_X_BattleSysCTB below Unison Item Config.');
  518. }
  519.  
  520. /*============================================================================*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement