Example #1
0
 public void OnPanel(Transform towerWeapon)
 {
     currentTower = towerWeapon.GetComponent <TowerWeapon>();
     gameObject.SetActive(true);
     UpdateTowerData();
     towerAttackRange.OnAttackRange(currentTower.transform.position, currentTower.Range);
 }
Example #2
0
 public void PanelOn(Transform towerWeapon)
 {
     //Get the data for the tower stats
     Debug.Log(towerWeapon.gameObject);
     currentTower = towerWeapon.GetComponent <TowerWeapon>();
     gameObject.SetActive(true);
     UpdateTowerData();
 }
Example #3
0
    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
    }
Example #4
0
 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();
 }
Example #5
0
    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();
            }
        }
    }
Example #6
0
    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);
    }
Example #7
0
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    /// <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);
            }
        }
    }
Example #8
0
 private void Awake()
 {
     towerWeapon = GetComponentInParent <TowerWeapon>();
 }
Example #9
0
 public override void UpgradeDamage()
 {
     _damage += 5;
     _gun     = new TowerWeapon(_damage, GameScene.Instance);
 }