Beispiel #1
0
    public override void Attack()
    {
        if (!m_CanShoot)
        {
            return;
        }

        base.Attack();

        if (m_ReadyToAttack && m_Target != null)
        {
            m_TowerProjectileData = m_Pool.GetFromPool() as TowerProjectile;
            Transform selectedMuzzle;

            if (m_ShotLastWithLeft)
            {
                selectedMuzzle = m_LeftMuzzle;
            }
            else
            {
                selectedMuzzle = m_RightMuzzle;
            }

            m_ShotLastWithLeft = !m_ShotLastWithLeft;
            m_Animation.state.SetAnimation(0, "Drum_Turret_ATTACK_" + (m_ShotLastWithLeft ? "RIGHT" : "LEFT"), false);
            m_Animation.state.AddAnimation(0, "Drum_Turret_IDLE", true, 0);
            m_TowerProjectileData.SetData(new ProjectileData(selectedMuzzle.position, m_Target, 0.5f, TowerData.AttackDamage));
            m_ReadyToAttack   = false;
            m_StartedCooldown = false;
        }
    }
Beispiel #2
0
 public void UpdateDropdown()
 {
     dropdown.interactable = true;
     dropdown.ClearOptions();
     towerProjectile = GetComponent <TurretMenu>().turretSelected.GetComponent <TowerProjectile>();
     if (towerProjectile)
     {
         dropdown.AddOptions(towerProjectile.targetStyles);
         Debug.Log("projectlie");
         dropdown.value = towerProjectile.targetStyles.IndexOf(towerProjectile.targetSelected);
     }
     else
     {
         towerLaser = GetComponent <TurretMenu>().turretSelected.GetComponent <TowerLaser>();
         if (towerLaser)
         {
             dropdown.AddOptions(towerLaser.targetStyles);
             Debug.Log("lasers");
             dropdown.value = towerLaser.targetStyles.IndexOf(towerLaser.targetSelected);
         }
         else
         {
             dropdown.interactable = false;
         }
     }
     dropdown.RefreshShownValue();
 }
 public void UpdateDropdown()
 {
     dropdown.interactable = true;
     dropdown.gameObject.SetActive(true);
     dropdown.ClearOptions();
     towerProjectile = GetComponent <TurretMenu>().turretSelected.GetComponent <TowerProjectile>();
     if (towerProjectile && towerProjectile.targetStyles != null)
     {
         dropdown.AddOptions(towerProjectile.targetStyles);
         dropdown.value = towerProjectile.targetStyles.IndexOf(towerProjectile.targetSelected);
     }
     else
     {
         towerLaser = GetComponent <TurretMenu>().turretSelected.GetComponent <TowerLaser>();
         if (towerLaser && towerLaser.targetStyles != null)
         {
             dropdown.AddOptions(towerLaser.targetStyles);
             dropdown.value = towerLaser.targetStyles.IndexOf(towerLaser.targetSelected);
         }
         else
         {
             dropdown.interactable = false;
             dropdown.gameObject.SetActive(false);
         }
     }
     dropdown.RefreshShownValue();
 }
Beispiel #4
0
    private void FireAtCurrentTarget()
    {
        if (!config)
        {
            return;          //config should exist if connection has been made
        }
        TowerProjectile projectile = ObjectPooler.GetPool(config.Projectile).ActivateObject(transform.position).GetComponent <TowerProjectile>();
        Vector3         pos        = transform.position;

        pos.y = 1.5f;
        projectile.transform.position = pos;
        projectile.SetConfig(config);
        projectile.Launch(currentTarget);
        if (config.Type == EnergyTypes.MagicMissile)
        {
            if (magicSound != null)
            {
                magicSound.Play();
            }
        }
        if (config.Type == EnergyTypes.Ice || config.Type == EnergyTypes.IceMagic || config.Type == EnergyTypes.IceLightning)
        {
            if (frostSound != null)
            {
                frostSound.Play();
            }
        }
        if (config.Type == EnergyTypes.Lightning)
        {
            if (lightningSound != null)
            {
                lightningSound.Play();
            }
        }
    }
Beispiel #5
0
    private void Shoot()
    {
        GameObject      bulletGo = (GameObject)Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
        TowerProjectile bullet   = bulletGo.GetComponent <TowerProjectile>();

        if (bullet != null)
        {
            bullet.Seek(targetTransform);
        }
    }
Beispiel #6
0
 public override void Attack()
 {
     if (target != null)
     {
         GameObject      instance = Instantiate(arrowPrefab, transform.position, transform.rotation) as GameObject;
         TowerProjectile tp       = instance.GetComponent <TowerProjectile>();
         tp.target = target;
         tp.tower  = this;
         instance.transform.LookAt(target.transform.position);
     }
 }
Beispiel #7
0
 private void Start()
 {
     gcs   = FindObjectOfType <GameControllerScr>();
     multi = GameObject.Find("Main Camera").GetComponent <Multipliers>();
     if (level == 0)
     {
         selfProjectile = gcs.AllProjectiles[selfTower.type];
     }
     else if (level == 1)
     {
         selfProjectile = gcs.SecondProjectiles[selfTower.type];
     }
     else if (level == 2)
     {
         selfProjectile = gcs.ThirdProjectiles[selfTower.type];
     }
     basicDamage = selfProjectile.damage;
     GetComponent <SpriteRenderer>().sprite = selfProjectile.Spr;
 }
    void Shoot(GameObject target)
    {
        if (target == null || target.GetComponent <Minion>().IsDead())
        {
            return;
        }

        if (m_isShooting == false)
        {
            m_isShooting = true;
            m_nextFire   = Time.time + m_firerate;

            Vector3 projectile_position = transform.FindChild("SRUAP_OrderTurret1_Idle1").FindChild("Buffbone_Glb_Channel_Loc").position;

            TowerProjectile projectile = (TowerProjectile)Instantiate(m_projectile, projectile_position, Quaternion.identity);
            projectile.transform.forward = target.transform.position - projectile.transform.position;
            projectile.SetTarget(target);
            m_latestTarget = target;

            FindObjectOfType <Camera>().GetComponent <SoundManager>().PlaySound("tower_shot_1");

            //Debug.Log("Spawning a projectile, target: '" + target.name + "'");
        }
    }
Beispiel #9
0
    public void SetTarget(Node _target)
    {
        this.target        = _target;
        turretImage.sprite = target.turretBlueprint.sprite;
        turretName.text    = target.turretBlueprint.name;
        //Debug.Log(target.GetComponentInChildren<TowerBase>().GetComponent<TowerProjectile>().bulletPrefab.GetComponent<ProjectileBase>().damage);
        turretSelected = target.GetComponentInChildren <TowerBase>();
        GetComponent <TargetSelectionDropdown>().UpdateDropdown();
        rangeText.text = turretSelected.range.ToString();
        if (turretSelected.turretMaximized)
        {
            btnUpgrade.interactable = false;
            btnUpgradeText.text     = "MAXIMIZED";
        }
        else
        {
            btnUpgrade.interactable = true;
            btnSellText.text        = "$" + target.turretBlueprint.GetSellValue(turretSelected.numberOfUpgrades);
        }
        btnUpgradeText.text = "$" + target.turretBlueprint.GetUpgradeCost();

        //Element Sprite
        switch (target.turretBlueprint.prefab.GetComponent <TowerBase>().element)
        {
        case Enums.Element.fire:
            elementImage.sprite = fire;
            elementImage.color  = Color.red;
            break;

        case Enums.Element.acid:
            elementImage.sprite = acid;
            elementImage.color  = Color.green;
            break;

        case Enums.Element.ice:
            elementImage.sprite = ice;
            elementImage.color  = Color.cyan;
            break;

        case Enums.Element.none:
            elementImage.sprite = none;
            break;
        }
        towerProjectile = turretSelected.GetComponent <TowerProjectile>();
        if (towerProjectile != null)
        {
            dmgText.text = towerProjectile.bulletPrefab.GetComponent <ProjectileBase>().damage.ToString();
        }
        else if (turretSelected.GetComponent <TowerNonProjectile>())
        {
            towerNonProjectile = turretSelected.GetComponent <TowerNonProjectile>();
            dmgText.text       = towerNonProjectile.damage.ToString();
        }
        else
        {
            dmgText.text = "-";
        }

        //btnSellText.text ="<b>UPGRADE</b>\n" + target.turretBlueprint.GetSellValue();
        //btnUpgradeText.text ="<b>SELL</b>\n" + target.turretBlueprint.GetUpgradePrice();

        this.gameObject.SetActive(true);
        isActive = true;
        if (anim != null)
        {
            anim.Play("TurretMenuSlideIn");
        }
    }
Beispiel #10
0
 private void Start()
 {
     gcs            = FindObjectOfType <GameControllerScr>();
     selfProjectile = gcs.AllProjectile[selfTower.type];
     GetComponent <SpriteRenderer>().sprite = selfProjectile.Spr;
 }
Beispiel #11
0
    private void Start()
    {
        _gcs = FindObjectOfType <GameControllerScr>();

        selfProjectile = _gcs.allTowersProjectiles[selfTower.type];
    }