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