void Awake()
    {
        gameLoopState = GameLoopState.Init;
        fireIsDown = false;
        SetPlayerRenderers(false);

        enemyManager.OnEnemyDestroyed = EnemyDestroyed;
        enemyManager.OnTargetReached = PlayerDestroyed;
    }
Beispiel #2
0
    private void SwitchToCountDownState()
    {
        m_glsGameState = GameLoopState.COUNT_DOWN;

        //sort out who is playing and who has disconected

        //synchronise clocks

        //set game start time
    }
    private void EnemyDestroyed()
    {
        scoreMultiplier *= 1.15f;
        score += Mathf.RoundToInt(10.0f * scoreMultiplier);
        UpdateScoresAndWave();

        if (enemyManager.IsWaveClear && gameLoopState == GameLoopState.InGame)
        {
            if (waveNumber < 10)
                gameLoopState = GameLoopState.StartWave;
            else
                gameLoopState = GameLoopState.GameCompleted;
        }
    }
Beispiel #4
0
    private void SwitchToActiveState()
    {
        m_glsGameState = GameLoopState.ACTIVE;

        //set start time and tick
        m_fTimeSinceLastSim = 0;
        m_iSimTick          = 0;

        //set player count
        m_playerCount = m_ntcNetworkConnection.ActiveConnectionCount() + 1;

        SetupSimulation();

        //reset all ticks
        m_ntcNetworkConnection.TransmitPacketToAll(new ResetTickCountPacket());
    }
Beispiel #5
0
    void Start()
    {
        cardIconQueue = GetComponent <CardIconQueue> ();

        currentViewIndex = 0;
        foreach (GameObject card in cardSwipe)
        {
            card.SetActive(false);
        }

        heads    = GameObject.Find("Head").gameObject;
        tutorial = GetComponent <Tutorial> ();

        state         = GameLoopState.IDLE;
        EndTurnCanvas = GameObject.Find("EndGameCanvas");
        EndTurnCanvas?.SetActive(false);

        Loop().Forget();
    }
Beispiel #6
0
    // Use this for initialization
    public void Start()
    {
        if (m_uigInputGenerator == null)
        {
            m_uigInputGenerator = GetComponent <UserInputGenerator>();
        }

        if (m_ntcNetworkConnection == null)
        {
            m_ntcNetworkConnection = GetComponent <NetworkConnection>();
        }

        if (m_ntcConnectionTarget != null)
        {
            m_ntcNetworkConnection.MakeTestingConnection(m_ntcConnectionTarget);
        }

        m_ntcNetworkConnection.m_evtPacketDataIn += HandleInputFromNetwork;

        m_glsGameState = GameLoopState.LOBBY;
    }
Beispiel #7
0
    public async void StartGame()
    {
        Services.assets.PlaySound("tap").Forget();

        Services.data.fingerStep = 0;
        if (Services.data.isWin(0))
        {
            Services.data.IncreaseTutor();
        }

        await Services.player.Init();

        await Services.enemy.Init();

        cardIconQueue.CreateQueue();

        heads.GetComponent <EnemyHead> ().UpdateHead(getRandomHead());
        EndTurnCanvas?.SetActive(false);

        state = GameLoopState.IDLE;
    }
Beispiel #8
0
 private void SwitchToEndState()
 {
     m_glsGameState = GameLoopState.END;
 }
 private void SwitchToTitleState()
 {
     SetPlayerRenderers(false);
     gameLoopState = GameLoopState.TitleScreen;
 }
    private void PlayerDestroyed()
    {
        player.audio.Play();
        SetPlayerRenderers(false);

        gameLoopState = GameLoopState.GameOver;
        UpdateScoresAndWave();
    }
    private void OnTitleScreen()
    {
        titleScreenController.ShowTitleScreen();

        if (fireIsDown && !Input.GetButton("Fire"))
            gameLoopState = GameLoopState.StartGame;
        fireIsDown = Input.GetButton("Fire");
    }
 private void OnStartWave()
 {
     enemyManager.StartWave(++waveNumber);
     gameLoopState = GameLoopState.InGame;
     UpdateScoresAndWave();
     audio.Play();
 }
    private void OnStartGame()
    {
        score = 0;
        waveNumber = 0;
        titleScreenController.ShowInGameScreen();
        UpdateScoresAndWave();
        fireIsDown = false;
        scoreMultiplier = 1.0f;

        SetPlayerRenderers(true);
        gameLoopState = GameLoopState.StartWave;
    }
    private void OnInit()
    {
        score = 0;
        waveNumber = 0;
        UpdateScoresAndWave();

        gameLoopState = GameLoopState.TitleScreen;
    }
Beispiel #15
0
 /// <summary>
 /// Sets the current active game state.
 /// </summary>
 /// <param name="gameState">GameLoopState to reference for game functions</param>
 public static void SetGameMgr(GameLoopState gameState)
 {
     GameMgr = gameState;
 }
Beispiel #16
0
    async UniTaskVoid Loop()
    {
        await UniTask.WaitUntil(() => Services.isInited);

        cardIconQueue.CreateQueue();

        heads.GetComponent <EnemyHead> ().UpdateHead(getRandomHead());
        Services.assets.PlaySound("start_game").Forget();

        while (true)
        {
            await tutorial.CheckCurrentTutor();

            await UniTask.WaitUntil(() => state == GameLoopState.IDLE);

            int currentChoise = -1;

            cardItem = cardIconQueue.GetFirstItem();

            tutorial.ChangeCard(cardItem);

            var t1 = cardIconQueue.Shift();
            var t2 = SwipeCard();
            await UniTask.WhenAll(t1, t2);

            Swipe swipe = cardSwipe[currentViewIndex].GetComponent <Swipe> ();
            currentChoise = swipe.currentChoise;

            int timestamp = GameTime.GetTime();

            ChoiceData chMeta = null;
            if (cardItem.me == true)
            {
                chMeta = currentChoise == Swipe.LEFT_CHOICE ? cardItem.data.left : cardItem.data.right;
            }
            else
            {
                chMeta = currentChoise == Swipe.LEFT_CHOICE ? cardItem.data.eLeft : cardItem.data.eRight;
            }

            lock (this) {
                Services.player.Execute(cardItem.data, currentChoise, chMeta, cardItem.me, timestamp, Services.enemy);
            }

            Services.data.swipeCount++;
            Services.assets.PlaySound("card_move").Forget();
            //check global state
            if (!CheckGlobalState(timestamp))
            {
                state = GameLoopState.DIABLED;
                EndTurnCanvas?.SetActive(true);

                bool isWin = Services.data.isWin(timestamp);

                if (isWin == true)
                {
                    Services.assets.PlaySound("win").Forget();
                }
                else
                {
                    Services.assets.PlaySound("lose").Forget();
                }

                Analytics.CustomEvent("gameOver", new Dictionary <string, object> {
                    { "isWin", isWin }
                });
                Analytics.FlushEvents();
            }
            else if (chMeta.reward.Exists(r => r.category == GameDataManager.ACTION_ID && r.id == 1))
            {
                Services.assets.PlaySound("attack").Forget();
            }
            else if (chMeta.reward.Exists(r => r.category == GameDataManager.RESOURCE_ID && r.id == 1))
            {
                Services.assets.PlaySound("heal").Forget();
            }
            //await UniTask.Delay(100);

            //shift

            /*for (int i = 1; i < queue.Count; i++) {
             *  queue[i - 1] = queue[i];
             * }
             * queue[queue.Count - 1] = currentItem;
             *
             * await cardIconQueue.Shift ();
             */
        }
    }