public virtual IEnumerator HitCoroutine(AbsCharacterController defender, Queue <AbsCharacterController> targetQueue) { if (!HitSuccess(defender)) { this.battleInfoManagerScript.EnqueueMessage(INFO_FORMAT_LABEL.AVOID_ATTACK, this.FightData, defender.FightData); yield break; } if (BlastSuccess(defender)) { CalculateBlastPower(defender); } CalculateAttackerPower(defender); int _damage = CalculateDamageToOther(defender); yield return(defender.GetDamageCoroutine(this, _damage)); SkillDataManager.Instance.ActiveSkill(TURN_STATES.JUDGE_DEBUFF, this.FightData, defender.FightData); SkillDataManager.Instance.ActiveSkill(TURN_STATES.JUDGE_STATE_EXCEPTION, this.FightData, defender.FightData); SkillDataManager.Instance.ActiveSkill(TURN_STATES.JUDGE_OTHER_BURN_DOT, this.FightData, defender.FightData); yield break; }
public virtual IEnumerator GetDamageCoroutine(AbsCharacterController attacker, int damage) { this.FightData.GetDamage(damage, attacker.FightData); this.battleInfoManagerScript.EnqueueMessage(INFO_FORMAT_LABEL.GET_DAMAGE, attacker.FightData, this.FightData); PostFightData(this.FightData); if (this.FightData.DeadCheck(attacker.FightData)) { yield return(DeadCoroutine()); yield break; } float _timeDamage = this.View.SetAnimationTrigger(ANIMATION_TRIGGERS.GOTO_GET_DAMAGE); yield return(new WaitForSeconds(_timeDamage)); }
public virtual IEnumerator AttackOtherCoroutine(AbsCharacterController defender, Queue <AbsCharacterController> targetQueue) { if (this.FightData.OneTurnFightData.AttackPowerType == ATTACK_POWER_TYPE.NORMAL) { this.battleInfoManagerScript.EnqueueMessage(INFO_FORMAT_LABEL.ACTIVE_ATTACK, this.FightData); } float _time = this.View.SetAnimationTrigger(ANIMATION_TRIGGERS.GOTO_ATTACK); yield return(new WaitForSeconds(_time)); SkillDataManager.Instance.ActiveSkill(TURN_STATES.JUDGE_HIT_COUNT, this.FightData); int _hitCount = this.FightData.OneTurnFightData.HitCount; while (_hitCount > 0 && defender.State == STATES.ALIVE) { yield return(this.HitCoroutine(defender, targetQueue)); _hitCount--; } yield break; }
public virtual bool BlastSuccess(AbsCharacterController other) { return(BattleDataManager.Instance.BlastSuccess(this.FightData, other.FightData)); }
public virtual int CalculateDamageToOther(AbsCharacterController other) { return(BattleDataManager.Instance.CalculateDamageToOther(this.FightData, other.FightData)); }
public virtual float CalculateAttackerPower(AbsCharacterController other) { return(BattleDataManager.Instance.CalculateAttackerPower(this.FightData, other.FightData)); }
public AbsCharacterControllerFormat(AbsCharacterController controller) { this.Controller = controller; }
void Start() { this.Controller = GetComponent <AbsCharacterController> (); }