/*: * @plugindesc ステートが無効化された場合にバトルログに表示します。 * @author みるきーうぇい * * @param StateDisableMessage * @text 無効化メッセージ * @desc ステートが無効化された際に表示するメッセージ。 * 使用可能な変数: {target}, {state} * @default \I[1023]\C[7]{target}は{state}にならない!\C[0] * * @help * このプラグインは、エネミーやアクターにステート付与を試みた際、 * 対象がそのステートを無効化する特徴を持っている場合にバトルログに * 指定されたメッセージを表示するようにします。 * * プラグインコマンドはありません。 */ (function() { const parameters = PluginManager.parameters('MW_StateDisableLog'); const stateDisableMessage = parameters['StateDisableMessage'] || "\\I[1023]\\C[7]{target}は{state}にならない!\\C[0]"; const _Game_Action_apply = Game_Action.prototype.apply; Game_Action.prototype.apply = function(target) { _Game_Action_apply.call(this, target); // ステート付与無効化のログ表示 if (this.item() && this.isSkillOrItem()) { const states = this.item().effects .filter(effect => effect.code === Game_Action.EFFECT_ADD_STATE) .map(effect => effect.dataId); states.forEach(stateId => { if (target.isStateResist(stateId)) { const stateName = $dataStates[stateId].name; const targetName = target.name(); const message = stateDisableMessage.replace('{target}', targetName).replace('{state}', stateName); BattleManager._logWindow.push('addText', message); $gameTemp.reserveCommonEvent(144); } }); } }; Game_Action.prototype.isSkillOrItem = function() { return DataManager.isSkill(this.item()) || DataManager.isItem(this.item()); }; })();