public BaseTower GetTowerOfType(TowerType towerType) { BaseTower newTower = null; switch (towerType) { case TowerType.BaseDrum: { newTower = GameObject.Instantiate(TowerPrefabMapper.KickDrumPrefab); break; } case TowerType.HighHat: { newTower = GameObject.Instantiate(TowerPrefabMapper.HighHatPrefab); break; } } IncrementGlobalTowerCount(towerType); var towerName = towerType.ToString() + GlobalTowerTypeCount[towerType]; newTower.Data.TowerType = towerType; newTower.Data.ID = towerName; newTower.gameObject.name = towerName; return(newTower); }
void Start() { BaseTower baseTower = Prefabs.Instantiate <BaseTower>(); baseTower.transform.position = Vector3.zero; Energy energy = Prefabs.Instantiate <Energy>(); energy.transform.position = new Vector3(0f, 0f, 5f); Tower tower = Prefabs.Instantiate <Tower>(); tower.transform.position = new Vector3(5f, 0f, 5f); Tower tower2 = Prefabs.Instantiate <Tower>(); tower2.transform.position = new Vector3(7f, 0f, 7f); GameObject goblin = Prefabs.Get <Goblin>(); for (int i = 0; i < 10; i += 1) { GameObject newGoblin = Instantiate(goblin, tower.transform.position, Quaternion.identity); Vector2 rnd = Random.insideUnitCircle.normalized * 5f; newGoblin.transform.Translate(new Vector3(rnd.x, 0f, rnd.y), Space.World); } }
public override void HandleInput(BaseTower entity, InputEvent inputEvent) { if (!(inputEvent is InputEventMouseButton) || !inputEvent.IsActionReleased("picked_up")) { return; } var canPlace = entity.CanPlaceTower(); if (canPlace) { var purchased = GameInfo.GameCurrency.PurchaseTower(entity); if (purchased) { entity.TowerStateMachine.ChangeState(Idle); } else { entity.SetForDeletion(); } } else { entity.SetForDeletion(); } }
public override void HandleInput(BaseTower entity, InputEvent inputEvent) { if (entity.Locked) { return; } // Will only check to be picked up if not the tower is not locked // Check if tower is broken and filter input if (entity.TowerStateMachine.IsInState(Broken)) { return; } if (!(inputEvent is InputEventMouseButton eventMouseButton) || !inputEvent.IsActionPressed("picked_up")) { return; } if (entity.GetRect().HasPoint(entity.ToLocal(eventMouseButton.Position))) { entity.TowerStateMachine.ChangeState(entity.Purchased ? PickedUp : Buying); } }
public void OnInputClicked(InputClickedEventData eventData) { upgradeSection.SetActive(true); BaseTower stats = GazeManager.Instance.HitInfo.transform.GetComponent <BaseTower>(); txt.text = "Damage: " + stats.attackDamage + " Attack Speed: " + stats.fireRate + " Range: " + stats.radius; }
void DrawBeam(SpriteBatch spriteBatch, BaseTower tower) { if (tower.hasTarget()) { if (tower.targetType == "MULTI") { foreach (BaseEnemy e in tower.groundEnemies) { //System.Console.WriteLine("Draw line"); spriteBatch.DrawLine(beamTexture, tower.Origin, e.getOrigin, tower.beamColour); } } else if (tower.targetType == "SINGLE") { //System.Console.WriteLine("Draw line"); if (tower is LaserTower) { spriteBatch.DrawLine(beamTexture, tower.Origin, tower.target.getOrigin, tower.beamColour); } else if (tower is RailTower) { spriteBatch.DrawLine(beamTexture, tower.Origin, tower.target.getOrigin, tower.beamColour); } } } }
public void addTower(BaseTower tower) { if (towersNo < towerContainer.Length) { towerContainer[towersNo] = tower; towersNo++; } }
public Point(int x, int y) { this.X = x; this.Y = y; tile = default; baseTower = default; GameManager.Instance.AddTileDic(this); }
public static void destroyTower(BaseTower curBaseTower) { int value = curBaseTower.getDestroyReward(); Destroy(curBaseTower.gameObject); addMoney(value); gameMenu.setCurMoney(curMoney); }
public override void HandleInput(BaseTower entity, InputEvent inputEvent) { if (!(inputEvent is InputEventMouseButton) || !inputEvent.IsActionReleased("picked_up")) { return; } entity.TowerStateMachine.ChangeState(Idle); }
public static T Create <T>(T prefab, Vector3 position, Transform parent, BaseTower tower) where T : BaseProjectile { T projectile = Instantiate(prefab, position, Quaternion.identity, parent); projectile.tower = tower; return(projectile); }
public void InitGrid() { gridState.isTowerPoint = false; spriteRenderer.enabled = true; gridState.hasTower = false; gridState.towerID = -1; currentTower = null; baseTower = null; }
public void upgradeFireDelay(BaseTower baseTower) { if (gameManager.getCurMoney() >= 25) { baseTower.decreaseFireDelay(); gameManager.subtractMoney(25); gameMenu.setCurMoney(gameManager.getCurMoney()); } }
public void SellTower(int x, int y) { Debug.Log("Selling at: " + x + " / " + y); BaseTower tower = grid.tiles[x, y].tower.GetComponent <BaseTower>(); Gold += (int)(tower.buildCost * 0.7); grid.tiles[tower.posX, tower.posY].type = eTile.Free; Destroy(tower.gameObject); }
public void upgradeTurnSpeed(BaseTower baseTower) { if (gameManager.getCurMoney() >= 25) { baseTower.increaseTurnSpeed(); gameManager.subtractMoney(25); gameMenu.setCurMoney(gameManager.getCurMoney()); } }
public void upgradeBulletDamage(BaseTower baseTower) { if (gameManager.getCurMoney() >= 25) { baseTower.increaseBulletDamage(); gameManager.subtractMoney(25); gameMenu.setCurMoney(gameManager.getCurMoney()); } }
public void OnInputClicked(InputClickedEventData eventData) { BaseTower baseT = GazeManager.Instance.HitInfo.transform.GetComponent <BaseTower>(); dmg = baseT.attackDamage; range = baseT.radius; atkspeed = baseT.fireRate; txt.text = "Damage: " + dmg + " Attack Speed: " + atkspeed + " Range: " + range; }
/** * If another tower was selected it hides its 'indicators' and saves the new tower reference as * the currently selected one. */ public void towerClicked(BaseTower baseTower) { if (gameMenu.currentSelectedTower != null && gameMenu.currentSelectedTower != baseTower) { gameMenu.currentSelectedTower.deSelected(); } gameMenu.currentSelectedTower = baseTower; }
void OnMouseUp() { BaseTower tower = GetComponent <BaseTower>(); if (tower) { FindObjectOfType <PlayerUI>().DisplayTowerDetails(tower); } }
public override void OnExit(BaseTower entity) { entity.Update(); entity.ZIndex = 3; entity.PlayerCollision.Disabled = false; if (!entity.CanPlaceTower()) { entity.ResetToDragStart(); } }
public void DisplayTowerDetails(BaseTower tower) { chosenTowerParticle.SetActive(true); chosenTowerParticle.transform.position = tower.transform.position; TowerDetailPanel.SetActive(true); HideMinionDetails(); detailtexts[1].text = "" + tower.turretDmg.calcDmgVsNeutralResistance(); detailtexts[3].text = "" + tower.turretDmg.GetDamageType(); detailtexts[5].text = "" + tower.cooldown; detailtexts[7].text = "" + tower.range; chosenTower = tower; }
public override void Update(BaseTower entity, float delta) { var mousePos = entity.GetGlobalMousePosition(); entity.Update(); entity.DragTo(mousePos); entity.ZIndex = 4; var canPlace = entity.CanPlaceTower(); entity.AttackColour = canPlace ? GameInfo.ValidColour : GameInfo.InvalidColour; entity.DragStart = canPlace ? entity.Position : entity.DragStart; }
public BaseTower GenerateBaseTower() { // Create the tower GameObject t = Instantiate(tower, transform.position, Quaternion.identity) as GameObject; t.name = "Tower: " + name; t.transform.parent = transform; _ts = t.GetComponent<BaseTower>(); // Update Path _levelController.UpdatePath(); return t.GetComponent<BaseTower>(); }
public void SetPickableAndTower(BaseTower tower) { if (tower.tileType == TileType.All || tileType == tower.tileType) { baseTower = tower; state = PointState.hadThing; pickable = tower.GetComponent <Pickable>(); } else { Debug.LogError("TileTypeError"); } }
public override void Update(BaseTower entity, float delta) { entity.Targets = entity.Targets.Where(enemy => !enemy.IsDead()).ToList(); entity.CurrentTarget = entity.Targets.Count == 0 ? null : entity.Targets.First(); if (entity.CurrentTarget == null && entity.Targets.Count == 0) { entity.TowerStateMachine.ChangeState(Idle); } else { entity.TrackNextTarget(delta); entity.Shoot(entity.CurrentTarget, delta); } }
public TowerComponent BreakTopComponent() { if (_ts != null) { TowerComponent t = _ts.BreakTopComponent(); if (t.componentType == BaseTower.TOWER_BASE) { Destroy(_ts.gameObject); _ts = null; } return t; } // Update Path _levelController.UpdatePath(); return null; }
public override void Update(BaseTower entity, float delta) { if ((entity.CurrentTarget != null || entity.Targets.Count != 0) && entity.Purchased) { entity.TowerStateMachine.ChangeState(Attacking); } else { if (entity.TowerGun.RotationDegrees < 0) { entity.TowerGun.RotationDegrees += 1; } if (entity.TowerGun.RotationDegrees > 0) { entity.TowerGun.RotationDegrees -= 1; } } }
public void Activate(BaseTower tower) { this.tower = tower; canvas.transform.position = tower.transform.position + tower.transform.rotation * new Vector3(0, 0.5f, 0); ShowStats(); if (tower.IsMaxLevel()) { upgradeButton.interactable = false; } else { upgradeButton.interactable = true; } canvas.gameObject.SetActive(true); }
public void Populate() { BaseTower tower = Control.GetComponent <UiContoller>().SelectedTower; if (tower == null) { return; } NameTag.GetComponent <Text>().text = tower.TowerName; List <TowerUpgrade> buyableUpgrades = tower.Tower.GetBuyableUpgrades(); Upgrade0.GetComponent <Text>().text = buyableUpgrades.Exists(u => u.track == 0) ? createUpgradeLabel(buyableUpgrades.Find(u => u.track == 0)) : "Maxed!"; Upgrade1.GetComponent <Text>().text = buyableUpgrades.Exists(u => u.track == 1) ? createUpgradeLabel(buyableUpgrades.Find(u => u.track == 1)) : "Maxed!"; Upgrade2.GetComponent <Text>().text = buyableUpgrades.Exists(u => u.track == 2) ? createUpgradeLabel(buyableUpgrades.Find(u => u.track == 2)) : "Maxed!"; TargetButton.GetComponent <TowerTargetButton>().SetText(tower.GetTargetingMode()); SellButton.GetComponent <TowerSellButton>().SetText(tower.GetTowerWorth().ToString()); }
public void onDestroyTowerMenu() { if (currentSelectedTower != null) { int val = currentSelectedTower.getDestroyReward(); if (GUI.Button(new Rect(menuX, buttonMenuStartY, menuItemWidth, buttonMenuHeight), "Destroy Tower\n\nWorth " + val)) { GameManager.destroyTower(currentSelectedTower); currentSelectedTower = null; menuState = MenuState.OuterMenu; } } else { noTowerSelectedLabel(); } backButton(); }
// Update is called once per frame void Update() { if (Input.GetMouseButtonDown(0) || Input.touchCount > 0) { if (m_tower != null) { Vector3 screenPos = Vector3.zero; //if the input touch count is > 0 then we are most likely on mobile so use the first touch. Still need to test mobile if (Input.touchCount > 0) { Touch touch = Input.GetTouch(0); screenPos = touch.position; } else { //was most likey a mouse button down trigger so get the mouse position screenPos = Input.mousePosition; } //Cast a ray from the screen to the world and see if we collide with something. If we did place the tower Ray ray = Camera.main.ScreenPointToRay(screenPos); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { if (hit.transform.gameObject.layer == LayerMask.NameToLayer("Ground")) { GameObject tower = GameObject.Instantiate <GameObject>(m_tower.gameObject, hit.point, Quaternion.identity); tower.transform.position += tower.GetComponent <Collider>().bounds.max.y *Vector3.up; } } m_tower = null; } } //If right clicked then remove the tower else if (Input.GetMouseButton(1)) { m_tower = null; } }
//Function to place a Tower at the place the mouse hits using a ray cast and checking to make sure the thing it hits is a placeble area void PlaceTower(Tower newTower) { //Debug.Log("Left mouse clicked"); // raycast to hold click point RaycastHit click; // creat a ray to mouse point Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); ///initiate and get resuts or ray if (Physics.Raycast(ray, out click)) { //if the click was on the maze if (click.transform.parent.name == "Maze_1") { // move the position up //click.point.Set(click.point.x, click.point.y, click.point.z); // Create tower at click point GameObject tower = Instantiate(newTower.MeshName, click.point, Quaternion.identity); // get the baseTower script from the new tower to set its attributes BaseTower baseTower = tower.GetComponent <BaseTower>(); // set fire rate depending on selected tower baseTower.fireRate = selectedTower.FireRate; // set damage of selected tower baseTower.damage = selectedTower.Damage; //set the fireing range of the tower baseTower.range = selectedTower.Range; //reduce player's gold by the cost of the tower PlayerHandler.playerGold -= selectedTower.Value; } } }
/** * If another tower was selected it hides its 'indicators' and saves the new tower reference as * the currently selected one. */ public void towerClicked(BaseTower baseTower) { if(gameMenu.currentSelectedTower != null && gameMenu.currentSelectedTower != baseTower) gameMenu.currentSelectedTower.deSelected(); gameMenu.currentSelectedTower = baseTower; }
public void OnEnable() { instance = target as BaseTower; fields = ExposeProperties.GetProperties(instance); }
public void RemoveTower() { Destroy(_ts.gameObject); _ts = null; // Update Path _levelController.UpdatePath(); }
void Awake() { _ts = null; _levelController = GameObject.Find(" GameController").GetComponent<LevelController>(); rotatorPrefab = Resources.Load("Prefabs/Tools/RangeView", typeof(GameObject)) as GameObject; _selectionGrid = transform.FindChild("GridSelection").GetComponent<MeshRenderer>(); _hasTower = false; SetSelected(false); }
// Use this for initialization void Start() { baseTower = gameObject.transform.parent.GetComponent<BaseTower> (); }