protected virtual void Update() { List <Targetable> targets = targetter.GetAllTargets(); if (targets.Count == 0) { Destroy(line); } if (targets.Count > 0) { foreach (Targetable target in targets) { if (target != null) { target.TakeDamage(damager.damage * Time.deltaTime, target.position, damager.alignmentProvider); if (line == null) { line = this.gameObject.AddComponent <LineRenderer>(); } line.material = mat; line.startWidth = line.endWidth = 0.1f; line.SetPosition(0, lamps[Random.Range(0, 1)].position); line.SetPosition(1, target.transform.position); } } } }
protected virtual void FireProjectile() { // Shoot at all possible enemies. if (isMultiAttack) { int i = 0; List <Targetable> targetables = targetter.GetAllTargets(); foreach (Targetable t in targetables) { if (t != null) { Projectile projectile = Poolable.TryGetPoolable <Projectile>(projectilePrefab); projectile.Launch(projectilePoints[i].position, t); } i++; } } // Shoot at the cloiest one and stick to it. else { Projectile projectile = Poolable.TryGetPoolable <Projectile>(projectilePrefab); projectile.Launch(projectilePoints[0].position, trackingEnemy); } }
/// <summary> /// Common logic when attacking /// </summary> protected virtual void FireProjectile() { if (m_TrackingEnemy == null) { return; } if (isMultiAttack) { List <Targetable> enemies = m_Targetter.GetAllTargets(); m_Launcher.Launch(enemies, projectile, projectilePoints); } else { m_Launcher.Launch(m_TrackingEnemy, damagerProjectile.gameObject, projectilePoints); } if (randomAudioSource != null) { randomAudioSource.PlayRandomClip(); } }
/// <summary> /// Common logic when attacking /// </summary> protected virtual void FireProjectile() { if (m_TrackingEnemy == null) { return; } if (isMultiAttack) { List <Targetable> enemies = towerTargetter.GetAllTargets(); m_Launcher.Launch(enemies, projectile, projectilePoints); } else { m_Launcher.Launch(m_TrackingEnemy, damagerProjectile.gameObject, projectilePoints); } if (randomAudioSource != null) { randomAudioSource.PlayRandomClip(); //WWiseEventPlayer myEventPlayer = gameObject.AddComponent(typeof(WWiseEventPlayer)) as WWiseEventPlayer; //myEventPlayer.PlayWwiseEvent("ui_objectFireProjectile"); } }