public void OnPanel(Transform towerWeapon) { currentTower = towerWeapon.GetComponent <TowerWeapon>(); gameObject.SetActive(true); UpdateTowerData(); towerAttackRange.OnAttackRange(currentTower.transform.position, currentTower.Range); }
public void PanelOn(Transform towerWeapon) { //Get the data for the tower stats Debug.Log(towerWeapon.gameObject); currentTower = towerWeapon.GetComponent <TowerWeapon>(); gameObject.SetActive(true); UpdateTowerData(); }
RangeIndicator rangeIndicator; //Objet d'affichage de la portee //Initialise une tour a l'aide de sa base et de son arme public void Initialize(TowerBase towerBase, TowerWeapon towerWeapon) { TowerBase = towerBase; //Reference la base this.towerWeapon = towerWeapon; //Reference l'arme rangeIndicator = GetComponentInChildren <RangeIndicator>(); //Reference l'objet de portee rangeIndicator.SetRange(towerWeapon.TowerRange); //Met a jour la portee towerBase.associatedTower = this; //Se definit comme tour de la base en entree towerWeapon.associatedTower = this; //Se definit comme tour de l'arme en entree }
public override void Update() { if (!isInitialized) { _armor = 10; _range = 150; _hp = 600; _damage = 20; _gun = new TowerWeapon(_damage, GameScene.Instance); _cooldownValue = 10; _speed = 0; } base.Update(); }
public void OnBuffAllBuffTowers() { GameObject[] towers = GameObject.FindGameObjectsWithTag("Tower"); for (int i = 0; i < towers.Length; ++i) { TowerWeapon weapon = towers[i].GetComponent <TowerWeapon>(); if (weapon.WeaponType == WeaponType.Buff) { weapon.OnBuffAroundTower(); } } }
public void BuildWeapon(GameObject weaponToBuild) { if (GetTowerWeapon()) { return; } towerWeapon = Instantiate(weaponToBuild, transform.position + (towerWeaponPlacementPositionAdjustment * gameObject.transform.localScale.y), Quaternion.identity).GetComponent <TowerWeapon>(); var scale = towerWeapon.transform.localScale; towerWeapon.gameObject.transform.parent = gameObject.transform; towerWeapon.transform.localScale = scale; towerWeapon.SetTowerData(towerData); }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> // Called each frame. /// </summary> protected override void Update() { base.Update(); // Rotating turret weapon if (Head != null && Barrel != null) { // A valid target is known if (_AttackTarget != null && _ObjectState == WorldObjectStates.Active) { if (_AttackTarget.IsAlive()) { // Aim the turret's head at the target (Z AXIS ONLY) Vector3 hDirection = (_AttackTarget.transform.position - transform.position).normalized; hDirection.y = 0; Quaternion hLookAtRot = Quaternion.LookRotation(hDirection); Head.transform.rotation = Quaternion.Lerp(Head.transform.rotation, hLookAtRot, WeaponAimingSpeed * Time.deltaTime); // Aim the turret's barrel at the target (Y AXIS ONLY) Vector3 bDirection = (_AttackTarget.transform.position - transform.position).normalized; bDirection.z = 0; Quaternion bLookAtRot = Quaternion.LookRotation(Barrel.transform.forward, bDirection); Barrel.transform.rotation = Quaternion.Lerp(Barrel.transform.rotation, bLookAtRot, WeaponAimingSpeed * Time.deltaTime); if (TowerWeapon != null) { // Fire the turret's weapon if (TowerWeapon.CanFire()) { TowerWeapon.FireWeapon(); } } } // Target is dead so null it out (so that the turret returns to the default state) else { _AttackTarget = null; } } // Return to the default rotation else { Head.transform.rotation = Quaternion.Lerp(Head.transform.rotation, _DefaultRotation, WeaponAimingSpeed * Time.deltaTime); } } }
private void Awake() { towerWeapon = GetComponentInParent <TowerWeapon>(); }
public override void UpgradeDamage() { _damage += 5; _gun = new TowerWeapon(_damage, GameScene.Instance); }