/*:----------------------------------------------------------------------------------- * NUUN_RecoveryReversal.js * * Copyright (C) 2021 NUUN * This software is released under the MIT License. * http://opensource.org/licenses/mit-license.php * ------------------------------------------------------------------------------------- * */ /*: @target MZ @url https://github.com/nuun888/MZ @plugindesc Recovery effect reversal feature @author NUUN @license MIT License @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/NUUN-MZ-plugins ). Original plugin by NUUN. Please check the latest official version at: https://github.com/nuun888/MZ ----- You can set the damage taken when receiving a recovery effect. The amount of damage also varies depending on the recovery effect rate. Feature-related memo field Takes damage when receiving a recovery effect. Takes damage when receiving an HP recovery effect. Takes damage when receiving an MP recovery effect. Item and skill memo field Ignores the effects of the recovery effect reversal feature. Terms of Use This plugin is distributed under the MIT License. Update History August 7, 2021 Ver. 1.0.0 First Edition */ /*:ja @target MZ @plugindesc 回復効果反転特徴 @author NUUN @version 1.0.0 @help 回復効果を受けるとダメージを受ける特徴を設定できます。 回復効果率によってダメージ量も変わります。 特徴を有するメモ欄 回復効果を受けるとダメージを受けます。 HP回復効果を受けるとダメージを受けます。 MP回復効果を受けるとダメージを受けます。 アイテム、スキルのメモ欄 回復効果反転特徴の影響を無視します。 利用規約 このプラグインはMITライセンスで配布しています。 更新履歴 2021/8/7 Ver.1.0.0 初版 */ var Imported = Imported || {}; Imported.NUUN_RecoveryReversal = true; (() => { const parameters = PluginManager.parameters('NUUN_RecoveryReversal'); const _Game_BattlerBase_sparam = Game_BattlerBase.prototype.sparam; Game_BattlerBase.prototype.sparam = function(sparamId) { let rate = _Game_BattlerBase_sparam.call(this, sparamId); if (sparamId === 2) { rate *= this.recoveryReversal(); } return rate; }; Game_BattlerBase.prototype.recoveryReversal = function() { const flag = this.getReversalFlag(); this.setReversalFlag(false); return flag ? -1 : 1; }; Game_BattlerBase.prototype.hpRecoveryReversal = function() { return this.traitObjects().some(trait => trait.meta.RecoveryReversal || trait.meta.HPRecoveryReversal); }; Game_BattlerBase.prototype.mpRecoveryReversal = function() { return this.traitObjects().some(trait => trait.meta.RecoveryReversal || trait.meta.MPRecoveryReversal); }; Game_BattlerBase.prototype.setReversalFlag = function(flag) { this._reversalFlag = flag; }; Game_BattlerBase.prototype.getReversalFlag = function() { return this._reversalFlag }; const _Game_Action_makeDamageValue = Game_Action.prototype.makeDamageValue; Game_Action.prototype.makeDamageValue = function(target, critical) { if (!this.noRecoveryReversal()) { if (this.isHpRecover()) { target.setReversalFlag(target.hpRecoveryReversal()); } else if (this.isMpRecover()){ target.setReversalFlag(target.mpRecoveryReversal()); } } return _Game_Action_makeDamageValue.call(this, target, critical); }; const _Game_Action_itemEffectRecoverHp = Game_Action.prototype.itemEffectRecoverHp; Game_Action.prototype.itemEffectRecoverHp = function(target, effect) { if (!this.noRecoveryReversal()) { target.setReversalFlag(target.hpRecoveryReversal()); } _Game_Action_itemEffectRecoverHp.call(this, target, effect); }; const _Game_Action_itemEffectRecoverMp = Game_Action.prototype.itemEffectRecoverMp; Game_Action.prototype.itemEffectRecoverMp = function(target, effect) { if (!this.noRecoveryReversal()) { target.setReversalFlag(target.mpRecoveryReversal()); } _Game_Action_itemEffectRecoverMp.call(this, target, effect); }; Game_Action.prototype.noRecoveryReversal = function() { return this.item().meta.NoRecoveryReversal; }; })();