Пример #1
0
        /// <summary>
        /// Checks whether this tower's parent is a node with given id as parameter.
        /// </summary>
        /// <param name="parentId">Id of the parent</param>
        /// <returns>If found, returns tower node of the parent, otherwise returns null.</returns>
        public TowerNode checkParent(int parentId)
        {
            if (TypeIdGenerator.getTowerId(parent.towerType) == parentId)
            {
                return(parent);
            }

            return(null);
        }
Пример #2
0
        public void updateCashAndIncome()
        {
            // muhtemelen burada hicbir is yapmaya gerek yok. adamin para gostergesinin etrafinda isiklar cikartabiliriz paranin degistigine vurgu yapmak icin.
            uiControllerGame.setMoney(PlayerMe.cash, PlayerMe.income);

            foreach (var button in uiControllerGame.towerAndMinionButtons)    // paramizin yetmedigi butonlari kirmizi yapalim
            {
                if (typeof(Minion).IsAssignableFrom(button.Key))
                {
                    if (TypeIdGenerator.getMinionClass(TypeIdGenerator.getMinionId(button.Key)).getCost() > PlayerMe.cash)
                    {
                        foreach (var obj in button.Value.transform.GetComponentsInChildren <UISlicedSprite>(true))
                        {
                            if (obj.gameObject.transform.name == "NotEnoughMoneyLayer")
                            {
                                obj.gameObject.SetActive(true);
                            }
                        }
                    }
                    else
                    {
                        foreach (var obj2 in button.Value.transform.GetComponentsInChildren <UISlicedSprite>(true))
                        {
                            if (obj2.gameObject.transform.name == "NotEnoughMoneyLayer")
                            {
                                obj2.gameObject.SetActive(false);
                            }
                        }
                    }
                }
                else if (typeof(Tower).IsAssignableFrom(button.Key))
                {
                    if (TypeIdGenerator.getTowerClass(TypeIdGenerator.getTowerId(button.Key)).getCost() > PlayerMe.cash)
                    {
                        foreach (var obj in button.Value.transform.GetComponentsInChildren <UISlicedSprite>(true))
                        {
                            if (obj.gameObject.transform.name == "NotEnoughMoneyLayer")
                            {
                                obj.gameObject.SetActive(true);
                            }
                        }
                    }
                    else
                    {
                        foreach (var obj2 in button.Value.transform.GetComponentsInChildren <UISlicedSprite>(true))
                        {
                            if (obj2.gameObject.transform.name == "NotEnoughMoneyLayer")
                            {
                                obj2.gameObject.SetActive(false);
                            }
                        }
                    }
                }
            }
        }
Пример #3
0
        /// <summary>
        /// Checks whether this tower node has a children with given id
        /// </summary>
        /// <param name="childId">Id of the child</param>
        /// <returns>If found, returns tower node of the child, otherwise returns null.</returns>
        public TowerNode checkChildren(int childId)
        {
            foreach (TowerNode node in children)
            {
                if (TypeIdGenerator.getTowerId(node.towerType) == childId)
                {
                    return(node);
                }
            }

            return(null);
        }
Пример #4
0
        public override void unlock(User user)
        {
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Physics.CatapultTower))]    = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Physics.BlackHoleTower))]   = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Physics.ElectricityTower))] = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Physics.TeslaTower))]       = true;

            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Physics.BallistaTower))]          = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Physics.BallistaTower_fireBolt))] = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Physics.BallistaTower_lavaBolt))] = true;

            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Physics.LaserTower))]            = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Physics.LaserTower_Twin))]       = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Physics.LaserTower_Triplet))]    = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Physics.LaserTower_Quadruplet))] = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Physics.LaserTower_Quintuplet))] = true;

            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Physics.NailTrapTower))]           = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Physics.NailTrapTower_MoreSlow))]  = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Physics.NailTrapTower_MoreRange))] = true;

            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.MirrorSoldierMinion))] = true;

            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.RoboHookMinion))]          = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.RoboHookMinion_3sImmune))] = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.RoboHookMinion_Further))]  = true;

            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.QuantumSoldierMinion))]             = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.QuantumSoldierMinion_Fast))]        = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.QuantumSoldierMinion_Crew))]        = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.QuantumSoldierMinion_Jumper))]      = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.QuantumSoldierMinion_MultiJumper))] = true;

            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.PhysicsMScStudentMinion))]         = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.PhysicsMScStudentMinion_Cheaper))] = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.PhysicsMScStudentMinion_Speedy))]  = true;


            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.RetentiveTankMinion))] = true;

            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.PhysicsStudentMinion))]            = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.PhysicsStudentMinion_Successful))] = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.PhysicsStudentMinion_Enraged))]    = true;

            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.FrankenScientistMinion))]              = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.FrankenScientistMinion_OnFire))]       = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.FrankenScientistMinion_Baked))]        = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.FrankenScientistMinion_PennyPincher))] = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Physics.FrankenScientistMinion_LateWork))]     = true;
        }
Пример #5
0
        public override void unlock(User user)
        {
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Biology.ContagiousTower))]           = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Biology.ContagiousTower_extra))]     = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Biology.ContagiousTower_effective))] = true;

            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Biology.DroseraTower))]          = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Biology.DroseraTower_crazy))]    = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Biology.DroseraTower_hungry))]   = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Biology.DroseraTower_starving))] = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Biology.DroseraTower_insane))]   = true;

            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Biology.SeedTower))]         = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Biology.SeedTower_7Stack))]  = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Biology.SeedTower_2Target))] = true;


            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Biology.OneToAllTower))]        = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Biology.OneToAllTower_strong))] = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Biology.OneToAllTower_toxic))]  = true;

            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Biology.DollyMinion))]        = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Biology.DollyMinion_Lesscd))] = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Biology.DollyMinion_Pack))]   = true;

            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Biology.ImmortalStarfishMinion))]           = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Biology.ImmortalStarfishMinion_Loyal))]     = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Biology.ImmortalStarfishMinion_FastLoyal))] = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Biology.ImmortalStarfishMinion_Durable))]   = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Biology.ImmortalStarfishMinion_Strong))]    = true;

            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Biology.BiologyStudentMinion))]         = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Biology.BiologyStudentMinion_Faster))]  = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Biology.BiologyStudentMinion_Durable))] = true;

            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Biology.BioLabStudentMinion))]           = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Biology.BioLabStudentMinion_Shielded))]  = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Biology.BioLabStudentMinion_Dangerous))] = true;

            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Biology.ZombieMinion))] = true;

            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Biology.MutantEightLeggedMinion))]         = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Biology.MutantEightLeggedMinion_Fertile))] = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Biology.MutantEightLeggedMinion_WellFed))] = true;
        }
Пример #6
0
        public void sendCreateTowerRequest(Type type, int slotId)
        {
            int towerId = TypeIdGenerator.getTowerId(type);

            if (PlayerMe.cash < TypeIdGenerator.getMinionClass(towerId).getCost())
            {
                Announcement.make("[FF0000]Not enough money[-]", Announcement.ScreenPosition.MiddleBottom, 2.0f, 20.0f);
            }
            else
            {
                GCreateTowerRequest.sendMessage(towerId, slotId);
                if (!Input.GetKey(KeyCode.LeftControl))
                {
                    MouseHandler.selectedTowerType = null;
                    uiControllerGame.selectedTowerOverlayObject.SetActive(false);
                }
            }
        }
Пример #7
0
        public override void processMessage(NetWorker.Utilities.RawMessage message, User user)
        {
            if (user.player != null && user.player.playerState == Player.PlayerState.ALIVE &&      // player hayatta mi
                (user.player.game.gameState == Science_Wars_Server.Game.GameState.PLAYTIME ||      // oyun playtime da mi
                 user.player.game.gameState == Science_Wars_Server.Game.GameState.STARTCOUNTDOWN)) // oyun startcountdownda mi
            {
                int newTowerTypeId = message.getInt("tid");
                int indexOnBoard   = message.getInt("iob");

                if (newTowerTypeId < 0 || user.unlockedTowers.Length < newTowerTypeId)  //typeId valid?
                {
                    return;
                }
                if (indexOnBoard < 0 || indexOnBoard > user.player.board.towers.Length - 1)  // indexOnBoard valid?
                {
                    return;
                }

                Tower oldTower = user.player.board.towers[indexOnBoard];
                if (oldTower == null)  // upgrade edilmek istenen noktada bir kule var mi. ( havayi mi upgrade edeceksin essoglu essek )
                {
                    return;
                }

                if (checkIfTowerUpgradableTo(TypeIdGenerator.getTowerId(oldTower.GetType()), TypeIdGenerator.getTowerType(newTowerTypeId)) == false)   // bu kule, istenen turdeki kuleye upgrade edilebilir mi?
                {
                    return;
                }

                if (user.unlockedTowers[newTowerTypeId] == true)  // bu kule unlocklanmis mi?
                {
                    Tower tower =
                        (Tower)
                        Activator.CreateInstance(TypeIdGenerator.getTowerType(newTowerTypeId), user.player.board,
                                                 indexOnBoard);

                    if (user.player.trySpendCash(tower.getCost()) && user.player.board.AddTower(tower, indexOnBoard))
                    {
                        OutgoingMessages.Game.GUpgradeTowerResult.sendMessage(user.player.game.players, tower, newTowerTypeId);
                        OutgoingMessages.Game.GCashAndIncomeInfo.sendMessage(user.player);
                    }
                }
            }
        }
Пример #8
0
        public static void sendMessage(ICollection <Player> receiverPlayers, Tower tower)
        {
            RawMessage msg = new RawMessage();

            msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GCreateTowerResult)));

            if (receiverPlayers != null && receiverPlayers.Count != 0)
            {
                msg.putInt("uid", tower.board.player.id);
                msg.putInt("tid", TypeIdGenerator.getTowerId(tower.GetType()));
                msg.putInt("bid", tower.board.instanceId);
                msg.putInt("iob", tower.indexOnBoard);

                foreach (var receiverPlayer in receiverPlayers)
                {
                    receiverPlayer.user.session.client.SendMessage(msg);
                }
            }
        }
Пример #9
0
        public override void unlock(User user)
        {
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Chemistry.AcidTower))]         = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Chemistry.PetrolBombTower))]   = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Chemistry.NitrogenBombTower))] = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Chemistry.RadiationTower))]    = true;

            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Chemistry.TrypanophobiaTower))]           = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Chemistry.TrypanophobiaTower_Faster))]    = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Chemistry.TrypanophobiaTower_Scary))]     = true;
            user.unlockedTowers[TypeIdGenerator.getTowerId(typeof(Science_Wars_Server.Towers.Chemistry.TrypanophobiaTower_Monstrous))] = true;

            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Chemistry.CrazyScientistMinion))]           = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Chemistry.ChemistryStudentMinion_Fast))]    = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Chemistry.ChemistryStudentMinion_Durable))] = true;

            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Chemistry.ChemLabStudentMinion))]   = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Chemistry.ChemistryStudentMinion))] = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Chemistry.FoggerMinion))]           = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Chemistry.FirstAidTentMinion))]     = true;
            user.unlockedMinions[TypeIdGenerator.getMinionId(typeof(Science_Wars_Server.Minions.Chemistry.ProtectorMinion))]        = true;
        }
Пример #10
0
    public void createMinionAndTowerButtons()
    {
        var children = new System.Collections.Generic.List <GameObject>();

        foreach (Transform child in createMinionTowerContainer.transform)
        {
            children.Add(child.gameObject);
        }
        children.ForEach(child => GameObject.Destroy(child));

        int btnIndex = 0;

        button_CreateTower.SetActive(true);
        button_CreateMinion.SetActive(true);

        // sort minions order by cost
        List <Type> minionsSortedByCost = new List <Type>();

        for (int j = 0; j < PlayerMe.availableMinionTypes.Count; j++)
        {
            if (TypeIdGeneratorGUI.minionGuiInst.ContainsKey(TypeIdGenerator.getMinionId(PlayerMe.availableMinionTypes[j])))
            {
                minionsSortedByCost.Add(PlayerMe.availableMinionTypes[j]);
            }
        }
        minionsSortedByCost.Sort(delegate(Type t1, Type t2) {
            Minion m1 = TypeIdGenerator.getMinionClass(TypeIdGenerator.getMinionId(t1));
            Minion m2 = TypeIdGenerator.getMinionClass(TypeIdGenerator.getMinionId(t2));
            if (m1.getCost() < m2.getCost())
            {
                return(-1);
            }
            else
            {
                return(1);
            }
        });

        foreach (Type minionType in minionsSortedByCost)
        {
            int minionTypeId = TypeIdGenerator.getMinionId(minionType);
            if (TypeIdGeneratorGUI.minionGuiInst.ContainsKey(minionTypeId))
            {
                GameObject button = (GameObject)GameObject.Instantiate(button_CreateMinion);
                button.transform.parent        = createMinionTowerContainer.transform;
                button.transform.localScale    = new Vector3(1, 1, 1);
                button.transform.localPosition = button_CreateMinion.transform.localPosition + new Vector3(50 * btnIndex, 0, 0);

                UIButtonMessage[] button_messages = button.GetComponents <UIButtonMessage>();
                foreach (var btn_msg in button_messages)
                {
                    btn_msg.parameter = minionTypeId.ToString();
                }

                IMinionGUI minionGUI = TypeIdGeneratorGUI.minionGuiInst[minionTypeId];
                minionGUI.drawCreateMinionButtonGUI(button);
                towerAndMinionButtons.Add(minionType, button);
                btnIndex++;
            }
        }

        // sort towers order by cost
        List <Type> towersSortedByCost = new List <Type>();

        for (int j = 0; j < PlayerMe.availableTowerTypes.Count; j++)
        {
            if (TypeIdGeneratorGUI.towerGuiInst.ContainsKey(TypeIdGenerator.getTowerId(PlayerMe.availableTowerTypes[j])))
            {
                towersSortedByCost.Add(PlayerMe.availableTowerTypes[j]);
            }
        }
        towersSortedByCost.Sort(delegate(Type t1, Type t2)
        {
            Tower m1 = TypeIdGenerator.getTowerClass(TypeIdGenerator.getTowerId(t1));
            Tower m2 = TypeIdGenerator.getTowerClass(TypeIdGenerator.getTowerId(t2));
            if (m1.getCost() < m2.getCost())
            {
                return(-1);
            }
            else
            {
                return(1);
            }
        });

        btnIndex = 0;
        foreach (Type towerType in towersSortedByCost)
        {
            int towerTypeId = TypeIdGenerator.getTowerId(towerType);
            if (TypeIdGeneratorGUI.towerGuiInst.ContainsKey(towerTypeId))
            {
                GameObject button = (GameObject)GameObject.Instantiate(button_CreateTower);
                button.transform.parent        = createMinionTowerContainer.transform;
                button.transform.localScale    = new Vector3(1, 1, 1);
                button.transform.localPosition = button_CreateTower.transform.localPosition + new Vector3(50 * btnIndex, 0, 0);

                UIButtonMessage[] button_messages = button.GetComponents <UIButtonMessage>();
                foreach (var btn_msg in button_messages)
                {
                    btn_msg.parameter = towerTypeId.ToString();
                }

                ITowerGUI towerGUI = TypeIdGeneratorGUI.towerGuiInst[towerTypeId];
                towerGUI.drawCreateTowerButtonGUI(button);
                towerAndMinionButtons.Add(towerType, button);
                btnIndex++;
            }
        }

        button_CreateTower.SetActive(false);
        button_CreateMinion.SetActive(false);
    }
Пример #11
0
        public virtual void drawInfoPanelGUI()
        {
            UIControllerGame controller = UIControllerGame.getInstance();
            Tower            towerTmp;

            if (this.tower == null)             //gercek bir kule degil demek. ikonlari gostermek icin vs. tutulan dummy kule demek.
            {
                towerTmp = TypeIdGenerator.getTowerInsts(TypeIdGenerator.getTowerId(this.towerType));
            }
            else
            {
                towerTmp = this.tower;
            }
            controller.label_TowerCost.text         = towerTmp.getCost().ToString();
            controller.label_TowerTitle.text        = towerTmp.getName();
            controller.label_TowerDescription.text  = getInfo();
            controller.label_TowerAttackCD.text     = towerTmp.getAttackCooldown().ToString();
            controller.label_TowerRange.text        = (towerTmp.getRange() * 100).ToString();
            controller.sprite_TowerIcon.mainTexture = childStaticTowerIcon;


            //remove all upgrade buttons remaining from previous
            var children = new List <GameObject>();

            foreach (Transform child in controller.panel_UpgradeTowerContainer.transform)
            {
                children.Add(child.gameObject);
            }
            children.ForEach(child => GameObject.Destroy(child));

            // eger bu cizim sadece bilgi gostermek icinse veya bu kule sana aitse upgrade'leri ekle
            if (this.tower == null || this.tower.board == PlayerMe.self.board)
            {
                var i = 0;
                foreach (TowerNode node in TypeIdGenerator.getTowerNodeInsts(towerType).children)
                {
                    if (UserMe.unlockedTowers[TypeIdGenerator.getTowerId(node.towerType)])
                    {
                        Tower     child    = TypeIdGenerator.getTowerInsts(TypeIdGenerator.getTowerId(node.towerType));
                        ITowerGUI childGUI = TypeIdGeneratorGUI.towerGuiInst[TypeIdGenerator.getTowerId(node.towerType)];

                        GameObject button = (GameObject)GameObject.Instantiate(controller.button_UpgradeTowerSample);
                        button.transform.parent        = controller.panel_UpgradeTowerContainer.transform;
                        button.transform.localScale    = new Vector3(1, 1, 1);
                        button.transform.localPosition = controller.button_UpgradeTowerSample.transform.localPosition + new Vector3(60 * i, 0, 0);

                        button.GetComponentsInChildren <UIButtonMessage>(true)[0].parameter = TypeIdGenerator.getTowerId(towerType).ToString() + " " + TypeIdGenerator.getTowerId(node.towerType).ToString();

                        button.GetComponentsInChildren <UILabel>(true)[0].text   = child.getCost().ToString();
                        button.GetComponentsInChildren <Tooltiper>(true)[0].text = childGUI.getUpgradeInfo();
                        childGUI.drawCreateTowerButtonGUI(button);

                        if (child.getCost() > PlayerMe.cash)
                        {
                            button.GetComponentsInChildren <UISlicedSprite>(true)[0].color = Color.red;
                        }

                        button.SetActive(true);
                        i++;
                    }
                }
            }

            controller.panel_TowerInfo.SetActive(true);
        }