private void CreateRoleState(int id, StateMechine stateMechine) { PlayerIdleState idleState = new PlayerIdleState(id); PlayerDeadState deadState = new PlayerDeadState(id); PlayerMoveState moveState = new PlayerMoveState(id); PlayerAtkState atkState = new PlayerAtkState(id); stateMechine.RegisterState((int)StateType.IDLE, idleState); stateMechine.RegisterState((int)StateType.DEAD, deadState); stateMechine.RegisterState((int)StateType.MOVE, moveState); stateMechine.RegisterState((int)StateType.ATK, atkState); stateMechine.RegisterEvent((int)StateEvent.EVENT_IDLE, (int)StateType.NENO, (int)StateType.IDLE); stateMechine.RegisterEvent((int)StateEvent.EVENT_IDLE, (int)StateType.IDLE, (int)StateType.IDLE); stateMechine.RegisterEvent((int)StateEvent.EVENT_IDLE, (int)StateType.ATK, (int)StateType.IDLE); stateMechine.RegisterEvent((int)StateEvent.EVENT_IDLE, (int)StateType.MOVE, (int)StateType.IDLE); stateMechine.RegisterEvent((int)StateEvent.EVENT_DEAD, (int)StateType.IDLE, (int)StateType.DEAD); stateMechine.RegisterEvent((int)StateEvent.EVENT_DEAD, (int)StateType.ATK, (int)StateType.DEAD); stateMechine.RegisterEvent((int)StateEvent.EVENT_DEAD, (int)StateType.MOVE, (int)StateType.DEAD); stateMechine.RegisterEvent((int)StateEvent.EVENT_MOVE, (int)StateType.IDLE, (int)StateType.MOVE); stateMechine.RegisterEvent((int)StateEvent.EVENT_MOVE, (int)StateType.ATK, (int)StateType.MOVE); stateMechine.RegisterEvent((int)StateEvent.EVENT_ATK, (int)StateType.IDLE, (int)StateType.ATK); stateMechine.RegisterEvent((int)StateEvent.EVENT_ATK, (int)StateType.MOVE, (int)StateType.ATK); stateMechine.RegisterEvent((int)StateEvent.EVENT_ATK, (int)StateType.ATK, (int)StateType.ATK); }
protected virtual void BuildFSM() { PlayerInactiveState inactive = new PlayerInactiveState(this); inactive.AddTransitionState(FSMStateID.PlayerWait, FSMTransitions.PlayerActivated); PlayerWaitState wait = new PlayerWaitState(this); wait.AddTransitionState(FSMStateID.PlayerMove, FSMTransitions.PlayerDoneWaiting); wait.AddTransitionState(FSMStateID.PlayerDead, FSMTransitions.PlayerDied); PlayerMoveState move = new PlayerMoveState(this); move.AddTransitionState(FSMStateID.PlayerDecide, FSMTransitions.PlayerDoneMoving); move.AddTransitionState(FSMStateID.PlayerDead, FSMTransitions.PlayerDied); PlayerDecideState decide = new PlayerDecideState(this); decide.AddTransitionState(FSMStateID.PlayerWait, FSMTransitions.PlayerMoreStepsFound); decide.AddTransitionState(FSMStateID.PlayerComplete, FSMTransitions.PlayerNoStepsFound); decide.AddTransitionState(FSMStateID.PlayerDead, FSMTransitions.PlayerDied); PlayerDeadState dead = new PlayerDeadState(displayText); PlayerCompleteState complete = new PlayerCompleteState(); complete.AddTransitionState(FSMStateID.PlayerDead, FSMTransitions.PlayerDied); AddFSMState(inactive); AddFSMState(wait); AddFSMState(move); AddFSMState(decide); AddFSMState(complete); AddFSMState(dead); }
private void Awake() { instance = this; StateMachine = new PlayerStateMachine(); IdleState = new PlayerIdleState(this, StateMachine, "idle"); MoveState = new PlayerMoveState(this, StateMachine, "move"); JumpState = new PlayerJumpState(this, StateMachine, "inAir"); InAirState = new PlayerInAirState(this, StateMachine, "inAir"); LandState = new PlayerLandState(this, StateMachine, "land"); WallSlideState = new PlayerWallSlideState(this, StateMachine, "wallSlide"); WallJumpState = new PlayerWallJumpState(this, StateMachine, "inAir"); LedgeClimbState = new PlayerLedgeClimbState(this, StateMachine, "ledgeClimbState"); DashState = new PlayerDashState(this, StateMachine, "dash"); SlideState = new PlayerSlideState(this, StateMachine, "slide"); HurtState = new PlayerHurtState(this, StateMachine, "hurt"); SwordComboState = new PlayerSwordComboState(this, StateMachine, "swordCombo"); KnockDownState = new PlayerKnockDownState(this, StateMachine, "knockdown"); GetUpState = new PlayerGetUpState(this, StateMachine, "getUp"); KickComboState = new PlayerKickComboState(this, StateMachine, "kickCombo"); MagicStrongState = new PlayerMagicStrongState(this, StateMachine, "strongCast"); WeakMagicState = new PlayerWeakMagicState(this, StateMachine, "weakCast"); FullPowerMagicState = new PlayerFullPowerMagicState(this, StateMachine, "fullPowerMagicCast"); DeadState = new PlayerDeadState(this, StateMachine, "dead"); FlyingKickState = new PlayerFlyingKickState(this, StateMachine, "flyingKick"); }
private void Awake() { StateMachine = new PlayerStateMachine(); IdleState = new PlayerIdleState(this, StateMachine, playerData, "idle"); MoveState = new PlayerMoveState(this, StateMachine, playerData, "move"); JumpState = new PlayerJumpState(this, StateMachine, playerData, "inAir"); InAirState = new PlayerInAirState(this, StateMachine, playerData, "inAir"); LandState = new PlayerLandState(this, StateMachine, playerData, "land"); HurtState = new PlayerHurtState(this, StateMachine, playerData, "hurt"); DeadState = new PlayerDeadState(this, StateMachine, playerData, "dead"); }
private void Awake() { FiniteStateMachine = new PlayerFiniteStateMachine(); SkillManager = new PlayerSkillsManager(); StatsManager = new PlayerStatsManager(_playerStatsData); IdleState = new PlayerIdleState(this, FiniteStateMachine, "idle", _idleStateData); MoveState = new PlayerMoveState(this, FiniteStateMachine, "move", _moveStateData); LandState = new PlayerLandState(this, FiniteStateMachine, "land"); JumpState = new PlayerJumpState(this, FiniteStateMachine, "inAir", _jumpStateData); InAirState = new PlayerInAirState(this, FiniteStateMachine, "inAir", _inAirStateData); WallSlideState = new PlayerWallSlideState(this, FiniteStateMachine, "wallSlide", _wallSlideStateData); WallGrabState = new PlayerWallGrabState(this, FiniteStateMachine, "wallGrab"); WallClimbState = new PlayerWallClimbState(this, FiniteStateMachine, "wallClimb", _wallClimbStateData); WallJumpState = new PlayerWallJumpState(this, FiniteStateMachine, "inAir", _wallJumpStateData); LedgeClimbState = new PlayerLedgeClimbState(this, FiniteStateMachine, "ledgeClimbState", _ledgeClimbStateData); DashState = new PlayerDashState(this, FiniteStateMachine, "inAir", _dashStateData); RollState = new PlayerRollState(this, FiniteStateMachine, "rollState", _rollStateData); CrouchIdleState = new PlayerCrouchIdleState(this, FiniteStateMachine, "crouchIdle", _crouchIdleStateData); CrouchMoveState = new PlayerCrouchMoveState(this, FiniteStateMachine, "crouchMove", _crouchMoveStateData); OnRopeStateAim = new PlayerOnRopeState_Aim(this, FiniteStateMachine, "idle", _onRopeStateData); OnRopeStateAttach = new PlayerOnRopeState_Attach(this, FiniteStateMachine, "inAir", _onRopeStateData); OnRopeStateMove = new PlayerOnRopeState_Move(this, FiniteStateMachine, "inAir", _onRopeStateData); OnRopeStateFinish = new PlayerOnRopeState_Finish(this, FiniteStateMachine, "inAir", _onRopeStateData); SwordAttackState01 = new PlayerSwordAttackState_01(this, FiniteStateMachine, "swordAttack01", _swordAttackPosition01, _swordAttackStateData01); SwordAttackState02 = new PlayerSwordAttackState_02(this, FiniteStateMachine, "swordAttack02", _swordAttackPosition02, _swordAttackStateData02); SwordAttackState03 = new PlayerSwordAttackState_03(this, FiniteStateMachine, "swordAttack03", _swordAttackPosition03, _swordAttackStateData03); FireArrowShotStateStart = new PlayerBowFireArrowShotState_Start(this, FiniteStateMachine, "bowFireShotStart", _fireArrowShotAttackPosition, _fireArrowShotStateData); FireArrowShotStateAim = new PlayerBowFireArrowShotState_Aim(this, FiniteStateMachine, "bowFireShotAim", _fireArrowShotAttackPosition, _fireArrowShotStateData); FireArrowShotStateFinish = new PlayerBowFireArrowShotState_Finish(this, FiniteStateMachine, "bowFireShotFinish", _fireArrowShotAttackPosition, _fireArrowShotStateData); StunState = new PlayerStunState(this, FiniteStateMachine, "stun", StunStateData); DeadState = new PlayerDeadState(this, FiniteStateMachine, "dead", _deadStateData); }
public void InitializePlayerStateMachine() { idleState = new PlayerIdleState(stateMachine, this, AlfAnimationHash.IDLE_0, playerData); walkState = new PlayerWalkState(stateMachine, this, AlfAnimationHash.RUN_0, playerData); jumpState = new PlayerJumpState(stateMachine, this, AlfAnimationHash.JUMP_0, playerData); inAirState = new PlayerInAirState(stateMachine, this, AlfAnimationHash.INAIR_0, playerData); meleeAttackState = new PlayerMeleeAttackState(stateMachine, this, AlfAnimationHash.ATTACK_0, playerData); parryState = new PlayerParryState(stateMachine, this, AlfAnimationHash.PARRY_1, playerData); rollState = new PlayerRollState(stateMachine, this, AlfAnimationHash.ROLL_0, playerData); stunState = new PlayerStunState(stateMachine, this, AlfAnimationHash.STUN_0, playerData); deadState = new PlayerDeadState(stateMachine, this, AlfAnimationHash.DEAD_0, playerData); takeDamageState = new PlayerTakeDamageState(stateMachine, this, AlfAnimationHash.TAKEDAMAGE_0, playerData); wallState = new PlayerWallState(stateMachine, this, AlfAnimationHash.WALL_0, playerData); dashState = new PlayerDashState(stateMachine, this, AlfAnimationHash.DASH_0, playerData); converseState = new PlayerConverseState(stateMachine, this, AlfAnimationHash.IDLE_0, playerData); cinemaState = new PlayerCinemaState(stateMachine, this, AlfAnimationHash.IDLE_0, playerData); ladderState = new PlayerLadderState(stateMachine, this, AlfAnimationHash.IDLE_0, playerData); InitializePlayerCooldownTimer(); }
private void Awake() { StateMachine = new PlayerStateMachine(); IdleState = new PlayerIdleState(this, StateMachine, playerData, "idle"); MoveState = new PlayerMoveState(this, StateMachine, playerData, "move"); JumpState = new PlayerJumpState(this, StateMachine, playerData, "inAir"); InAirState = new PlayerInAirState(this, StateMachine, playerData, "inAir"); LandState = new PlayerLandState(this, StateMachine, playerData, "land"); WallSlideState = new PlayerWallSlideState(this, StateMachine, playerData, "wallSlide"); WallGrabState = new PlayerWallGrabState(this, StateMachine, playerData, "wallGrab"); WallClimbState = new PlayerWallClimbState(this, StateMachine, playerData, "wallClimb"); WallJumpState = new PlayerWallJumpState(this, StateMachine, playerData, "inAir"); LedgeClimbState = new PlayerLedgeClimbState(this, StateMachine, playerData, "ledgeClimbState"); DashState = new PlayerDashState(this, StateMachine, playerData, "inAir"); CrouchIdleState = new PlayerCrouchIdleState(this, StateMachine, playerData, "crouchIdle"); CrouchMoveState = new PlayerCrouchMoveState(this, StateMachine, playerData, "crouchMove"); InjuredState = new PlayerInjuredState(this, StateMachine, playerData, "injured"); DeadState = new PlayerDeadState(this, StateMachine, playerData, "dead"); KickState = new PlayerKickState(this, StateMachine, playerData, "kick"); SlideKickState = new PlayerSlideKickState(this, StateMachine, playerData, "slideKick"); RollState = new PlayerRollState(this, StateMachine, playerData, "roll"); }
public void InitializePlayerStateMachine() { idleState = new PlayerIdleState(stateMachine, this, AlfAnimationHash.IDLE_0, playerData); walkState = new PlayerWalkState(stateMachine, this, AlfAnimationHash.RUN_0, playerData); jumpState = new PlayerJumpState(stateMachine, this, AlfAnimationHash.JUMP_0, playerData); inAirState = new PlayerInAirState(stateMachine, this, AlfAnimationHash.INAIR_0, playerData); meleeAttackState = new PlayerMeleeAttackState(stateMachine, this, AlfAnimationHash.ATTACK_IRONSWORD, playerData); bowAttackState = new PlayerBowAttackState(stateMachine, this, AlfAnimationHash.IDLE_WOODBOW, playerData); magicAttackState = new PlayerMagicAttackState(stateMachine, this, AlfAnimationHash.IDLE_APPRENTICE_STICK, playerData); parryState = new PlayerParryState(stateMachine, this, AlfAnimationHash.PARRY_1, playerData); rollState = new PlayerRollState(stateMachine, this, AlfAnimationHash.ROLL_0, playerData); stunState = new PlayerStunState(stateMachine, this, AlfAnimationHash.STUN_0, playerData); deadState = new PlayerDeadState(stateMachine, this, AlfAnimationHash.DEAD_0, playerData); takeDamageState = new PlayerTakeDamageState(stateMachine, this, AlfAnimationHash.TAKEDAMAGE_0, playerData); wallState = new PlayerWallState(stateMachine, this, AlfAnimationHash.WALL_0, playerData); dashState = new PlayerDashState(stateMachine, this, AlfAnimationHash.DASH_0, playerData); converseState = new PlayerConverseState(stateMachine, this, AlfAnimationHash.IDLE_0, playerData); cinemaState = new PlayerCinemaState(stateMachine, this, AlfAnimationHash.IDLE_0, playerData); ladderState = new PlayerLadderState(stateMachine, this, AlfAnimationHash.IDLE_0, playerData); wakeupState = new PlayerWakeupState(stateMachine, this, AlfAnimationHash.WAKEUP_SITUP_0, playerData); littleSunState = new PlayerLittleSunState(stateMachine, this, AlfAnimationHash.LITTLESUN_SIT_0, playerData); InitializePlayerCooldownTimer(); }
public void EndGame() { // End Game Screen if (gameOver) { return; } gameOver = true; FindObjectOfType <PlayerController>().GetComponent <PlayerController>().ChangeState(PlayerDeadState.GetInstance()); GameObject endGameUI = GameObject.FindGameObjectWithTag("UI EndGame"); TextMeshProUGUI textPro = endGameUI.GetComponentInChildren <TextMeshProUGUI>(); textPro.SetText("Score: " + (int)Map.instance.depth + " meters\nPress Start to Try Again"); Image black = endGameUI.GetComponentInChildren <Image>(); black.DOFade(1, 2); textPro.DOFade(1, 2).OnComplete(() => { readyToRestart = true; }); //Application.Quit(); /* * ui.feedbacks.ShowTimeUp(delegate () * { * LoadingScreen.TransitionTo(FishingSummary.SCENENAME, new ToFishingSummaryMessage(fishingReport)); * });*/ }
//NPC有两个状态分别是在路径中巡逻和追逐玩家 //如果他在第一个状态并且SawPlayer 过度状态被出发了,它就转变到ChasePlayer状态 //如果他在ChasePlayer状态并且LostPlayer状态被触发了,它就转变到FollowPath状态 private void MakeFSM()//建造状态机 { PlayerIdleState idle = new PlayerIdleState(); idle.AddTransition(Transition.FreeWalk, StateID.Walk); idle.AddTransition(Transition.Dead, StateID.Dead); idle.AddTransition(Transition.Acct, StateID.Acct); idle.AddTransition(Transition.Skill, StateID.Skill); idle.AddTransition(Transition.CrashPlayer, StateID.CrashPlayer); PlayerWalkState walk = new PlayerWalkState(); walk.AddTransition(Transition.FreeWalk, StateID.Walk); walk.AddTransition(Transition.Acct, StateID.Acct); walk.AddTransition(Transition.Skill, StateID.Skill); walk.AddTransition(Transition.Dead, StateID.Dead); walk.AddTransition(Transition.Idle, StateID.Idle); walk.AddTransition(Transition.CrashPlayer, StateID.CrashPlayer); PlayerDeadState dead = new PlayerDeadState(); dead.AddTransition(Transition.Dead, StateID.Dead); dead.AddTransition(Transition.Idle, StateID.Idle); dead.AddTransition(Transition.FreeWalk, StateID.Walk); PlayerAcceState acce = new PlayerAcceState(); acce.AddTransition(Transition.Acct, StateID.Acct); acce.AddTransition(Transition.Skill, StateID.Skill); acce.AddTransition(Transition.FreeWalk, StateID.Walk); acce.AddTransition(Transition.Dead, StateID.Dead); acce.AddTransition(Transition.Idle, StateID.Idle); acce.AddTransition(Transition.CrashPlayer, StateID.CrashPlayer); PlayerSkillState skill = new PlayerSkillState(); skill.AddTransition(Transition.Skill, StateID.Skill); skill.AddTransition(Transition.Acct, StateID.Acct); skill.AddTransition(Transition.FreeWalk, StateID.Walk); skill.AddTransition(Transition.Dead, StateID.Dead); skill.AddTransition(Transition.Idle, StateID.Idle); skill.AddTransition(Transition.CrashPlayer, StateID.CrashPlayer); //PlayerSwitchState sw = new PlayerSwitchState(); //sw.AddTransition(Transition.Skill, StateID.Skill); //sw.AddTransition(Transition.Acct, StateID.Acct); //sw.AddTransition(Transition.FreeWalk, StateID.Walk); //sw.AddTransition(Transition.Dead, StateID.Dead); //sw.AddTransition(Transition.Idle, StateID.Idle); //sw.AddTransition(Transition.CrashPlayer, StateID.CrashPlayer); PlayerCrashState crash = new PlayerCrashState(); crash.AddTransition(Transition.Skill, StateID.Skill); crash.AddTransition(Transition.Acct, StateID.Acct); crash.AddTransition(Transition.FreeWalk, StateID.Walk); crash.AddTransition(Transition.Dead, StateID.Dead); crash.AddTransition(Transition.Idle, StateID.Idle); Fsm = new FSMSystem(); Fsm.AddState(idle); Fsm.AddState(walk); Fsm.AddState(acce); Fsm.AddState(skill); Fsm.AddState(dead); //Fsm.AddState(sw); Fsm.AddState(crash); }