using System; using System.Collections.Generic; namespace IdleSpectator; /// Authored interest overlay for every live plots_library asset. public static partial class EventCatalog { public static class Plot { private static readonly Dictionary Entries = new Dictionary(StringComparer.OrdinalIgnoreCase); static Plot() { Add("rebellion", 92f, "Politics", "{a} is plotting a rebellion"); Add("new_war", 94f, "Politics", "{a} is plotting a war"); Add("alliance_create", 80f, "Politics", "{a} is plotting an alliance"); Add("alliance_join", 72f, "Politics", "{a} is joining an alliance"); Add("alliance_destroy", 86f, "Politics", "{a} is breaking an alliance"); Add("attacker_stop_war", 78f, "Politics", "{a} is ending a war"); Add("new_book", 55f, "Culture", "{a} is writing a book"); Add("new_language", 62f, "Culture", "{a} is forging a language"); Add("new_religion", 70f, "Culture", "{a} is founding a religion"); Add("new_culture", 68f, "Culture", "{a} is founding a culture"); Add("clan_ascension", 82f, "Politics", "{a} is ascending a clan"); Add("culture_divide", 75f, "Culture", "{a} splits a culture"); Add("religion_schism", 84f, "Culture", "{a} causes a religion schism"); Add("language_divergence", 60f, "Culture", "{a} splits a language"); Add("summon_meteor_rain", 96f, "Spectacle", "{a} summons a meteor rain"); Add("summon_earthquake", 95f, "Spectacle", "{a} summons an earthquake"); Add("summon_thunderstorm", 93f, "Spectacle", "{a} summons a thunderstorm"); Add("summon_stormfront", 93f, "Spectacle", "{a} summons a stormfront"); Add("summon_hellstorm", 97f, "Spectacle", "{a} summons a hellstorm"); Add("summon_demons", 96f, "Spectacle", "{a} summons demons"); Add("summon_angles", 96f, "Spectacle", "{a} summons angels"); Add("summon_skeletons", 92f, "Spectacle", "{a} summons skeletons"); Add("summon_living_plants", 90f, "Spectacle", "{a} summons living plants"); Add("big_cast_coffee", 58f, "Spectacle", "{a} performs a coffee ritual"); Add("big_cast_bubble_shield", 64f, "Spectacle", "{a} casts a bubble shield"); Add("big_cast_madness", 80f, "Spectacle", "{a} casts madness"); Add("big_cast_slowness", 70f, "Spectacle", "{a} casts slowness"); Add("cause_rebellion", 90f, "Politics", "{a} causes a rebellion"); } private static void Add( string id, float strength, string category, string label) { Entries[id] = new DiscreteEventEntry { Id = id, EventStrength = strength, Category = category, CreatesInterest = true, LabelTemplate = label }; } public static IEnumerable AuthoredIds => Entries.Keys; public static bool HasAuthored(string id) => !string.IsNullOrEmpty(id) && Entries.ContainsKey(id.Trim()); public static DiscreteEventEntry GetOrFallback(string id) { if (!string.IsNullOrEmpty(id) && Entries.TryGetValue(id.Trim(), out DiscreteEventEntry entry)) { return entry; } string key = string.IsNullOrEmpty(id) ? "unknown" : id.Trim(); return new DiscreteEventEntry { Id = key, EventStrength = 55f, Category = "Plot", LabelTemplate = "{a} ยท {id}", IsFallback = true }; } } }