private static void ApplyAbilitySettings(CombatLogEvent @event, CombatLogViewModel viewModel, Settings settings) { if (!settings.EnableAbilitySettings) return; var abilitySetting = settings.AbilitySettings .FirstOrDefault(s => s.AbilityId == @event.Ability.EntityId.ToString() && s.Enabled); if (abilitySetting != null) { if (abilitySetting.Image != null && File.Exists(abilitySetting.Image)) { viewModel.ImageUrl = abilitySetting.Image; } if (!string.IsNullOrEmpty(abilitySetting.BorderColor)) { viewModel.ImageBorderColor = abilitySetting.BorderColor.FromHexToColor(); } if (abilitySetting.Aliases.Any()) { viewModel.Text = abilitySetting.Aliases.PickRandom(); } } }
public CombatLogViewModel Create(CombatLogEvent @event) { var viewModel = new CombatLogViewModel(@event); var settings = settingsService.Settings; if (@event.IsAbilityActivate() || @event.IsApplyEffect()) { ApplyLoggerSettings(@event, viewModel, settings); ApplyAbilitySettings(@event, viewModel, settings); } if (settings.EnableCompanionAbilities && @event.IsPlayerCompanion()) { viewModel.ImageBorderColor = settings.CompanionAbilityBorderColor.FromHexToColor(); } ApplyFontSettings(viewModel, settings); return viewModel; }
private void ApplyLoggerSettings(CombatLogEvent combatLogEvent, CombatLogViewModel viewModel, Settings settings) { var abilityId = combatLogEvent.Ability.EntityId; viewModel.ImageUrl = imageService.GetImageById(abilityId); viewModel.IsUnknown = imageService.IsUnknown(abilityId); viewModel.ImageBorderColor = Colors.Transparent; viewModel.Text = combatLogEvent.Ability.DisplayName; viewModel.TextVisibility = settings.EnableAbilityText ? Visibility.Visible : Visibility.Hidden; viewModel.TooltipText = $"{combatLogEvent.Ability.EntityId} (Click to copy Ability ID to Clipboard!)"; }
private void ApplyFontSettings(CombatLogViewModel viewModel, Settings settings) { viewModel.FontColor = new SolidColorBrush(settings.AbilityTextColor.FromHexToColor()); viewModel.FontFamily = fontService.GetFontFromString(settings.TextFont); viewModel.FontSize = settings.FontSize; viewModel.FontBorderColor = new SolidColorBrush(settings.AbilityTextBorderColor.FromHexToColor()); viewModel.FontBorderThickness = settings.FontBorderThickness; }