protected override void OnChangeMyController(BaseObject oldController) { if (MyController != null && !(MyController is MovingEntity)) { throw new NotSupportedException("Only MovingEntity objects\n" + MyController.GetType().FullName); } base.OnChangeMyController(oldController); if (oldController != MyController) { LegacyLogic.Instance.EventManager.UnregisterEvent(EEventType.MONSTER_DIED, new EventHandler(OnEntityDied)); } if (MyController != null) { LegacyLogic.Instance.EventManager.RegisterEvent(EEventType.MONSTER_DIED, new EventHandler(OnEntityDied)); } }
protected override void OnChangeMyController(BaseObject oldController) { base.OnChangeMyController(oldController); if (oldController != MyController) { DelayedEventManager.UnregisterEvent(EDelayType.ON_FRAME_END, EEventType.MOVE_ENTITY, new EventHandler(OnPartyMove)); LegacyLogic.Instance.EventManager.UnregisterEvent(EEventType.NPC_HIRELING_UPDATED, new EventHandler(OnNPCHirelingUpdated)); LegacyLogic.Instance.EventManager.UnregisterEvent(EEventType.TOKEN_ADDED, new EventHandler(CheckVisibility)); LegacyLogic.Instance.EventManager.UnregisterEvent(EEventType.PARTY_BUFF_ADDED, new EventHandler(CheckVisibility)); LegacyLogic.Instance.EventManager.UnregisterEvent(EEventType.PARTY_BUFF_REMOVED, new EventHandler(CheckVisibility)); } if (MyController != null && !(MyController is InteractiveObject)) { Debug.LogError("DiscoverHighlightViewBase: OnChangeMyController: works only for InteractiveObjects! Was given '" + MyController.GetType().FullName + "'"); return; } if (MyController != null) { DelayedEventManager.RegisterEvent(EDelayType.ON_FRAME_END, EEventType.MOVE_ENTITY, new EventHandler(OnPartyMove)); LegacyLogic.Instance.EventManager.RegisterEvent(EEventType.NPC_HIRELING_UPDATED, new EventHandler(OnNPCHirelingUpdated)); LegacyLogic.Instance.EventManager.RegisterEvent(EEventType.TOKEN_ADDED, new EventHandler(CheckVisibility)); LegacyLogic.Instance.EventManager.RegisterEvent(EEventType.PARTY_BUFF_ADDED, new EventHandler(CheckVisibility)); LegacyLogic.Instance.EventManager.RegisterEvent(EEventType.PARTY_BUFF_REMOVED, new EventHandler(CheckVisibility)); } }