Exemplo n.º 1
0
    IEnumerator GoToResultState()
    {
        StopInGameObjects();
        _state = GameSceneState.Result;

        _curtain.gameObject.SetActive(true);
        var renderer = _curtain.GetComponent <SpriteRenderer>();
        var curColor = renderer.color;

        curColor.a     = 0f;
        renderer.color = curColor;

        while (true)
        {
            curColor.a    += 0.01f;
            renderer.color = curColor;

            yield return(new WaitForSeconds(0.01f));

            if (curColor.a > 0.20f)
            {
                break;
            }
        }

        StartResultObjects();
    }
Exemplo n.º 2
0
    void Awake()
    {
        if (GameObject.FindGameObjectsWithTag("UICtrl").Length > 1)
        {
            Destroy(gameObject);
        }
        else
        {
            shopCanvas     = transform.Find("ShopCanvas").gameObject;
            RankCanvas     = transform.Find("RankCanvas").gameObject;
            uiStateMachine = new UIStateMachine();
            GameStartState gameStartState = new GameStartState(transform);
            uiStateMachine.AddState(gameStartState);

            GameSceneState gameSceneState = new GameSceneState(transform);
            uiStateMachine.AddState(gameSceneState);

            GameLoadingState gameLoadingState = new GameLoadingState(transform);
            uiStateMachine.AddState(gameLoadingState);

            uiStateMachine.ChangeState(typeof(GameLoadingState));

            DontDestroyOnLoad(gameObject);
        }
    }
Exemplo n.º 3
0
    public override void OnDestroyScene()
    {
        gameSceneState = null;

        subStageList = null;
        heliPlayer   = null;
        cameraTrack  = null;

        Destroy(field.gameObject);
    }
Exemplo n.º 4
0
 //게임씬에서 마커를 검사할 함수
 private void WhatISMyMarker_Game()
 {
     //마커의 이름에 따라 스테이트를 바꾸고싶다.
     for (int i = 0; i < game_allState.Length; i++)
     {
         if (imageName == game_allState[i].ToString())
         {
             state_Game = game_allState[i];
             Switch_Game();
             break;
         }
     }
 }
Exemplo n.º 5
0
    public void LoadMainMenu()
    {
        UnloadLevelsAndMainMenu();
        mouseLocker.hideMouse = mouseLocker.lockMouse = false;
        if (mainMenuScene.ScenePath == "")
        {
            Debug.LogError("Main menu scene not set");
            return;
        }
        Debug.Log("Loading main menu");
        levelLoadingOperations.Add(SceneManager.LoadSceneAsync(mainMenuScene, LoadSceneMode.Additive));

        state = GameSceneState.MainMenu;
    }
Exemplo n.º 6
0
    public void LoadLevel()
    {
        UnloadLevelsAndMainMenu();
        mouseLocker.hideMouse = mouseLocker.lockMouse = true;
        if (selectedLevel.ScenePath == "")
        {
            Debug.LogError("No level selected for loading");
            return;
        }
        Debug.Log("Loading level: " + selectedLevel);
        levelLoadingOperations.Add(SceneManager.LoadSceneAsync(selectedLevel, LoadSceneMode.Additive));
        loadedLevelID = SceneUtility.GetBuildIndexByScenePath(selectedLevel);

        state = GameSceneState.InLevel;
    }
Exemplo n.º 7
0
    public void ApplyGameSceneState(GameSceneState state)
    {
        var  data = state.HeliPlayerData;
        bool zoom = data == null ? false : data.Zoom;

        NormalViewObject.ForEach(o => o.SetActive(!zoom));
        ZoomViewObject.ForEach(o => o.SetActive(zoom));

        var leftTargetCountText = state.HeliPlayerData.Target == null ? "0" : state.LeftEnemyCount.ToString();

        foreach (var leftTargetCount in LeftTargetCount)
        {
            leftTargetCount.text = leftTargetCountText;
        }
    }
Exemplo n.º 8
0
    void Start()
    {
        _state = GameSceneState.Home;

        VariableInitialize();
        UIInitialize();
        PlayerInitialize();
        CameraInitialize();
        BackgroundInitialize();
        MissileShooterInitialize();
        CloudMakerInitialize();

        StopInGameObjects();
        StopResultObjects();
        StartHomeObjects();
    }
Exemplo n.º 9
0
    IEnumerator GoToInGameState()
    {
        if (_state == GameSceneState.Home)
        {
            var titleColor  = _title.GetComponent <Image>().color;
            var buttonColor = _playButton.GetComponent <Image>().color;

            while (true)
            {
                titleColor.a  -= 0.1f;
                buttonColor.a -= 0.1f;

                _title.GetComponent <Image>().color      = titleColor;
                _playButton.GetComponent <Image>().color = buttonColor;

                if (titleColor.a <= 0.0f)
                {
                    break;
                }

                yield return(new WaitForSeconds(0.05f));
            }

            var originTitleColor  = _title.GetComponent <Image>().color;
            var originButtonColor = _playButton.GetComponent <Image>().color;

            originTitleColor.a  = 1;
            originButtonColor.a = 1;

            _title.GetComponent <Image>().color      = originTitleColor;
            _playButton.GetComponent <Image>().color = originButtonColor;
        }

        _player.MakeInitial();
        StopResultObjects();
        StopHomeObjects();
        StartInGameObjects();

        _state = GameSceneState.InGame;
    }
Exemplo n.º 10
0
    private void InitFiniteStateMachine()
    {
        // Init all states
        MainMenuState mainMenu = new MainMenuState(this);

        mainMenu.AddTransition(StateTransition.PressStart, StateID.LevelSelect);

        LevelSelectState levelSelect = new LevelSelectState(this);

        levelSelect.AddTransition(StateTransition.ViewCard, StateID.CardView);
        levelSelect.AddTransition(StateTransition.ChoseLevel, StateID.GameScene);
        levelSelect.AddTransition(StateTransition.ViewOption, StateID.OptionView);
        levelSelect.AddTransition(StateTransition.ViewPay, StateID.PayView);

        CardViewState cardView = new CardViewState(this);

        cardView.AddTransition(StateTransition.BackToLevelSelect, StateID.LevelSelect);

        GameSceneState gameScene = new GameSceneState(this);

        gameScene.AddTransition(StateTransition.BackToLevelSelect, StateID.LevelSelect);

        OptionViewState optionView = new OptionViewState(this);

        optionView.AddTransition(StateTransition.BackToLevelSelect, StateID.LevelSelect);

        PayViewState payView = new PayViewState(this);

        payView.AddTransition(StateTransition.BackToLevelSelect, StateID.LevelSelect);

        // Init finite state machine
        _fsm = new FiniteStateMachine();
        _fsm.AddFiniteState(mainMenu);
        _fsm.AddFiniteState(levelSelect);
        _fsm.AddFiniteState(cardView);
        _fsm.AddFiniteState(gameScene);
        _fsm.AddFiniteState(optionView);
        _fsm.AddFiniteState(payView);
    }
Exemplo n.º 11
0
        public GameScene(SceneManager manager)
            : base(manager)
        {
            //Test:
            this.Background = SpriteBank.GetSprite(@"Images\Controls\Background_Forest");

            this.moveTimer = new Counter.Timer(this.Game, 20);
            this.state = GameSceneState.MoveIn;
            this.moveTimer.OnMeet += new Counter.EventOnCounterMeet(this.MoveIn);
            this.moveTimer.Start();

            this.playButton = new Controls.Button(this.Game, SpriteBank.GetSprite(@"Images\Controls\Ready"), SpriteBank.GetSprite(@"Images\Controls\ReadyOver"), Vector2.Zero);
            this.playButton.Position = new Vector2(-315f, 220f);
            this.playButton.Clicked += new EventHandler(this.PlayButtonOnClick);

            this.Grid = new Griding.Griding(this.Game, new Rectangle(0, 60, 760, 380), 5, 9);
            this.PlantManager = new Plants_Bullets.Plant.PlantManager(this.Game, this.Grid);
            this.GrowManager = new Hospital.Hospital_GrowManager(this.PlantManager);
            this.PlantManager.GetSunManager.OnSunChanged += new SunManager.OnSunChangedProc(this.GrowManager.OnSunChanged);
            this.PlantManager.GetSunManager.NumberOfSuns = 100;

            this.ZombiesManager = new Zombies.Managers.ZombiesManager(this.Grid);
            this.ZombiesManager.Generator = new Hospital.Hospital_ZombiesGenerator(this.ZombiesManager);
        }
Exemplo n.º 12
0
    public void OnChangeStage(int subStageId)
    {
        var subStage = subStageList.FirstOrDefault(s => s.SubStageId == subStageId);

        int       enemyCount  = 0;
        Transform firstTarget = null;

        if (subStage != null)
        {
            var firstEnemy = subStage.EnemyList.FirstOrDefault();
            enemyCount = subStage.EnemyList.Count;
            if (firstEnemy != null)
            {
                firstTarget = firstEnemy.TargetJoint;
            }
        }

        gameSceneState = new GameSceneState()
        {
            TargetEnemyList = subStage.EnemyList.ToList(),
            HeliPlayerData  = new HeliPlayerData()
            {
                Zoom   = false,
                Target = firstTarget
            },
            SubStageId        = subStage.SubStageId,
            NextSubStageId    = subStage.NextSubStageId,
            LeftEnemyCount    = enemyCount,
            CurrentEnemyIndex = 0
        };
        subStage.SetColliderActive(true);

        gameSceneState.InvalidTarget();
        heliPlayer.ApplyHeliPlayerData(gameSceneState.HeliPlayerData);
        view.ApplyGameSceneState(gameSceneState);
    }
Exemplo n.º 13
0
 public virtual void PlayButtonOnClick(object sender, EventArgs e)
 {
     if ((this.state == GameSceneState.Choosing) && (this.GrowManager.BuyList.IsMax || this.GrowManager.ChooseList.listControl.Count == 0))
     {
         this.state = GameSceneState.MoveOut;
         this.moveTimer.OnMeet += new Counter.EventOnCounterMeet(this.MoveOut);
         this.moveTimer.Start();
     }
 }
Exemplo n.º 14
0
        public virtual void MoveOut(Counter.ICounter timer)
        {
            this.Background.PositionX += 3.9f;
            this.GrowManager.MoveOut();
            this.playButton.PositionX -= 5f;

            if (this.Background.PositionX >= -264)
            {
                this.moveTimer.Stop();
                this.moveTimer.OnMeet -= new Counter.EventOnCounterMeet(this.MoveOut);
                this.GrowManager.Play();
                this.ZombiesManager.Generator.Begin();
                this.state = GameSceneState.Play;
            }
        }
Exemplo n.º 15
0
        public virtual void MoveIn(Counter.ICounter timer)
        {
            this.Background.PositionX -= 6.54f;
            this.GrowManager.MoveIn();
            this.playButton.PositionX += 5f;

            if (this.Background.PositionX <= -654f)
            {
                this.moveTimer.Stop();
                this.moveTimer.OnMeet -= new Counter.EventOnCounterMeet(this.MoveIn);
                this.state = GameSceneState.Choosing;
            }
        }
Exemplo n.º 16
0
    public override void OnInitializeScene(ISceneInitData _initData)
    {
        initData = (GameSceneInitData)_initData;

        GameInstance.Inst.PlayBGM(new BgmEnum[] { BgmEnum.Game, BgmEnum.GameAmbient });

        field        = GenericPrefab.InstantiatePathFormat <Field>(initData.FieldId.ToString());
        cameraTrack  = field.GetCameraTrack();
        heliPlayer   = GenericPrefab.Instantiate <HeliPlayer>(cameraTrack.GetCameraJoint());
        subStageList = field.GetSubStageList();

        //GameSceneState
        {
            int       enemyCount  = 0;
            var       fistStage   = subStageList.FirstOrDefault();
            Transform firstTarget = null;
            if (fistStage != null)
            {
                var firstEnemy = fistStage.EnemyList.FirstOrDefault();
                enemyCount = fistStage.EnemyList.Count;
                if (firstEnemy != null)
                {
                    firstTarget = firstEnemy.TargetJoint;
                }
            }

            gameSceneState = new GameSceneState()
            {
                TargetEnemyList = fistStage.EnemyList.ToList(),
                HeliPlayerData  = new HeliPlayerData()
                {
                    Zoom   = false,
                    Target = firstTarget
                },
                SubStageId        = fistStage.SubStageId,
                NextSubStageId    = fistStage.NextSubStageId,
                LeftEnemyCount    = enemyCount,
                CurrentEnemyIndex = 0
            };
            fistStage.SetColliderActive(true);

            gameSceneState.InvalidTarget();
            heliPlayer.ApplyHeliPlayerData(gameSceneState.HeliPlayerData);
            view.ApplyGameSceneState(gameSceneState);
        }

        //init enemy
        {
            var enemyInitData = new EnemyInitData()
            {
                OnKillEnemy   = OnKillEnemy,
                OnRemoveEnemy = OnRemoveEnemy
            };

            foreach (var subStage in subStageList)
            {
                foreach (var enemy in subStage.EnemyList)
                {
                    enemy.Initialize(enemyInitData);
                }
            }
        }

        //Init CameraTrack
        cameraTrack.SetSubStage(1);

        startTime = Time.time;
        view.ApplyTime(Time.time - startTime);
    }