//============================================================================= // TMPlugin - マップHPゲージ // バージョン: 1.4.4 // 最終更新日: 2019/11/04 // 配布元  : https://hikimoki.sakura.ne.jp/ //----------------------------------------------------------------------------- // Copyright (c) 2016 tomoaky // Released under the MIT license. // http://opensource.org/licenses/mit-license.php //============================================================================= /*: * @plugindesc マップシーンに顔グラフィックとHPゲージを表示します。 * 必要に応じてMPや変数などをゲージで表示することもできます。 * * @author tomoaky (https://hikimoki.sakura.ne.jp/) * * @param gaugeWindowX * @type number * @min -1000 * @desc HPゲージウィンドウのX座標 * 初期値: 0 * @default 0 * * @param gaugeWindowY * @type number * @min -1000 * @desc HPゲージウィンドウのY座標 * 初期値: 0 * @default 0 * * @param gaugeWindowWidth * @type number * @desc HPゲージウィンドウの幅 * 初期値: 288 * @default 288 * * @param gaugeWindowHeight * @type number * @desc HPゲージウィンドウの高さ * 初期値: 64 * @default 64 * * @param gaugeA * @type struct * @desc ゲージAのパラメータ * @default {"type":"HP","x":"12","y":"12","width":"144","height":"36","fontSize":"28","param":"0","max":"0","name":"AP","color":"#ff60c0 #ffa0e0"} * * @param gaugeB * @type struct * @desc ゲージBのパラメータ * @default {"type":"","x":"12","y":"12","width":"144","height":"36","fontSize":"28","param":"0","max":"0","name":"AP","color":"#ff60c0 #ffa0e0"} * * @param gaugeC * @type struct * @desc ゲージCのパラメータ * @default {"type":"","x":"12","y":"12","width":"144","height":"36","fontSize":"28","param":"0","max":"0","name":"AP","color":"#ff60c0 #ffa0e0"} * * @param gaugeD * @type struct * @desc ゲージDのパラメータ * @default {"type":"","x":"12","y":"12","width":"144","height":"36","fontSize":"28","param":"0","max":"0","name":"AP","color":"#ff60c0 #ffa0e0"} * * @param faceOffsetX * @type number * @min -1000 * @desc 顔グラフィックのX座標補正値 * 初期値: -4 ( -1000 で顔グラフィックを使用しない) * @default -4 * * @param faceOffsetY * @type number * @min -1000 * @desc 顔グラフィックのY座標補正値 * 初期値: -4 * @default -4 * * @param stateIconMax * @type number * @desc ステートアイコンを表示する個数 * 初期値: 4 * @default 4 * * @param stateIconX * @type number * @min -1000 * @desc ステートアイコンのX座標 * 初期値: 156 * @default 156 * * @param stateIconY * @type number * @min -1000 * @desc ステートアイコンのY座標 * 初期値: 24 * @default 24 * * @param stateIconScale * @type number * @desc ステートアイコンの拡大率( % ) * 初期値: 100 * @default 100 * * @param stateIconOpacity * @type number * @desc ステートアイコンの不透明度( 0 ~ 255 ) * 初期値: 255 * @default 255 * * @param goldWidth * @type number * @desc 所持金表示の幅 * 初期値: 0 ( 0 で非表示 ) * @default 0 * * @param goldX * @type number * @min -9999 * @desc 所持金表示のX座標 * 初期値: 12 * @default 12 * * @param goldY * @type number * @min -1000 * @desc 所持金表示のY座標 * 初期値: 12 * @default 12 * * @param vnMax * @type boolean * @desc ゲージタイプ VN の最大値を表示するかどうか * 初期値: OFF ( true = ON 表示 / false = OFF 非表示 ) * @default false * * @param shakeTime * @type number * @desc ダメージを受けたときにウィンドウを揺らす時間(フレーム) * 初期値: 20 ( 0 で揺らさない ) * @default 20 * * @param startVisible * @type boolean * @desc ゲーム開始時の表示状態 * 初期値: ON( true = ON 表示 / false = OFF 非表示 ) * @default true * * @param windowOpacity * @type number * @desc HPゲージウィンドウの不透明度 * 初期値: 255 * @default 255 * * @param collideOpacity * @type number * @max 255 * @desc プレイヤーと重なったときの不透明度 * 初期値: 128( 0 ~ 255 ) * @default 128 * * @param messageBusyHide * @type boolean * @desc メッセージウィンドウ表示中はHPゲージウィンドウを隠す * 初期値: ON ( true = ON 隠す / false = OFF 隠さない ) * @default true * * @param eventBusyHide * @type boolean * @desc イベント起動中はHPゲージウィンドウを隠す * 初期値: ON( true = ON 隠す / false = OFF 隠さない ) * @default true * * @param useBattleScene * @type boolean * @desc 戦闘シーンでもHPゲージウィンドウを表示する。 * 初期値: OFF( true = ON 表示 / false = OFF 非表示 ) * @default false * * @param gaugeWindowBattleX * @type number * @min -1000 * @desc 戦闘シーンのHPゲージウィンドウのX座標 * 初期値: 0 * @default 0 * * @param gaugeWindowBattleY * @type number * @min -1000 * @desc 戦闘シーンのHPゲージウィンドウのY座標 * 初期値: 0 * @default 0 * * @help * TMPlugin - マップHPゲージ ver1.4.4 * * 使い方: * * プラグインパラメータをいじってお好みのHPゲージを表示してください。 * * このプラグインは RPGツクールMV Version 1.6.2 で動作確認をしています。 * * このプラグインはMITライセンスのもとに配布しています、商用利用、 * 改造、再配布など、自由にお使いいただけます。 * * * プラグインコマンド: * * showHpGauge * HPゲージウィンドウを表示します。 * プラグインパラメータ startVisible が 0 の場合、 * このコマンドが実行されるまでHPゲージは表示されません。 * * showHpGauge A * ゲージAを表示します。プラグインパラメータでタイプが設定されている場合、 * ゲーム開始時に自動的に表示状態になります。 * * hideHpGauge * HPゲージウィンドウを隠します。showHpGauge コマンドが実行されるまで * 表示されないままです。 * * hideHpGauge B * ゲージBを隠します。showHpGauge B コマンドが実行されるまで * 表示されないままです。 * * moveHpGaugeWindow 100 200 * HPゲージウィンドウの位置を X座標 = 100 / Y座標 = 200 の位置へ * 移動します。 * * * プラグインパラメータ補足: * * gaugeA ~ gaugeD * * param * ゲージのタイプが VN の場合に、ゲージの現在値として扱う * ゲーム変数番号を設定してください。 * * max * ゲージのタイプが VN の場合に、ゲージの最大値として扱う * ゲーム変数番号を指定してください。 * このパラメータに設定した番号のゲーム変数に値を代入することで、 * 初めて最大値として機能します。 * この設定はゲージの長さにのみ影響します、変数の値が最大値を * 超えなくなるような機能はありません。 * * windowOpacity / collideOpacity * windowOpacity はウィンドウフレーム及び背景に影響し、collideOpacity * はゲージや顔グラフィックにも影響します。 * windowOpacity の値が collideOpacity よりも低い場合、プレイヤーと * 重なった際の不透明度として windowOpacity の値が適用されます。 * ただし、ゲージと顔グラフィックに関しては通常どおり collideOpacity の * 値が適用されます。 * * faceOffsetX * この値を -1000 に設定すると顔グラフィックが非表示となります。 * * vnMax * 値が true なら最大値も表示しますが、現在値と最大値を表示するための * スペースが足りない(ゲージの長さが短い)場合は vnMax の設定に関わらず * 強制的に現在値のみの表示になります。 */ /*~struct~Gauge: * * @param type * @type select * @option なし * @value * @option HP * @option MP * @option TP * @option LV * @option VN * @desc ゲージのタイプ(HP / MP / TP / LV / VN) * 初期値: HP * @default HP * * @param x * @type number * @min -1000 * @desc ゲージのX座標(ウィンドウ内の左端が 0 ) * 初期値: 12 * @default 12 * * @param y * @type number * @min -1000 * @desc ゲージのY座標(ウィンドウ内の上端が 0 ) * 初期値: 12 * @default 12 * * @param width * @type number * @desc ゲージの長さ * 初期値: 144 * @default 144 * * @param height * @type number * @desc ゲージの表示領域(数値とゲージ合わせて)の高さ * 初期値: 36 * @default 36 * * @param fontSize * @type number * @desc フォントサイズ * 初期値: 28 * @default 28 * * @param param * @type variable * @desc ゲージのタイプが VN のときに現在値とするゲーム変数番号 * 初期値: 0 * @default 0 * * @param max * @type variable * @desc ゲージのタイプが VN のときに最大値とするゲーム変数番号 * 初期値: 0 * @default 0 * * @param name * @type string * @desc ゲージのタイプが VN のときに表示するパラメータ名 * 初期値: AP * @default AP * * @param color * @type string * @desc ゲージのタイプが LV / VN のときのゲージカラー * 初期値: #ff60c0 #ffa0e0 * @default #ff60c0 #ffa0e0 */ var Imported = Imported || {}; Imported.TMMapHpGauge = true; (function() { var parameters = PluginManager.parameters('TMMapHpGauge'); var gaugeWindowX = +(parameters['gaugeWindowX'] || 0); var gaugeWindowY = +(parameters['gaugeWindowY'] || 0); var gaugeWindowWidth = +(parameters['gaugeWindowWidth'] || 288); var gaugeWindowHeight = +(parameters['gaugeWindowHeight'] || 64); var gauges = []; ['A', 'B', 'C', 'D'].forEach (function(code, i) { gauges[i] = JSON.parse(parameters['gauge' + code]); gauges[i].x = +gauges[i].x; gauges[i].y = +gauges[i].y; gauges[i].width = +gauges[i].width; gauges[i].height = +gauges[i].height; gauges[i].fontSize = +gauges[i].fontSize; gauges[i].param = +gauges[i].param; gauges[i].max = +gauges[i].max; gauges[i].color = gauges[i].color.split(' '); }); var faceOffsetX = +(parameters['faceOffsetX'] || -4); var faceOffsetY = +(parameters['faceOffsetY'] || -4); var stateIconMax = +(parameters['stateIconMax'] || 4); var stateIconX = +(parameters['stateIconX'] || 156); var stateIconY = +(parameters['stateIconY'] || 24); var stateIconScale = +(parameters['stateIconScale'] || 100); var stateIconOpacity = +(parameters['stateIconOpacity'] || 255); var goldWidth = +(parameters['goldWidth'] || 0); var goldX = +(parameters['goldX'] || 0); var goldY = +(parameters['goldY'] || 0); var vnMax = JSON.parse(parameters['vnMax'] || 'false'); var shakeTime = +(parameters['shakeTime'] || 20); var collideOpacity = +(parameters['collideOpacity'] || 128); var startVisible = JSON.parse(parameters['startVisible'] || 'true'); var windowOpacity = +(parameters['windowOpacity'] || 255); var messageBusyHide = JSON.parse(parameters['messageBusyHide'] || 'true'); var eventBusyHide = JSON.parse(parameters['eventBusyHide'] || 'true' ); var useBattleScene = JSON.parse(parameters['useBattleScene'] || 'false'); var gaugeWindowBattleX = +(parameters['gaugeWindowBattleX'] || 0); var gaugeWindowBattleY = +(parameters['gaugeWindowBattleY'] || 0); //----------------------------------------------------------------------------- // Game_System // Game_System.prototype.isVisibleMapHpGauge = function() { if (this._visibleMapHpGauge == null) this._visibleMapHpGauge = startVisible; return this._visibleMapHpGauge; }; Game_System.prototype.setVisibleMapHpGauge = function(flag) { this._visibleMapHpGauge = flag; }; Game_System.prototype.isVisibleMapHpGauges = function(gaugeId) { if (this._visibleMapHpGauges == null) { this._visibleMapHpGauges = []; for (var i = 0; i < gauges.length; i++) { this._visibleMapHpGauges[i] = gauges[i].type !== ''; } } return this._visibleMapHpGauges[gaugeId]; }; Game_System.prototype.setVisibleMapHpGauges = function(gaugeId, flag) { this._visibleMapHpGauges[gaugeId] = flag; }; //----------------------------------------------------------------------------- // Game_Interpreter // var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand; Game_Interpreter.prototype.pluginCommand = function(command, args) { _Game_Interpreter_pluginCommand.call(this, command, args); if (command === 'showHpGauge') { if (args[0]) { var gaugeId = ['A', 'B', 'C', 'D'].indexOf(args[0]); $gameSystem.setVisibleMapHpGauges(gaugeId, true); } else { $gameSystem.setVisibleMapHpGauge(true); } } else if (command === 'hideHpGauge') { if (args[0]) { var gaugeId = ['A', 'B', 'C', 'D'].indexOf(args[0]); $gameSystem.setVisibleMapHpGauges(gaugeId, false); } else { $gameSystem.setVisibleMapHpGauge(false); } } else if (command === 'moveHpGaugeWindow') { $gameSystem._mapHpGaugeWindowX = +args[0]; $gameSystem._mapHpGaugeWindowY = +args[1]; if (SceneManager._scene._mapHpGaugeWindow) { SceneManager._scene._mapHpGaugeWindow.x = +args[0]; SceneManager._scene._mapHpGaugeWindow.y = +args[1]; SceneManager._scene._mapHpGaugeWindow._baseX = +args[0]; } } }; //----------------------------------------------------------------------------- // Window_MapHpGauge // function Window_MapHpGauge() { this.initialize.apply(this, arguments); } Window_MapHpGauge.prototype = Object.create(Window_Base.prototype); Window_MapHpGauge.prototype.constructor = Window_MapHpGauge; Window_MapHpGauge.prototype.initialize = function() { if (SceneManager.isNextScene(Scene_Battle)) { var x = gaugeWindowBattleX; var y = gaugeWindowBattleY; } else { var x = $gameSystem._mapHpGaugeWindowX != null ? $gameSystem._mapHpGaugeWindowX : gaugeWindowX; var y = $gameSystem._mapHpGaugeWindowY != null ? $gameSystem._mapHpGaugeWindowY : gaugeWindowY; } var wight = gaugeWindowWidth; var height = gaugeWindowHeight; Window_Base.prototype.initialize.call(this, x, y, wight, height); this.openness = $gameSystem.isVisibleMapHpGauge() ? 255 : 0; this.opacity = windowOpacity; this._gaugeParams = []; this._gaugeVisible = []; for (var i = 0; i < gauges.length; i++) { this._gaugeParams.push({param: -1, max: -1}); this._gaugeVisible[i] = $gameSystem.isVisibleMapHpGauges(i); } this._icons = []; this._gold = 0; this._actorId = -1; this._faceName = ''; this._faceIndex = ''; this._shakeDuration = 0; this._baseX = x; this._needFaceRefresh = false; this._hideCount = 0; }; Window_MapHpGauge.prototype.lineHeight = function() { return this._lineHeight || 36; }; Window_MapHpGauge.prototype.standardPadding = function() { return 0; }; Window_MapHpGauge.prototype.setShake = function(power) { this._shakeDuration = power; }; Window_MapHpGauge.prototype.update = function() { Window_Base.prototype.update.call(this); if (this.updateVisibility()) { this.open(); if (this.isNeedRefresh()) { var actor = $gameParty.leader(); for (var i = 0; i < gauges.length; i++) { this._gaugeVisible[i] = $gameSystem.isVisibleMapHpGauges(i); var gauge = gauges[i]; if (gauge.type === 'HP') { this._gaugeParams[i].param = actor.hp; this._gaugeParams[i].max = actor.mhp; } else if (gauge.type === 'MP') { this._gaugeParams[i].param = actor.mp; this._gaugeParams[i].max = actor.mmp; } else if (gauge.type === 'TP') { this._gaugeParams[i].param = actor.tp; this._gaugeParams[i].max = actor.maxTp(); } else if (gauge.type === 'LV') { this._gaugeParams[i].param = actor.currentExp(); this._gaugeParams[i].max = actor.nextLevelExp(); this._gaugeParams[i].subParam = actor.level; } else if (gauge.type === 'VN') { this._gaugeParams[i].param = $gameVariables.value(gauge.param); this._gaugeParams[i].max = $gameVariables.value(gauge.max); } } this._icons = actor.stateIcons().concat(actor.buffIcons()); this._gold = $gameParty.gold(); this._actorId = actor.actorId(); this._faceName = actor.faceName(); this._faceIndex = actor.faceIndex(); this.refresh(); } this.updateShake(); this.updateOpacity(); } else { this.close(); } }; Window_MapHpGauge.prototype.updateVisibility = function() { if (!$gameSystem.isVisibleMapHpGauge()) { return false; } if ($gameParty.inBattle()) { return true; } if ((eventBusyHide && $gameMap.isEventRunning()) || (messageBusyHide && $gameMessage.isBusy())) { this._hideCount++; } else { this._hideCount = 0; } return this._hideCount < 10 && $gameParty.leader(); }; Window_MapHpGauge.prototype.isNeedRefresh = function() { var actor = $gameParty.leader(); if (actor) { var result = false; if (this._actorId !== actor.actorId()) { this.setShake(1); return true; } for (var i = 0; i < gauges.length; i++) { if (this._gaugeVisible[i] !== $gameSystem.isVisibleMapHpGauges(i)) { result = true; } var gauge = gauges[i]; var gaugeParam = this._gaugeParams[i]; if (gauge.type === 'HP') { if (gaugeParam.param !== actor.hp || gaugeParam.max !== actor.mhp) { if (gaugeParam.param > actor.hp) { this.setShake(shakeTime); } result = true; } } else if (gauge.type === 'MP') { if (gaugeParam.param !== actor.mp || gaugeParam.max !== actor.mmp) { result = true; } } else if (gauge.type === 'TP') { if (gaugeParam.param !== actor.tp || gaugeParam.max !== actor.maxTp()) { result = true; } } else if (gauge.type === 'LV') { if (gaugeParam.param !== actor.currentExp() || gaugeParam.max !== actor.nextLevelExp() || gaugeParam.subParam !== actor.level) { result = true; } } else if (gauge.type === 'VN') { if (gaugeParam.param !== $gameVariables.value(gauge.param) || gaugeParam.max !== $gameVariables.value(gauge.max)) { result = true; } } } if (stateIconMax > 0) { var icons = actor.stateIcons().concat(actor.buffIcons()); if (this._icons.toString() !== icons.toString()) { result = true; } } if (goldWidth > 0 && this._gold !== $gameParty.gold()) { result = true; } } if (this._needFaceRefresh) { this.refreshFace(); if (!this._needFaceRefresh) { result = true; } } return result; }; Window_MapHpGauge.prototype.updateShake = function() { if (this._shakeDuration > 0) { this._shakeDuration--; this.x = this._baseX; if (this._shakeDuration > 0) { this.x += Math.floor(Math.sin((this._shakeDuration % 10) * Math.PI / 5) * 8); } } }; Window_MapHpGauge.prototype.updateOpacity = function() { if (this.x < $gamePlayer.screenX() + 24 && this.x + gaugeWindowWidth > $gamePlayer.screenX() - 24 && this.y < $gamePlayer.screenY() && this.y + gaugeWindowHeight > $gamePlayer.screenY() - 48) { this.opacity = Math.min(collideOpacity, windowOpacity); this.contentsOpacity = collideOpacity; } else { this.opacity = windowOpacity; this.contentsOpacity = 255; } }; Window_MapHpGauge.prototype.refresh = function() { this.contents.clear(); var actor = $gameParty.leader(); if (actor) { this.refreshFace(); for (var i = 0; i < gauges.length; i++) { if (!$gameSystem.isVisibleMapHpGauges(i)) { continue; } var gauge = gauges[i]; this._lineHeight = gauge.height; this.contents.fontSize = gauge.fontSize; if (gauge.type === 'HP') { this.drawActorHp(actor, gauge.x, gauge.y, gauge.width); } else if (gauge.type === 'MP') { this.drawActorMp(actor, gauge.x, gauge.y, gauge.width); } else if (gauge.type === 'TP') { this.drawActorTp(actor, gauge.x, gauge.y, gauge.width); } else if (gauge.type === 'LV') { this.drawLvGauge(actor, gauge); } else if (gauge.type === 'VN') { this.drawVnGauge(this._gaugeParams[i], gauge); } } for (var i = 0; i < stateIconMax; i++) { if (!this._icons[i]) break; var x = stateIconX + i * Math.floor(Window_Base._iconWidth * stateIconScale / 100); this.drawIcon(this._icons[i], x, stateIconY); } if (goldWidth > 0) { this.drawCurrencyValue(this._gold, TextManager.currencyUnit, goldX, goldY, goldWidth); } this._lineHeight = 36; } }; Window_MapHpGauge.prototype.drawIcon = function(iconIndex, x, y) { var bitmap = ImageManager.loadSystem('IconSet'); var pw = Window_Base._iconWidth; var ph = Window_Base._iconHeight; var sx = iconIndex % 16 * pw; var sy = Math.floor(iconIndex / 16) * ph; var dw = Math.floor(pw * stateIconScale / 100); var dh = Math.floor(ph * stateIconScale / 100); var lastPaintOpacity = this.contents.paintOpacity; this.contents.paintOpacity = stateIconOpacity; this.contents.blt(bitmap, sx, sy, pw, ph, x, y, dw, dh); this.contents.paintOpacity = lastPaintOpacity; }; Window_MapHpGauge.prototype.drawLvGauge = function(actor, gauge) { if (actor.isMaxLevel()) { var value1 = '-------'; var value2 = '-------'; var rate = 1; } else { var n = actor.currentLevelExp(); var value1 = actor.currentExp() - n; var value2 = actor.nextLevelExp() - n; var rate = value1 / value2; } this.drawGauge(gauge.x, gauge.y, gauge.width, rate, gauge.color[0], gauge.color[1]); this.changeTextColor(this.systemColor()); this.drawText(TextManager.levelA, gauge.x, gauge.y, 44); var color = this.normalColor(); this.changeTextColor(color); var width = this.textWidth(TextManager.levelA) + 4; this.drawText(actor.level, gauge.x + width, gauge.y, 44) width = gauge.width - width - this.textWidth('' + actor.level); this.drawCurrentAndMax(value1, value2, gauge.x + gauge.width - width, gauge.y, width, color, color); }; Window_MapHpGauge.prototype.drawVnGauge = function(params, gauge) { var rate = params.max === 0 ? 0 : params.param / params.max; this.drawGauge(gauge.x, gauge.y, gauge.width, rate, gauge.color[0], gauge.color[1]); this.changeTextColor(this.systemColor()); this.drawText(gauge.name, gauge.x, gauge.y, this.textWidth(gauge.name)); this.changeTextColor(this.normalColor()); if (vnMax) { this.drawVnCurrentAndMax(gauge.name, params.param, params.max, gauge.x, gauge.y, gauge.width); } else { this.drawText(params.param, gauge.x + gauge.width - 64, gauge.y, 64, 'right'); } }; Window_MapHpGauge.prototype.drawVnCurrentAndMax = function(name, current, max, x, y, width) { var labelWidth = this.textWidth(name); var valueWidth = this.textWidth('0' + max); var slashWidth = this.textWidth('/'); var x1 = x + width - valueWidth; var x2 = x1 - slashWidth; var x3 = x2 - valueWidth; this.changeTextColor(this.normalColor()); if (x3 >= x + labelWidth) { this.drawText(current, x3, y, valueWidth, 'right'); this.drawText('/', x2, y, slashWidth, 'right'); this.drawText(max, x1, y, valueWidth, 'right'); } else { this.drawText(current, x1, y, valueWidth, 'right'); } }; Window_MapHpGauge.prototype.refreshFace = function() { if (faceOffsetX === -1000) { return; } var actor = $gameParty.leader(); var bitmap = ImageManager.loadFace(actor.faceName()); this._needFaceRefresh = bitmap.width === 0; if (!this._needFaceRefresh) { var x = gaugeWindowWidth - 144 + faceOffsetX; var y = faceOffsetY; var height = Math.min(gaugeWindowHeight, 144); this.drawFace(actor.faceName(), actor.faceIndex(), x, y, 144, height); } }; //----------------------------------------------------------------------------- // Scene_Base // Scene_Base.prototype.createMapHpGaugeWindow = function() { this._mapHpGaugeWindow = new Window_MapHpGauge(); this.addChild(this._mapHpGaugeWindow); }; //----------------------------------------------------------------------------- // Scene_Map // var _Scene_Map_createDisplayObjects = Scene_Map.prototype.createDisplayObjects; Scene_Map.prototype.createDisplayObjects = function() { _Scene_Map_createDisplayObjects.call(this); this.createMapHpGaugeWindow(); }; var _Scene_Map_terminate = Scene_Map.prototype.terminate; Scene_Map.prototype.terminate = function() { if (!SceneManager.isNextScene(Scene_Battle)) this._mapHpGaugeWindow.hide(); _Scene_Map_terminate.call(this); this.removeChild(this._mapHpGaugeWindow); }; var _Scene_Map_launchBattle = Scene_Map.prototype.launchBattle; Scene_Map.prototype.launchBattle = function() { this._mapHpGaugeWindow.hide(); _Scene_Map_launchBattle.call(this); }; //----------------------------------------------------------------------------- // Scene_Battle // var _Scene_Battle_createDisplayObjects = Scene_Battle.prototype.createDisplayObjects; Scene_Battle.prototype.createDisplayObjects = function() { _Scene_Battle_createDisplayObjects.call(this); if (useBattleScene) { this.createMapHpGaugeWindow(); } }; var _Scene_Battle_terminate = Scene_Battle.prototype.terminate; Scene_Battle.prototype.terminate = function() { _Scene_Battle_terminate.call(this); if (this._mapHpGaugeWindow) { this.removeChild(this._mapHpGaugeWindow); } }; })();