Exemple #1
0
 //constructor
 private RangedState()
 {
     //if state already exists then return
     if (_instance != null)
     {
         return;
     }
     //if not set instance to this
     _instance = this;
 }
    void Update()
    {
        #region Melee States
        switch (stateMelee)
        {
        case MeleeState.Idle:
            if (playerCombat.ranged)
            {
                stateMelee = MeleeState.Ranged;
            }

            playerMovement.restrictMovement = false;
            playerCombat.canKnockback       = false;
            stateRanged = RangedState.Melee;

            if (playerCombat.inputRecieved)
            {
                //Debug.Log("Attack Animation");
                animator.SetTrigger("AttackOne");
                playerCombat.MeleeAttack();
                playerCombat.InputManager();
                playerCombat.inputRecieved = false;
                stateMelee = MeleeState.Attack;
            }
            break;

        case MeleeState.Moving:
            stateRanged         = RangedState.Melee;
            playerCombat.ranged = false;
            if (playerCombat.inputRecieved)
            {
                //Debug.Log("Attack Animation");
                animator.SetTrigger("AttackOne");
                playerCombat.MeleeAttack();
                playerCombat.InputManager();
                playerCombat.inputRecieved = false;
            }
            break;

        case MeleeState.Dodging:
            stateRanged = RangedState.Melee;
            break;

        case MeleeState.Attack:
            stateRanged = RangedState.Melee;
            playerMovement.restrictMovement = true;
            break;

        case MeleeState.Attack1_Transition:
            stateRanged = RangedState.Melee;
            playerCombat.canRecieveInput = true;

            if (playerCombat.inputRecieved)
            {
                animator.SetTrigger("AttackTwo");
                playerCombat.MeleeAttack();
                playerCombat.InputManager();
                playerCombat.inputRecieved = false;
            }
            break;

        case MeleeState.Attack2_Transition:
            stateRanged = RangedState.Melee;
            playerCombat.canRecieveInput = true;
            playerCombat.canKnockback    = true;

            if (playerCombat.inputRecieved)
            {
                animator.SetTrigger("AttackThree");
                playerCombat.MeleeAttack();
                playerCombat.InputManager();
                playerCombat.inputRecieved = false;
            }
            break;

        case MeleeState.Ranged:
            break;
        }
        #endregion

        #region Ranged States
        switch (stateRanged)
        {
        case RangedState.NormalMovement:
            if (!playerCombat.ranged)
            {
                stateRanged = RangedState.Melee;
            }

            playerCombat.ranged             = true;
            stateMelee                      = MeleeState.Ranged;
            playerMovement.restrictMovement = false;
            break;

        case RangedState.RestrictMovement:
            stateMelee = MeleeState.Ranged;
            playerMovement.restrictMovement = true;
            playerCombat.ranged             = true;
            break;

        case RangedState.Melee:
            break;

        case RangedState.RangedDodging:
            stateMelee = MeleeState.Ranged;
            break;
        }
        #endregion
    }
 public void SetRangedDodging()
 {
     stateRanged = RangedState.RangedDodging;
 }
 public void SetRestrict()
 {
     stateRanged = RangedState.RestrictMovement;
 }
 // Events called by ranged animations
 #region Ranged Events
 public void SetNormal()
 {
     stateRanged = RangedState.NormalMovement;
 }
 public void PlayerDead()
 {
     stateMelee  = MeleeState.Ranged;
     stateRanged = RangedState.RestrictMovement;
 }