// FIXME: Need to have 2 different prefabs which the scripts are extentions from Tower. // There should be a factory for each one public void BuyTower(int towerType) { GameObject tower = sniperTower01; switch (towerType) { case (int)Tower.TowerType.Sniper: tower = sniperTower01; break; case (int)Tower.TowerType.Missile: tower = missileTower01; break; } Tower towerScript = tower.GetComponent <Tower> (); if (_sceneManager.SubMoney(towerScript.cost) == true) { Instantiate(tower, towerSpot.transform.position, towerSpot.transform.rotation); towerScript.towerType = towerType; GameObject animation = (GameObject)Instantiate(towerSpotConstructionSmoke, towerSpot.transform.position, Quaternion.Euler(new Vector3(-90f, 0, 0))); Destroy(towerSpot); Destroy(animation, 5); } else { FlashMessages f = gameObject.GetComponent <FlashMessages> (); f.Message = "Not enough money! That costs $" + towerScript.cost.ToString() + "."; } _uiManager.HideTowerMenu(); }
public void Should_Not_Remove_Messages_When_Peeking() { var messages = new FlashMessages(new Session.Session(), new FlashMessagesConfiguration()); messages.AddMessage(FlashMessages.Danger, "Hello world"); var retrievedMessages = messages.PeekMessages(FlashMessages.Danger); Assert.Equal("Hello world", messages.PeekMessages(FlashMessages.Danger).First()); }
public void Should_Remove_Messages_When_Popping() { var messages = new FlashMessages(new Session.Session(), new FlashMessagesConfiguration()); messages.AddMessage(FlashMessages.Danger, "Hello world"); var retrievedMessages = messages.PopMessages(FlashMessages.Danger); Assert.Null(messages.PopMessages(FlashMessages.Danger)); }
public void AddMessage_Should_Persist_Message() { var messages = new FlashMessages(new Session.Session(), new FlashMessagesConfiguration()); messages.AddMessage(FlashMessages.Danger, "Hello world"); var retrievedMessages = messages.PopMessages(FlashMessages.Danger); Assert.Equal("Hello world", retrievedMessages.First()); }
private void FlashMessage(string level, string message) { var id = Guid.NewGuid(); FlashMessages.AddOrUpdate(id, new Tuple <string, string>(level, message), (_, e) => new Tuple <string, string>(level, message)); Task.Delay(TimeSpan.FromMilliseconds(FlashDelay)).ContinueWith(_ => { FlashMessages.TryRemove(id, out var _); UpdateDisplay(); }); UpdateDisplay(); }
public void UpgradeTower() { GameObject newTower = null; switch (upgradableTowerType) { case (int)Tower.TowerType.Sniper: // what level is it on? if (tower.GetComponent <Tower>().upgradeLevel == 0) { newTower = sniperTower02; } if (tower.GetComponent <Tower>().upgradeLevel == 1) { newTower = sniperTower03; } break; case (int)Tower.TowerType.Missile: if (tower.GetComponent <Tower>().upgradeLevel == 0) { newTower = missileTower02; } if (tower.GetComponent <Tower>().upgradeLevel == 1) { newTower = missileTower03; } break; } if (!newTower.Equals(null)) { Tower towerScript = newTower.GetComponent <Tower> (); if (_sceneManager.SubMoney(towerScript.cost) == true) { GameObject newTowerInstance = Instantiate(newTower, tower.transform.position, tower.transform.rotation) as GameObject; newTowerInstance.transform.Translate(Vector3.zero); towerScript.towerType = this.upgradableTowerType; GameObject animation = (GameObject)Instantiate(towerSpotConstructionSmoke, tower.transform.position, Quaternion.Euler(new Vector3(-90f, 0, 0))); Destroy(tower); Destroy(animation, 5); } else { FlashMessages f = gameObject.GetComponent <FlashMessages> (); f.Message = "Not enough money! That costs $" + towerScript.cost.ToString() + "."; } } _uiManager.HideUpgradeTowerMenu(); }
/// <summary> /// Set up flash messages for the nancy context. This will be called by /// the before request handler that is set up by FlashMessages.Enable /// </summary> /// <param name="context"></param> /// <param name="flashMessages"></param> internal static void SetFlashMessages(this NancyContext context, FlashMessages flashMessages) { context.Items[ContextKey] = flashMessages; }