/*-------------------------------------------------------------------------- 戦闘時、Unitのcustom.tmpNowVirtualAttackに一時的にvirtualAttackUnitを保持します。 SkillRandomizer._isSkillInvokedInternalなどvirtualAttackUnitを渡せない関数で virtualAttackUnitを参照することができます。 使用方法: unit.custom.tmpNowVirtualAttackでvirtualAttackUnitの参照が可能 作成者: o-to 更新履歴: 2015/05/30:新規作成 2016/01/10: EPとFPシステム導入時に武器のEP・FP消費判定前にスキル発動によって EP・FPを消費してしまって攻撃できない可能性があるため修正 --------------------------------------------------------------------------*/ (function() { // 攻撃前にスキル発動するか OT_BeforeAttackSkill = false; // virtualAttackUnit作成時にテンポラリデータを作成 var alias1 = VirtualAttackControl.createVirtualAttackUnit; VirtualAttackControl.createVirtualAttackUnit = function(unitSelf, targetUnit, isSrc, attackInfo) { var virtualAttackUnit = alias1.call(this, unitSelf, targetUnit, isSrc, attackInfo); delete virtualAttackUnit.unitSelf.custom.tmpNowVirtualAttack; virtualAttackUnit.unitSelf.custom.tmpNowVirtualAttack = virtualAttackUnit; //root.log('テンポラリ作成'); OT_BeforeAttackSkill = true; return virtualAttackUnit; }; // 戦闘後テンポラリデータ削除(削除しないとセーブ時にエラーになる) var alias2 = NormalAttackOrderBuilder._endVirtualAttack; NormalAttackOrderBuilder._endVirtualAttack = function(virtualActive, virtualPassive) { alias2.call(this, virtualActive, virtualPassive); delete virtualActive.unitSelf.custom.tmpNowVirtualAttack; delete virtualPassive.unitSelf.custom.tmpNowVirtualAttack; OT_BeforeAttackSkill = false; //root.log('テンポラリ削除'); }; // 攻撃開始前にスキル発動する可能性があるためチェックを入れる var alias3 = VirtualAttackControl.isRound; VirtualAttackControl.isRound = function(virtualAttackUnit) { OT_BeforeAttackSkill = true; return alias3.call(this, virtualAttackUnit); }; // 攻撃可能か判定時に攻撃開始後にスキル発動する可能性があるためチェックを外す var alias4 = VirtualAttackControl.isAttackContinue; VirtualAttackControl.isAttackContinue = function(virtualAttackUnit) { OT_BeforeAttackSkill = false; return alias4.call(this, virtualAttackUnit); }; })();