public IReadOnlyList <WrappedInteraction> GetInteractions(IWorldItem active, IReadOnlyList <IWorldItem> targets) { var result = new List <WrappedInteraction>(); var filtered = FindPairs(active.GetType(), targets); foreach (var(interaction, passive) in filtered) { var isAvailable = interaction.IsAvailable(active, passive); if (isAvailable) { result.Add(new WrappedInteraction(interaction, active, passive)); } } return(result); }
public IWorldItem getItemInChest() { Type resolvedType = content.GetType(); if (resolvedType.Equals(typeof(DungeonMap))) { return((DungeonMap)content); } else if (resolvedType.Equals(typeof(BowItem))) { return((BowItem)content); } else if (resolvedType.Equals(typeof(BoomerangItem))) { return((BoomerangItem)content); } else { Console.WriteLine("Type of WorldItem is not resolvable. May be unsafe to use."); return(content); } }