private void ApplyChangeOnItemModifier(IList <ActiveStatsModifier> modifiers, IModifierChange change) { var newModifier = change.Modifier; var modifier = modifiers.First(m => m.Id == newModifier.Id); if (!newModifier.Active && !modifier.Reusable) { modifiers.Remove(modifier); } else { modifier.Active = newModifier.Active; modifier.CurrentCombatCount = newModifier.CurrentCombatCount; modifier.CurrentLapCount = newModifier.CurrentLapCount; modifier.CurrentTimeDuration = newModifier.CurrentTimeDuration; } }
private void ApplyChangeOnMonsterModifier(Monster monster, IList <ActiveStatsModifier> modifiers, IModifierChange change, INotificationSession notificationSession) { var newModifier = change.Modifier; var modifier = modifiers.First(m => m.Id == newModifier.Id); if (!newModifier.Active && !modifier.Reusable) { modifiers.Remove(modifier); notificationSession.NotifyMonsterRemoveModifier(monster.Id, modifier.Id); } else { modifier.Active = newModifier.Active; modifier.CurrentCombatCount = newModifier.CurrentCombatCount; modifier.CurrentLapCount = newModifier.CurrentLapCount; modifier.CurrentTimeDuration = newModifier.CurrentTimeDuration; notificationSession.NotifyMonsterUpdateModifier(monster.Id, modifier); } }