MV用プラグイン

YEP Counter Control

投稿日:2019-05-05 更新日:

日本語名称:YEP Counter Control

ふりがな:かうんたーこんとろーる

機能概要:反撃スキルを詳細に設定

作者:Yanfly

作者サイト:http://yanfly.moe/

使用条件:作品へのクレジット表示必須

ダウンロード元:http://yanfly.moe/2016/03/11/yep-82-counter-control/

解説ページ:https://munokura.tk/archives/1183

ファイル名:YEP_X_CounterControl.js

プラグインのヘルプ:

/*:ja
 * @plugindesc v1.10 (要YEP_BattleEngineCore.js)反撃スキルの設定を詳細に制御できます。
 * @author Yanfly Engine Plugins
 *
 * @param ---一般---
 * @default
 *
 * @param Queue Max
 * @parent ---一般---
 * @type number
 * @min 1
 * @desc カウンタキューの最大サイズ
 * @default 20
 *
 * @param ---デフォルト特性---
 * @default
 *
 * @param Counter Skill
 * @parent ---デフォルト特性---
 * @type number
 * @min 1
 * @desc 反撃に使用されるデフォルトのスキルIDを入力。 MVのデフォルトの場合は0
 * @default 1
 *
 * @param Evade Counter
 * @parent ---デフォルト特性---
 * @type boolean
 * @on YES
 * @off NO
 * @desc スキルを回避する反撃をし、その後デフォルト反撃を行いますか?
 * NO - false     YES - true
 * @default false
 *
 * @param Counter Name
 * @parent ---デフォルト特性---
 * @desc デフォルトの反撃スキル名
 * %1 - Skill Name
 * @default 反撃-%1
 *
 * @param Counter Icon
 * @parent ---デフォルト特性---
 * @type number
 * @min 0
 * @desc 反撃攻撃に使用されるアイコンID。 デフォルトのスキルアイコンは0
 * @default 78
 *
 * @param Counter Total
 * @parent ---デフォルト特性---
 * @desc アクターと敵1人あたりのデフォルト反撃数
 * @default 1
 *
 * @param Ally Counter
 * @parent ---デフォルト特性---
 * @type boolean
 * @on 許可
 * @off 禁止
 * @desc 味方が他の味方の行動に反撃することを許可
 * 禁止 - false     許可 - true
 * @default false
 *
 * @param ---デフォルト条件---
 * @default
 *
 * @param Physical
 * @parent ---デフォルト条件---
 * @type boolean
 * @on YES
 * @off NO
 * @desc 反撃行動が物理的であることを要求しますか?
 * NO - false     YES - true
 * @default true
 *
 * @param Single Target
 * @parent ---デフォルト条件---
 * @type boolean
 * @on YES
 * @off NO
 * @desc 反撃する行動範囲を単一の目標にすることを要求しますか?
 * NO - false     YES - true
 * @default true
 *
 * @param Not Counter
 * @parent ---デフォルト条件---
 * @type boolean
 * @on YES
 * @off NO
 * @desc 反撃に反撃しない行動を要求しますか?
 * NO - false     YES - true
 * @default false
 *
 * @help
 * 翻訳:ムノクラ
 * https://munokura.tk/
 * https://twitter.com/munokura/
 *
 * ============================================================================
 * Introduction
 * ============================================================================
 *
 * このプラグインは YEP_BattleEngineCore を必要とします。
 * このプラグインがプラグイン管理リストで
 * YEP_BattleEngineCore の下にあることを確認してください。
 *
 * YEP_X_BattleSysATB または YEP_X_BattleSysCTB を使用している場合、
 * このプラグインをプラグイン管理リストで
 * それらのプラグインの下に配置します。
 *
 * RPGツクールMVデフォルトの反撃特性は制作者に多くの選択肢を与えません。
 * あるのは攻撃者の物理的なスキルを回避してから
 * 反撃者から通常の攻撃を生み出すことによって打ち消すというスキルです。
 * このプラグインを使用すると、反撃の動作をより細かく制御できます。
 *
 * ============================================================================
 * Instructions - How Advanced Counters Work
 * ============================================================================
 *
 * 反撃は、仲間のメンバーによって打ち消される可能性がない限り、
 * 相手のバトラーによって使用されたアクションに対する反応として
 * 機能するアクションです。
 *
 * 攻撃者の対抗反撃能力(新しく追加された)と
 * ターゲットの対抗反撃能力と任意のアクションとで判定が始まります。
 * 最終的な反撃レートが決定すると、反撃が発動するかどうかの
 * 乱数チェックが行われます。
 * チェックを通過しなければ、反撃は発生しません。
 * 通過すると、次のステップが発生します。
 *
 * 次に、ターゲットは反撃として使用できるスキルのプールを生成します。
 * それは、次の章で述べる優先順位リストに入ります。
 * 次に戦闘システムは順番にスキルのプールを通り抜け、
 * 必要とされるすべての条件を満たす最初の反撃スキルを選択します。
 * スキルが選択されていない場合、スキルは反撃として使用されません。
 * すべてのスキルは、スキルのコストを支払えるという必須の条件を持ち、
 * それを使用することができます。
 *
 * スキルが選択されると、反撃スキルは反撃キューに入れられ、
 * 現在の攻撃者のターンが終了するのを待ちます。
 * 終了すると、カウンタキュー内のアクションが始まります。
 * 反撃者は自分のターンを消費せずに反撃します。
 * このプロセスは、カウンタキューが空になるまで繰り返されます。
 *
 * 反撃キュー処理中に、反撃スキルも反撃スキルを引き起こすことができます。
 * そのため、プラグインパラメータによって決まる最大キューサイズがあります。
 * キューの数がこのサイズに達すると、
 * それ以上反撃スキルは反撃キューに追加されません。
 *
 * ============================================================================
 * Instructions - Counter Skill Priority List
 * ============================================================================
 *
 * 反撃のプールを生成する場合、それらは以下の順序で生成されます。
 *
 * 1. ステート - 最高の優先順位のメモ欄
 * 2. ステート - 最も低い優先順位のメモ欄
 * 3. 装備 - 武器のメモ欄
 * 4. 装備 - 防具のメモ欄
 * 5. アクター - 現在の職業のメモ欄
 * 6. アクター - アクターのメモ欄
 * 7. 敵 - 敵のメモ欄
 *
 * 反撃スキルのプールの順番は、
 * 使用される反撃スキルの判定を通過するときに、
 * 条件が満たされる最初の反撃スキルが使用されるという点が重要です。
 *
 * ============================================================================
 * Notetags
 * ============================================================================
 *
 * 反撃スキルを変更するために以下のメモタグを使うことができます。
 * 各メモタグは、特定の方法で反撃スキルを変更します。
 *
 * アクターと敵のメモタグ:
 *
 *   <Default Counter: x>
 *   <Default Counter: name>
 *   デフォルトの反撃スキルを x に設定します。
 *   0のままだと、反撃スキルはRPGツクールMVデフォルトの反撃スキルになります。
 *   スキルの名前を使用していて、
 *   データベース内に同じ名前のスキルが複数ある場合、
 *   IDが最も高いスキルが優先されます。
 *   *注: RPGツクールMVデフォルトの反撃スキルを追加する場合は、
 *        x に0を使用します。
 *
 * アクター、職業、敵、武器、防具、ステートのメモタグ:
 *
 *   <Counter Skills: x>
 *   <Counter Skills: x, x, x>
 *   <Counter Skills: x to y>
 *   バトラーのための可能な反撃スキルのリストに追加されます。
 *   複数のスキルIDがリストされている場合、それらはすべて追加されています。
 *   先に挙げた反撃スキルが優先されます。
 *   *注1: RPGツクールMVデフォルトの反撃を追加したい場合、
 *         x に0を使用してください。
 *   *注2: 反撃スキルリストでどのスキルが優先されるかについては、
 *         反撃リストの優先順位を参照してください。
 *
 *   <Counter Skill: name>
 *   指定されたスキルがバトラーの可能な反撃スキルのリストに追加されます。
 *   データベースに同じ名前のスキルが複数ある場合、
 *   最も高いIDを持つスキルが優先されます。
 *   *注: 反撃スキルリストでどのスキルが優先されるかについては、
 *        反撃リストの優先順位を参照してください。
 *
 *   <Counter Total: +x>
 *   <Counter Total: -x>
 *   バトラーが反撃できる回数を x に変更します。
 *   バトラーのターンになるまで反撃できる回数で、
 *   その回数はリセットされます。
 *
 *   <Target Counter: x%>
 *   バトラーが相手のターゲットを攻撃すると、
 *   これによりターゲットの反撃レートが x% に変更されます。
 *   ターゲットの反撃レートが 10% の場合、
 *   50% のタグがあれば反撃レートは 5% になります。
 *
 *   <Target Counter: +x%>
 *   <Target Counter: -x%>
 *   バトラーが相手のターゲットを攻撃すると、
 *   これによりターゲットの反撃レートが x% 増加または減少します。
 *   ターゲットの反撃レートが10%の場合、
 *   +50% のタグで反撃レートは +60% になります。
 *
 *   <Evade Counter>
 *   デフォルトの性質に関わらず、
 *   関連するバトラーが使用するすべての反撃スキルを回避反撃に変えます。
 *   しかし、戦闘機が <Hit Counter> という特性の影響を受ける場合、
 *   代わりに <Hit Counter> という特性が優先されます。
 *
 *   <Hit Counter>
 *   関連するバトラーが使用するすべての反撃スキルが、
 *   デフォルトの性質に関わらずヒット反撃になるように変更されます。
 *   戦闘機が <Evade Counter> の影響も受けている場合、
 *   この効果が優先されます。
 *
 * スキルとアイテムのメモタグ:
 *
 *   <Ally Counter>
 *   仲間メンバーに反撃スキルを使用できるようにします。
 *
 *   <Ally Cannot Counter>
 *   仲間メンバーに反撃スキルを使用できないようにします。
 *
 *   <Cannot Counter>
 *   反撃できないようにします。
 *   常に0%の反撃の可能性を返すことを意味します。
 *
 *   <Counter Rate: x%>
 *   ターゲットから x% で反撃を算出します。
 *   ターゲットが 10% の反撃確率に対して、
 *   反撃メモタグを 50% 持っている場合、
 *   ターゲットは 5% の確率で反撃確率があることを意味します。
 *
 *   <Counter Rate: +x%>
 *   <Counter Rate: -x%>
 *   ターゲットから追加の x% だけ反撃を得ます。
 *   ターゲットに対抗する確率が 10% で、
 *   このメモタグが +50% の場合、
 *   ターゲットに対抗する確率は60%です。
 *
 * スキルのメモタグ:
 *
 *   <Evade Counter>
 *   スキルが反撃スキルとして使用されている場合、
 *   バトラーは現在の行動を回避してから反撃します。
 *
 *   <Hit Counter>
 *   スキルが反撃スキルとして使用されている場合、
 *   バトラーは現在の行動に対抗してヒットしてから反撃します。
 *
 *   <Counter Name: text>
 *   反撃スキルとして使用された時、
 *   表示されるスキルの名前を 'text'に変更します。
 *
 *   <Counter Icon: x>
 *   反撃スキルとして使用した時、
 *   表示されるスキルのアイコンを x アイコンに変更します。
 *
 * ============================================================================
 * Notetags - Counter Conditions
 * ============================================================================
 *
 * 反撃スキルを作る時、
 * それらの反撃スキルを特定の条件にだけ対応させることができます。
 * すべての条件が満たされると、反撃スキルが発生します。
 * 単一の条件が満たされない場合、その反撃スキルはスキップされ、
 * 次のスキルがチェックされます。
 * 反撃条件を追加するには、以下のメモタグを使用します。
 *
 * スキルのメモタグ:
 *
 *   <Counter Condition>
 *    condition
 *    condition
 *   </Counter Condition>
 * メモタグの間にある 'condition' テキストを、
 * 下の条件リストにあるもので置き換えてください。
 *
 * --- 例 ---
 *
 *   <Counter Condition>
 *    physical hit
 *    single target
 *   </Counter Condition>
 *   現在のアクションが単一のターゲットである物理的なヒットである場合にのみ、
 *   反撃スキルとして使用されます。
 *
 * ============================================================================
 * Counter Condition List
 * ============================================================================
 *
 * このプラグインの反撃条件のリストです。
 * 反撃が有効になるには、すべての反撃条件が満たされている必要があります。
 * 1つでも反撃条件が満たされなかった場合、反撃スキルは発動しません。
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * ATTACKER param eval
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 'param'を'level'、'maxhp'、'hp'、'maxmp'、'mp'、'atk'、'def'、'mat'、
 * 'mdf'、'agi'、'luk'に置き換えてください。
 * これは攻撃者のパラメータに対してチェックを実行します。
 * チェックが'true'を返す場合、反撃条件は満たされます。
 * 'false'を返す場合、反撃条件は満たされません。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Attacker level > 50
 *       Attacker hp <= attacker.mhp * 0.50
 *       Attacker atk > defender.def
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * CERTAIN HIT
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ターゲットに対して使用されているアクションが特定のヒットであれば、
 * 反撃条件が満たされます。
 * そうでなければ、反撃条件は満たされません。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Certain Hit
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * COUNTER HIT
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ターゲットに対して使用されているアクションが反撃スキルである場合、
 * 反撃条件は満たされます。
 * そうでなければ、反撃条件は満たされません。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Counter Hit
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * DEFENDER param eval
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 'param'を'level'、'maxhp'、'hp'、'maxmp'、'mp'、'atk'、'def'、'mat'、
 * 'mdf'、'agi'、または'luk'に置き換えてください。
 * これは防御側のパラメータに対してチェックを実行します。
 * チェックが'true'を返す場合、反撃条件は満たされます。
 * 'false'を返す場合、反撃条件は満たされません。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Defender level > 50
 *       Defender hp <= defender.mhp * 0.50
 *       Defender atk > attacker.def
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * ELEMENT: x
 * ELEMENT: name
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ターゲットに対して使用されているアクションに
 * 属性 X が当てられている場合、反撃条件は満たされています。
 * そうでなければ、反撃条件は満たされません。
 * データベースシステムタブで、'x'を属性IDまたは属性名に置き換えます。
 * 複数の要素が同じ名前を共有している場合、
 * 最も高いIDを持つ要素が優先されます。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Element: 4
 *       Element: Fire
 *       Element: Ice
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * EVAL: code
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 上記の行にJavaScript を使って、反撃スキルの条件の評価チェックを実行できます。
 * evalチェックが 'true'を返す場合、条件は満たされています。
 * 'false'を返す場合、条件は満たされません。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Eval: attacker.name() === 'Harold'
 *       Eval: defender.hpRate() <= 0.50
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * ITEM: x
 * ITEM: name
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ターゲットに対して使用されているアクションがアイテムxであれば、
 * 反撃条件は満たされます。
 * そうでなければ、反撃条件は満たされません。
 * 'x'をアイテムIDに置き換えます。
 * アイテム名を使用することを選択し、
 * データベースに同じ名前のアイテムが複数ある場合、
 * IDが最も高いアイテムが優先されます。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Item: 30
 *       Item: Bomb
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * MAGICAL HIT
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ターゲットに対して使用されているアクションが魔法のヒットであれば、
 * 反撃条件は満たされています。
 * そうでなければ、反撃条件は満たされません。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Magical Hit
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * MULTI TARGET
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ターゲットに対して使用されているアクションが
 * マルチターゲットアクションの場合、反撃条件が満たされます。
 * そうでなければ、反撃条件は満たされません。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Multi Target
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * NOT CERTAIN HIT
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ターゲットに対して使用されているアクションがヒットしなかった場合、
 * 反撃条件は満たされます。
 * そうであれば、反撃条件は満たされません。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Not Certain Hit
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * NOT COUNTER HIT
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ターゲットに対して使用されているアクションが反撃スキルではない場合、
 * 反撃条件は満たされます。
 * そうであれば、反撃条件は満たされません。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Not Counter Hit
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * NOT ELEMENT: x
 * NOT ELEMENT: name
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ターゲットに対して使用されるアクションに属性 X が当てられている場合、
 * 反撃条件は満たされません。
 * そうでなければ、反撃条件が満たされます。
 * データベースシステムタブで、'x'を属性IDまたは属性名に置き換えます。
 * 複数の属性が同じ名前を共有している場合、最も高いIDを持つ属性が優先されます。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Not Element: 4
 *       Not Element: Fire
 *       Not Element: Ice
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * NOT ITEM: x
 * NOT ITEM: name
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ターゲットに対して使用されるアクションがアイテム x ではない場合、
 * 反撃条件は満たされます。
 * そうであれば、反撃条件は満たされません。
 * 'x'をアイテムIDに置き換えます。
 * アイテム名を使用し、データベースに同じ名前のアイテムが複数ある場合、
 * IDが最も高いアイテムが優先されます。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Not Item: 30
 *       Not Item: Bomb
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * NOT MAGICAL HIT
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ターゲットに対して使用されるアクションが魔法のヒットではない場合、
 * 反撃条件は満たされます。
 * そうであれば、反撃条件は満たされません。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Not Magical Hit
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * NOT PHYSICAL HIT
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ターゲットに対して使用されるアクションが物理的なヒットではない場合、
 * 反撃条件は満たされます。
 * そうであれば、反撃条件は満たされません。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Not Physical Hit
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * NOT SKILL: x
 * NOT SKILL: name
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ターゲットに対して使用される行動がスキルxではない場合、
 * 反撃条件は満たされます。
 * そうであれば、反撃条件は満たされません。
 * x をスキルIDに置き換えます。
 * スキル名を使用することを選択し、
 * データベースに同じ名前のスキルが複数ある場合、
 * 最も高いIDを持つスキルが優先されます。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Not Skill: 50
 *       Not Skill: Firaga
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * NOT STYPE: x
 * NOT STYPE: name
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ターゲットに対して使用されるアクションが
 * スキルおよびスキルタイプ x ではない場合、反撃条件が満たされます。
 * そうでなければ、反撃条件は満たされません。
 * x をスキルタイプIDに置き換えます。
 * スキルタイプ名を使用し、データベースに同じ名前のスキルタイプが複数ある場合は、
 * IDが最も高いスキルタイプが優先されます。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Not Stype: 1
 *       Not Stype: Magic
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * PHYSICAL HIT
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ターゲットに対して使用されるアクションが物理的なヒットである場合、
 * 反撃条件が満たされています。
 * そうでなければ、反撃条件は満たされません。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Physical Hit
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * RANDOM: x%
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ランダムチェックを実行します。
 * この反撃チェックに合格する可能性は x% です。
 * 合格すると、反撃条件が満たされます。
 * そうでなければ、反撃条件は満たされません。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Random: 30%
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * SINGLE TARGET
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ターゲットに対して使用されているアクションが
 * 単一のターゲットアクションである場合、反撃条件は満たされます。
 * そうでなければ、反撃条件は満たされません。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Single Target
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * SKILL: x
 * SKILL: name
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ターゲットに対して使用される行動がスキルxであれば、
 * 反撃条件は満たされます。
 * そうでなければ、反撃条件は満たされません。
 * x をスキルIDに置き換えます。
 * スキル名を使用し、データベースに同じ名前のスキルが複数ある場合、
 * 最も高いIDを持つスキルが優先されます。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Skill: 50
 *            Skill: Firaga
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * STYPE: x
 * STYPE: name
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * ターゲットに対して使用されるアクションがスキルとスキルタイプ x の場合、
 * 反撃条件が満たされます。
 * そうでなければ、反撃条件は満たされません。
 * x をスキルタイプIDに置き換えます。
 * スキルタイプ名を使用し、データベースに同じ名前のスキルタイプが複数ある場合、
 * IDが最も高いスキルタイプが優先されます。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Stype: 1
 *       Stype: Magic
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * SWITCH x OFF
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * アクションがターゲットに対して使用される前に
 * スイッチ x がオフ(false)であれば、反撃条件は満たされています。
 * オン(true)の場合、反撃条件は満たされていません。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Switch 10 Off
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * SWITCH x ON
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * アクションがターゲットに対して使用される前に
 * スイッチ x がオン(true)の場合、反撃条件が満たされています。
 * オフ(false)の場合、反撃条件は満たされていません。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Switch 10 On
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 * VARIABLE x eval
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 変数 x に対してevalチェックを実行します。
 * 評価チェックが 'true'を返した場合、条件は満たされています。
 * それが 'false'を返すなら、条件は満たされません。
 *- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * 例:   Variable 15 >= 15
 *       Variable 16 <= 20
 *       Variable 17 === $gameParty.aliveMembers().length
 * =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 *
 * ============================================================================
 * Lunatic Mode - Custom Counter Skills
 * ============================================================================
 *
 * ルナティックモードのメモタグに JavaScript を使用し、
 * 反撃の使用に必要な動的なスキルセットを確認できます。
 *
 * アクター、職業、敵、武器、防具、ステートのメモタグ:
 *
 *   <Custom Counter Skills>
 *    if (user.name() === 'Harold') {
 *      skills.push(50, 51, 52);
 *    } else if (user.name() === 'Therese') {
 *      skills.push(53, 54, 55);
 *    } else if (user.name() === 'Marsha') {
 *      skills.push(56, 57, 58);
 *    } else if (user.name() === 'Lucius') {
 *      skills.push(59, 60, 61);
 *    }
 *   </Custom Counter Skills>
 *   'スキル'変数は、彼らの要件が満たされているという条件で
 *   バトラーがアクションに反撃できる潜在的なスキルのリストに
 *   追加されるすべての反撃スキルを含む配列です。
 *
 * ============================================================================
 * Lunatic Mode - Custom Counter Total
 * ============================================================================
 *
 * ルナティックモードのメモタグに JavaScript を使用し、
 * 動的な反撃トータルボーナスを得ることができます。
 *
 * アクター、職業、敵、武器、防具、ステートのメモタグ:
 *
 *   <Custom Counter Total>
 *    value = user.level;
 *   </Custom Counter Total>
 * 'value'変数は、増加または減少した反撃の総数です。
 * バトラーの合計反撃値が0になったり0未満になったりすると、
 * 反撃スキルを使うことができません。
 *
 * ============================================================================
 * Lunatic Mode - Custom Target Counter Rate
 * ============================================================================
 *
 * ルナティックモードのメモタグに JavaScript を使用し、
 * 攻撃者の特性によってターゲットの反撃率を変更することができます。
 *
 * アクター、職業、敵、武器、防具、ステートのメモタグ:
 *
 *   <Custom Target Counter Rate>
 *    rate -= user.hpRate();
 *   </Custom Target Counter Rate>
 *   'rate'変数は、
 *   ターゲットが持つ反撃レートを決定するために使用される最終レートです。
 *   ターゲットの反撃値から計算された値がすでに与えられています。
 *   これはスキルのカスタム反撃レートの前に計算されます。
 *
 * ============================================================================
 * Lunatic Mode - Custom Counter Rates
 * ============================================================================
 *
 * ルナティックモードのメモタグに JavaScript を使用し、
 * スキルがターゲットに反撃する動的な機会を与えることができます。
 *
 * スキルとアイテムのメモタグ:
 *
 *   <Custom Counter Rate>
 *    rate += target.hpRate();
 *   </Custom Counter Rate>
 *   'rate'変数は、
 *   ターゲットが持つ反撃レートを決定するために使用される最終レートです。
 *   ターゲットの反撃値から計算された値と
 *   スキルからの追加の反撃レート修正値がすでに与えられています。
 *   これは攻撃者のカスタムターゲット反撃レートの後に計算されます。
 *
 * ============================================================================
 * Lunatic Mode - Custom Counter Condition
 * ============================================================================
 *
 * ルナティックモードのメモタグに JavaScript を使用し、
 * 反撃スキルにカスタム反撃条件を与えることができます。
 * Eval条件でも同じことができますが、
 * このメモタグは一度にすべてを制御することを好む人のためのものです。
 *
 * スキルのメモタグ:
 *
 *   <Custom Counter Condition>
 *    if (attacker.name() === 'Harold') {
 *      condition = true;
 *    } else if (defender.name() === 'Therese') {
 *      condition = true;
 *    } else {
 *      condition = false;
 *    }
 *   </Custom Counter Condition>
 *   'condition'変数は、反撃スキルが成功するか失敗するかを決定します。
 *   'condition'変数が 'true'を返す場合、条件は満たされています。
 *   'condition'変数が 'false'を返した場合、条件は満たされません。
 *   条件が満たされると、残りの<Counter Condition>条件がチェックされます。
 *
 * ============================================================================
 * Changelog
 * ============================================================================
 *
 * Version 1.10:
 * - Fixed a bug that caused ”Counter Hit” to not work properly.
 *
 * Version 1.09:
 * - Bypass the isDevToolsOpen() error when bad code is inserted into a script
 * call or custom Lunatic Mode code segment due to updating to MV 1.6.1.
 *
 * Version 1.08:
 * - Updated for RPG Maker MV version 1.5.0.
 *
 * Version 1.07a:
 * - Lunatic Mode fail safes added.
 * - Optimization update
 * 
 * Version 1.06:
 * - Updated for RPG Maker MV version 1.3.2.
 *
 * Version 1.05:
 * - Fixed a bug that caused the Eval: condition to not work and crash.
 * - Fixed an issue that caused default counter attacks to trigger upon magical
 * actions.
 *
 * Version 1.04:
 * - Fixed a bug that caused counter-countered actions to no longer disappear
 * from queue.
 *
 * Version 1.03:
 * - Fixed a bug that caused enemies to get a free action after a counter in
 * the DTB engine.
 *
 * Version 1.02:
 * - Fixed a bug that didn't replace the proper skill for the countered battler
 * appropriate causing some action effects to not proc correctly.
 *
 * Version 1.01:
 * - Fixed a bug that caused the <Counter Skills: 0> notetag to not work.
 *
 * Version 1.00:
 * - Finished Plugin!
 */n”
10553,post"
0