Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 38 additions & 2 deletions ArcdpsLogManager/ImageProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,33 +24,51 @@ public class ImageProvider
private Lazy<Image> TinyIconUnknownProfession { get; } = new Lazy<Image>(Resources.GetTinyIconUnknown);

// SPECIALIZATIONS
// Warrior
private Lazy<Image> TinyIconBerserker { get; } = new Lazy<Image>(Resources.GetTinyIconBerserker);
private Lazy<Image> TinyIconSpellbreaker { get; } = new Lazy<Image>(Resources.GetTinyIconSpellbreaker);
private Lazy<Image> TinyIconBladesworn { get; } = new Lazy<Image>(Resources.GetTinyIconBladesworn);
private Lazy<Image> TinyIconParagon { get; } = new Lazy<Image>(Resources.GetTinyIconParagon);
// Guardian
private Lazy<Image> TinyIconDragonhunter { get; } = new Lazy<Image>(Resources.GetTinyIconDragonhunter);
private Lazy<Image> TinyIconWillbender { get; } = new Lazy<Image>(Resources.GetTinyIconWillbender);
private Lazy<Image> TinyIconFirebrand { get; } = new Lazy<Image>(Resources.GetTinyIconFirebrand);
private Lazy<Image> TinyIconLuminary { get; } = new Lazy<Image>(Resources.GetTinyIconLuminary);
// Revenant
private Lazy<Image> TinyIconHerald { get; } = new Lazy<Image>(Resources.GetTinyIconHerald);
private Lazy<Image> TinyIconRenegade { get; } = new Lazy<Image>(Resources.GetTinyIconRenegade);
private Lazy<Image> TinyIconVindicator { get; } = new Lazy<Image>(Resources.GetTinyIconVindicator);
private Lazy<Image> TinyIconConduit { get; } = new Lazy<Image>(Resources.GetTinyIconConduit);
// Ranger
private Lazy<Image> TinyIconDruid { get; } = new Lazy<Image>(Resources.GetTinyIconDruid);
private Lazy<Image> TinyIconSoulbeast { get; } = new Lazy<Image>(Resources.GetTinyIconSoulbeast);
private Lazy<Image> TinyIconUntamed { get; } = new Lazy<Image>(Resources.GetTinyIconUntamed);
private Lazy<Image> TinyIconGaleshot { get; } = new Lazy<Image>(Resources.GetTinyIconGaleshot);
// Thief
private Lazy<Image> TinyIconDaredevil { get; } = new Lazy<Image>(Resources.GetTinyIconDaredevil);
private Lazy<Image> TinyIconDeadeye { get; } = new Lazy<Image>(Resources.GetTinyIconDeadeye);
private Lazy<Image> TinyIconSpecter { get; } = new Lazy<Image>(Resources.GetTinyIconSpecter);
private Lazy<Image> TinyIconAntiquary { get; } = new Lazy<Image>(Resources.GetTinyIconAntiquary);
// Engineer
private Lazy<Image> TinyIconScrapper { get; } = new Lazy<Image>(Resources.GetTinyIconScrapper);
private Lazy<Image> TinyIconHolosmith { get; } = new Lazy<Image>(Resources.GetTinyIconHolosmith);
private Lazy<Image> TinyIconMechanist { get; } = new Lazy<Image>(Resources.GetTinyIconMechanist);
private Lazy<Image> TinyIconAmalgam { get; } = new Lazy<Image>(Resources.GetTinyIconAmalgam);
// Necromancer
private Lazy<Image> TinyIconReaper { get; } = new Lazy<Image>(Resources.GetTinyIconReaper);
private Lazy<Image> TinyIconScourge { get; } = new Lazy<Image>(Resources.GetTinyIconScourge);
private Lazy<Image> TinyIconHarbinger { get; } = new Lazy<Image>(Resources.GetTinyIconHarbinger);
private Lazy<Image> TinyIconRitualist { get; } = new Lazy<Image>(Resources.GetTinyIconRitualist);
// Elementalist
private Lazy<Image> TinyIconTempest { get; } = new Lazy<Image>(Resources.GetTinyIconTempest);
private Lazy<Image> TinyIconWeaver { get; } = new Lazy<Image>(Resources.GetTinyIconWeaver);
private Lazy<Image> TinyIconCatalyst { get; } = new Lazy<Image>(Resources.GetTinyIconCatalyst);
private Lazy<Image> TinyIconEvoker { get; } = new Lazy<Image>(Resources.GetTinyIconEvoker);
// Mesmer
private Lazy<Image> TinyIconChronomancer { get; } = new Lazy<Image>(Resources.GetTinyIconChronomancer);
private Lazy<Image> TinyIconMirage { get; } = new Lazy<Image>(Resources.GetTinyIconMirage);
private Lazy<Image> TinyIconVirtuoso { get; } = new Lazy<Image>(Resources.GetTinyIconVirtuoso);
private Lazy<Image> TinyIconTroubadour { get; } = new Lazy<Image>(Resources.GetTinyIconTroubadour);

// CATEGORIES
private Lazy<Image> TinyIconRaid { get; } = new Lazy<Image>(Resources.GetTinyIconRaid);
Expand Down Expand Up @@ -266,33 +284,51 @@ public Image GetTinyProfessionIcon(EliteSpecialization specialization)
{
return specialization switch
{
// Warrior
EliteSpecialization.Berserker => TinyIconBerserker.Value,
EliteSpecialization.Spellbreaker => TinyIconSpellbreaker.Value,
EliteSpecialization.Bladesworn => TinyIconBladesworn.Value,
EliteSpecialization.Paragon => TinyIconParagon.Value,
// Guardian
EliteSpecialization.Dragonhunter => TinyIconDragonhunter.Value,
EliteSpecialization.Firebrand => TinyIconFirebrand.Value,
EliteSpecialization.Willbender => TinyIconWillbender.Value,
EliteSpecialization.Luminary => TinyIconLuminary.Value,
// Revenant
EliteSpecialization.Herald => TinyIconHerald.Value,
EliteSpecialization.Renegade => TinyIconRenegade.Value,
EliteSpecialization.Vindicator => TinyIconVindicator.Value,
EliteSpecialization.Conduit => TinyIconConduit.Value,
// Ranger
EliteSpecialization.Druid => TinyIconDruid.Value,
EliteSpecialization.Soulbeast => TinyIconSoulbeast.Value,
EliteSpecialization.Untamed => TinyIconUntamed.Value,
EliteSpecialization.Galeshot => TinyIconGaleshot.Value,
// Thief
EliteSpecialization.Daredevil => TinyIconDaredevil.Value,
EliteSpecialization.Deadeye => TinyIconDeadeye.Value,
EliteSpecialization.Specter => TinyIconSpecter.Value,
EliteSpecialization.Antiquary => TinyIconAntiquary.Value,
// Engineer
EliteSpecialization.Scrapper => TinyIconScrapper.Value,
EliteSpecialization.Holosmith => TinyIconHolosmith.Value,
EliteSpecialization.Mechanist => TinyIconMechanist.Value,
EliteSpecialization.Amalgam => TinyIconAmalgam.Value,
// Necromancer
EliteSpecialization.Reaper => TinyIconReaper.Value,
EliteSpecialization.Scourge => TinyIconScourge.Value,
EliteSpecialization.Harbinger => TinyIconHarbinger.Value,
EliteSpecialization.Ritualist => TinyIconRitualist.Value,
// Elementalist
EliteSpecialization.Tempest => TinyIconTempest.Value,
EliteSpecialization.Weaver => TinyIconWeaver.Value,
EliteSpecialization.Catalyst => TinyIconCatalyst.Value,
EliteSpecialization.Evoker => TinyIconEvoker.Value,
// Mesmr
EliteSpecialization.Chronomancer => TinyIconChronomancer.Value,
EliteSpecialization.Mirage => TinyIconMirage.Value,
EliteSpecialization.Virtuoso => TinyIconVirtuoso.Value,
EliteSpecialization.Specter => TinyIconSpecter.Value,
EliteSpecialization.Catalyst => TinyIconCatalyst.Value,
EliteSpecialization.Troubadour => TinyIconTroubadour.Value,
_ => throw new ArgumentOutOfRangeException(nameof(specialization)),
};
}
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions ArcdpsLogManager/Resources.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,33 +38,51 @@ public static Icon GetProgramIcon()
public static Image GetTinyIconMesmer() => GetImage("Tango.Mesmer_tango_icon_20px.png");

// SPECIALIZATIONS
// Warrior
public static Image GetTinyIconBerserker() => GetImage("Tango.Berserker_tango_icon_20px.png");
public static Image GetTinyIconSpellbreaker() => GetImage("Tango.Spellbreaker_tango_icon_20px.png");
public static Image GetTinyIconBladesworn() => GetImage("Tango.Bladesworn_tango_icon_20px.png");
public static Image GetTinyIconParagon() => GetImage("Tango.Paragon_tango_icon_20px.png");
// Guardian
public static Image GetTinyIconDragonhunter() => GetImage("Tango.Dragonhunter_tango_icon_20px.png");
public static Image GetTinyIconFirebrand() => GetImage("Tango.Firebrand_tango_icon_20px.png");
public static Image GetTinyIconWillbender() => GetImage("Tango.Willbender_tango_icon_20px.png");
public static Image GetTinyIconLuminary() => GetImage("Tango.Luminary_tango_icon_20px.png");
// Revenant
public static Image GetTinyIconHerald() => GetImage("Tango.Herald_tango_icon_20px.png");
public static Image GetTinyIconRenegade() => GetImage("Tango.Renegade_tango_icon_20px.png");
public static Image GetTinyIconVindicator() => GetImage("Tango.Vindicator_tango_icon_20px.png");
public static Image GetTinyIconConduit() => GetImage("Tango.Conduit_tango_icon_20px.png");
// Ranger
public static Image GetTinyIconDruid() => GetImage("Tango.Druid_tango_icon_20px.png");
public static Image GetTinyIconSoulbeast() => GetImage("Tango.Soulbeast_tango_icon_20px.png");
public static Image GetTinyIconUntamed() => GetImage("Tango.Untamed_tango_icon_20px.png");
public static Image GetTinyIconGaleshot() => GetImage("Tango.Galeshot_tango_icon_20px.png");
// Thief
public static Image GetTinyIconDaredevil() => GetImage("Tango.Daredevil_tango_icon_20px.png");
public static Image GetTinyIconDeadeye() => GetImage("Tango.Deadeye_tango_icon_20px.png");
public static Image GetTinyIconSpecter() => GetImage("Tango.Specter_tango_icon_20px.png");
public static Image GetTinyIconAntiquary() => GetImage("Tango.Antiquary_tango_icon_20px.png");
// Engineer
public static Image GetTinyIconScrapper() => GetImage("Tango.Scrapper_tango_icon_20px.png");
public static Image GetTinyIconHolosmith() => GetImage("Tango.Holosmith_tango_icon_20px.png");
public static Image GetTinyIconMechanist() => GetImage("Tango.Mechanist_tango_icon_20px.png");
public static Image GetTinyIconAmalgam() => GetImage("Tango.Amalgam_tango_icon_20px.png");
// Necromancer
public static Image GetTinyIconReaper() => GetImage("Tango.Reaper_tango_icon_20px.png");
public static Image GetTinyIconScourge() => GetImage("Tango.Scourge_tango_icon_20px.png");
public static Image GetTinyIconHarbinger() => GetImage("Tango.Harbinger_tango_icon_20px.png");
public static Image GetTinyIconRitualist() => GetImage("Tango.Ritualist_tango_icon_20px.png");
// Elementalist
public static Image GetTinyIconTempest() => GetImage("Tango.Tempest_tango_icon_20px.png");
public static Image GetTinyIconWeaver() => GetImage("Tango.Weaver_tango_icon_20px.png");
public static Image GetTinyIconCatalyst() => GetImage("Tango.Catalyst_tango_icon_20px.png");
public static Image GetTinyIconEvoker() => GetImage("Tango.Evoker_tango_icon_20px.png");
// Mesmer
public static Image GetTinyIconChronomancer() => GetImage("Tango.Chronomancer_tango_icon_20px.png");
public static Image GetTinyIconMirage() => GetImage("Tango.Mirage_tango_icon_20px.png");
public static Image GetTinyIconVirtuoso() => GetImage("Tango.Virtuoso_tango_icon_20px.png");
public static Image GetTinyIconTroubadour() => GetImage("Tango.Troubadour_tango_icon_20px.png");

// CATEGORIES
public static Image GetTinyIconRaid() => GetImage("ArenaNet.raid_icon_32px.png");
Expand Down
36 changes: 36 additions & 0 deletions EVTCAnalytics/GameData/Characters.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,20 @@ public static class Characters
{Profession.Revenant, EliteSpecialization.Vindicator}
};

private static readonly IReadOnlyDictionary<Profession, EliteSpecialization> VisionsOfEternitySpecializationsByProfession =
new Dictionary<Profession, EliteSpecialization>
{
{Profession.Guardian, EliteSpecialization.Luminary},
{Profession.Warrior, EliteSpecialization.Paragon},
{Profession.Engineer, EliteSpecialization.Amalgam},
{Profession.Ranger, EliteSpecialization.Galeshot},
{Profession.Thief, EliteSpecialization.Antiquary},
{Profession.Elementalist, EliteSpecialization.Evoker},
{Profession.Mesmer, EliteSpecialization.Troubadour},
{Profession.Necromancer, EliteSpecialization.Ritualist},
{Profession.Revenant, EliteSpecialization.Conduit}
};

/// <summary>
/// Ids of elite specializations as used internally in-game and publicly in the official API.
/// </summary>
Expand Down Expand Up @@ -97,6 +111,15 @@ public static class Characters
{70, EliteSpecialization.Mechanist},
{71, EliteSpecialization.Specter},
{72, EliteSpecialization.Untamed},
{73, EliteSpecialization.Troubadour},
{74, EliteSpecialization.Paragon},
{75, EliteSpecialization.Amalgam},
{76, EliteSpecialization.Ritualist},
{77, EliteSpecialization.Antiquary},
{78, EliteSpecialization.Galeshot},
{79, EliteSpecialization.Conduit},
{80, EliteSpecialization.Evoker},
{81, EliteSpecialization.Luminary},
};

/// <summary>
Expand Down Expand Up @@ -133,6 +156,11 @@ public static EliteSpecialization GetEndOfDragonsEliteSpecialization(Profession
return EndOfDragonsSpecializationsByProfession[profession];
}

public static EliteSpecialization GetVisionsOfEternityEliteSpecialization(Profession profession)
{
return VisionsOfEternitySpecializationsByProfession[profession];
}

/// <summary>
/// Provides the base profession for an elite specialization.
/// </summary>
Expand Down Expand Up @@ -170,6 +198,14 @@ public static Profession GetProfession(EliteSpecialization specialization)
}
}

foreach (var (profession, spec) in VisionsOfEternitySpecializationsByProfession)
{
if (specialization == spec)
{
return profession;
}
}

throw new NotSupportedException("Profession of elite specialization not found");
}
}
Expand Down
9 changes: 9 additions & 0 deletions EVTCAnalytics/Model/Agents/EliteSpecialization.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,14 @@ public enum EliteSpecialization
Virtuoso,
Harbinger,
Vindicator,
Antiquary,
Amalgam,
Conduit,
Luminary,
Paragon,
Evoker,
Ritualist,
Troubadour,
Galeshot,
}
}
Loading