public TowerBasicData(TowerBasicData data) { Type = data.Type; Hp = data.Hp; Atk = data.Atk; Speed = data.Speed; Range = data.Range; Area = data.Area; Size = data.Size; }
public TowerBasicData(E_TowerType type, float hp, float atk, float speed, float range, float area, E_TileSize size) { Type = type; Hp = hp; Atk = atk; Speed = speed; Range = range; Area = area; Size = size; }
public TowerBasicData GetTowerBasicData(E_TowerType type) { if (towerBasicDataDic.ContainsKey(type)) { return(new TowerBasicData(towerBasicDataDic[type])); } Debug.LogError("Find Not TowerBasicData : " + type.ToString()); return(new TowerBasicData(E_TowerType.BasicTower, 1, 0, 0, 0, 0, E_TileSize.Tile1)); }
/// <summary> /// 오브젝트풀에서 새로운 타워를 얻는다. /// </summary> /// <param name="type"></param> /// <returns></returns> public Tower GetTower(E_TowerType type) { // 오브젝트풀에 해당 타입의 타워가 있다면 tower에 반환 Tower tower = TowerList.Find((temp) => { return(temp.Data.Type == type); }); // 오브젝트풀에 해당 타입의 타워가 없다면 새로 생성 if (tower == null) { tower = Instantiate(TowerDic[type]); } // 있다면 해당 타워를 사용하기 위해서 오브젝트풀에서 제거 else { TowerList.Remove(tower); } return(tower); }
public void BuildTower(Tile.Position pos, E_TowerType type) { Tower tower = ObjectPoolManager.Instance.GetTower(type); if (tower.Type == E_TowerType.BasicTower) { return; } if (tower.Type == E_TowerType.MainTower) { MainTower = tower; } tower.transform.parent = transform; tower.transform.localPosition = TileManager.Instance.GetTIleRealPosision(pos); tower.SetData(TowerDataManager.Instance.GetTowerBasicData(type), pos); tower.OnDestroyTower = TileManager.Instance.OnDestroyTower; tower.OnDestroyTower += (p) => { ObjectPoolManager.Instance.SetTower(tower); }; tower.SetActive(true); }
public void InitShop(E_TowerType type, Tower tower = null) { unBuildTower.Target = tower; if (type == E_TowerType.MainTower) { type = E_TowerType.BasicTower; } unBuildTower.SetActive(type != E_TowerType.BasicTower); backTowerList.SetActive(type != E_TowerType.BasicTower); if (TowerCostDIc.ContainsKey(type)) { List <TowerSimpleData> tempList = TowerCostDIc[type]; for (int i = 0; i < towerinfoList.Count; ++i) { if (i < tempList.Count) { towerinfoList[i].SetData(tempList[i], tower); towerinfoList[i].SetActive(true); } else { towerinfoList[i].SetActive(false); } } } else { foreach (TowerInfo info in towerinfoList) { info.SetActive(false); } } grid.Reposition(); }
public TowerSimpleData(TowerSimpleData data) { TowerType = data.TowerType; TowerSize = data.TowerSize; Cost = data.Cost; }
public TowerSimpleData(E_TowerType type, E_TileSize size, int cost) { TowerType = type; TowerSize = size; Cost = cost; }