using System.Collections.Generic; using System.Collections.ObjectModel; namespace BriarQueen.Data.Identifiers { public enum ItemInteractKey { None = 0, EmptyHands = 1, CantUseItem = 2, RustyKnife = 3, SomethingMissing = 4, PliersSnapped = 5, CarefulInteract = 6, RagFallsApart = 7, LooksImportant = 8, WrongTool = 9, CollectEndlessGoblets = 10, } public enum LevelInteractKey { None = 0, WaterValve = 1, ClearVinesOutside = 2, PumphouseChain = 3, CutVines = 4, WorkshopLockedSafe = 5, UnlockedPumphouse = 6, } public enum EnvironmentInteractKey { None = 0, BrokenLantern = 1, WorkshopWriting = 2, UseGrindstone = 3, WorkshopBookDisintegrating = 4, UsingKnife = 5, AlreadySharpened = 6, Locked = 7, CantGoThere = 8, DirtyWindow = 9, WorkshopBagNoItems = 10, FindCandle = 11, DoesntBelong = 12, SharpGlass = 13, FreshAndCoolWater = 14, WorkshopBooks = 15, PumpTurnOn = 16, FireHot = 17, ExtinguishFire = 18, CauldronBoiledAway = 19, LaxleyHouseBrokenClock = 20, LaxleyGrandfatherClockMissingBothHands = 21, LaxleyGrandfatherClockMissingHourHand = 22, LaxleyGrandfatherClockMissingMinuteHand = 23, } public enum UIInteractKey { None = 0, EmptySlot = 1, } public static class InteractEventIDs { public 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.RustyKnife, "Too dull to be of any use." }, { ItemInteractKey.SomethingMissing, "Something isn’t right." }, { ItemInteractKey.PliersSnapped, "The pliers snap. That’s the end of them." }, { ItemInteractKey.CarefulInteract, "I should take care with this." }, { ItemInteractKey.RagFallsApart, "It fell apart in my hands." }, { ItemInteractKey.LooksImportant, "This feels important." }, { ItemInteractKey.WrongTool, "This isn’t the right tool." }, { ItemInteractKey.CollectEndlessGoblets, "Faint symbols coil across the goblet’s surface." }, }); public static readonly IReadOnlyDictionary LevelInteractions = new ReadOnlyDictionary( new Dictionary { { LevelInteractKey.WaterValve, "The water is already flowing." }, { LevelInteractKey.ClearVinesOutside, "The vines still block the way outside." }, { LevelInteractKey.PumphouseChain, "It’s locked by something more than rust." }, { LevelInteractKey.CutVines, "These won’t give way by hand." }, { LevelInteractKey.WorkshopLockedSafe, "Sealed tight." }, { LevelInteractKey.UnlockedPumphouse, "The lock gives with a dull click." }, }); public static readonly IReadOnlyDictionary EnvironmentInteractions = new ReadOnlyDictionary( new Dictionary { { EnvironmentInteractKey.BrokenLantern, "Beyond repair." }, { EnvironmentInteractKey.WorkshopWriting, "At least it isn’t blood." }, { EnvironmentInteractKey.UseGrindstone, "This could still sharpen an edge." }, { EnvironmentInteractKey.WorkshopBookDisintegrating, "It crumbles at a touch." }, { EnvironmentInteractKey.UsingKnife, "Careful… one slip." }, { EnvironmentInteractKey.AlreadySharpened, "That edge will do." }, { EnvironmentInteractKey.Locked, "Locked." }, { EnvironmentInteractKey.CantGoThere, "No way through." }, { EnvironmentInteractKey.DirtyWindow, "Nothing visible through the grime." }, { EnvironmentInteractKey.WorkshopBagNoItems, "Picked clean." }, { EnvironmentInteractKey.FindCandle, "I need the candle that goes here." }, { EnvironmentInteractKey.DoesntBelong, "This feels out of place." }, { EnvironmentInteractKey.SharpGlass, "Still sharp enough to bite." }, { EnvironmentInteractKey.FreshAndCoolWater, "Cool. Clean. Unexpected." }, { EnvironmentInteractKey.WorkshopBooks, "Time hasn’t been kind to these." }, { EnvironmentInteractKey.PumpTurnOn, "The pumps shudder back to life." }, { EnvironmentInteractKey.FireHot, "Too hot to get close." }, { EnvironmentInteractKey.CauldronBoiledAway, "Whatever it held is long gone." }, { EnvironmentInteractKey.ExtinguishFire, "The symbols begin to glow as the goblet fills." }, { EnvironmentInteractKey.LaxleyHouseBrokenClock, "The clock stopped at three-thirty-three." }, { EnvironmentInteractKey.LaxleyGrandfatherClockMissingBothHands, "It's missing both hands. "}, { EnvironmentInteractKey.LaxleyGrandfatherClockMissingHourHand, "The hour hand is missing."}, { EnvironmentInteractKey.LaxleyGrandfatherClockMissingMinuteHand, "The minute hand is missing."}, }); public 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; } } }