// Start is called before the first frame update void Start() { properties = transform.GetComponent <TowerProperties>(); targets = new Transform[Boards.boards.Length]; lines = new GameObject[Boards.boards.Length]; fireCountdown = new float[Boards.boards.Length]; firePoint = transform.parent.Find("FirePoint"); /* for (int i = 0; i < lines.Length; i++){ * lines[i] = new GameObject(); * lines[i].transform.position = transform.position; * lines[i].AddComponent<LineRenderer>(); * LineRenderer lr = lines[i].GetComponent<LineRenderer>(); * lr.startColor = Color.red; * lr.endColor = Color.red; * lr.startWidth = 0.1f; * lr.endWidth = 0.1f; * lr.SetPosition(0, firePoint.position); * lr.SetPosition(1, firePoint.position); * } */ InvokeRepeating("UpdateTarget", 0f, 0.5f); }
public override void Apply(TowerProperties p, ShotProperties s) { PawnProperties props = p as PawnProperties; Debug.Log("Tower Properties: " + p.GetType() + " " + (props == null) + " " + this.name + " ShotProperties: " + s.GetType()); effect(p as PawnProperties, s); }
public void OnButtonSpawnTower(TowerProperties tower) { if (CannotAffordTower(tower)) { OnDisplayMessage?.Invoke("not enough money."); return; } switch (TowerPlacementState) { case TowerPlacementState.NotPlacingTower: TowerPlacementState = TowerPlacementState.PlacingTower; SpawnTower(tower); break; case TowerPlacementState.PlacingTower: Destroy(_currentTowerGO); SpawnTower(tower); break; case TowerPlacementState.CannotPlaceTower: break; default: throw new ArgumentOutOfRangeException(); } }
// Start is called before the first frame update void Start() { properties = transform.GetComponent <TowerProperties>(); graphics = GameMaster.boardGraphics; targets = new Transform[Boards.boards.Length]; lines = new GameObject[Boards.boards.Length]; fireCountdown = new float[Boards.boards.Length]; firePoint = transform.Find("FirePoint"); /* boardRanges = new float[4]; * boardFireRates = new float[4]; * boardDamages = new float[4]; * boardBulletPrefabs = new GameObject[4]; */ /* for (int i = 0; i < lines.Length; i++){ * lines[i] = new GameObject(); * lines[i].transform.position = transform.position; * lines[i].AddComponent<LineRenderer>(); * LineRenderer lr = lines[i].GetComponent<LineRenderer>(); * lr.startColor = Color.red; * lr.endColor = Color.red; * lr.startWidth = 0.1f; * lr.endWidth = 0.1f; * lr.SetPosition(0, firePoint.position); * lr.SetPosition(1, firePoint.position); * } */ InvokeRepeating("UpdateTarget", 1f, 0.5f); }
public void ShowTowerInformation(TowerProperties towerProperties) { _towerInformationPanel.SetActive(true); _towerName.text = towerProperties.TowerName; _towerCost.text = $"<b>Cost:</b> {towerProperties.Cost.ToString()}"; _towerSpeed.text = $"<b>Speed:</b> {towerProperties.Speed}"; _towerDescription.text = towerProperties.Description; }
protected virtual void Start() { if (properties == null) { baseTower = GameData.instance.GetTower(type, level); TowerProperties baseProperties = new TowerProperties(); baseProperties.Load(type, level); properties = new TowerPropertiesQueue(); properties.Initialize(baseProperties, Time.time); } SetRange(); online = true; //assign the towerRange to the sphere collider radius this.GetComponent <SphereCollider>().radius = 2 * (float)properties.active.range; extradamage = 0; nextFireTime = Time.time + (float)properties.active.rateOfFire; healthBar = UIManager.instance.GetHealthBar(); healthBar.UpdateName("Tower: " + type); healthBar.UpdateGUI(transform.position, properties.active.hp / properties.active.maxHp, 4); }
public override Tower Instantiate(TowerProperties properties) { return(new ClientTower(properties, bulletPrefab)); }
public ClientTower(TowerProperties properties, GameObject bulletPrefab) : base(properties) { this.bulletPrefab = bulletPrefab; }
private void SpawnTower(TowerProperties tower) { _currentTowerGO = Instantiate(_baseTowerPrefab, Vector3.zero, Quaternion.identity); _curTowerController = _currentTowerGO.GetComponent <TowerController>(); _curTowerController.InitializeTower(tower); }
private bool CannotAffordTower(TowerProperties tower) { return(_gameController.Money < tower.Cost); }
public override void Apply(TowerProperties p, ShotProperties s) { effect(p as KnightProperties, s as SplitShotProperties); }
public abstract void Apply(TowerProperties p, ShotProperties s);
public override void Apply(TowerProperties p, ShotProperties s) { effect(p as CastleProperties, s); }
public override void Apply(TowerProperties p, ShotProperties s) { effect(p as BishopProperties, s); }
public override void Apply(TowerProperties p, ShotProperties s) { effect(p as QueenProperties, s as NanoBotProperties); }