OMORI_Android/www.eng/js/plugins/YEP_ImprovedBattlebacks.js
2024-01-15 18:44:53 +03:00

684 lines
No EOL
26 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//=============================================================================
// 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
//=============================================================================