Esempio n. 1
0
        public void ReturnUsedTreasure(TreasureItem treasure)
        {
            // used treasure items  are shuffled into the pool
            int randomIndex = ThreadSafeRandom.ThisThreadsRandom.Next(TreasureItems.Count);

            TreasureItems.Insert(randomIndex, treasure);
        }
Esempio n. 2
0
        public TreasureItem DefeatDragon()
        {
            DragonsLair = 0;
            var treasure = TreasureItems[0];

            TreasureItems.RemoveAt(0);
            return(treasure);
        }
Esempio n. 3
0
        public TreasureItem OpenChest()
        {
            // check if there are chests available to open
            if (!HasChest)
            {
                // no chests to open
                return(null);
            }
            // we have a chest, remove it from the list of dungeon dice
            var chest = DungeonDice.First(d => d.DungeonDieType == DungeonDieType.Chest);

            DungeonDice.Remove(chest);

            // now return a treasure item and remove from treasure items
            var treasure = TreasureItems[0];

            TreasureItems.RemoveAt(0);

            return(treasure);
        }
Esempio n. 4
0
        public List <TreasureItem> OpenAllChests()
        {
            // opens all chests and returns multiple treasure items
            // if no chests return null
            if (!HasChest)
            {
                return(null);
            }
            List <TreasureItem> items = new List <TreasureItem>();

            // remove all chests
            int numberOfChests = DungeonDice.RemoveAll(d => d.DungeonDieType == DungeonDieType.Chest);

            // now lets add the treasure items to the list we will return
            for (int i = 0; i < numberOfChests; i++)
            {
                items.Add(TreasureItems[0]);
                TreasureItems.RemoveAt(0);
            }

            return(items);
        }