Пример #1
0
    private void Awake()
    {
        for (int i = 0; i < m_nCount.Length; ++i)
        {
            m_nCount[i] = 0;
        }
        m_Propertycount = new int[6];

        //씬 다시 로드해서 초기화
        m_nGold = 20;
        m_DicTwCsGet.Clear();
        m_DicCheck.Clear();
        m_DicSynergyCount.Clear();
        m_DicTowerProperty.Clear();
        m_DicTowerNumber.Clear();

        m_TwMk = gameObject.GetComponent <TowerPick>();
        m_TwUg = gameObject.GetComponent <TowerUpgrade>();

        m_TwMk.Init();
        m_TwUg.Init();

        DataMng.AddTable(TableType.TowerTable);
        DataMng.AddTable(TableType.SynergyTable);

        //시너지를 확인하기위한 타워의 번호 부여
        for (int i = 0; i < m_LisTwNumber.Count; ++i)
        {
            m_DicTowerNumber.Add(m_LisTwNumber[i].name, i);
        }
        m_SeeUi = UIAdd.Get <SeeUI>(UIType.SeeUI);
    }
Пример #2
0
        private void SetupUpgradeButton(TowerUpgrade upgrade, UpgradeButtonDTO upgradeButtonDTO)
        {
            if (upgrade == null)
            {
                ShowBlankButton(upgradeButtonDTO);
                return;
            }
            var button    = upgradeButtonDTO.Button;
            var nameText  = upgradeButtonDTO.NameText;
            var costText  = upgradeButtonDTO.CostText;
            var iconImage = upgradeButtonDTO.Icon;

            button.image.color = Color.white;
            iconImage.color    = Color.white;
            nameText.text      = upgrade.Name;
            iconImage.sprite   = upgrade.Icon;
            button.onClick.RemoveAllListeners();
            if (HavePurchased(upgrade))
            {
                button.interactable = false;
                costText.text       = $"Already Bought: {upgrade.Cost}";
            }
            else if (CannotAfford(upgrade))
            {
                button.interactable = false;
                costText.text       = $"Can't Afford\n{upgrade.Cost}";
            }
            else
            {
                button.interactable = true;
                button.onClick.AddListener(() => OnButtonUpgradeTower(upgrade, _towerController));
                costText.text = $"Buy for: {upgrade.Cost}";
            }
        }
Пример #3
0
 public virtual void Upgrade(TowerUpgrade upgradeInfo)
 {
     damage   = upgradeInfo.damage;
     fireRate = upgradeInfo.fireRate;
     range    = upgradeInfo.range;
     upgradeLevel++;
 }
Пример #4
0
    private TowerUpgrade GetAssociatedUpgrade()
    {
        List <TowerUpgrade> upgrades     = GetSelectedTower().GetBuyableUpgrades();
        TowerUpgrade        towerUpgrade = upgrades.Find(u => u.track == upgrade);

        return(towerUpgrade);
    }
Пример #5
0
 private void HideTowerUI()
 {
     _towerController = null;
     _upgrade1        = null;
     _upgrade2        = null;
     _gameController.OnMoneyChanged -= OnMoneyChanged;
     _selectedTowerPanel.SetActive(false);
 }
Пример #6
0
    private void Start()
    {
        ElementType = Element.POISON;

        Upgrades = new TowerUpgrade[]
        {
            new TowerUpgrade(2, 1, 1, 2, 10),
            new TowerUpgrade(2, 1, 1, 2, 20),
        };
    }
Пример #7
0
    private void Start()
    {
        ElementType = Element.FROST;

        Upgrades = new TowerUpgrade[]
        {
            new TowerUpgrade(2, 1, 1, 2, 10),
            new TowerUpgrade(2, 1, 1, 2, 20)
        };
    }
Пример #8
0
 public void BuyUpgrade(TowerUpgrade upgrade)
 {
     if (!GetBuyableUpgrades().Exists(u => u == upgrade))
     {
         return;
     }
     Upgrades.Add(upgrade);
     upgrade.Apply(TowerProperties, ShotProperties);
     VisualUpdatesForUpgrades();
 }
Пример #9
0
    private void Start()
    {
        ElementType = Element.POISON;

        Upgrades = new TowerUpgrade[]
        {
            new TowerUpgrade(2, 1, 0.5f, 5, -0.2f, 1),
            new TowerUpgrade(5, 1, 0.5f, 5, -0.2f, 1),
        };
    }
Пример #10
0
    private void Start()
    {
        ElementType = Element.FROST;

        Upgrades = new TowerUpgrade[]
        {
            new TowerUpgrade(2, 1, 0.5f, -0.1f, 1),
            new TowerUpgrade(5, 1, 0.5f, -0.1f, 1),
        };
    }
Пример #11
0
    private void Start()
    {
        ElementType = Element.ICE;

        Upgrades = new TowerUpgrade[]
        {
            new TowerUpgrade(2, 1, 1, 2, 10f),
            new TowerUpgrade(2, 1, 1, 2, 20f)
        };
    }
Пример #12
0
    private void Start()
    {
        ElementType = Element.FIRE;

        Upgrades = new TowerUpgrade[]
        {
            new TowerUpgrade(2, 2, 0.5f, 5f, -0.2f, 1),
            new TowerUpgrade(5, 3, 0.5f, 5f, -0.2f, 1)
        };
    }
Пример #13
0
    private void Start()
    {
        ElementType = Element.STORM;

        Upgrades = new TowerUpgrade[]
        {
            new TowerUpgrade(2, 2, 1, 2),
            new TowerUpgrade(5, 3, 1, 2),
        };
    }
Пример #14
0
    private void Start()
    {
        ElementType = Element.FIRE;

        Upgrades = new TowerUpgrade[]
        {
            new TowerUpgrade(2,2,.5f,5,-0.1f,1),
            new TowerUpgrade(5, 3, .5f, 5, -0.1f, 1),
        };
    }
Пример #15
0
    public override void Upgrade(TowerUpgrade upgradeInfo)
    {
        base.Upgrade(upgradeInfo);

        GunTowerUpgrade upgrade = (GunTowerUpgrade)upgradeInfo;

        gunSpeed        = upgrade.gunSpeed;
        projectileSpeed = upgrade.projectileSpeed;
        pierce          = upgrade.pierce;
    }
Пример #16
0
 public void SetTower(GameObject tw)
 {
     _tower        = tw;
     _icon.sprite  = _tower.GetComponent <SpriteRenderer>().sprite;
     _atower       = _tower.GetComponent <ATower>();
     _towerUpgrade = _tower.GetComponent <TowerUpgrade>();
     _destroyButton.interactable = true;
     CanFirerateUp();
     MoneyUpdate();
     UIupdate();
 }
Пример #17
0
    private void Start()
    {
        ElementType = Element.RED;

        Upgrades = new TowerUpgrade[]
        {
            new TowerUpgrade(2, 25),
            new TowerUpgrade(5, 30),
            new TowerUpgrade(10, 40)
        };
    }
Пример #18
0
 private void Start()
 {
     ElementType = Element.LARGEROCK;
     Upgrades    = new TowerUpgrade[]
     {
         new TowerUpgrade(8, 2, 0.5f, 5),
         new TowerUpgrade(20, 3, 0.5f, 5),
         new TowerUpgrade(50, 10, 0.5f, 5),
         new TowerUpgrade(100, 20, 0.5f, 10)
     };
 }
Пример #19
0
    public void Start()
    {
        ElementType = Element.GREEN;

        Upgrades = new TowerUpgrade[]
        {
            new TowerUpgrade(3, 18),
            new TowerUpgrade(10, 21),
            new TowerUpgrade(20, 25)
        };
    }
Пример #20
0
    private void Start()
    {
        //Sets the element type
        ElementType = Element.STORM;

        //Creates the upgrades
        Upgrades = new TowerUpgrade[]
        {
            new TowerUpgrade(2, 2, 1, 2),
            new TowerUpgrade(5, 3, 1, 2),
        };
    }
Пример #21
0
    private void Start()
    {
        //Sets the elementtype to fire
        ElementType = Element.FIRE;

        //Sets up the upgrades
        Upgrades = new TowerUpgrade[]
        {
            new TowerUpgrade(2, 2, .5f, 5, -0.1f, 1),
            new TowerUpgrade(5, 3, .5f, 5, -0.1f, 1),
        };
    }
Пример #22
0
    private void Start()
    {
        ElementType = Element.EARTH;

        Upgrades = new TowerUpgrade[]
        {
            //new TowerUpgrade(2,2,1,2),   // first upgrade
            //new TowerUpgrade(5,3,1,2),   //second upgrade
            new TowerUpgrade(price1, damage1, debuffDuration1, procChance1),
            new TowerUpgrade(price2, damage2, debuffDuration2, procChance2),
        };
    }
Пример #23
0
 private void TowerUpgraded(TowerBehavior tower, TowerUpgrade upgrade)
 {
     //Add 1 to the faction that gained a tower
     if (tower.Faction == FactionController.PlayerFaction)
     {
         playerGameStateInfo.numUpgrades++;
     }
     else if (tower.Faction == FactionController.OtherFaction1)
     {
         AIGameStateInfo.numUpgrades++;
     }
 }
Пример #24
0
    private void Start()
    {
        //Sets the element time
        ElementType = Element.POISON;

        //Sets up the upgrades
        Upgrades = new TowerUpgrade[]
        {
            new TowerUpgrade(2, 1, .5f, 5, -0.1f, 1),
            new TowerUpgrade(5, 1, .5f, 5, -0.1f, 1),
        };
    }
Пример #25
0
    private void Start()
    {
        ElementType = Element.POISON;

        Upgrades = new TowerUpgrade[]
        {
            //new TowerUpgrade(2,1,0.5f,5,-0.1f,1),   // first upgrade
            //new TowerUpgrade(5,1,0.5f,5,-0.1f,1),   //second upgrade
            new TowerUpgrade(price1, damage1, debuffDuration1, procChance1, tickTime1, specialDamage1),
            new TowerUpgrade(price2, damage2, debuffDuration2, procChance2, tickTime2, specialDamage2),
        };
    }
Пример #26
0
    private void Start()
    {
        //Sets the tower elements
        ElementType = Element.FROST;

        //Sets the upgrades for the tower
        Upgrades = new TowerUpgrade[]
        {
            new TowerUpgrade(2, 1, 1, 2, 10),
            new TowerUpgrade(2, 1, 1, 2, 20),
        };
    }
Пример #27
0
 private void Start()
 {
     ElementType = Element.FIRE;      //이 타워 타입 설정
     Upgrades    = new TowerUpgrade[] //업그레이드
     {
         //가격, 데미지, 지속시간, 확률, 간격, 지속데미지
         new TowerUpgrade(2, 2, 0.5f, 1, -0.1f, 1),
         new TowerUpgrade(3, 4, 0.5f, 1, -0.1f, 2),
         new TowerUpgrade(4, 6, 0.5f, 1, -0.1f, 3),
         new TowerUpgrade(5, 8, 0.5f, 1, -0.1f, 4),
         new TowerUpgrade(6, 10, 0.5f, 1, -0.1f, 5),
     };
 }
Пример #28
0
 private void Start()
 {
     ElementType = Element.POISON;    //속성 타입
     Upgrades    = new TowerUpgrade[] //업그레이드
     {
         //가격, 데미지, 지속시간, 확률, 나오는간격, 표식데미지
         new TowerUpgrade(2, 1, 1, 1, 0, 3),
         new TowerUpgrade(4, 3, 1, 1, 0, 6),
         new TowerUpgrade(6, 5, 1, 1, 0, 9),
         new TowerUpgrade(8, 5, 1, 1, 0, 12),
         new TowerUpgrade(10, 5, 1, 1, 0, 15)
     };
 }
Пример #29
0
 private void Start()
 {
     ElementType = Element.STORM;     //속성 설정
     Upgrades    = new TowerUpgrade[] //타워 업그레이드
     {
         //가격 , 데미지 , 지속시간 , 확률
         new TowerUpgrade(2, 2, 0.1f, 1),
         new TowerUpgrade(5, 5, 0.1f, 1),
         new TowerUpgrade(10, 10, 0.1f, 1),
         new TowerUpgrade(10, 10, 0.1f, 1),
         new TowerUpgrade(20, 20, 0.1f, 1)
     };
 }
Пример #30
0
 private void Start()
 {
     ElementType = Element.ICE;       //속성 타입
     Upgrades    = new TowerUpgrade[] //업그레이드
     {
         // 가격,데미지,지속시간,확률,둔화율
         new TowerUpgrade(2, 1, 1, 1, 2),
         new TowerUpgrade(3, 2, 1, 1, 2),
         new TowerUpgrade(4, 3, 1, 1, 2),
         new TowerUpgrade(5, 4, 1, 1, 2),
         new TowerUpgrade(6, 5, 1, 1, 2)
     };
 }