/*: * @target MZ *three‐way deadlock hit.js * @plugindesc 三竦み状態に基づいて命中率に補正を加えるプラグイン * @author DQとFEが好きな者がAIに書かせたもの(chatGPT4) * @help * このプラグインは、攻撃者と防御者が持つ特定のステートに基づいて、 * 三竦み状態を計算し、その結果によって命中率に補正を加えます。 * * ステートIDの三竦み関係は以下の通りです: * ID 050 > ID 051 > ID 052 > ID 050 * * 命中率の補正値は固定で、有利な場合は+10%、不利な場合は-10%です。 * 武器装備時にステートを付与するプラグイン等と併用してください */ (() => { // 命中率を計算する部分をオーバーライド const _Game_Action_itemHit = Game_Action.prototype.itemHit; Game_Action.prototype.itemHit = function(target) { let hit = _Game_Action_itemHit.call(this, target); // 元の命中率を取得 // 攻撃者と防御者のステートIDをチェック const attackerStates = this.subject().states(); const defenderStates = target.states(); const attackerStateIds = attackerStates.map(state => state.id); const defenderStateIds = defenderStates.map(state => state.id); // 三竦みのロジック(例: ID 050 > ID 051 > ID 052 > ID 050) if ((attackerStateIds.includes(50) && defenderStateIds.includes(51)) || (attackerStateIds.includes(51) && defenderStateIds.includes(52)) || (attackerStateIds.includes(52) && defenderStateIds.includes(50))) { // 攻撃者が有利な場合、命中率を上げる hit += 0.05; // 命中率に10%加算 } else if ((attackerStateIds.includes(51) && defenderStateIds.includes(50)) || (attackerStateIds.includes(52) && defenderStateIds.includes(51)) || (attackerStateIds.includes(50) && defenderStateIds.includes(52))) { // 攻撃者が不利な場合、命中率を下げる hit -= 0.05; // 命中率から10%減算 } return hit; // 補正後の命中率を返す }; })();