private void AttacksVerification() { TypeStateCharacter typeState = TypeStateCharacter.Attack; BossAttack bossAttack = null; //if (isRandomAttack) //{ // if (listAttacks.Count > 1) // { // float rand = Random.Range(0f, 1f); // Debug.Log("Ramdom: " + rand); // //TypeStateCharacter typeState = VerifyAttackState(rand); // //EnterState(typeState); // bossAttack = GetAttackBoss(TypeSortBossAttackt.RandomPercentMin, rand); // if (bossAttack != null && bossAttack.isSpecialAttack && !bossAttack.IsCooldownActive) // { // typeState = AttackToState(bossAttack.type); // actualBossAttackSpecial = bossAttack; // } // EnterState(typeState); // } // else if (listAttacks.Count == 1) // { // typeState = AttackToState(listAttacks[0].type); // EnterState(typeState); // } // else // EnterState(TypeStateCharacter.Attack); //} //else //{ float hpPercent = EnemyStatus.HPPercent; //TypeStateCharacter typeState = VerifyAttackState(hpPercent); typeState = TypeStateCharacter.Attack; bossAttack = GetAttackBoss(TypeSortBossAttackt.HpPercent, hpPercent); if (bossAttack.isSpecialAttack && !bossAttack.IsCooldownActive) { typeState = AttackToState(bossAttack.type); actualBossAttackSpecial = bossAttack; } EnterState(typeState); //} }
protected void EnterState(TypeStateCharacter newState) { LeaveState(); prevState = state; state = newState; switch (state) { case TypeStateCharacter.Idle: EnterIdleState(); break; case TypeStateCharacter.Move: EnterMoveState(); break; case TypeStateCharacter.Attack: EnterAttackState(); break; case TypeStateCharacter.Dash: EnterDashState(); break; case TypeStateCharacter.Action: EnterActionState(); break; case TypeStateCharacter.Patrol: EnterPatrolState(); break; case TypeStateCharacter.Follow: EnterFollowState(); break; case TypeStateCharacter.Back: EnterBackState(); break; case TypeStateCharacter.Rise: EnterRiseState(); break; case TypeStateCharacter.FakeDead: EnterFakeDeadState(); break; case TypeStateCharacter.Fall: EnterFallState(); break; case TypeStateCharacter.Dead: EnterDeadState(); break; case TypeStateCharacter.SpecialAttack1Start: EnterSpecialAttack1StartState(); break; case TypeStateCharacter.SpecialAttack1Mid: EnterSpecialAttack1MidState(); break; case TypeStateCharacter.SpecialAttack1End: EnterSpecialAttack1EndState(); break; case TypeStateCharacter.SpecialAttack2: EnterSpecialAttack2State(); break; default: break; } }