Esempio n. 1
0
 public void Sell()
 {
     GameManager.gm.towers.Remove(this);
     GameManager.gm.AddScrap(ScrapValues.GetTowerSellPrice(type));
     towerPlatform.hasTower = false;
     Destroy(gameObject);
 }
Esempio n. 2
0
 public override void Upgrade()
 {
     if (GameManager.gm.curScrap >= ScrapValues.GetTowerUpgradePrice(type) && remainingNumOfUpgrades > 0)
     {
         maxAttackNumber++;
         base.Upgrade();
     }
 }
Esempio n. 3
0
    public virtual void Upgrade()
    {
        if (GameManager.gm.curScrap >= ScrapValues.GetTowerUpgradePrice(type) && remainingNumOfUpgrades > 0)
        {
            damage += amountOfDamagePerUpgrade;
            GameManager.gm.RemoveScrap(ScrapValues.GetTowerUpgradePrice(type));
            remainingNumOfUpgrades--;

            StartCoroutine(UpgradeEffect());
            StartCoroutine(UpgradeModelEffect());
            StartCoroutine(Flash(Color.grey));

            CameraShake.cs.Shake(0.15f, 0.2f, 35.0f);
        }
    }
Esempio n. 4
0
    void Update()
    {
        //if(moveToContainer)
        {
            lifeTimer += Time.deltaTime;

            if (!begunShake)
            {
                moveToContainer = false;
                begunShake      = true;
                StartCoroutine(ScrapShake());
            }
        }
        //transform.localPosition = Vector3.MoveTowards(transform.localPosition, containerPos, toContainerSpeed * Time.deltaTime);

        if (moveToTarget)
        {
            transform.position = Vector3.MoveTowards(transform.position, endTarget.transform.position, toTargetSpeed * Time.deltaTime);
        }

        if (Vector3.Distance(transform.position, endTarget.transform.position) < 0.2f)
        {
            GameManager.gm.AddScrap(ScrapValues.GetEnemyDropAmount(enemyType));
            Destroy(gameObject);
        }

        //if(Vector3.Distance(transform.localPosition, containerPos) < 5.0f)


        if (lifeTimer >= 5.0f)
        {
            Destroy(gameObject);
        }

        transform.Rotate(0, 0, (50 + (lifeTimer * 100)) * Time.deltaTime);
    }
Esempio n. 5
0
    public void BuildTower(TowerType towerType)
    {
        //DEBUG TESTING
        if (!hasTower)
        {
            if (towerType == TowerType.Crusher)
            {
                if (!(oppositePlatform != null && !oppositePlatform.hasTower))
                {
                    return;
                }
            }

            if (GameManager.gm.curScrap >= ScrapValues.GetTowerBuildPrice(towerType))
            {
                GameObject towerPrefab = GameManager.gm.towerPrefabs[(int)towerType];

                GameObject tower = Instantiate(towerPrefab, transform.position, Quaternion.identity);
                tower.transform.eulerAngles = new Vector3(0, GetYRotation(), 0);

                Tower t = tower.GetComponent <Tower>();
                t.setLookTargets(tower.transform.position + tower.transform.forward);

                ConveyorBelt curConveyor = firstConveyorInRange;
                GameManager.gm.towers.Add(t);
                t.towerPlatform = this;
                int thing = 3;
                if (innerCorner)
                {
                    thing = 2;
                }
                for (int index = t.range; index < thing; ++index)
                {
                    if (!curConveyor.isFinalConveyorBelt)
                    {
                        curConveyor = curConveyor.nextConveyorBelt;
                    }
                }

                curConveyor.OnEnemyEnter.AddListener(t.AddEnemyToRange);

                int num = 0;

                if (innerCorner && t.range > 1)
                {
                    num = -1;
                }
                else
                {
                    num = 1;
                }

                for (int index = num; index < t.range + t.range - 1; ++index)
                {
                    if (!curConveyor.isFinalConveyorBelt)
                    {
                        curConveyor = curConveyor.nextConveyorBelt;
                    }
                }

                curConveyor.OnEnemyLeave.AddListener(t.RemoveEnemyFromRange);


                //this is more for adding new towers, not good for our towers
                //if (innerCorner && t.range <= 1 )
                //{
                //    curConveyor = curConveyor.nextConveyorBelt.nextConveyorBelt;

                //    curConveyor.OnEnemyEnter.AddListener(t.AddEnemyToRange);
                //    curConveyor.OnEnemyLeave.AddListener(t.RemoveEnemyFromRange);
                //}



                hasTower = true;

                GameManager.gm.RemoveScrap(ScrapValues.GetTowerBuildPrice(towerType));
            }
        }
    }
Esempio n. 6
0
    //Sets the existing tower buttons to disable when pressed.
    //Sets the upgrade button to upgrade the tower when pressed.
    //Sets the sell button to sell the tower when pressed.
    void SetExistingTowerMenuButtons(Tower tower)
    {
        foreach (Button button in existingTowerMenuButtons)
        {
            button.onClick.RemoveAllListeners();
        }

        existingTowerMenuButtons[0].onClick.AddListener(() => tower.Upgrade());
        existingTowerMenuButtons[1].onClick.AddListener(() => tower.Sell());

        existingTowerMenuButtons[0].transform.Find("Text").GetComponent <Text>().text = "Upgrade\n<size=12>" + ScrapValues.GetTowerUpgradePrice(tower.type) + " Scrap</size>";
        existingTowerMenuButtons[1].transform.Find("Text").GetComponent <Text>().text = "Sell\n<size=12>" + ScrapValues.GetTowerSellPrice(tower.type) + " Scrap</size>";

        foreach (Button button in existingTowerMenuButtons)
        {
            button.onClick.AddListener(DisableRadialMenu);
        }
    }