using System.Collections.Generic; using System.Collections.ObjectModel; namespace BriarQueen.Data.Identifiers { public enum ItemInteractKey { None = 0, EmptyHands = 1, CantUseItem = 2, SomethingMissing = 3, CarefulInteract = 4, LooksImportant = 5, WrongTool = 6, CodexLocked = 7 } public enum LevelInteractKey { None = 0, } public enum EnvironmentInteractKey { None = 0, Locked = 1, CantGoThere = 2, DoesntBelong = 3, FireHot = 4, AshwickHallowSign = 5, FirstSkeleton = 10, ClockTower = 11, } public enum UIInteractKey { None = 0, EmptySlot = 1, } public static class InteractEventIDs { private static readonly IReadOnlyDictionary _itemInteractions = new ReadOnlyDictionary( new Dictionary { { ItemInteractKey.EmptyHands, "My hands are too full for that." }, { ItemInteractKey.CantUseItem, "That won’t work here." }, { ItemInteractKey.SomethingMissing, "Something isn’t right." }, { ItemInteractKey.CarefulInteract, "I should take care with this." }, { ItemInteractKey.LooksImportant, "This feels important." }, { ItemInteractKey.WrongTool, "This isn’t the right tool." }, { ItemInteractKey.CodexLocked, "I have nowhere to put that." }, }); private static readonly IReadOnlyDictionary _levelInteractions = new ReadOnlyDictionary( new Dictionary { }); private static readonly IReadOnlyDictionary _environmentInteractions = new ReadOnlyDictionary( new Dictionary { { EnvironmentInteractKey.Locked, "It's locked." }, { EnvironmentInteractKey.CantGoThere, "No way through." }, { EnvironmentInteractKey.DoesntBelong, "This feels out of place." }, { EnvironmentInteractKey.FireHot, "Too hot to get close." }, { EnvironmentInteractKey.AshwickHallowSign, "Ashwick Hallow… Even the name feels like a warning."}, { EnvironmentInteractKey.FirstSkeleton, "What the hell happened here?"}, { EnvironmentInteractKey.ClockTower, "Even from here, something about that clock tower feels wrong."} }); private static readonly IReadOnlyDictionary _uiInteractions = new ReadOnlyDictionary( new Dictionary { { UIInteractKey.EmptySlot, "Empty." }, }); public static string Get(ItemInteractKey key) { return _itemInteractions.TryGetValue(key, out var value) ? value : string.Empty; } public static string Get(LevelInteractKey key) { return _levelInteractions.TryGetValue(key, out var value) ? value : string.Empty; } public static string Get(EnvironmentInteractKey key) { return _environmentInteractions.TryGetValue(key, out var value) ? value : string.Empty; } public static string Get(UIInteractKey key) { return _uiInteractions.TryGetValue(key, out var value) ? value : string.Empty; } } }