Example #1
0
    // 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());
        }
Example #5
0
        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));
        }
Example #6
0
        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());
        }
Example #7
0
        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());
        }
Example #8
0
        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();
        }
Example #9
0
    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;
 }
Example #11
0
 /// <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;
 }