BattleZoneTrigger.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System;
  2. using GameWorld;
  3. public class BattleZoneTrigger : BaseBehaviour
  4. {
  5. private void Start()
  6. {
  7. EventManager.RegisterEvent<EnemyHurtAtkEventArgs>("EnemyHurtAtk", new EventManager.FBEventHandler<EnemyHurtAtkEventArgs>(this.EnterBattleModeByEnemyHurt), EventManager.ListenerQueue.Game);
  8. EventManager.RegisterEvent<PlayerHurtAtkEventArgs>("PlayerHurtAtk", new EventManager.FBEventHandler<PlayerHurtAtkEventArgs>(this.EnterBattleModeByPlayerHurt), EventManager.ListenerQueue.Game);
  9. }
  10. private void Update()
  11. {
  12. }
  13. private bool EnterBattleModeByPlayerHurt(string eventName, object sender, PlayerHurtAtkEventArgs msg)
  14. {
  15. if (R.Player.Transform.position.x < GameArea.MapRange.xMin + 3f || R.Player.Transform.position.x > GameArea.MapRange.xMax - 3f)
  16. {
  17. return true;
  18. }
  19. bool flag = false;
  20. if (msg.sender != null)
  21. {
  22. EnemyBullet component = msg.sender.GetComponent<EnemyBullet>();
  23. if (component != null && component.EnemyTypeOfShooter == EnemyType.空雷)
  24. {
  25. flag = true;
  26. }
  27. }
  28. if (!R.Mode.IsInBattleMode() && !flag)
  29. {
  30. R.Mode.EnterMode(Mode.AllMode.Battle);
  31. }
  32. return true;
  33. }
  34. private bool EnterBattleModeByEnemyHurt(string eventName, object sender, EnemyHurtAtkEventArgs msg)
  35. {
  36. if (!R.Mode.IsInBattleMode() && msg.hurted.GetComponent<SupplyBoxAction>() == null && msg.hurted.GetComponent<MusicPlayerAction>() == null)
  37. {
  38. R.Mode.EnterMode(Mode.AllMode.Battle);
  39. }
  40. return true;
  41. }
  42. }