Exemplo n.º 1
0
        internal void SetStage(IStage stage)
        {
            IList <Item> items = stage.GetItems(this);

            mushInPocket = 0;
            all.Clear();
            fallable.Clear();
            enemies.Clear();
            goals.Clear();
            Me = null;

            foreach (Item item in items)
            {
                if (item is Me)
                {
                    Me = (Me)item;
                }
                if (item is Mush || item is Stone)
                {
                    fallable.Add(item);
                }
                if (item is Enemy)
                {
                    enemies.Add((Enemy)item);
                }
                if (item is ColoredStone)
                {
                    goals[(ColoredStone)item] = items
                                                .Where(t => t is ColoredBlock)
                                                .Where(t => ((ColoredBlock)t).Color == ((ColoredStone)item).Color)
                                                .Select(t => (ColoredBlock)t)
                                                .Single();
                }
            }
            all = items;
        }