// DarkPlasma_DisplayHpMpDamage 1.0.3 // Copyright (c) 2020 DarkPlasma // This software is released under the MIT license. // http://opensource.org/licenses/mit-license.php /** * 2024/03/17 1.0.3 TypeScript移行 * 2021/07/05 1.0.2 MZ 1.3.2に対応 * 2021/06/22 1.0.1 サブフォルダからの読み込みに対応 * 2020/11/17 1.0.0 公開 */ /*: @target MZ @url https://github.com/elleonard/DarkPlasma-MZ-Plugins/tree/release @plugindesc Pop-ups for damage/recovery for both HP and MP @author DarkPlasma @license MIT @help English Help Translator: munokura This is an unofficial English translation of the plugin help, created to support global RPG Maker users. Feedback is welcome to improve translation quality (see: https://github.com/munokura/DarkPlasma-MZ-Plugins ). Original plugin by DarkPlasma. Please check the latest official version at: https://github.com/elleonard/DarkPlasma-MZ-Plugins/tree/release ----- version: 1.0.3 If both HP and MP are damaged or recovered, both will be displayed in a popup. @param delay @text Display time difference @desc How many frames to delay the display of MP from the display of HP @type number @default 10 @param offsetX @text Horizontal Offset @desc How far to shift the MP display from the HP display @type number @default 8 @param offsetY @text Vertical Offset @desc How much to vertically shift the MP display from the HP display @type number @default -16 @min -300 */ /*:ja @plugindesc HPとMP両方のダメージ/回復をポップアップ表示する @author DarkPlasma @license MIT @target MZ @url https://github.com/elleonard/DarkPlasma-MZ-Plugins/tree/release @param delay @desc HPの表示からMPの表示を何フレーム遅らせるか @text 表示時間差 @type number @default 10 @param offsetX @desc HPの表示からMPの表示を横にどれだけずらすか @text 横オフセット @type number @default 8 @param offsetY @desc HPの表示からMPの表示を縦にどれだけずらすか @text 縦オフセット @type number @default -16 @min -300 @help version: 1.0.3 HPとMP両方にダメージや回復がある場合、 その両方をポップアップ表示します。 */ (() => { 'use strict'; const pluginName = document.currentScript.src.replace(/^.*\/(.*).js$/, function () { return arguments[1]; }); const pluginParametersOf = (pluginName) => PluginManager.parameters(pluginName); const pluginParameters = pluginParametersOf(pluginName); const settings = { delay: Number(pluginParameters.delay || 10), offsetX: Number(pluginParameters.offsetX || 8), offsetY: Number(pluginParameters.offsetY || -16), }; const _Sprite_Battler_createDamageSprite = Sprite_Battler.prototype.createDamageSprite; Sprite_Battler.prototype.createDamageSprite = function () { _Sprite_Battler_createDamageSprite.call(this); const result = this._battler?.result(); if (this._battler?.isAlive() && result?.hpAffected && result.mpDamage !== 0) { const last = this._damages[this._damages.length - 1]; const sprite = new Sprite_Damage(); /** * HPダメージに関するスプライトがすでに追加されているため、lastは必ず存在する */ sprite.x = last.x + settings.offsetX; sprite.y = last.y + settings.offsetY; sprite.setupMpChangeWithHp(this._battler); this._damages.push(sprite); this.parent.addChild(sprite); } }; const _Sprite_Damage_initialize = Sprite_Damage.prototype.initialize; Sprite_Damage.prototype.initialize = function () { _Sprite_Damage_initialize.call(this); this._delay = 0; }; Sprite_Damage.prototype.setupMpChangeWithHp = function (target) { const result = target.result(); this._colorType = result.mpDamage >= 0 ? 2 : 3; this._delay = settings.delay; this.createDigits(result.mpDamage); }; const _Sprite_Damage_update = Sprite_Damage.prototype.update; Sprite_Damage.prototype.update = function () { if (this._delay > 0) { this._delay--; return; } _Sprite_Damage_update.call(this); }; })();