// 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; }
/// <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; }
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; }
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); }
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; } } }
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++; } }
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++; } }
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; } } }