SectorBullet.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using UnityEngine;
  2. using System.Collections;
  3. public class SectorBullet : Bullet
  4. {
  5. public float delayEffect = 0.5f;
  6. public float delayRemove = 2f;
  7. private bool effected = false;
  8. public int[] targetIds;
  9. public override void Init (Map map, Vector3 position, ITarget target, Power power)
  10. {
  11. base.Init (map, position, target, power);
  12. float theta = NumberUtil.getRadianByATan(target.position.x, target.position.z, position.x, position.z);
  13. float rotateAngle = -NumberUtil.radianToAngle(theta);
  14. Vector3 eulerAngles = transform.eulerAngles;
  15. eulerAngles.y = rotateAngle;
  16. transform.eulerAngles = eulerAngles;
  17. }
  18. // Update is called once per frame
  19. override public void Update ()
  20. {
  21. float currentTime = GameTime.time;
  22. if(!effected && currentTime - startTime > delayEffect)
  23. {
  24. effected = true;
  25. MakeDamage();
  26. }
  27. if(effected && currentTime - startTime > delayRemove)
  28. {
  29. Remove();
  30. }
  31. }
  32. protected override void MakeDamage ()
  33. {
  34. for(int i=0; i<targetIds.Length; i++)
  35. {
  36. BattleObject obj = map.GetBattleObject(targetIds[i]);
  37. DoDamage(obj);
  38. }
  39. }
  40. }