Beispiel #1
0
 private void AttemptSelectObjectFromClearState(GameObject go)
 {
     if (go.tag.StartsWith("TurretSpace"))
     {
         SelectedObject = go;
         UIState        = State.TurretSpaceSelected;
         TurretUIObject = CreateTurretSelectUI();
         ShowUIAttachedToObject(go, TurretUIObject.transform.gameObject);
     }
     else if (go.tag.StartsWith("TurretInstance"))
     {
         SelectedObject = go;
         UIState        = State.TurretSelected;
         // Need to get the turret instance
         MapPos         pos            = GameObjectFactory.WorldVec3ToMapPos(SelectedObject.transform.position);
         TurretInstance turretInstance = null;
         foreach (TurretInstance t in TurretManagerInstance.Turrets)
         {
             if (t.Position.x == pos.x && t.Position.z == pos.z)
             {
                 turretInstance = t;
                 break;
             }
         }
         if (null != turretInstance)
         {
             TurretUIObject = CreateTurretOptionUI(turretInstance);
             ShowUIAttachedToObject(go, TurretUIObject.transform.gameObject);
         }
     }
 }
Beispiel #2
0
    private bool OnTurretOptionSelect(int index, string option, object context)
    {
        if ("Sell" == option)
        {
            TurretInstance t = (TurretInstance)context;
            Turrets.RemoveTurret(t);
            Coin += (t.TurretType.Cost / 2);
        }

        return(false);
    }
Beispiel #3
0
    void TickGameplay()
    {
        Waves.CurrentWave.Advance(GameTime);
        Coin           += Waves.CurrentWave.ReportCoinEarned();
        LivesRemaining -= Waves.CurrentWave.ReportLivesLost();

        Projectiles.AdvanceAll(GameTime);

        Turrets.Fire(GameTime);

        if (Waves.IsComplete)
        {
            OnLevelComplete();
        }
        else if (Waves.CurrentWave.IsCompleted)
        {
            Utilities.Log("State ==> WaveCountdown");
            ShowCountdownUI();
            Waves.AdvanceToNextWave(GameTime);
            State = LevelState.WaveCountdown;
            CountdownStartTime = GameTime;
        }

        if (null != Pointer.Hitting)
        {
            GameObject go = Pointer.Hitting;
            if (go.name.StartsWith("TurretSpace"))
            {
                TurretInstance turret = Turrets.GetTurretAtPosition(GameObjectFactory.WorldVec3ToMapPos(go.transform.position));

                if (null != turret)
                {
                    go = turret.go;
                }
            }

            GameplayUI.CursorOver(go);
        }

        bool value = false;

        if (Pointer.State.ButtonDown.TryGetValue(InputState.InputIntent.Selection, out value) && value)
        {
            GameplayUI.TriggerSelectAction();
        }
        if (Pointer.State.ButtonDown.TryGetValue(InputState.InputIntent.MissileTrigger, out value) && value)
        {
            ProcessMissileTrigger();
        }


        UpdateHUD();
    }
Beispiel #4
0
    private ListUI CreateTurretOptionUI(TurretInstance selectedTurret)
    {
        ListUI go = Instantiate <ListUI>(ListUITemplate);

        TurretOptionUIParams.Options.Clear();

        TurretOptionUIParams.Options.Add("Sell");
        TurretOptionUIParams.Prices.Add((selectedTurret.TurretType.Cost / 2).ToString());
        TurretOptionUIParams.Context = selectedTurret;

        go.Create(ListTemplateWithCoin, TurretOptionUIParams);

        return(go);
    }