Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //==
- //LudoSwap.js
- //==
- /*:
- * @plugindesc plugin that swaps out dead party members with alive backup members.
- * @author Alessio De Santis
- *
- * @help This plugin does not provide plugin commands.
- *
- * @param Number of turns till swap
- * @desc Number of turns until a dead character is swapped out with a character from the reserve
- *
- * Default : 3
- * @default 3
- *
- * @param Swap when Ko
- * @desc Swap when main party is ko'ed ? swaps instantly after turn end. (0 = false, any other value = true)
- *
- * Default : 1
- * @default 1
- */
- var $maxTurns = Number(PluginManager.parameters("LudoSwap")["Number of turns till swap"]) || 3;
- var $swapWhenKo = Number(PluginManager.parameters("LudoSwap")["Swap when Ko"]) || 1;
- (function(){
- var _BattleManager_updateTurnEnd = BattleManager.prototype.updateTurnEnd;
- var _BattleManager_startBattle = BattleManager.prototype.startBattle;
- BattleManager._deadActors = [];
- BattleManager.updateTurnEnd = function() {
- var i;
- //Checks for dead actor;
- for(i = 0; i < $gameParty.battleMembers().length; i++){
- var member = $gameParty.battleMembers()[i];
- if(member.isDead() && this._deadActors.indexOf(member) == -1){
- this._deadActors.push(member);
- }
- }
- if(this._deadActors.length > 0){
- if($gameParty.allMembers().length > $gameParty.battleMembers().length){
- $gameParty.allMembers().forEach( function(actor){
- if(actor){
- if($gameParty.battleMembers().indexOf(actor) == -1 && !actor.isDead() && this._deadActors.length > 0) {
- var index1 = $gameParty.allMembers().indexOf(actor);
- var index2 = $gameParty.allMembers().indexOf(this._deadActors[0]);
- var actortarget = $gameParty.allMembers()[index2];
- this._deadActors = this._deadActors.slice(1, this._deadActors.length+1)
- if(actortarget._turns == null || actortarget._turns >= $maxTurns){
- actortarget._turns = 0;
- }
- if(actortarget._turns >= $maxTurns){
- $gameParty.swapOrder(index1, index2);
- }
- else {actortarget._turns++;}
- }
- }
- }.bind(this) )
- }
- }
- this.startInput();
- };
- // $gameMessage.add()
- Game_Unit.prototype.isAllDead = function() {
- return this.aliveMembers().length === 0;
- };
- BattleManager.checkBattleEnd = function() {
- if (this._phase) {
- if (this.checkAbort()) {
- return true;
- } else if ($gameParty.isAllDead()) {
- if($gameParty.isAllMembersDead() === true || $swapWhenKo === 0){
- this.processDefeat();
- }
- else {
- var temp = $maxTurns;
- $maxTurns = 0;
- this.updateTurnEnd();
- $maxTurns = temp;
- }
- return true;
- } else if ($gameTroop.isAllDead()) {
- this.processVictory();
- return true;
- }
- }
- return false;
- };
- Game_Party.prototype.isAllMembersDead = function(){
- var t = true;
- $gameParty.allMembers().forEach( function(member){
- if(member.isAlive()){
- t = false;
- };
- } )
- return t
- }
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement