Пример #1
0
        private void setAvailableTowersOfPlayer()
        {
            Type root = null;

            switch (PlayerMe.self.board.scienceType)
            {
            case ScienceType.PHYS:
                root = typeof(PhysicsTower);
                break;

            case ScienceType.CHEM:
                root = typeof(ChemistryTower);
                break;

            case ScienceType.BIO:
                root = typeof(BiologyTower);
                break;
            }

            PlayerMe.availableTowerTypes = new List <Type>();
            for (int i = 0; i < UserMe.unlockedTowers.Length; i++)
            {
                if (UserMe.unlockedTowers[i])
                {
                    Type      towerType = TypeIdGenerator.getTowerType(i);
                    TowerNode towerNode = TypeIdGenerator.getTowerNodeInsts(towerType);
                    if (UserMe.unlockedTowers[i] && towerNode.parent != null && towerNode.parent.towerType == root)
                    {
                        PlayerMe.availableTowerTypes.Add(towerType);
                    }
                }
            }
        }
Пример #2
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);
        }