public void Sell() { GameManager.gm.towers.Remove(this); GameManager.gm.AddScrap(ScrapValues.GetTowerSellPrice(type)); towerPlatform.hasTower = false; Destroy(gameObject); }
public override void Upgrade() { if (GameManager.gm.curScrap >= ScrapValues.GetTowerUpgradePrice(type) && remainingNumOfUpgrades > 0) { maxAttackNumber++; base.Upgrade(); } }
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); } }
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); }
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)); } } }
//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); } }