//============================================================================= // MOG_HPGauge.js //============================================================================= /*: * @target MZ * @plugindesc (v1.0) Apresenta um medidor de HP do alvo. * @author Moghunter * @url https://mogplugins.wordpress.com * * @param Gauge For Actors * @desc Apresentar o HP nos aliados . * @default true * @type boolean * * @param Gauge For Enemies * @desc Apresentar o HP nos inimigos. * @default true * @type boolean * * @param Show HP On Selection * @desc Apresentar o HP na seleção do alvo. * @default true * @type boolean * * @param Fade Duration * @desc Definição do tempo para ativar o fade. * @default 90 * * @param Slide Animation * @desc Ativar animação de deslize. * @default true * @type boolean * * @param Show HP Number Actor * @desc Apresentar o número de HP para o ator. * @default false * @type boolean * * @param Show HP Number Enemy * @desc Apresentar o número de HP para o inimigo. * @default true * @type boolean * * @param Required to Kill * @desc Requer derrotar o inimigo para mostrar o HP. * @default false * @type boolean * * @param Actor Layout X-Axis * @desc Posição X-Axis do layout. * @default 5 * * @param Actor Layout Y-Axis * @desc Posição Y-Axis do layout. * @default -90 * * @param Actor Meter X-Axis * @desc Posição X-Axis do medidor. * @default 0 * * @param Actor Meter Y-Axis * @desc Posição Y-Axis do medidor. * @default 3 * * @param Actor HP Number X-Axis * @desc Posição X-Axis do numero de HP. * @default -25 * * @param Actor HP Number Y-Axis * @desc Posição Y-Axis do numero de HP. * @default -22 * * @param Enemy Layout X-Axis * @desc Posição X-Axis do layout. * @default 0 * * @param Enemy Layout Y-Axis * @desc Posição Y-Axis do layout. * @default 0 * * @param Enemy Meter X-Axis * @desc Posição X-Axis do medidor. * @default 8 * * @param Enemy Meter Y-Axis * @desc Posição Y-Axis do medidor. * @default 10 * * @param Enemy HP Number X-Axis * @desc Posição X-Axis do numero de HP. * @default -25 * * @param Enemy HP Number Y-Axis * @desc Posição Y-Axis do numero de HP. * @default -19 * * @help * ============================================================================= * +++ MOG - HP Gauge (v1.0) +++ * By Moghunter * https://mogplugins.wordpress.com * ============================================================================= * Apresenta um medidor de HP do alvo. * Serão necessários os arquivos. (img/system/) * * HPGaugeActor_A.png * HPGaugeActor_B.png * HPGaugeActor_C.png * HPGaugeEnemy_A.png * HPGaugeEnemy_B.png * HPGaugeEnemy_C.png * * ============================================================================= * NOTETAGS * ============================================================================= * Para ocultar o HP do inimigo use a seguinte Tag na caixa de notas * * Hide HP * * ----------------------------------------------------------------------------- * Para ajustar a posição do medidor use a Tag abaixo. * * Hp Gauge Offset: X:Y * * Exemplo * * Hp Gauge Offset: 130:40 * */ /*:ja * @target MZ * @plugindesc (v1.0) 対象のHPメーターを表示します。 * @author Moghunter * @url https://raw.githubusercontent.com/harizumi/Moghunter-MZ-jp/main/MOG_HPGauge.js * * @param Gauge For Actors * @text 仲間HPの表示有効化 * @type boolean * @on 有効 * @off 無効 * @default true * * @param Gauge For Enemies * @text 敵HPの表示有効化 * @type boolean * @on 有効 * @off 無効 * @default true * * @param Show HP On Selection * @text 選択対象HPの表示有効化 * @type boolean * @on 有効 * @off 無効 * @default true * * @param Fade Duration * @text フェード時間 * @type number * @max 9007 * @default 90 * * @param Slide Animation * @text スライドアニメの有効化 * @type boolean * @on 有効 * @off 無効 * @default true * * @param Show HP Number Actor * @text アクターHP値の表示有効化 * @type boolean * @on 有効 * @off 無効 * @default false * * @param Show HP Number Enemy * @text 敵HP値の表示有効化 * @type boolean * @on 有効 * @off 無効 * @default true * * @param Required to Kill * @text 倒した敵限定でHP表示有効化 * @type boolean * @on 有効 * @off 無効 * @default false * * @param Actor Layout X-Axis * @text アクターのレイアウトX軸位置 * @desc 正:右 / 負:左 * @type number * @min -9007 * @max 9007 * @default 5 * * @param Actor Layout Y-Axis * @text アクターのレイアウトY軸位置 * @desc 正:下 / 負:上 * @type number * @min -9007 * @max 9007 * @default -90 * * @param Actor Meter X-Axis * @text アクターのメーターX軸位置 * @desc 正:右 / 負:左 * @type number * @min -9007 * @max 9007 * @default 0 * * @param Actor Meter Y-Axis * @text アクターのメーターY軸位置 * @desc 正:下 / 負:上 * @type number * @min -9007 * @max 9007 * @default 3 * * @param Actor HP Number X-Axis * @text アクターHPのX軸位置 * @desc 正:右 / 負:左 * @type number * @min -9007 * @max 9007 * @default -25 * * @param Actor HP Number Y-Axis * @text アクターHPのY軸位置 * @desc 正:下 / 負:上 * @type number * @min -9007 * @max 9007 * @default -22 * * @param Enemy Layout X-Axis * @text 敵のレイアウトX軸位置 * @desc 正:右 / 負:左 * @type number * @min -9007 * @max 9007 * @default 0 * * @param Enemy Layout Y-Axis * @text 敵のレイアウトY軸位置 * @desc 正:下 / 負:上 * @type number * @min -9007 * @max 9007 * @default 0 * * @param Enemy Meter X-Axis * @text 敵のメーターX軸位置 * @desc 正:右 / 負:左 * @type number * @min -9007 * @max 9007 * @default 8 * * @param Enemy Meter Y-Axis * @text 敵のメーターY軸位置 * @desc 正:下 / 負:上 * @type number * @min -9007 * @max 9007 * @default 10 * * @param Enemy HP Number X-Axis * @text 敵HPのX軸位置 * @desc 正:右 / 負:左 * @type number * @min -9007 * @max 9007 * @default -25 * * @param Enemy HP Number Y-Axis * @text 敵HPのY軸位置 * @desc 正:下 / 負:上 * @type number * @min -9007 * @max 9007 * @default -19 * * @help * 翻訳: * https://fungamemake.com/ * * =========================================================================== * +++ MOG - HP Gauge (v1.0) +++ * By Moghunter * https://mogplugins.wordpress.com * =========================================================================== * 対象にHPメーターを表示します。 * ファイルが必要になります。 (img/system/) * * HPGaugeActor_A.png * HPGaugeActor_B.png * HPGaugeActor_C.png * HPGaugeEnemy_A.png * HPGaugeEnemy_B.png * HPGaugeEnemy_C.png * * =========================================================================== * メモタグ * =========================================================================== * 敵のHPを非表示にするには、メモ欄に以下のタグを使用します。 * * Hide HP * * --------------------------------------------------------------------------- * メーターの位置を調整するには、以下のタグを使用してください。 * * Hp Gauge Offset: X:Y * * 例 * * Hp Gauge Offset: 130:40 * */ //============================================================================= // ** PLUGIN PARAMETERS //============================================================================= var Imported = Imported || {}; Imported.MOG_HPGauge = true; var Moghunter = Moghunter || {}; Moghunter.parameters = PluginManager.parameters('MOG_HPGauge'); Moghunter.hpgauge_actors = String(Moghunter.parameters['Gauge For Actors'] || "true"); Moghunter.hpgauge_enemies = String(Moghunter.parameters['Gauge For Enemies'] || "true"); Moghunter.hpgauge_selection = String(Moghunter.parameters['Show HP On Selection'] || "true"); Moghunter.hpgauge_slide = String(Moghunter.parameters['Slide Animation'] || "true"); Moghunter.hpgauge_showNumberActor = String(Moghunter.parameters['Show HP Number Actor'] || "false"); Moghunter.hpgauge_showNumberEnemy = String(Moghunter.parameters['Show HP Number Enemy'] || "true"); Moghunter.hpgauge_NumberAfter = String(Moghunter.parameters['Required to Kill'] || "false"); Moghunter.hpgauge_a_x = Number(Moghunter.parameters['Enemy Layout X-Axis'] || 0); Moghunter.hpgauge_a_y = Number(Moghunter.parameters['Enemy Layout Y-Axis'] || 0); Moghunter.hpgauge_b_x = Number(Moghunter.parameters['Enemy Meter X-Axis'] || 8); Moghunter.hpgauge_b_y = Number(Moghunter.parameters['Enemy Meter Y-Axis'] || 10); Moghunter.hpgauge_c_x = Number(Moghunter.parameters['Enemy HP Number X-Axis'] || -30); Moghunter.hpgauge_c_y = Number(Moghunter.parameters['Enemy HP Number Y-Axis'] || -19); Moghunter.hpgauge_a_xa = Number(Moghunter.parameters['Actor Layout X-Axis'] || 5); Moghunter.hpgauge_a_ya = Number(Moghunter.parameters['Actor Layout Y-Axis'] || -90); Moghunter.hpgauge_b_xa = Number(Moghunter.parameters['Actor Meter X-Axis'] || 0); Moghunter.hpgauge_b_ya = Number(Moghunter.parameters['Actor Meter Y-Axis'] || 3); Moghunter.hpgauge_c_xa = Number(Moghunter.parameters['Actor HP Number X-Axis'] || -25); Moghunter.hpgauge_c_ya = Number(Moghunter.parameters['Actor HP Number Y-Axis'] || -19); Moghunter.hpgauge_duration = Number(Moghunter.parameters['Fade Duration'] || 90); //============================================================================= // ■■■ Game_Temp ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ Initialize //============================== var _mog_hpgauge_temp_initialize = Game_Temp.prototype.initialize; Game_Temp.prototype.initialize = function () { _mog_hpgauge_temp_initialize.call(this); this._hpGauge = [true, false]; }; //============================================================================= // ■■■ Game_System ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ Initialize //============================== var _mog_hpgauge_sys_initialize = Game_System.prototype.initialize; Game_System.prototype.initialize = function () { _mog_hpgauge_sys_initialize.call(this); this._hpGaugeEDef = []; }; //============================================================================= // ■■■ BattleManager ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ processVictory //============================== var _mog_hpGauge_processVictory = BattleManager.processVictory; BattleManager.processVictory = function () { $gameTemp._hpGauge[0] = false; _mog_hpGauge_processVictory.call(this); }; //============================== // ♦ ALIAS ♦ processAbort //============================== var _mog_hpGauge_processAbort = BattleManager.processAbort; BattleManager.processAbort = function () { $gameTemp._hpGauge[0] = false; _mog_hpGauge_processAbort.call(this); }; //============================== // ♦ ALIAS ♦ processDefeat //============================== var _mog_hpGauge_processDefeat = BattleManager.processDefeat; BattleManager.processDefeat = function () { $gameTemp._hpGauge[0] = false; _mog_hpGauge_processDefeat.call(this); }; //============================================================================= // ■■■ Game Battler Base ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ Die //============================== var _mog_hpgauge_gbattlerbase_die = Game_BattlerBase.prototype.die; Game_BattlerBase.prototype.die = function () { _mog_hpgauge_gbattlerbase_die.call(this); if (this._enemyId && this.isEnemy()) { $gameSystem._hpGaugeEDef[this._enemyId] = true }; }; //============================================================================= // ■■■ Game Battler ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ init Members //============================== var _mog_hpgauge_gbat_initMembers = Game_Battler.prototype.initMembers; Game_Battler.prototype.initMembers = function () { _mog_hpgauge_gbat_initMembers.call(this); this._ehpgauge = [false, 0, 0, false, false]; }; //============================== // * check HP Gauge Notes //============================== Game_Battler.prototype.checkHPGaugeNotes = function () { this.notetags().forEach(function (note) { if (note == "Hide HP") { this._ehpgauge[0] = false }; var note_data = note.split(': ') if (note_data[0].toLowerCase() == "hp gauge offset") { var par = note_data[1].split(':'); this._ehpgauge[1] = Number(par[0]); this._ehpgauge[2] = Number(par[1]); }; }, this); }; //============================== // * Notetags //============================== Game_Battler.prototype.notetags = function () { if (this.isEnemy()) { return this.enemy().note.split(/[\r\n]+/) }; if (this.isActor()) { return this.actor().note.split(/[\r\n]+/) }; }; //============================================================================= // ■■■ Game_Actor ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ Setup //============================== var _mog_hp_gauge_gactor_setup = Game_Actor.prototype.setup; Game_Actor.prototype.setup = function (actorId) { _mog_hp_gauge_gactor_setup.call(this, actorId); if (String(Moghunter.hpgauge_actors) === "true") { this._ehpgauge[0] = true }; this.checkHPGaugeNotes(); }; //============================================================================= // ■■■ Game_Enemy ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ Setup //============================== var _mog_hpgauge_genemy_setup = Game_Enemy.prototype.setup; Game_Enemy.prototype.setup = function (enemyId, x, y) { _mog_hpgauge_genemy_setup.call(this, enemyId, x, y); if (String(Moghunter.hpgauge_enemies) === "true") { this._ehpgauge[0] = true }; this.checkHPGaugeNotes(); }; //============================================================================= // ■■■ Game Action ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ Apply //============================== var _mog_hpgauge_gaction_apply = Game_Action.prototype.apply; Game_Action.prototype.apply = function (target) { _mog_hpgauge_gaction_apply.call(this, target); if (target) { if (this.isHpRecover()) { target._ehpgauge[4] = true; } else if (this.item() && this.item().damage.type === 5) { target._ehpgauge[4] = true; var subj = this.subject(); if (subj) { subj._ehpgauge[4] = true }; }; }; }; //============================================================================= // ■■■ Spriteset_Battle ■■■ //============================================================================= //============================== // ♦ ALIAS ♦ Create Lower Layer //============================== var _mog_hpGauge_createLowerLayer = Spriteset_Battle.prototype.createLowerLayer; Spriteset_Battle.prototype.createLowerLayer = function () { _mog_hpGauge_createLowerLayer.call(this); this.create_HPGauge(); }; //============================== // * Create HP Gauge //============================== Spriteset_Battle.prototype.create_HPGauge = function () { this.createHPField(); this.createHPSprites() }; //============================== // * Create EHP Field //============================== Spriteset_Battle.prototype.createHPField = function () { this._hpField = new Sprite(); this._hpField.z = 100; this.addChild(this._hpField); }; //============================== // * Create HP Sprites //============================== Spriteset_Battle.prototype.createHPSprites = function () { $gameTemp._hpGauge[0] = true; this._HPSprites = []; this.createHPSpritesActor(); this.createHPSpritesEnemy(); }; //============================== // * create H PSprites Actor //============================== Spriteset_Battle.prototype.createHPSpritesActor = function () { if (String(Moghunter.hpgauge_actors) != "true") { return }; for (var i = 0; i < this._actorSprites.length; i++) { this._HPSprites[i] = new HPGaugeSprite(this._actorSprites[i], 0); this._hpField.addChild(this._HPSprites[i]); }; }; //============================== // * create H PSprites Enemy //============================== Spriteset_Battle.prototype.createHPSpritesEnemy = function () { if (String(Moghunter.hpgauge_enemies) != "true") { return }; for (var i = 0; i < this._enemySprites.length; i++) { this._HPSprites[i] = new HPGaugeSprite(this._enemySprites[i], 1); this._hpField.addChild(this._HPSprites[i]); }; }; //============================== // * remove HP Sprites //============================== Spriteset_Battle.prototype.removeHPSprites = function () { if (!this._HPSprites) { return }; for (var i = 0; i < this._HPSprites.length; i++) { this._hpField.removeChild(this._HPSprites[i]); }; }; //============================================================================= // ■■■ HP Gauge Sprite ■■■ //============================================================================= function HPGaugeSprite() { this.initialize.apply(this, arguments); }; HPGaugeSprite.prototype = Object.create(Sprite.prototype); HPGaugeSprite.prototype.constructor = HPGaugeSprite; //============================== // * Initialize //============================== HPGaugeSprite.prototype.initialize = function (sprite, type) { Sprite.prototype.initialize.call(this); this._sprite = sprite; this._slideX = 0; this._duration = 0; this.opacity = 0; this.type = type; this.z = 100; this._xf = ((Graphics.width - Graphics.boxWidth) / 2); this._yf = ((Graphics.height - Graphics.boxHeight) / 2); this._slideA = String(Moghunter.hpgauge_slide) === "true" ? true : false; this._selectionHP = String(Moghunter.hpgauge_selection) === "true" ? true : false; if (type === 0) { this._showHPNumber = String(Moghunter.hpgauge_showNumberActor) === "true" ? true : false; } else { this._showHPNumber = String(Moghunter.hpgauge_showNumberEnemy) === "true" ? true : false; }; this._IDA = type === 0 ? true : this.enemyIDA(); if (type === 1 && String(Moghunter.hpgauge_NumberAfter) != "true") { this._IDA = true }; this._data = [0, 0, 0, 0, 0]; this.loadBitmaps(); }; //============================== // * Battler //============================== HPGaugeSprite.prototype.battler = function () { return this._sprite._battler; }; //============================== // * Load Bitmaps //============================== HPGaugeSprite.prototype.loadBitmaps = function () { if (this.type === 0) { this._layImg = ImageManager.loadSystem("HPGaugeActor_A"); this._meterImg = ImageManager.loadSystem("HPGaugeActor_B"); this._numberImg = ImageManager.loadSystem("HPGaugeActor_C"); } else { this._layImg = ImageManager.loadSystem("HPGaugeEnemy_A"); this._meterImg = ImageManager.loadSystem("HPGaugeEnemy_B"); this._numberImg = ImageManager.loadSystem("HPGaugeEnemy_C"); }; }; //============================== // * createSprites //============================== HPGaugeSprite.prototype.createSprites = function () { this.createLayout(); this.createMeter(); if (this._showHPNumber) { this.createNumber() }; }; //============================== // * Create Layout //============================== HPGaugeSprite.prototype.createLayout = function () { this._layout = new Sprite(this._layImg); if (this.type === 0) { this._layout.x = Moghunter.hpgauge_a_xa - this._layImg.width / 2; this._layout.y = Moghunter.hpgauge_a_ya - this._layImg.height / 2; } else { this._layout.x = Moghunter.hpgauge_a_x - this._layImg.width / 2; this._layout.y = Moghunter.hpgauge_a_y - this._layImg.height / 2; }; this.addChild(this._layout); }; //============================== // * Create Gauge //============================== HPGaugeSprite.prototype.createMeter = function () { this._meter = []; for (var i = 0; i < 2; i++) { this._meter[i] = new Sprite(this._meterImg); this._meter[i].value1 = this.battler().hp; this._meter[i].value2 = this.battler().mhp; this._meter[i].ds = 0; this._meter[i].w = this._meterImg.width; this._meter[i].h = this._meterImg.height / 2; if (this.type === 0) { this._meter[i].x = Moghunter.hpgauge_a_xa + Moghunter.hpgauge_b_xa - this._meterImg.width / 2; this._meter[i].y = Moghunter.hpgauge_a_ya + Moghunter.hpgauge_b_ya - this._meterImg.height / 2; } else { this._meter[i].x = Moghunter.hpgauge_a_x + Moghunter.hpgauge_b_x - this._meterImg.width / 2; this._meter[i].y = Moghunter.hpgauge_a_y + Moghunter.hpgauge_b_y - this._meterImg.height / 2; }; this.addChild(this._meter[i]); }; this.refreshMeter(this._meter[0], this._meter[0].value1, this.battler().mhp, 1); this.refreshMeter(this._meter[1], this.battler().hp, this.battler().mhp, 0); this.updateMeter(); }; //============================== // * Need Refresh Blue Meter //============================== HPGaugeSprite.prototype.needRefreshBlueMeter = function () { if (this.battler()._ehpgauge[4]) { return true }; if (this._meter[1].value1 != this.battler().hp) { return true }; if (this._meter[1].value2 != this.battler().mhp) { return true }; return false }; //============================== // * refresh Blue Meter //============================== HPGaugeSprite.prototype.refreshBlueMeter = function () { this.battler()._ehpgauge[4] = false; this._meter[1].value1 = this.battler().hp; this._meter[1].value2 = this.battler().mhp; if (!$gameTemp._hpGauge[0]) { return }; this.refreshMeter(this._meter[0], this._meter[0].value1, this.battler().mhp, 1); this.refreshMeter(this._meter[1], this.battler().hp, this.battler().mhp, 0); this.prepareSlide(); }; //============================== // * prepare Slide //============================== HPGaugeSprite.prototype.prepareSlide = function () { if (this.opacity < 100 || this._slideX > 0) { this._slideX = this._slideA ? -50 : -0.01; this.opacity = 0; }; this._duration = Math.min(Math.max(Moghunter.hpgauge_duration, 1), 999); }; //============================== // * Update Dif //============================== HPGaugeSprite.prototype.update_dif = function (value, real_value, speed, type) { if (value == real_value) { return value }; var mr = type === 0 ? 1 : 0.1; var dnspeed = mr + (Math.abs(value - real_value) / speed); if (value > real_value) { value -= dnspeed; if (value < real_value) { value = real_value }; } else if (value < real_value) { value += dnspeed; if (value > real_value) { value = real_value }; }; if (type === 0) { return Math.floor(value); } else { return value; }; }; //============================== // * Need Refresh Red Meter //============================== HPGaugeSprite.prototype.needRefreshRedMeter = function () { if (this._meter[0].value1 != this.battler().hp) { return true }; return false; }; //============================== // * refresh Red Meter //============================== HPGaugeSprite.prototype.refreshRedMeter = function () { this._meter[0].value1 = this.update_dif(this._meter[0].value1, this.battler().hp, 60, 1); this.refreshMeter(this._meter[0], this._meter[0].value1, this.battler().mhp, 1); }; //============================== // * Update Meter //============================== HPGaugeSprite.prototype.updateMeter = function () { if (this.needRefreshRedMeter()) { this.refreshRedMeter() }; if (this.needRefreshBlueMeter()) { this.refreshBlueMeter() }; }; //============================== // * Refresh Meter //============================== HPGaugeSprite.prototype.refreshMeter = function (sprite, value1, value2, h) { var wd = value1 * sprite.w / value2 sprite.setFrame(0, sprite.h * h, wd, sprite.h); }; //============================== // * create Number //============================== HPGaugeSprite.prototype.createNumber = function () { this._hp_number = []; this._numberData = [this.battler().hp - 1, this._numberImg.width / 11, this._numberImg.height] for (var i = 0; i < 6; i++) { this._hp_number[i] = new Sprite(this._numberImg); this._hp_number[i].visible = false; if (this.type === 0) { this._hp_number[i].x = Moghunter.hpgauge_a_xa + Moghunter.hpgauge_c_xa; this._hp_number[i].y = Moghunter.hpgauge_a_ya + Moghunter.hpgauge_c_ya; } else { this._hp_number[i].x = Moghunter.hpgauge_a_x + Moghunter.hpgauge_c_x; this._hp_number[i].y = Moghunter.hpgauge_a_y + Moghunter.hpgauge_c_y; }; this._hp_number[i].org = [this._hp_number[i].x, this._hp_number[i].y]; this.addChild(this._hp_number[i]); }; }; //============================== // * update Number //============================== HPGaugeSprite.prototype.updateNumber = function () { if (this._numberData[0] != this.battler().hp) { this.refreshNumber() }; }; //============================== // * enemy IDA //============================== HPGaugeSprite.prototype.enemyIDA = function () { if (this.battler().isActor()) { return true }; return $gameSystem._hpGaugeEDef[this.battler()._enemyId]; }; //============================== // * ID available //============================== HPGaugeSprite.prototype.idIsAvailable = function () { return this._IDA; }; //============================== // * refresh Number //============================== HPGaugeSprite.prototype.refreshNumber = function () { this._numberData[0] = this.update_dif(this._numberData[0], this.battler().hp, 40, 0); var w = this._numberData[1]; var h = this._numberData[2]; var number = Math.abs(this._numberData[0]).toString().split(""); for (var i = 0; i < this._hp_number.length; i++) { this._hp_number[i].visible = false; if (this.idIsAvailable()) { if (i < number.length) { var n = Number(number[i]); this._hp_number[i].setFrame(n * w, 0, w, h); this._hp_number[i].visible = true; this._hp_number[i].x = this._hp_number[i].org[0] + (w * i); }; } else { if (i === 0) { this._hp_number[0].setFrame(10 * w, 0, w, h); this._hp_number[0].visible = true; this._hp_number[0].x = this._hp_number[0].org[0] + (w * 2); }; }; }; }; //============================== // * Is Visible //============================== HPGaugeSprite.prototype.isVisible = function () { if (!this.battler()) { return false }; if (this.battler().isHidden()) { return false }; if (!this.battler()._ehpgauge[0]) { return false }; if (Imported.MOG_BossHP) { if (this.battler()._bosshp_meter) { return false }; }; if (this.type === 0 && !$gameSystem.isSideView()) { return false; }; return true; }; //============================== // * force Visible //============================== HPGaugeSprite.prototype.forceVisible = function () { if (this.battler()._ehpgauge[3]) { return true }; if (this._selectionHP && this.battler().isSelected() && !this.battler().isDead()) { return true }; return false; }; //============================== // * pos X //============================== HPGaugeSprite.prototype.posX = function () { var xs = this.forceVisible() ? 0 : this._slideX; return this._sprite.x + xs + this.battler()._ehpgauge[1] + this._xf; }; //============================== // * pos Y //============================== HPGaugeSprite.prototype.posY = function () { return this._sprite.y + this.battler()._ehpgauge[2] + this._yf; }; //============================== // * Update Slide //============================== HPGaugeSprite.prototype.updateSlide = function () { this._slideX += 2; this.opacity += 10; if (this._slideX >= 0) { this._slideX = 0; this.opacity = 255; }; }; //============================== // * Update Fade //============================== HPGaugeSprite.prototype.updateFade = function () { if (this._slideA) { this._slideX += 2 }; this.opacity -= 10; }; //============================== // * Update Slide //============================== HPGaugeSprite.prototype.updateAnimation = function () { if (this._slideX < 0) { this.updateSlide(); return }; if (this._duration > 0) { this._duration--; return }; if (this.opacity > 0) { this.updateFade() }; }; //============================== // * Update Force Visible //============================== HPGaugeSprite.prototype.updateForceVisible = function () { this.opacity = 255; this._duration = 0; this._slideX = 0; }; //============================== // * Update Position //============================== HPGaugeSprite.prototype.updatePosition = function () { if (this.forceVisible()) { this.updateForceVisible(); } else { this.updateAnimation(); }; this.x = this.posX(); this.y = this.posY(); if (Imported.MOG_BattlerMotion) { this.x -= Math.abs(this._sprite._battler._bmotion.damage.x) }; }; //============================== // * Update //============================== HPGaugeSprite.prototype.update = function () { Sprite.prototype.update.call(this); this.visible = this.isVisible(); if (!this.battler()) { return }; if (!this._layout && this._meterImg.isReady()) { this.createSprites() }; if (this._meter) { this.updateMeter() }; if (this._hp_number) { this.updateNumber() }; this.updatePosition(); };