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);
        }
Example #2
0
        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);
            }
        }