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; }
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!"); } }