public void Raise(TurretSettings turretSettings) { for (int i = this._listeners.Count - 1; i >= 0; --i) { this._listeners[i].OnEventRaised(turretSettings); } }
public void Upgrade() { GameObject.FindObjectOfType <AudioManager>().upgrade.Play(); TurretSettings currentTurretSettings = currentTurret.GetComponent <TurretSettings>(); // If we haven't maxed out the turret level if (currentTurretSettings.level < currentTurretSettings.maxLevel) { currentTurretSettings.level++; currentTurretSettings.bodyDecal.material = currentTurretSettings.levelColours[currentTurretSettings.level]; currentTurretSettings.gunDecal.material = currentTurretSettings.levelColours[currentTurretSettings.level]; currentTurretSettings.platform.material = currentTurretSettings.levelColours[currentTurretSettings.level]; currentTurretSettings.ChangeRadius(); currentTurretSettings.ChangeFireRate(); upgradeCost += upgradeIncrement; MakeSelected(false, originalColour); } else { print("This turret is at its max level!"); } }
private void SpawnTurret(TurretSettings turretSettings, Vector3 position) { TurretHelper turret = GameObject.Instantiate(turretSettings.TurretPrefab, this._enemyTurretContainer); turret.transform.position = position; turret.enabled = false; turret.gameObject.layer = this._enemyTeamLayer; turret.GetComponent <EnemyTurret>().enabled = true; turret.GetComponent <AcquireTarget>().SetTargetLayer(this._playerTeamLayer); turret.Spawner = this; this._remainingTurrets.Add(turret); }
public void StartPlacingTurret(TurretSettings turretSettings) { if (this.Building) { return; } if (this._tmpTurret != null) { GameObject.Destroy(this._tmpTurret); } this.enabled = true; this._tmpTurretSettings = turretSettings; this._tmpTurret = GameObject.Instantiate(turretSettings.TurretPrefab, this._turretsContainer); this._tmpTurret.TurretPlacer = this; this._tmpTurret.transform.position = this.GetMouseScenePosition(); }
public Collider2D GetTarget(Transform from, TurretSettings settings) { Collider2D[] results; results = Physics2D.OverlapCircleAll(from.position, settings.Range, this._targetLayer.value); if (results.Length <= 0) { return(null); } Collider2D best = null; float bestDistance = float.MaxValue; RaycastHit2D[] hits; foreach (Collider2D collider in results) { Collider2D tmpBest = null; float tmpBestDistance = bestDistance; hits = Physics2D.LinecastAll(from.position, collider.transform.position, this._layersLineCast); foreach (RaycastHit2D hit in hits) { if (hit.transform == from) // We shouldn't target ourself! { continue; } if (hit.distance < tmpBestDistance) { tmpBest = hit.collider; tmpBestDistance = hit.distance; } } if (tmpBest != null && this._targetLayer.value == (this._targetLayer.value | (1 << tmpBest.gameObject.layer))) { best = tmpBest; bestDistance = tmpBestDistance; } } return(best); }
public void SetTurretToBuild(TurretHelper turret, TurretSettings turretSettings) { this._turret = turret; this._turretSettings = turretSettings; }
public void OnEventRaised(TurretSettings turretSettings) { this._response.Invoke(turretSettings); }