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); }
protected virtual void OnCollideThorns(Collider2D OwnerCollider, CanTakeDamage GetHurt) { }
protected virtual void OnCollideTakeDamage(Collider2D collider, CanTakeDamage takeDamage) { }
void Start() { canMoove = GetComponent<CanMove>(); canTakeDamage = GetComponent<CanTakeDamage>(); canTakeDamage.healthChanged += GoFasterIfHealthIsLow; }
void Start() { canTakeDamage = GetComponent<CanTakeDamage>(); initialShieldPower = lifeToShieldRatio * canTakeDamage.InitialHp; currentShieldPower = initialShieldPower; }
//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); }
public void removeTargetFromList(CanTakeDamage target) { deadTargets.Add(target); }
protected virtual void Shoot(CanTakeDamage target) { if (ionCharger != null){ ionCharger.Charge(GetDamage()); } }
protected override void OnCollideThorns(Collider2D OwnerCollider, CanTakeDamage GetHurt) { GetHurt.CmdTakeDamage(Damage, gameObject); DestroyProjectile(); }
protected override void OnCollideTakeDamage(Collider2D collider, CanTakeDamage takeDamage) { takeDamage.CmdTakeDamage(Damage, gameObject); DestroyProjectile(); }