using System; using GameWorld; public class BattleZoneTrigger : BaseBehaviour { private void Start() { EventManager.RegisterEvent("EnemyHurtAtk", new EventManager.FBEventHandler(this.EnterBattleModeByEnemyHurt), EventManager.ListenerQueue.Game); EventManager.RegisterEvent("PlayerHurtAtk", new EventManager.FBEventHandler(this.EnterBattleModeByPlayerHurt), EventManager.ListenerQueue.Game); } private void Update() { } private bool EnterBattleModeByPlayerHurt(string eventName, object sender, PlayerHurtAtkEventArgs msg) { if (R.Player.Transform.position.x < GameArea.MapRange.xMin + 3f || R.Player.Transform.position.x > GameArea.MapRange.xMax - 3f) { return true; } bool flag = false; if (msg.sender != null) { EnemyBullet component = msg.sender.GetComponent(); if (component != null && component.EnemyTypeOfShooter == EnemyType.空雷) { flag = true; } } if (!R.Mode.IsInBattleMode() && !flag) { R.Mode.EnterMode(Mode.AllMode.Battle); } return true; } private bool EnterBattleModeByEnemyHurt(string eventName, object sender, EnemyHurtAtkEventArgs msg) { if (!R.Mode.IsInBattleMode() && msg.hurted.GetComponent() == null && msg.hurted.GetComponent() == null) { R.Mode.EnterMode(Mode.AllMode.Battle); } return true; } }