Exemple #1
0
        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;
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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;
        }
Exemple #4
0
 public virtual bool BlastSuccess(AbsCharacterController other)
 {
     return(BattleDataManager.Instance.BlastSuccess(this.FightData, other.FightData));
 }
Exemple #5
0
 public virtual int CalculateDamageToOther(AbsCharacterController other)
 {
     return(BattleDataManager.Instance.CalculateDamageToOther(this.FightData, other.FightData));
 }
Exemple #6
0
 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> ();
 }