public void UpgradeTower()
    {
        // finds the selected object
        objectToUpgrade = GameObject.FindGameObjectWithTag("Selected");
        if (objectToUpgrade != null)
        {
            // gets the towerManagement script
            towerManagement = objectToUpgrade.GetComponent <TowerManagement> ();
            // gets the tower that the object upgrades to
            towerUpgrade = towerManagement.upgradedTower;
            // gets the towerStats script of the upgraded tower
            if (towerUpgrade != null)
            {
                upgradeTowerStats = towerUpgrade.GetComponent <TowerStats> ();
            }
            else
            {
                return;
            }

            scoreManager = GameObject.FindObjectOfType <ScoreManager> ();


            if (scoreManager.money >= upgradeTowerStats.price && objectToUpgrade != null && towerUpgrade != null)
            {
                scoreManager.money -= upgradeTowerStats.price;
                Vector3    postion  = objectToUpgrade.transform.position;
                Quaternion rotation = objectToUpgrade.transform.rotation;

                Instantiate(towerUpgrade, postion, rotation);
                Destroy(objectToUpgrade);
            }
        }
    }
 void Start()
 {
     Stats           = this.gameObject.GetComponent <TowerStats>();
     ChemTrailScript = ChemTrail.GetComponent <ChimicalTrail>();
     InvokeRepeating("UpdateTarget", 0f, 0.1f);
     //ChemTrailScript.OverTimeDMG = DMGOverTime / 2f;
 }
Exemple #3
0
 public void UpdateTowerStats(TowerStats towerStats)
 {
     SetDamage(towerStats.MinDamage, towerStats.MaxDamage);
     SetHealth(towerStats.MaxHealth);
     SetFireRate(towerStats.FireRate);
     SetSlowDownFactor(towerStats.SlowFactor);
 }
    public void SetInfo(float damage, float firerate, TowerStats ts, GameObject go)
    {
        Vector2 dvector = damageTrans.sizeDelta;

        dvector.x             = 60 * (damage / 6);
        damageTrans.sizeDelta = dvector;

        Vector2 fvector = fireTrans.sizeDelta;

        fvector.x           = 60 * (0.3f / firerate);
        fireTrans.sizeDelta = fvector;

        if (!ts.dirMatter)
        {
            transform.Find("Dropdown").gameObject.SetActive(false);
        }
        else
        {
            transform.Find("Dropdown").gameObject.SetActive(true);
            this.ts = ts;
            transform.Find("Dropdown").GetComponent <Dropdown>().value = ts.dir;
        }

        transform.Find("Name").GetComponent <Text>().text = ts.hireName;
        transform.Find("Icon").Find("Content").GetComponent <Image>().sprite = ts.icon;

        this.ts = ts;

        transform.Find("Upgrade").GetComponent <UpgradeScript>().TsSetup(ts);

        currentGameObject = go;
        UpgradeSetup();
    }
Exemple #5
0
        private ConstructionView.DisplayUIComp[] GetTowerUpgradePath(TowerUnit towerUnit)
        {
            if (towerUnit.unitStats == null)
            {
                return(null);
            }

            TowerStats towerStats = (TowerStats)towerUnit.unitStats;
            List <ConstructionView.DisplayUIComp> uiComps = new List <ConstructionView.DisplayUIComp>();

            if (towerStats.upgrade_path != null && towerStats.upgrade_path.Length > 0)
            {
                int upgradePathLength = towerStats.upgrade_path.Length;

                for (int i = 0; i < upgradePathLength; i++)
                {
                    uiComps.Add(GetTowerUIComp(towerUnit, towerStats.upgrade_path[i]));
                }
            }

            uiComps.Add(GetTowerInfoComp(towerStats));
            uiComps.Add(GetTowerSaleComp(towerStats));

            return(uiComps.ToArray());
        }
Exemple #6
0
 public void SetStats(TowerStats stats)
 {
     costValue.text     = "$ " + stats.cost;
     damageValue.text   = stats.damage.ToString();
     firerateValue.text = Math.Round(1 / stats.shootInterval, 2) + "/s";
     rangeValue.text    = stats.range.ToString();
 }
Exemple #7
0
    public static void BuildTower(Transform position, TowerStats stats)
    {
        Tower tower = MonoBehaviour.Instantiate(variables.towerPrefab);

        tower.transform.position = new Vector3(position.transform.position.x, position.transform.position.y, -2);
        tower.Stats = stats;
    }
Exemple #8
0
    void Awake()
    {
        inRange   = new List <GameObject>();
        lastShoot = Time.time;

        information = GameObject.Find("UICanvas").transform.Find("Information").gameObject;
        currentAmmo = maxAmmo;

        needAmmo = transform.Find("NeedAmmo").gameObject;

        highlight = transform.Find("Highlight").gameObject;
        highlight.GetComponent <SpriteRenderer>().color = canBuild;

        if (isUpgrade)
        {
            state = State.BUILT;
        }
        else
        {
            state = State.SELECT;
        }

        anim     = transform.Find("Content").GetComponent <Animator>();
        shooting = false;
        ts       = GetComponent <TowerStats>();
    }
Exemple #9
0
    public void AssignTowerData(Tower tower)
    {
        gameObject.SetActive(tower != null);

        m_tower = tower;
        TowerSaveData saveData = tower.GetSaveData();
        TowerStats    stats    = tower.GetData().Stats;
        var           data     = tower.GetCreatureData();

        m_towerImage.sprite = data.TowerData.TowerSprite;
        m_towerName.text    = data.TowerData.name;

        var abilities = tower.GetEquippedAbilities();

        m_ability1Panel.AssignData(abilities[0]);
        m_ability2Panel.AssignData(abilities.Count > 1 ? abilities[1] : null);
        SelectAbility(tower.CurrentAbilityIndex);

        m_xpImage.fillAmount      = GameManager.Instance.GetNextLevelXpPercentage(saveData.xp, saveData.level);
        m_levelTMPro.text         = LEVEL_BASE_TEXT + saveData.level;
        m_attackValueTMPro.text   = "+" + stats.GetStat(EStat.AttackBuff).ToString("F0") + "%";
        m_hasteValueTMPro.text    = "+" + stats.GetStat(EStat.Haste).ToString("F0") + "%";
        m_rangeValueTMPro.text    = "+" + stats.GetStat(EStat.Range).ToString("F0") + "%";
        m_presenceValueTMPro.text = "+" + stats.GetStat(EStat.Presence).ToString("F0") + "%";
        m_type1Icon.AssignType(data.CreaturePrimaryType);
        m_type2Icon.AssignType(data.CreatureSecondaryType);
    }
Exemple #10
0
 public short getCost()
 {
     if (stats.cost == 0)
     {
         stats = GetComponentInParent <TowerTypes>().getTowerStats(type);
     }
     return(stats.cost);
 }
    /// <summary>
    /// This method is for displaying range of tower that wasn`t spawned yet
    /// </summary>
    /// <param name="spawner"></param>
    /// <param name="tower"></param>
    public void ShowRange(TowerSpawner spawner, TowerStats stats)
    {
        transform.position = new Vector3(spawner.transform.position.x,
                                         spawner.transform.position.y - 0.2f, spawner.transform.position.z);
        transform.localScale = Vector3.zero;

        StartResize(new Vector3(stats.DoubledInitialRange, 0.01f, stats.DoubledInitialRange));
    }
Exemple #12
0
    public void SetStats(TowerStats stats, int index)
    {
        this.stats = stats;

        //NOTE(Simon): Index [1], to ignore self.
        GetComponentsInChildren <Image>()[1].sprite = Resources.Load <Sprite>(stats.image);
        GetComponentInChildren <Text>().text        = index.ToString();
    }
 // Use this for initialization
 void Start()
 {
     tower = transform.parent.GetComponent<TowerStats>();
     manager = transform.parent.GetComponent<EarthProjectilesManager>();
     damage = tower.getDamage();
     armorPen = tower.getArmorPen();
     type = tower.getType();
 }
Exemple #14
0
 private ConstructionView.DisplayUIComp GetTowerSaleComp(TowerStats towerStats)
 {
     return(FormTowerUIComp("Sale", towerStats.id, UtilityMethod.LoadSpriteFromMulti(spriteSheet, VariableFlag.TowerSpriteID.TowerSale),
                            () =>
     {
         SelectTowerToSale(currentSelectedNode, towerStats);
     }));
 }
Exemple #15
0
 private ConstructionView.DisplayUIComp GetTowerUIComp(TowerUnit towerUnit, TowerStats towerStats)
 {
     return(FormTowerUIComp("$" + towerStats.cost, towerStats.id, towerStats.sprite,
                            () =>
     {
         SelectTowerToUpgrade(towerUnit, towerStats);
     }));
 }
Exemple #16
0
    //TODO
    //Get Tower Price and add it to calculation in  PricePlusUpgrade and OnSell funciton
    public void SetTarget(TowerStats _target)
    {
        Debug.Log("Set Target");
        target = _target;

        transform.position = target.GetBuildPosition();
        UI.SetActive(true);
    }
Exemple #17
0
    static private void CreateTowerStats(StatsHolder statsHolder)
    {
        TextAsset csvText = (TextAsset)AssetDatabase.LoadAssetAtPath(DATABASE_FOLDER + "/CSV/database - tower.csv", typeof(TextAsset));

        UnityEngine.Object[] rawSpriteSheet = AssetDatabase.LoadAllAssetsAtPath(TOWER_SPRITE_PATH);

        var sprteSheet = rawSpriteSheet.Where(q => q is Sprite).Cast <Sprite>().ToArray();


        CSVFile csvFile = new CSVFile(csvText.text);

        AssetDatabase.CreateFolder(DATABASE_FOLDER + "/Asset", "Tower");

        int csvCount = csvFile.length;

        for (int i = csvCount - 1; i >= 0; i--)
        {
            string id = csvFile.Get <string>(i, "ID");

            if (string.IsNullOrEmpty(id))
            {
                continue;
            }

            TowerStats c_prefab = ScriptableObjectUtility.CreateAsset <TowerStats>(DATABASE_FOLDER + "/Asset/Tower/", "[TowerStat] " + id);
            EditorUtility.SetDirty(c_prefab);

            c_prefab.id    = id;
            c_prefab.label = csvFile.Get <string>(i, "Label");
            c_prefab.tag   = csvFile.Get <string>(i, "Tag");

            c_prefab.hp    = csvFile.Get <float>(i, "HP");
            c_prefab.level = csvFile.Get <int>(i, "Level");
            c_prefab.atk   = csvFile.Get <float>(i, "ATK");
            c_prefab.spd   = csvFile.Get <float>(i, "SPD");
            c_prefab.range = csvFile.Get <float>(i, "RANGE");
            c_prefab.cost  = csvFile.Get <int>(i, "COST");
            c_prefab.value = c_prefab.cost;

            string upgradePath = csvFile.Get <string>(i, "Update Path");
            if (!string.IsNullOrEmpty(upgradePath))
            {
                string[] upgradePathArray = upgradePath.Split(new string[] { "," }, System.StringSplitOptions.None);
                c_prefab = UpdateTowerUpgradePath(c_prefab, statsHolder, upgradePathArray);
            }

            string rawSkills = csvFile.Get <string>(i, "Skill");
            if (!string.IsNullOrEmpty(rawSkills))
            {
                string[] skillArray = rawSkills.Split(new string[] { "," }, System.StringSplitOptions.None);
                c_prefab.skills = GetSkillFromIDs(statsHolder, skillArray);
            }

            c_prefab.sprite = UtilityMethod.LoadSpriteFromMulti(sprteSheet, csvFile.Get <string>(i, "Sprite ID"));

            statsHolder.stpObjectHolder.Add(c_prefab);
        }
    }
Exemple #18
0
 private void Start()
 {
     stats    = GetComponentInParent <TowerTypes>().getTowerStats(type);
     timer    = stats.rateFire;
     startPos = new Vector2(transform.position.x, transform.position.y);
     m.frames.addItem(this);
     m.tracker.addTower(this);
     usesLeft = stats.uses;
 }
Exemple #19
0
    public static TowerStats operator +(TowerStats stats1, TowerStats stats2)
    {
        var t = new TowerStats();

        t.AtmosphereRange         = stats1.AtmosphereRange + stats2.AtmosphereRange;
        t.UnitsGeneratedPerSecond = stats1.UnitsGeneratedPerSecond + stats2.UnitsGeneratedPerSecond;
        t.Endurance = stats1.Endurance + stats2.Endurance;
        return(t);
    }
Exemple #20
0
    /// <summary>
    /// Обновляет башню на позиции
    /// </summary>
    /// <param name="order">Номер площадки</param>
    public void UpgradeTower(int order)
    {
        TowerStats stats     = _getStatsByOrder(order);
        var        newPrefid = (int)stats.Type * 3 + stats.Level;
        var        newStats  = _towerStatsList[newPrefid];

        DestroyTower(order);
        _setTower(order, newStats);
    }
Exemple #21
0
    private void Awake()
    {
        if (string.IsNullOrEmpty(towerName))
        {
            towerName = gameObject.name;
        }

        _stats = GetComponent <TowerStats>();
    }
    // Update is called once per frame
    void Update()
    {
        if (mHealth <= 0)
        {
            if (gameObject.name == "ufo" || gameObject.name == "ufo(Clone)")
            {
                Transform [] ts = gameObject.GetComponentsInChildren <Transform>();
                for (int i = 0; i < ts.Length; i++)
                {
                    if (ts[i].gameObject.tag == "Enemy" && ts[i].gameObject.name != gameObject.name)
                    {
                        ts[i].gameObject.transform.parent   = null;
                        ts[i].gameObject.transform.position = new Vector3(ts[i].gameObject.transform.position.x, 0.0f, ts[i].gameObject.transform.position.z);
                        Debug.Log("WWWWWWWWWWWWWWWWW");
                    }
                }

                /*
                 * foreach(Transform child in gameObject.transform)
                 * {
                 *      Debug.Log("WWWWWWWWWWWWWWWWW");
                 *      if(child.gameObject.tag == "Enemy")
                 *      {
                 *
                 *              child.gameObject.transform.parent = null;
                 *              child.gameObject.transform.position = new Vector3(child.gameObject.transform.position.x, 0.0f, child.gameObject.transform.position.z);
                 *      }
                 * }
                 */
            }
            GameObject gc = GameObject.FindGameObjectWithTag("GameController");
            if (gc)
            {
                NewSpawnWaves sw = gc.GetComponent <NewSpawnWaves>();
                if (gameObject.name != "Shield")
                {
                    sw.numEnemiesRemaining--;
                }
            }
            GameObject theTower   = GameObject.FindGameObjectWithTag("TheTower");
            TowerStats towerStats = theTower.GetComponent <TowerStats>();
            towerStats.mScore     += mResources;
            towerStats.mResources += mResources;
            Instantiate(enemyDummy, transform.position, transform.rotation);
            Destroy(gameObject);
        }
        if (beenSlowed)
        {
            duration -= Time.deltaTime;
            if (duration <= 0)
            {
                beenSlowed = false;
                mSpeed     = origSpeed;
            }
        }
    }
Exemple #23
0
    // Start is called before the first frame update
    void Start()
    {
        //YOU MUST INITIALISE TOWERS HERE
        //TOWER NAME MUST BE THE SAME AS THE BUTTON NAME

        UIAudio = AudioObjUI.GetComponent <AudioSource>();

        TowerStats BaseTower = new TowerStats();

        BaseTower.TowerName = "btnCreateTower_1";
        BaseTower.TowerCost = 50;
        BaseTower.TowerObj  = Towers[0];
        TowerClasses.Add(BaseTower);

        TowerStats MoneyGenTower = new TowerStats();

        MoneyGenTower.TowerName = "btnCreateTower_MoneyGen";
        MoneyGenTower.TowerCost = 100;
        MoneyGenTower.TowerObj  = Towers[1];
        TowerClasses.Add(MoneyGenTower);

        TowerStats CannonTower = new TowerStats();

        CannonTower.TowerName = "btnCreateCannon";
        CannonTower.TowerCost = 200;
        CannonTower.TowerObj  = Towers[2];
        TowerClasses.Add(CannonTower);

        TowerStats Flamer = new TowerStats();

        Flamer.TowerName = "btnCreateFlamer";
        Flamer.TowerCost = 1000;
        Flamer.TowerObj  = Towers[3];
        TowerClasses.Add(Flamer);

        TowerStats LightningTower = new TowerStats();

        LightningTower.TowerName = "btnCreateLightning";
        LightningTower.TowerCost = 1500;
        LightningTower.TowerObj  = Towers[4];
        TowerClasses.Add(LightningTower);

        TowerStats RaftTower = new TowerStats();

        RaftTower.TowerName = "RaftTower";
        RaftTower.TowerCost = 200;
        RaftTower.TowerObj  = Towers[5];
        TowerClasses.Add(RaftTower);

        TowerStats HarpoonTower = new TowerStats();

        HarpoonTower.TowerName = "btnCreateHarpoon";
        HarpoonTower.TowerCost = 500;
        HarpoonTower.TowerObj  = Towers[6];
        TowerClasses.Add(HarpoonTower);
    }
    // Use this for initialization
    void Start()
    {
        shotAudio = GetComponent <AudioSource> ();

        towerStats = GameObject.FindObjectOfType <TowerStats> ();
        range      = towerStats.range * 5f;
        fireRate   = towerStats.fireRate;

        origin = new Vector3(0, 0, 0);
    }
Exemple #25
0
    public void SetStats(TowerStats stats)
    {
        stats.range += 0.5f;
        this.stats   = stats;
        GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>(stats.image);
        var rangeSpriteSize = rangeIndicator.GetComponent <SpriteRenderer>().sprite.rect;
        var rangeSizeLocal  = World.WorldToLocalDist(rangeSpriteSize.width);

        rangeIndicator.transform.localScale = new Vector3(stats.range / rangeSizeLocal * 2, stats.range / rangeSizeLocal * 2);
    }
 public void updatePanel(Sprite _sprite, string _name, TowerStats stats)
 {
     sprite.sprite   = _sprite;
     towerName.text  = _name;
     cost.text       = "Cost: " + stats.cost;
     range.text      = "Range: " + stats.range;
     rateOfFire.text = "Fire Rate: " + (short)(30 / stats.rateFire);
     damage.text     = "Damage: " + stats.damage;
     uses.text       = "Uses: " + stats.uses;
 }
Exemple #27
0
    void PlaceTower(TowerStats stats, Vector2Int localPos)
    {
        var tower = Instantiate(towerPrefab, LocalToWorldPos(localPos), Quaternion.identity, towerHolder.transform);

        tower.GetComponent <Tower>().active = true;
        tower.GetComponent <Tower>().SetStats(stats);

        map[localPos.x, localPos.y] = tower;
        money -= stats.cost;
    }
    public void UpdateTs(TowerStats ts)
    {
        this.ts = ts;

        blerb.text    = ts.blurb;
        hireName.text = ts.hireName;
        transform.Find("Icon").Find("Image").GetComponent <Image>().sprite = ts.icon;
        wage.text = "Wave Wage: " + ts.wage + " Coins";

        resetStuff();
    }
Exemple #29
0
    public static void Sell(Transform position, TowerStats stats)
    {
        int gold = stats.buildPrice / 2;

        Treasury.AddGold(gold);

        Builder.BuildSlot(position);

        Destroyer destroyer = position.GetComponentInParent <Destroyer>();

        destroyer.DestroyYourself();
    }
Exemple #30
0
    public static void TryToBuild(Transform position, TowerStats stats)
    {
        int gold = stats.buildPrice;

        if (Treasury.Withdraw(gold))
        {
            Builder.BuildTower(position, stats);

            Destroyer destroyer = position.GetComponentInParent <Destroyer>();
            destroyer.DestroyYourself();
        }
    }
    void Start()
    {
        //turret = transform.parent.gameObject;
        turret     = this.transform.parent.gameObject;
        enemies    = new Queue();
        towerStats = GetComponent <TowerStats>();
        deltaTime  = 0.0f;

        //rateOfFire = towerStats.fireRate;
        //DPS = towerStats.damagePerShot;
        //print(rateOfFire + " " + DPS);
    }