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); } } }
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); }
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(); }
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); }