Example #1
0
 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;
 }
Example #2
0
 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;
 }
Example #3
0
    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));
    }
Example #4
0
    /// <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);
    }
Example #5
0
    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);
    }
Example #6
0
    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();
    }
Example #7
0
 public TowerSimpleData(TowerSimpleData data)
 {
     TowerType = data.TowerType;
     TowerSize = data.TowerSize;
     Cost      = data.Cost;
 }
Example #8
0
 public TowerSimpleData(E_TowerType type, E_TileSize size, int cost)
 {
     TowerType = type;
     TowerSize = size;
     Cost      = cost;
 }