//============================================================================= // Yanfly Engine Plugins - Improved Battlebacks // YEP_ImprovedBattlebacks.js //============================================================================= var Imported = Imported || {}; Imported.YEP_ImprovedBattlebacks = true; var Yanfly = Yanfly || {}; Yanfly.IBB = Yanfly.IBB || {}; Yanfly.IBB.version = 1.02; //============================================================================= /*: * @plugindesc v1.02 Changes how RPG Maker MV handles battlebacks. * Battlebacks are now more flexible with what they can do. * @author Yanfly Engine Plugins * * @param Scale Battlebacks * @type boolean * @on Scale * @off Normal * @desc Do you wish to scale battlebacks to resolution? * NO - false YES - true * @default true * * @param Battleback Margin * @type number * @min 0 * @desc Pixel margin of error for battlebacks if non-scaling * battlebacks are used. Default: 32 * @default 32 * * @help * ============================================================================ * Introduction * ============================================================================ * * This plugin remakes how RPG Maker MV handles battlebacks. By default, all * battlebacks are handled in a hard-structured fashion making them hard to * modify and alter to behave dynamically. This plugin reworks the way RPG * Maker MV's battlebacks behave using a more automatic and flexible means of * handling them, allowing battlebacks to added, removed, change its image, * fade in/out, adjust opacity settings, and scroll in various directions! * * If you are using YEP_CoreEngine and YEP_BattleEngineCore, place this plugin * under both of those plugins in the plugin list to ensure compatibility. The * action sequences provided by this plugin can only be used if the plugin * YEP_BattleEngineCore is installed in the plugin list above this plugin. * * ============================================================================ * Plugin Commands * ============================================================================ * * You can use the following plugin commands to alter how battlebacks behave in * your game. Keep in mind that these plugin commands must be used while the * party is in battle. * * --- * * BATTLEBACK id ADD: folder, filename * BATTLEBACK id ADD: folder, filename, hue * - Replace 'id' with the battleback you wish to alter as a number larger than * 2 (i.e. 3 or above). Replace 'folder' with the exact folder name in your * project's 'img' folder (case sensitive). Replace 'filename' with the image * filename without the file extension (case sensitive). If 'hue' is used, * replace 'hue' with a number between 0 and 360 to change the hue of the image * used. This will add a new battleback stacked on top of battlebacks 1 and 2 * with higher ID's being on top. When newly added, the new battleback will * start at opacity 0 and fade in with a duration of 20 frames. * * BATTLEBACK id REMOVE * - Replace 'id' with the battleback you wish to alter as a number larger than * 2 (i.e. 3 or above). This will remove the battleback from being shown. When * this command is used, the battleback will fade with a duration of 20 frames. * Once it reaches 0 opacity, the battleback will be removed from the battle. * * BATTLEBACK id CHANGE TO: folder, filename * BATTLEBACK id CHANGE TO: folder, filename, hue * - Replace 'id' with the battleback you wish to alter. Replace 'folder' with * the exact folder name in your project's 'img' folder (case sensitive). * Replace 'filename' with the image filename without the file extension (case * sensitive). This will change the designated battleback's image to use the * desired image depicted by the folder and filename. If 'hue' is used, replace * 'hue' with a number between 0 and 360 to change the hue of the image used. * * BATTLEBACK id FADE OUT * BATTLEBACK id FADE OUT: duration * BATTLEBACK id FADE IN * BATTLEBACK id FADE IN: duration * - Replace 'id' with the battleback you wish to alter. This will cause the * designated battleback to fade out/in. If 'duration' is used, replace it with * a number to indicate how many frames will be used for the fade out/in. If * no duration is specified, it will default to 20 frames. * * BATTLEBACK id OPACITY: n * BATTLEBACK id OPACITY: n% * - Replace 'id' with the battleback you wish to alter. Replace 'n' with the * opacity value you wish to achieve (from 0 to 255) or replace 'n%' with the * opacity rate you wish to set the battleback to (from 0% to 100%). This will * set the designated battleback's opacity to that value. If there are any fade * in or out commands occurring as this command is issued, they'll be disabled. * * BATTLEBACK id SCROLL SPEED X: +n * BATTLEBACK id SCROLL SPEED X: -n * BATTLEBACK id SCROLL SPEED Y: +n * BATTLEBACK id SCROLL SPEED Y: -n * - Replace 'id' with the battleback you wish to alter. Replace 'n' with the * value you wish to change the scroll speed X or scroll speed Y of. The higher * the 'n' value, the faster it scrolls. * * BATTLEBACK id RESET SCROLL SPEED * - Replace 'id' with the battleback you wish to alter. Resets the scroll * speeds for X and Y back to 0. * * ============================================================================ * Yanfly Engine Plugins - Battle Engine Extension - Action Sequence Commands * ============================================================================ * * If you have YEP_BattleEngineCore.js installed with this plugin located * underneath it in the Plugin Manager, you can make use of these extra * damage related action sequences. * *============================================================================= * BATTLEBACK id ADD: folder, filename * BATTLEBACK id ADD: folder, filename, hue *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Replace 'id' with the battleback you wish to alter as a number larger than 2 * (i.e. 3 or above). Replace 'folder' with the exact folder name in your * project's 'img' folder (case sensitive). Replace 'filename' with the image * filename without the file extension (case sensitive). If 'hue' is used, * replace 'hue' with a number between 0 and 360 to change the hue of the image * used. This will add a new battleback stacked on top of battlebacks 1 and 2 * with higher ID's being on top. When newly added, the new battleback will * start at opacity 0 and fade in with a duration of 20 frames. *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Usage Example: battleback 3 add: battlebacks1, GrassMazePool * battleback 4 add: battlebacks2, GrassMaze, 180 *============================================================================= * *============================================================================= * BATTLEBACK id REMOVE *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Replace 'id' with the battleback you wish to alter as a number larger than * 2 (i.e. 3 or above). This will remove the battleback from being shown. When * this command is used, the battleback will fade with a duration of 20 frames. * Once it reaches 0 opacity, the battleback will be removed from the battle. *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Usage Example: battleback 3 remove * battleback 4 remove *============================================================================= * *============================================================================= * BATTLEBACK id CHANGE TO: folder, filename * BATTLEBACK id CHANGE TO: folder, filename, hue *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Replace 'id' with the battleback you wish to alter. Replace 'folder' with * the exact folder name in your project's 'img' folder (case sensitive). * Replace 'filename' with the image filename without the file extension (case * sensitive). This will change the designated battleback's image to use the * desired image depicted by the folder and filename. If 'hue' is used, replace * 'hue' with a number between 0 and 360 to change the hue of the image used. *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Usage Example: battleback 1 change to: parallaxes, SeaofClouds * battleback 2 change to: battlebacks2, Ship, 180 *============================================================================= * *============================================================================= * BATTLEBACK id FADE OUT * BATTLEBACK id FADE OUT: duration * BATTLEBACK id FADE IN * BATTLEBACK id FADE IN: duration *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Replace 'id' with the battleback you wish to alter. This will cause the * designated battleback to fade out/in. If 'duration' is used, replace it with * a number to indicate how many frames will be used for the fade out/in. If * no duration is specified, it will default to 20 frames. *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Usage Example: battleback 1 fade out * battleback 2 fade out: 120 * battleback 1 fade in * battleback 2 fade in: 180 *============================================================================= * *============================================================================= * BATTLEBACK id OPACITY: n * BATTLEBACK id OPACITY: n% *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Replace 'id' with the battleback you wish to alter. Replace 'n' with the * opacity value you wish to achieve (from 0 to 255) or replace 'n%' with the * opacity rate you wish to set the battleback to (from 0% to 100%). This will * set the designated battleback's opacity to that value. If there are any fade * in or out commands occurring as this command is issued, they'll be disabled. *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Usage Example: battleback 1 opacity: 127 * battleback 2 opacity: 50% *============================================================================= * *============================================================================= * BATTLEBACK id SCROLL SPEED X: +n * BATTLEBACK id SCROLL SPEED X: -n * BATTLEBACK id SCROLL SPEED Y: +n * BATTLEBACK id SCROLL SPEED Y: -n *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Replace 'id' with the battleback you wish to alter. Replace 'n' with the * value you wish to change the scroll speed X or scroll speed Y of. The higher * the 'n' value, the faster it scrolls. *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Usage Example: battleback 1 scroll speed x: +1 * battleback 1 scroll speed y: +2 * battleback 2 scroll speed x: -3 * battleback 2 scroll speed y: -4 *============================================================================= * *============================================================================= * BATTLEBACK id RESET SCROLL SPEED *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Replace 'id' with the battleback you wish to alter. Resets the scroll * speeds for X and Y back to 0. *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * Usage Example: battleback 1 reset scroll speed *============================================================================= * * ============================================================================ * Changelog * ============================================================================ * * Version 1.02: * - Updated for RPG Maker MV version 1.5.0. * * Version 1.01: * - Fixed a bug that wasn't returning the proper sequence checks with action * sequences. * * Version 1.00: * - Finished Plugin! */ //============================================================================= //============================================================================= // Parameter Variables //============================================================================= Yanfly.Parameters = PluginManager.parameters('YEP_ImprovedBattlebacks'); Yanfly.Param = Yanfly.Param || {}; Yanfly.Param.IBBScale = eval(String(Yanfly.Parameters['Scale Battlebacks'])); Yanfly.Param.IBBMargin = Number(Yanfly.Parameters['Battleback Margin']); //============================================================================= // BattleManager //============================================================================= BattleManager.alterBattleback = function(line) { if (line.match(/(?:BATTLEBACK|BATTLE BACK)[ ](\d+)/i)) { var id = Math.max(1, parseInt(RegExp.$1)); var spriteset = SceneManager._scene._spriteset; if (!spriteset) return; } else { return; } // TESTING if (line.match(/TESTING/i)) { console.log('Test Passed'); // CHANGE TO } else if (line.match(/CHANGE TO/i)) { if (line.match(/:[ ](.*),[ ](.*),[ ](\d+)/i)) { var folder = 'img/' + String(RegExp.$1) + '/'; var filename = String(RegExp.$2); var hue = Number(RegExp.$3).clamp(0, 360); } else if (line.match(/:[ ](.*),[ ](.*)/i)) { var folder = 'img/' + String(RegExp.$1) + '/'; var filename = String(RegExp.$2); var hue = 0; } else { return; } spriteset.changeBattlebackTo(id, folder, filename, hue); // FADE IN } else if (line.match(/FADE IN/i)) { if (line.match(/:[ ](\d+)/i)) { var duration = parseInt(RegExp.$1); } else { var duration = 20; } spriteset.battlebackFadeIn(id, duration); // FADE OUT } else if (line.match(/FADE OUT/i)) { if (line.match(/:[ ](\d+)/i)) { var duration = parseInt(RegExp.$1); } else { var duration = 20; } spriteset.battlebackFadeOut(id, duration); // OPACITY } else if (line.match(/OPACITY/i)) { if (line.match(/:[ ](\d+)([%%])/i)) { var rate = parseFloat(RegExp.$1) * 0.01; var value = Math.round(rate * 255); } else if (line.match(/:[ ](\d+)/i)) { var value = parseInt(RegExp.$1); } else { return; } spriteset.battlebackOpacity(id, value); // RESET SCROLL SPEED } else if (line.match(/RESET SCROLL SPEED/i)) { spriteset.resetScrollSpeeds(id); // SCROLL SPEED X } else if (line.match(/SCROLL SPEED X:[ ]([\+\-]\d+)/i)) { var speed = parseInt(RegExp.$1); spriteset.setBattlebackScrollSpeedX(id, speed); // SCROLL SPEED Y } else if (line.match(/SCROLL SPEED Y:[ ]([\+\-]\d+)/i)) { var speed = parseInt(RegExp.$1); spriteset.setBattlebackScrollSpeedY(id, speed); // ADD } else if (line.match(/ADD/i)) { if (line.match(/:[ ](.*),[ ](.*),[ ](\d+)/i)) { var folder = 'img/' + String(RegExp.$1) + '/'; var filename = String(RegExp.$2); var hue = Number(RegExp.$3).clamp(0, 360); } else if (line.match(/:[ ](.*),[ ](.*)/i)) { var folder = 'img/' + String(RegExp.$1) + '/'; var filename = String(RegExp.$2); var hue = 0; } else { return; } var bitmap = ImageManager.loadBitmap(folder, filename, hue, true); var opacity = 0; var duration = 20; spriteset.addNewBattleback(id, bitmap, opacity, duration); // REMOVE } else if (line.match(/REMOVE/i)) { spriteset.removeBattleback(id); } }; if (Imported.YEP_BattleEngineCore) { Yanfly.IBB.BattleManager_pAS = BattleManager.processActionSequence; BattleManager.processActionSequence = function(actionName, actionArgs) { if (actionName.match(/(?:BATTLEBACK|BATTLE BACK)[ ](\d+)/i)) { var line = actionName + ': '; var str = ''; var length = actionArgs.length; for (var i = 0; i < length; ++i) { str += actionArgs[i]; if (i !== length - 1) str += ', '; } line += str.trim(); this.alterBattleback(line); return false; } else { return Yanfly.IBB.BattleManager_pAS.call(this, actionName, actionArgs); } }; }; // Imported.YEP_BattleEngineCore //============================================================================= // Game_Interpreter //============================================================================= Yanfly.IBB.Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand; Game_Interpreter.prototype.pluginCommand = function(command, args) { Yanfly.IBB.Game_Interpreter_pluginCommand.call(this, command, args); if (!$gameParty.inBattle()) return; BattleManager.alterBattleback(this._params[0]); }; //============================================================================= // Sprite_ImprovedBattleback //============================================================================= function Sprite_ImprovedBattleback() { this.initialize.apply(this, arguments); } Sprite_ImprovedBattleback.prototype = Object.create(TilingSprite.prototype); Sprite_ImprovedBattleback.prototype.constructor = Sprite_ImprovedBattleback; Sprite_ImprovedBattleback.prototype.initialize = function(bitmap, type) { this._type = type || 1; TilingSprite.prototype.initialize.call(this, bitmap); this.resetScrollSpeeds(); this.resetFadeSettings(); }; Sprite_ImprovedBattleback.prototype.setup = function(bf, sp1) { this._initialLocationSetup = false; this._battleField = bf; this._sprite1 = sp1; var margin = Yanfly.Param.IBBMargin; var x = -this._battleField.x - margin; var y = -this._battleField.y; var w = Graphics.width + margin * 2; var h = Graphics.height + margin * 2; this.move(x, 0, w, h); if (this._sprite1 !== this) this._sprite1.setup(bf, sp1); }; Sprite_ImprovedBattleback.prototype.update = function() { TilingSprite.prototype.update.call(this); this.updateInitialLocation(); if (!this._initialLocationSetup) return; this.updateScroll(); this.updateFadeOut(); this.updateFadeIn(); }; Sprite_ImprovedBattleback.prototype.updateInitialLocation = function() { if (this._initialLocationSetup) return; if (!this._battleField) return; if (!this._sprite1) return; if (this._sprite1.bitmap.width <= 0) return; var bitmap = this.bitmap; if (!bitmap) return; if (bitmap.width <= 0) return; this._initialLocationSetup = true; if (Yanfly.Param.IBBScale) { this.setupScaling(); } else { this.setupLocationX(); this.setupLocationY(); } }; Sprite_ImprovedBattleback.prototype.setupScaling = function() { var ratioX = Graphics.boxWidth / this.bitmap.width; var ratioY = Graphics.boxHeight / this.bitmap.height; if (ratioX > 1.0) { this.scale.x = ratioX; this.x = 0; } else { this.setupLocationX(); } if (ratioY > 1.0) { this.scale.y = ratioY; this.y = 0; } else { this.setupLocationY(); } }; Sprite_ImprovedBattleback.prototype.setupLocationX = function() { var width = this._battleField.width; var height = this._battleField.height; var sprite1 = this._sprite1; this.origin.x = sprite1.x + (this.bitmap.width - width) / 2; }; Sprite_ImprovedBattleback.prototype.setupLocationY = function() { if (!$gameSystem.isSideView()) return; var width = this._battleField.width; var height = this._battleField.height; var sprite1 = this._sprite1; this.origin.y = sprite1.y + this.bitmap.height - height; }; Sprite_ImprovedBattleback.prototype.updateScroll = function() { this.origin.x += this._scrollSpeedX; this.origin.y += this._scrollSpeedY; }; Sprite_ImprovedBattleback.prototype.resetScrollSpeeds = function() { this._scrollSpeedX = 0; this._scrollSpeedY = 0; }; Sprite_ImprovedBattleback.prototype.setScrollSpeedX = function(value) { this._scrollSpeedX = value; }; Sprite_ImprovedBattleback.prototype.setScrollSpeedY = function(value) { this._scrollSpeedY = value; }; Sprite_ImprovedBattleback.prototype.changeBitmap = function(bitmap) { if (!bitmap) return; if (bitmap.width <= 0) return; this.bitmap = bitmap; this._initialLocationSetup = false; }; Sprite_ImprovedBattleback.prototype.resetFadeSettings = function() { this._fadeOutDuration = 0; this._fadeInDuration = 0; }; Sprite_ImprovedBattleback.prototype.setFadeOut = function(duration) { this._fadeOutDuration = Math.round(duration); }; Sprite_ImprovedBattleback.prototype.updateFadeOut = function() { if (this._fadeOutDuration <= 0) return; var d = this._fadeOutDuration; this.opacity = (this.opacity * (d - 1)) / d; --this._fadeOutDuration; }; Sprite_ImprovedBattleback.prototype.setFadeIn = function(duration) { this._fadeInDuration = Math.round(duration); }; Sprite_ImprovedBattleback.prototype.updateFadeIn = function() { if (this._fadeInDuration <= 0) return; var d = this._fadeInDuration; this.opacity = (this.opacity * (d - 1) + 255) / d; --this._fadeInDuration; }; Sprite_ImprovedBattleback.prototype.setOpacity = function(value) { this.resetFadeSettings(); this.opacity = Math.round(value); }; //============================================================================= // Spriteset_Battle //============================================================================= Spriteset_Battle.prototype.createBattleback = function() { this._loadingImages = [null]; this._battlebackSprites = [null]; this._battlebackToRemove = []; this._back1Sprite = new Sprite_ImprovedBattleback(this.battleback1Bitmap(),1); this._battlebackSprites.push(this._back1Sprite); this._back2Sprite = new Sprite_ImprovedBattleback(this.battleback2Bitmap(),2); this._battlebackSprites.push(this._back2Sprite); this._back1Sprite.setup(this._battleField, this._back1Sprite); this._back2Sprite.setup(this._battleField, this._back1Sprite); this._battleField.addChild(this._back1Sprite); this._battleField.addChild(this._back2Sprite); }; Yanfly.IBB.Spriteset_Battle_updateBattleback = Spriteset_Battle.prototype.updateBattleback; Spriteset_Battle.prototype.updateBattleback = function() { Yanfly.IBB.Spriteset_Battle_updateBattleback.call(this); if (!Imported.YEP_BattleEngineCore) this.updateBattlebackZCoordinates(); this.updateBattlebackChangeTo(); this.updateBattlebackRemoval(); }; Spriteset_Battle.prototype.locateBattleback = function() { }; Spriteset_Battle.prototype.updateBattlebackZCoordinates = function() { this.updateBattlebackGroupRemove(); this.updateBattlebackGroupAdd(); }; Spriteset_Battle.prototype.updateBattlebackGroupRemove = function() { if (!this._battlebackSprites) return; var length = this._battlebackSprites.length; for (var i = 0; i < length; ++i) { var sprite = this._battlebackSprites[i]; if (sprite) this._battleField.removeChild(sprite); } }; Spriteset_Battle.prototype.updateBattlebackGroupAdd = function() { if (!this._battlebackSprites) return; var length = this._battlebackSprites.length; for (var i = length; i > 0; --i) { var sprite = this._battlebackSprites[i]; if (sprite) this._battleField.addChildAt(sprite, 0); } }; Spriteset_Battle.prototype.setBattlebackScrollSpeedX = function(index, value) { if (!this._battlebackSprites) return; if (!this._battlebackSprites[index]) return; this._battlebackSprites[index].setScrollSpeedX(value); }; Spriteset_Battle.prototype.setBattlebackScrollSpeedY = function(index, value) { if (!this._battlebackSprites) return; if (!this._battlebackSprites[index]) return; this._battlebackSprites[index].setScrollSpeedY(value); }; Spriteset_Battle.prototype.resetScrollSpeeds = function(index) { if (!this._battlebackSprites) return; if (!this._battlebackSprites[index]) return; this._battlebackSprites[index].resetScrollSpeeds(); }; Spriteset_Battle.prototype.changeBattlebackTo = function(index, folder, file, h) { if (!this._battlebackSprites) return; if (!this._battlebackSprites[index]) return; this._loadingImages[index] = ImageManager.loadBitmap(folder, file, h, true); }; Spriteset_Battle.prototype.updateBattlebackChangeTo = function() { var length = this._battlebackSprites.length; var pass = true; for (var i = 0; i < length; ++i) { var battleback = this._battlebackSprites[i]; if (!battleback) continue; if (!this._loadingImages[i]) continue; if (this._loadingImages[i].width <= 0) { pass = false; break; } } if (!pass) return; for (var i = 0; i < length; ++i) { var battleback = this._battlebackSprites[i]; if (!battleback) continue; if (!this._loadingImages[i]) continue; battleback.changeBitmap(this._loadingImages[i]); this._loadingImages[i] = null; } }; Spriteset_Battle.prototype.battlebackFadeOut = function(index, duration) { if (!this._battlebackSprites) return; if (!this._battlebackSprites[index]) return; this._battlebackSprites[index].setFadeOut(duration); }; Spriteset_Battle.prototype.battlebackFadeIn = function(index, duration) { if (!this._battlebackSprites) return; if (!this._battlebackSprites[index]) return; this._battlebackSprites[index].setFadeIn(duration); }; Spriteset_Battle.prototype.battlebackOpacity = function(index, value) { if (!this._battlebackSprites) return; if (!this._battlebackSprites[index]) return; this._battlebackSprites[index].setOpacity(value); }; Spriteset_Battle.prototype.addNewBattleback = function(index, bitmap, opacity, duration) { if (index <= 2) return; if (!this._battlebackSprites) return; if (this._battlebackSprites[index]) return; opacity = opacity || 0; if (duration === undefined) duration = 20; var battleback = new Sprite_ImprovedBattleback(bitmap, 3); battleback.setup(this._battleField, this._back1Sprite); battleback.setOpacity(opacity); battleback.setFadeIn(duration); this._battlebackSprites[index] = battleback; this.updateBattlebackZCoordinates(); }; Spriteset_Battle.prototype.removeBattleback = function(index, duration) { if (index <= 2) return; if (!this._battlebackSprites) return; if (!this._battlebackSprites[index]) return; if (duration === undefined) duration = 20; this._battlebackSprites[index].setFadeOut(duration); this._battlebackToRemove.push(index); }; Spriteset_Battle.prototype.updateBattlebackRemoval = function() { var length = this._battlebackToRemove.length; var toRemove = []; for (var i = 0; i < length; ++i) { var id = this._battlebackToRemove[i]; var battleback = this._battlebackSprites[id]; if (battleback && battleback.opacity > 0) continue; this._battlebackSprites.splice(id, 1); if (!this._battlebackSprites[id]) toRemove.push(i); } var length = toRemove.length; for (var i = 0; i < length; ++i) { var id = toRemove[i]; if (!this._battlebackSprites[id]) { var index = this._battlebackToRemove.indexOf(id); this._battlebackToRemove.splice(index, 1); } } }; //============================================================================= // End of File //=============================================================================