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, RefillBucket = 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 } public enum UIInteractKey { None = 0, EmptySlot = 1, } public static class InteractEventIDs { public static readonly IReadOnlyDictionary ItemInteractions = new ReadOnlyDictionary( new Dictionary { { ItemInteractKey.EmptyHands, "I need to put my tools away." }, { ItemInteractKey.CantUseItem, "That won't work here." }, { ItemInteractKey.RustyKnife, "It's too blunt to be useful." }, { ItemInteractKey.SomethingMissing, "Something's missing." }, { ItemInteractKey.PliersSnapped, "The pliers snapped. They're no use now." }, { ItemInteractKey.CarefulInteract, "I need to be careful with this." }, { ItemInteractKey.RagFallsApart, "The rag fell apart." }, { ItemInteractKey.LooksImportant, "That looks important." }, { ItemInteractKey.WrongTool, "I need the proper tool for this."}, { ItemInteractKey.RefillBucket, "I need to refill this before I can use."} }); public static readonly IReadOnlyDictionary LevelInteractions = new ReadOnlyDictionary( new Dictionary { { LevelInteractKey.WaterValve, "I've already turned the water on." }, { LevelInteractKey.ClearVinesOutside, "I need to clear the vines outside first." }, { LevelInteractKey.PumphouseChain, "There must be a key around here somewhere." }, { LevelInteractKey.CutVines, "I need something to cut through these." }, { LevelInteractKey.WorkshopLockedSafe, "It's locked tight." }, { LevelInteractKey.UnlockedPumphouse, "You used the Pumphouse Key."}, }); public static readonly IReadOnlyDictionary EnvironmentInteractions = new ReadOnlyDictionary( new Dictionary { { EnvironmentInteractKey.BrokenLantern, "It's too broken to use." }, { EnvironmentInteractKey.WorkshopWriting, "It could be worse... it could be blood." }, { EnvironmentInteractKey.UseGrindstone, "I could sharpen something on this." }, { EnvironmentInteractKey.WorkshopBookDisintegrating, "It fell apart in my hands." }, { EnvironmentInteractKey.UsingKnife, "I should be careful cutting these." }, { EnvironmentInteractKey.AlreadySharpened, "That should be sharp enough now." }, { EnvironmentInteractKey.Locked, "It's locked." }, { EnvironmentInteractKey.CantGoThere, "I can't go that way." }, { EnvironmentInteractKey.DirtyWindow, "I can't see through all this grime." }, { EnvironmentInteractKey.WorkshopBagNoItems, "There's nothing left inside." }, { EnvironmentInteractKey.FindCandle, "I should look for the candle." }, { EnvironmentInteractKey.DoesntBelong, "That doesn't belong here." }, { EnvironmentInteractKey.SharpGlass, "Ow... that's sharp." }, { EnvironmentInteractKey.FreshAndCoolWater, "The water feels cool and refreshing." }, { EnvironmentInteractKey.WorkshopBooks, "The books are ancient and crumbling." }, { EnvironmentInteractKey.PumpTurnOn, "The water pumps splutter into life."}, { EnvironmentInteractKey.FireHot, "I should put the fire out first."}, { EnvironmentInteractKey.CauldronBoiledAway, "Whatever was in the cauldron, boiled away long ago."} }); public static readonly IReadOnlyDictionary UIInteractions = new ReadOnlyDictionary( new Dictionary { { UIInteractKey.EmptySlot, "Empty slot." }, }); 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; } } }