示例#1
0
        protected override void Awake()
        {
            base.Awake();

            // states
            stateMachine = new StateMachine(this, SpawningState);
            stateMachine.CreateState(SpawningState, SpawningEnter, info => { });
            stateMachine.CreateState(EnteringState, info => stateMachine.SetUpdate(EnteringUpdate()), info => { });
            stateMachine.CreateState(AttackingState, info => stateMachine.SetUpdate(AttackingUpdate()), info => { });
            stateMachine.CreateState(ExitingState, info => stateMachine.SetUpdate(ExitingUpdate()), info => { });
            stateMachine.CreateState(DyingState, DyingEnter, info => { });

            // weapons
            laser.Initialize(this);
        }
示例#2
0
        protected override void Awake()
        {
            base.Awake();

            // references
            myRigidbody = rigidbody;

            // states
            stateMachine = new StateMachine(this, SpawningState);
            stateMachine.CreateState(SpawningState, SpawningEnter, info => { });
            stateMachine.CreateState(HomingState, info => stateMachine.SetUpdate(HomingUpdate()), info => { });
            stateMachine.CreateState(DyingState, DyingEnter, info => { });
        }
示例#3
0
        public void Initialize(Highscore score, int[] ranks, float loot, int[] salvage, bool nextIsUnlocked)
        {
            // cache data
            playerScore = score.score;
            rankThresholds = ranks;
            playerRank = score.rank;
            playerLoot = loot;
            playerSalvage = salvage;

            // buttons
            replayButton.ActivateEvent += (sender, args) => SceneManager.ReloadScene();
            int nextLevel = ((FormationLevelManager)FormationLevelManager.Main).levelIndex + 1;
            if (nextLevel < FormationLevelManager.LevelNames.Length && (score.rank != 0 || nextIsUnlocked))
            {
                nextButton.ActivateEvent += (sender, args) => SceneManager.LoadScene(Scenes.Scene((Scenes.Levels)((FormationLevelManager)FormationLevelManager.Main).levelIndex + 1));
            }
            else
            {
                nextAvailable = true;
            }

            states = new StateMachine(this, InitializingState);
            states.CreateState(InitializingState, InitializingEnter, info => { });
            states.CreateState(TimeState, info =>
                                          {
                                              timeLabel.text = score.TimeString;
                                              states.SetState(LootState);
                                          }, info => { });
            states.CreateState(LootState, info => states.SetUpdate(LootUpdate()), info => { });
            states.CreateState(SalvageState, info => states.SetUpdate(SalvageUpdate()), info => { });
            states.CreateState(IdleState, info => { }, info => { });
            states.CreateState(CompleteState, CompleteEnter, info => { });
            states.Start();
        }