protected override void Shoot(CanTakeDamage target)
 {
     base.Shoot(target);
     if(target != null) {
         target.takeDamage(GetDamage(), damageType);
     }
 }
 void AcquireTarget()
 {
     CanTakeDamage[] enemies = Transform.FindObjectsOfType(typeof (CanTakeDamage)) as CanTakeDamage[];
     CanTakeDamage closestEnemy = null;
     foreach(CanTakeDamage enemy in enemies){
         if (closestEnemy == null){
             closestEnemy = enemy;
         } else {
             if (DistanceToEnemy(enemy) < DistanceToEnemy(closestEnemy)){
                 closestEnemy = enemy;
             }
         }
     }
     targetedEnemy = closestEnemy;
 }
    protected override void Shoot(CanTakeDamage target)
    {
        if(target != null) {
            base.Shoot(target);
            towerSpriteCenterAnimator.SetTrigger("shooting");
            towerSpriteGlowAnimator.SetTrigger("shooting");
            GuidedBullet guidedBullet = Instantiate(bulletPrefab, transform.position, transform.rotation) as GuidedBullet;
            guidedBullet.Target = target;
            guidedBullet.damage = GetDamage();
            guidedBullet.damageType = damageType;
            guidedBullet.GetComponent<SpriteRenderer>().color = bulletColor;

            nextShootingTime = Time.time + (1f / shootingRate);
            SoundManager.instance.PlaySound(SoundManager.CIRCLE_SHOOT);
        }
    }
    protected override void Shoot(CanTakeDamage target)
    {
        base.Shoot(target);
        towerSpriteCenterAnimator.SetTrigger("shooting");
        towerSpriteGlowAnimator.SetTrigger("shooting");
        SoundManager.instance.PlaySound(SoundManager.TRIANGLE_SHOOT);

        GameObject topLaserObj = Instantiate(laserPrefab) as GameObject;
        GameObject leftLaserObj = Instantiate(laserPrefab) as GameObject;
        GameObject rightLaserObj = Instantiate(laserPrefab) as GameObject;

        topLaserObj.transform.parent = transform;
        leftLaserObj.transform.parent = transform;
        rightLaserObj.transform.parent = transform;

        topLaserObj.transform.localPosition = new Vector3 (0f, 0.2f, 0f);
        leftLaserObj.transform.localPosition = new Vector3 (-0.2f, -0.2f, 0f);
        rightLaserObj.transform.localPosition = new Vector3 (0.2f, -0.2f, 0f);

        topLaserObj.transform.localRotation = Quaternion.AngleAxis(90f, Vector3.forward);
        leftLaserObj.transform.localRotation = Quaternion.AngleAxis(-135f, Vector3.forward);
        rightLaserObj.transform.localRotation = Quaternion.AngleAxis(-45f, Vector3.forward);

        Laser topLaser = topLaserObj.transform.Find("Laser").GetComponent<Laser>();
        Laser leftLaser = leftLaserObj.transform.Find("Laser").GetComponent<Laser>();
        Laser rightLaser = rightLaserObj.transform.Find("Laser").GetComponent<Laser>();

        Color colorToApply = transform.Find("TowerSpriteGlow").GetComponent<SpriteRenderer>().color;
        topLaser.damage = GetDamage();
        topLaser.damageType = damageType;
        topLaser.SetColor(colorToApply);
        leftLaser.damage = GetDamage();
        leftLaser.damageType = damageType;
        leftLaser.SetColor(colorToApply);
        rightLaser.damage = GetDamage();
        rightLaser.damageType = damageType;
        rightLaser.SetColor(colorToApply);
    }
Ejemplo n.º 5
0
 protected virtual void OnCollideThorns(Collider2D OwnerCollider, CanTakeDamage GetHurt)
 {
 }
Ejemplo n.º 6
0
 protected virtual void OnCollideTakeDamage(Collider2D collider, CanTakeDamage takeDamage)
 {
 }
 void Start()
 {
     canMoove = GetComponent<CanMove>();
     canTakeDamage = GetComponent<CanTakeDamage>();
     canTakeDamage.healthChanged += GoFasterIfHealthIsLow;
 }
Ejemplo n.º 8
0
 void Start()
 {
     canTakeDamage = GetComponent<CanTakeDamage>();
     initialShieldPower = lifeToShieldRatio * canTakeDamage.InitialHp;
     currentShieldPower = initialShieldPower;
 }
Ejemplo n.º 9
0
 //Turns a normal eny into its boss version, with more life, slower, different skin, larger
 void TransformEnemyIntoBoss(CanTakeDamage enemy)
 {
     enemy.InitialHp = enemy.InitialHp * 2.5f;
     SpriteRenderer centerRenderer = enemy.transform.Find("NeonCenter").gameObject.GetComponent<SpriteRenderer>();
     Debug.Log(centerRenderer.sprite.name + "-boss");
     centerRenderer.sprite = Resources.Load(centerRenderer.sprite.name + "-boss", typeof(Sprite)) as Sprite;
     CanMove canMove = enemy.gameObject.GetComponent<CanMove>();
     canMove.speed = canMove.speed / 1.5f;
     canMove.transform.localScale *= 1.3f;
 }
 float DistanceToEnemy(CanTakeDamage enemy)
 {
     return Vector3.Distance(enemy.transform.position, transform.position);
 }
Ejemplo n.º 11
0
 public void removeTargetFromList(CanTakeDamage target)
 {
     deadTargets.Add(target);
 }
Ejemplo n.º 12
0
 protected virtual void Shoot(CanTakeDamage target)
 {
     if (ionCharger != null){
         ionCharger.Charge(GetDamage());
     }
 }
Ejemplo n.º 13
0
 protected override void OnCollideThorns(Collider2D OwnerCollider, CanTakeDamage GetHurt)
 {
     GetHurt.CmdTakeDamage(Damage, gameObject);
     DestroyProjectile();
 }
Ejemplo n.º 14
0
 protected override void OnCollideTakeDamage(Collider2D collider, CanTakeDamage takeDamage)
 {
     takeDamage.CmdTakeDamage(Damage, gameObject);
     DestroyProjectile();
 }