public void UnhookEvents() { Dispatcher.Invoke(new Action(() => { foreach (Monster_Widget.Parts.MonsterPart Part in MonsterPartsContainer.Children) { Part.UnhookEvents(); } foreach (Monster_Widget.Parts.MonsterAilment Ailment in MonsterAilmentsContainer.Children) { Ailment.UnhookEvents(); } MonsterAilmentsContainer.Children.Clear(); MonsterPartsContainer.Children.Clear(); })); Context.OnMonsterSpawn -= OnMonsterSpawn; Context.OnMonsterDespawn -= OnMonsterDespawn; Context.OnMonsterDeath -= OnMonsterDespawn; Context.OnMonsterCapture -= OnMonsterDespawn; Context.OnHPUpdate -= OnMonsterUpdate; Context.OnStaminaUpdate -= OnStaminaUpdate; Context.OnEnrage -= OnEnrage; Context.OnUnenrage -= OnUnenrage; Context.OnEnrageTimerUpdate -= OnEnrageTimerUpdate; Context.OnTargetted -= OnMonsterTargetted; Context.OnCrownChange -= OnMonsterCrownChange; Context.OnAlatreonElementShift -= OnAlatreonElementShift; Context.OnMonsterAilmentsCreate -= OnMonsterAilmentsCreate; Context = null; }
private void OnMonsterDespawn(object source, EventArgs args) => Dispatch(() => { MonsterCrown.Visibility = Visibility.Collapsed; Visibility = Visibility.Collapsed; Weaknesses.Children.Clear(); foreach (Monster_Widget.Parts.MonsterPart Part in MonsterPartsContainer.Children) { Part.UnhookEvents(); } foreach (Monster_Widget.Parts.MonsterAilment Ailment in MonsterAilmentsContainer.Children) { Ailment.UnhookEvents(); } MonsterAilmentsContainer.Children.Clear(); MonsterPartsContainer.Children.Clear(); });