public override void onDefence(BattleFighter attacker, BattleFighter owner) { if (!attacker.Hero) { return; } //˯Ãß״̬²»»á´ò»¤¶Ü if (attacker.hasState(BattleConstants.ATTACK_ZERO_FLAG)) { return; } BattleFighterBuff _buff = owner.BuffManager.getBattleBuff(this); if (_buff == null) { // TODO: loggers.error return; } int _shieldOrder = getCurShieldOrder(_buff); if (isShieldOff(_shieldOrder)) { Logger.Log(string.Format("shield off, index = {0:D}", owner.Index)); return; } int _resultShield = hitShield(attacker, _shieldOrder); Logger.Log(string.Format("shield refresh, index = {0:D}, value = {1:D}", owner.Index, _resultShield)); _buff.setParam(BattleKeyConstants.BATTLE_BUFF_CUR_SHIELD_ORDER, _resultShield); checkShieldBreak(owner, _buff, _resultShield); }
public static float calcAttackerState(BattleFighter attacker, float damage) { float _resultDamage = damage; if (attacker.hasState(BattleConstants.ATTACK_ZERO_FLAG)) { _resultDamage = 0; } return _resultDamage; }
/// <param name="defencer"> </param> protected internal virtual float calcDefencerState(BattleFighter defencer, float damage) { float _resultDamage = damage; if (defencer.hasState(BattleConstants.MONSTER_SHIELD_FLAG)) { _resultDamage = (BattleConstants.MONSTER_SHIELD_DAMAGE_REDUCE / BattleConstants.BATTLE_RATIO_BASE) * damage; Logger.Log(string.Format("shield is working, index = {0:D}, damage = {1:F}, result = {2:F}", defencer.Index, damage, _resultDamage)); } else { Logger.Log(string.Format("shield not working, index = {0:D}, damage = {1:F}, result = {2:F}", defencer.Index, damage, _resultDamage)); } return _resultDamage; }
protected internal virtual void updateShieldState(BattleFighter defencer, SingleActionRecord record) { if (defencer.hasState(BattleConstants.MONSTER_SHIELD_FLAG)) { defencer.updateStateRecord(record.FighterInfo); } }
/// <summary> /// 强制触发flag,目前只有一种, </summary> protected internal virtual bool isFourceTrigger(BattleFighter attacker) { return TriggerId == BattleEventConstants.BATTLE_FIGHTER_ATTACK && attacker.hasState(BattleConstants.SP_MAX_FALG); }