Beispiel #1
0
        public Model(System.Windows.Forms.Panel canvas, int width, int height)
        {
            this.canvas = canvas;
            board       = new Field[width, height];
            this.Width  = width;
            this.Height = height;
            Field.adaptSize(Width, Height, canvas);
            mapgen();
            timer.Tick += Timer_Tick;
            player      = new MapObjects.Player(ref board[1, height / 2], 100, this);
            player.inventory.equipment.Add(new Inventory.Item(100, 20, Inventory.objecttype.SWORD, "magic Sword"));
            player.inventory.equipment.Add(new Inventory.Item(10, 20, Inventory.objecttype.POTION, "healing potion"));
            player.inventory.stuff.Add(new Inventory.Item(10, 20, Inventory.objecttype.BOW, "broken bow"));
            player.inventory.equipment.Add(new Inventory.Item(20, 50, Inventory.objecttype.BOMB, "bomb"));
            player.inventory.equipment.Add(new Inventory.Item(10, 20, Inventory.objecttype.ARMOR, "rags"));
            corps = new MapObjects.Stash(ref player.position, player.inventory, "corps");
            Field f = determineSpawnPosition();
            Field p = determineSpawnPosition();

            merchant = new MapObjects.Merchant(ref f, 100, this); //@todo merchant wird nicht gezeichnet
            monster.Add(new MapObjects.Monster(ref p, 100, this));
            interactables.Add(merchant);
            interactables.Add(player);
            interactables.AddRange(monster);
            timer.Interval = 10;
            timer.Enabled  = true;
        }
Beispiel #2
0
        private void Timer_Tick(object sender, EventArgs e)
        {
            foreach (MapObjects.Interactable i in interactables)
            {
                if (player.position == i.position && i.GetType() == typeof(MapObjects.Monster)) //später ändern
                {
                    MapObjects.Monster mo = (MapObjects.Monster)i;
                    corps = new MapObjects.Stash(ref mo.position, mo.inventory, "corps");          //@todo trade dialog stash player
                    interactables.Add(corps);
                    OnMonsterEncounter(i);
                    return;
                }
            }

            if (player.position.type == DrawEnvironment.fieldtype.EXIT && monster.Count() == 0)
            {
                MessageBox.Show("You won!");
            }
        }