48 lines
No EOL
2 KiB
JavaScript
48 lines
No EOL
2 KiB
JavaScript
/*:
|
|
* @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());
|
|
};
|
|
})(); |