private static bool ReadCanonData(XElement towerData, TowerAssetData assetData, out Declarations.TowerData tower) { var levels = new Declarations.FiringTowerLevelData[3]; bool failed = false; #region Level1 var level1 = towerData.Element(Constants.cst_Level1); if (level1 != null) { levels[0] = new Declarations.FiringTowerLevelData(ReadInt(level1, Constants.cst_Price, ref failed), ReadFloat(level1, Constants.cst_Range, ref failed), ReadFloat(level1, Constants.cst_FireRate, ref failed), ReadInt(level1, Constants.cst_Damage, ref failed)); } else { failed = true; } #endregion #region Level2 var level2 = towerData.Element(Constants.cst_Level2); if (level2 != null) { levels[1] = new Declarations.FiringTowerLevelData(ReadInt(level2, Constants.cst_UpgradePrice, ref failed), ReadFloat(level2, Constants.cst_Range, ref failed), ReadFloat(level2, Constants.cst_FireRate, ref failed), ReadInt(level2, Constants.cst_Damage, ref failed)); } else { failed = true; } #endregion #region Level3 var level3 = towerData.Element(Constants.cst_Level3); if (level3 != null) { levels[2] = new Declarations.FiringTowerLevelData(ReadInt(level3, Constants.cst_UpgradePrice, ref failed), ReadFloat(level3, Constants.cst_Range, ref failed), ReadFloat(level3, Constants.cst_FireRate, ref failed), ReadInt(level3, Constants.cst_Damage, ref failed)); } #endregion if (failed) { Debug.Log("Filed to read canon tower"); tower = null; return(false); } else { tower = new Declarations.CanonTower(assetData, levels); return(true); } }
public void ShopItemClicked(Declarations.TowerData towerData) { informationPanel.gameObject.SetActive(true); informationPanel.LoadTowerData(towerData); GameManager.instance.BuildManager.CurrentTower = towerData; GameManager.instance.BuildManager.Selling = false; GameManager.instance.BuildManager.SellClicked = false; }
public void LoadTowerData(Declarations.TowerData towerData) { currentTower = towerData; towerName.text = currentTower.Type.ToString(); UpdateInfoPanel(); upgradeButton.onClick.AddListener(UpgradeTowerClicked); }
public void Setup(Declarations.TowerData towerData) { this.towerData = towerData; image.sprite = towerData.CurrentSprite; price.text = towerData.CurrentPrice.ToString(); UpdateTextColor(); UpdateMenu(); towerData.Upgraded.AddListener(UpdateMenu); var button = GetComponent <Button>(); button.onClick.AddListener(delegate { GameManager.instance.UIManager.ShopItemClicked(towerData); }); GameManager.instance.MoneyChanged.AddListener(UpdateTextColor); }
public static bool ReadTowerData(XElement towerData, TowerAssetData assetData, Declarations.TowerType towerType, out Declarations.TowerData tower) { switch (towerType) { case Declarations.TowerType.Canon: return(ReadCanonData(towerData, assetData, out tower)); case Declarations.TowerType.Plasma: return(ReadPlasmaData(towerData, assetData, out tower)); case Declarations.TowerType.Crystal: return(ReadCrystalData(towerData, assetData, out tower)); case Declarations.TowerType.Tesla: return(ReadTeslaData(towerData, assetData, out tower)); case Declarations.TowerType.Laser: return(ReadLaserData(towerData, assetData, out tower)); case Declarations.TowerType.Radar: return(ReadRadarData(towerData, assetData, out tower)); default: Debug.Log("Unknown tower type"); break; } tower = null; return(false); }