Example #1
0
 public void ShowInfo(ClientTower tower)
 {
     if (tower == null)
     {
         infoPanel.SetActive(false);
     }
     else
     {
         infoPanel.SetActive(true);
         antInfoPanel.SetActive(false);
         towerInfoPanel.SetActive(true);
         if (tower.Level == 3)
         {
             basicUpgradePanel.SetActive(false);
             elementSelectPanel.SetActive(true);
             elementUpgradePanel.SetActive(false);
         }
         else if (tower.Level % 3 == 0)
         {
             basicUpgradePanel.SetActive(false);
             elementSelectPanel.SetActive(false);
             elementUpgradePanel.SetActive(true);
         }
         else
         {
             basicUpgradePanel.SetActive(true);
             elementSelectPanel.SetActive(false);
             elementUpgradePanel.SetActive(false);
         }
         ShowTowerInfo(tower);
     }
 }
Example #2
0
 public void ClearSelect()
 {
     if (selectedTower != null)
     {
         selectedTower.TowerInstance.transform.GetChild(0).gameObject.SetActive(false);
     }
     selectedTower = null;
     towerInfoController.ShowInfo(null);
 }
Example #3
0
 public void SelectTower(ClientTower tower)
 {
     if (selectedTower != null)
     {
         selectedTower.TowerInstance.transform.GetChild(0).gameObject.SetActive(false);
     }
     selectedTower = tower;
     towerInfoController.ShowInfo(tower);
     selectedTower.TowerInstance.transform.GetChild(0).gameObject.SetActive(true);
 }
Example #4
0
 public override bool DestroyTower(Tower tower, Game game)
 {
     if (base.DestroyTower(tower, game))
     {
         ClientTower targetTower = tower as ClientTower;
         towerManager.DestroyTowerInstance(targetTower);
         return(true);
     }
     else
     {
         return(false);
     }
 }
Example #5
0
 public override bool BuildTower(float positionX, float positionY, Game game, out Tower tower, out string errorMessage)
 {
     if (base.BuildTower(positionX, positionY, game, out tower, out errorMessage))
     {
         ClientTower targetTower = tower as ClientTower;
         Button      button;
         targetTower.BindInstance(towerManager.InstantiateNewTower(positionX, positionY, out button), button);
         button.onClick.AddListener(() => (IANTGame.Game.TowerFactory as ClientTowerFactory).towerManager.SelectTower(targetTower));
         return(true);
     }
     else
     {
         return(false);
     }
 }
Example #6
0
    public void DisplaceTowers()
    {
        Tower[] towers = towerDictionary.Values.ToArray();

        for (int i = 0; i < towers.Length; i++)
        {
            ClientTower targetTower = towers[i] as ClientTower;
            Button      button;
            targetTower.BindInstance(towerManager.InstantiateNewTower(targetTower.PositionX, targetTower.PositionY, out button), button);
            button.onClick.AddListener(() => (IANTGame.Game.TowerFactory as ClientTowerFactory).towerManager.SelectTower(targetTower));
            switch (targetTower.ElementType)
            {
            case ElelmentType.Ice:
                targetTower.TowerInstance.GetComponent <SpriteRenderer>().color = new Color(170f / 255f, 255f / 255f, 228 / 255f);
                break;

            case ElelmentType.Fire:
                targetTower.TowerInstance.GetComponent <SpriteRenderer>().color = new Color(255f / 255f, 84f / 255f, 0f / 255f);
                break;

            case ElelmentType.Thunder:
                targetTower.TowerInstance.GetComponent <SpriteRenderer>().color = new Color(120f / 255f, 56f / 255f, 138f / 255f);
                break;

            case ElelmentType.Wind:
                targetTower.TowerInstance.GetComponent <SpriteRenderer>().color = new Color(160f / 255f, 255f / 255f, 171f / 255f);
                break;

            case ElelmentType.Poison:
                targetTower.TowerInstance.GetComponent <SpriteRenderer>().color = new Color(37f / 255f, 82f / 255f, 33f / 255f);
                break;

            case ElelmentType.Wood:
                targetTower.TowerInstance.GetComponent <SpriteRenderer>().color = new Color(0f / 255f, 197f / 255f, 9f / 255f);
                break;
            }
            if (targetTower.ElementType == ElelmentType.Wind)
            {
                float radius = targetTower.Range / 30f;
                targetTower.TowerInstance.GetComponent <CircleCollider2D>().radius = radius;
                targetTower.TowerInstance.transform.GetChild(0).localScale         = new Vector3(2f * radius, 2f * radius, 1f);
            }
        }
    }
Example #7
0
 public void DestroyTowerInstance(ClientTower tower)
 {
     Destroy(tower.TowerInstance);
 }