Ejemplo n.º 1
0
        public void MakeNewHandler(TreasureStage newStage, bool runInit)
        {
            if (CurrentStageHandler != null)
            {
                CurrentStageHandler.Destroy(false);
                CurrentStageHandler = null;
            }

            switch (newStage)
            {
            case TreasureStage.SearchingNote:
                CurrentStageHandler = new SearchingNoteStage();
                break;

            case TreasureStage.SearchingClues:
                CurrentStageHandler = new SearchingCluesStage();
                break;

            case TreasureStage.SearchingChest:
                CurrentStageHandler = new SearchingChestStage();
                break;

            case TreasureStage.Found:
                CurrentStageHandler = new FoundStage();
                break;

            default:
                throw new NotImplementedException("Not implemented stage used with MakeNewHandler.");
            }

            if (runInit)
            {
                CurrentStageHandler?.Init(false);
            }
        }
Ejemplo n.º 2
0
        public Main()
        {
            CurrentStage = SaveManager.Load();
            MakeNewHandler(CurrentStage, false);

            Tick    += Main_Tick;
            Aborted += Main_Aborted;
        }
Ejemplo n.º 3
0
        public void Main_Tick(object sender, EventArgs e)
        {
            if (!GameReady && !Game.IsLoading && Game.Player.CanControlCharacter)
            {
                Function.Call(Hash.REQUEST_SCRIPT_AUDIO_BANK, "DLC_CHRISTMAS2017/FM_TH", false, -1);

                GameReady = true;
                CurrentStageHandler?.Init(true);
            }

            if (CurrentStageHandler != null && CurrentStageHandler.Update())
            {
                CurrentStage = CurrentStageHandler.NextStage;
                MakeNewHandler(CurrentStage, true);
            }
        }