Example #1
0
        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);
        }
Example #2
0
    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);
    }
Example #3
0
    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");
    }
Example #4
0
    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");
    }
Example #5
0
    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);
    }
Example #6
0
    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();
    }
Example #7
0
    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");
    }
Example #8
0
    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();
    }
Example #9
0
    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));
         * });*/
    }
Example #10
0
    //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);
    }