Ejemplo n.º 1
0
 // Start is called before the first frame update
 void Start()
 {
     characterController         = GetComponent <CharacterController>();
     playerController            = GetComponent <PlayerController>();
     Player.Instance.TakeDamage += DamagedStager;
     hitState    = HitState.None;
     combatState = PlayerCombatState.None;
 }
Ejemplo n.º 2
0
    /// <summary>
    /// Method for stagering the player for amount of time
    /// </summary>
    /// <param name="time">length of stager</param>
    /// <returns>IEnumerator that does stager player</returns>
    private IEnumerator StagerPlayer(float time)
    {
        combatState = PlayerCombatState.Stagered;
        playerController.DeactivateMovment();
        yield return(new WaitForSeconds(time));

        playerController.ActivateMovment();
        combatState = PlayerCombatState.None;
    }
Ejemplo n.º 3
0
    private IEnumerator AttackDur()
    {
        combatState = PlayerCombatState.Attacking;
        playerController.DeactivateMovment();
        //attack.IsAttacking = true;
        yield return(new WaitForSeconds(combatProps.attackDuration));

        //attack.IsAttacking = false;
        playerController.ActivateMovment();
        combatState = PlayerCombatState.None;
    }
Ejemplo n.º 4
0
    private void MakeFSM()
    {
        PlayerCombatState playerCombat = new PlayerCombatState(gameObject);

        playerCombat.AddTransition(Transition.PlayerHit, StateID.Invulnerable);

        InvulnerableState invulnerable = new InvulnerableState(1.0f, gameObject);

        invulnerable.AddTransition(Transition.DoneInvulnerable, StateID.PlayerCombat);

        fsm = new FSMSystem();
        fsm.AddState(playerCombat);
        fsm.AddState(invulnerable);
    }
Ejemplo n.º 5
0
    void CombatStateUpdate()
    {
        if (curComboWindow > 0f)
        {
            curComboWindow -= Time.deltaTime;
        }
        else
        {
            currCombatState = PlayerCombatState.punch1;
            isFighting      = false;
        }

        if (curCooldown > 0f)
        {
            curCooldown -= Time.deltaTime;
        }
        else if (isGrabbing)
        {
            isGrabbing = false;
        }

        if (isGrabbing)
        {
            body.velocity = Vector3.zero;
        }

        if (isFighting)
        {
            if (isGrabbing)
            {
                isGrabbing = false;
            }

            //velocity states
            if (currCombatState == PlayerCombatState.punch2)
            {
                body.velocity = body.transform.forward.normalized * punch1CharVelocity;
            }
            else if (currCombatState == PlayerCombatState.kick)
            {
                body.velocity = body.transform.forward.normalized * punch2CharVelocity;
            }
            else if (currCombatState == PlayerCombatState.recovery)
            {
                body.velocity = body.transform.forward.normalized * kickCharVelocity;
            }
        }
    }
Ejemplo n.º 6
0
 void CombatButtonPress()
 {
     curComboWindow = comboWindowTime;
     if (curCooldown <= 0)
     {
         if (currCombatState == PlayerCombatState.punch1)
         {
             isFighting       = true;
             currLeftAnimTime = 0;
             currCombatState++;
             curCooldown = punchAnimationTime + punchCooldown;
         }
         else if (currCombatState == PlayerCombatState.punch2)
         {
             currRightAnimTime = 0;
             currCombatState++;
             curCooldown = punchAnimationTime + kickWindupTime;
         }
         else if (currCombatState == PlayerCombatState.kick)
         {
             currKickAnimTime = 0;
             currCombatState++;
             curCooldown = kickAnimationTime + comboCooldown;
         }
         else if (currCombatState == PlayerCombatState.recovery)
         {
             currCombatState = PlayerCombatState.punch1;
             isFighting      = false;
             curCooldown     = 0;
             queuedHits      = 0;
         }
     }
     else if (currCombatState != PlayerCombatState.recovery)
     {
         queuedHits++;
     }
 }
Ejemplo n.º 7
0
 void CombatButtonPress()
 {
     curComboWindow = comboWindowTime;
     if (curCooldown <= 0)
     {          
         if (currCombatState == PlayerCombatState.punch1)
         {
             isFighting = true;
             currLeftAnimTime = 0;
             currCombatState++;
             curCooldown = punchAnimationTime + punchCooldown;
         }
         else if (currCombatState == PlayerCombatState.punch2)
         {
             currRightAnimTime = 0;
             currCombatState++;
             curCooldown = punchAnimationTime + kickWindupTime;
         }
         else if (currCombatState == PlayerCombatState.kick)
         {
             currKickAnimTime = 0;
             currCombatState++;
             curCooldown = kickAnimationTime + comboCooldown;
         } else if(currCombatState == PlayerCombatState.recovery)
         {
             currCombatState = PlayerCombatState.punch1;
             isFighting = false;
             curCooldown = 0;
             queuedHits = 0;
         }
     } else if (currCombatState != PlayerCombatState.recovery)
     {
         queuedHits++;
     }
 }
Ejemplo n.º 8
0
    void CombatStateUpdate()
    {
        if(curComboWindow > 0f)
        {
            curComboWindow -= Time.deltaTime;
        } else
        {
            currCombatState = PlayerCombatState.punch1;
            isFighting = false;
        }

        if (curCooldown > 0f)
        {
            curCooldown -= Time.deltaTime;
        } else if (isGrabbing)
        {
            isGrabbing = false;
        }

        if(isGrabbing)
        {
            body.velocity = Vector3.zero;
        }

        if(isFighting)
        {
            if(isGrabbing)
            {
                isGrabbing = false;
            }

            //velocity states
            if(currCombatState == PlayerCombatState.punch2)
            {
                body.velocity = body.transform.forward.normalized * punch1CharVelocity;
            } else if(currCombatState == PlayerCombatState.kick)
            {
                body.velocity = body.transform.forward.normalized * punch2CharVelocity;
            } else if (currCombatState == PlayerCombatState.recovery)
            {
                body.velocity = body.transform.forward.normalized * kickCharVelocity;
            }
        }
    }