Beispiel #1
0
    private void ChangeState(EAbilityState newState)
    {
        m_currentState = newState;
        switch (newState)
        {
        case EAbilityState.MovingCharacter:

            break;

        case EAbilityState.CastingState:
            m_castingTime = m_ability.AbilityBase.CastTime;
            m_attackerAnimator.ChangeState(m_ability.AbilityBase.CastingAnimation);
            break;

        case EAbilityState.PlayingAnimation:
            m_animationTime = m_attackerAnimator.ChangeState(m_ability.AbilityBase.Animation);
            //m_animationTime = m_ability.AbilityBase.AnimDuration;
            m_launchTime = (m_animationTime * m_ability.AbilityBase.AnimationPercentLaunch) / 100;
            break;

        case EAbilityState.LaunchProjectileDelayed:
            break;

        case EAbilityState.AbilityEnds:
            m_attacker.EntityBehaviour.StopAllBehaviours();
            m_attackerAnimator.ChangeState(EEntityState.Idle);

            break;

        default:
            break;
        }
    }
Beispiel #2
0
    private void ChangeState(EAbilityState newState)
    {
        m_currentState = newState;
        switch (newState)
        {
        case EAbilityState.MovingCharacter:

            break;

        case EAbilityState.CastingState:
            m_castingTime = m_ability.AbilityBase.CastTime;
            m_attackerAnimator.ChangeState(m_ability.AbilityBase.CastingAnimation);
            break;

        case EAbilityState.PlayingAnimation:
            m_animationTime      = m_attackerAnimator.ChangeState(m_ability.AbilityBase.Animation);
            m_launchTime         = (m_animationTime * m_ability.AbilityBase.AnimationPercentLaunch) / 100;
            m_launchParticleTime = (m_animationTime * m_ability.AbilityBase.LaunchParticlePercentLaunch) / 100;
            break;

        case EAbilityState.LaunchProjectileDelayed:
            break;

        case EAbilityState.AbilityEnds:
            if (m_ability.AttackType == EAttackType.Basic)
            {
                m_attacker.EntityBehaviour.StopAllBehaviours();
                m_attackerAnimator.ChangeState(EEntityState.Idle);
                //TODO: FIX THIS CODE BY CHECKING ON ENTITY IF HAVE ANY TARGET
                if (m_attacker is CharacterEntity)
                {
                    m_attacker.EntityBehaviour.AddBehaviour(new AbilitySimpleTarget(m_attacker, m_targets[0], m_ability));
                }
            }
            else
            {
                m_attacker.EntityBehaviour.StopAllBehaviours();
                m_attackerAnimator.ChangeState(EEntityState.Idle);
            }
            break;

        default:
            break;
        }
    }