public void show_fight(Game_Person mob) // передаем в экран моба которого нужно { fight_v.mob = mob; fight_v.set_fight(); fight_v.Visible = true; fight_v.BringToFront(); }
public void show_trade(bool saller, Game_Person mob) // тут короче типа торговец ли моб и передаем моба { trade_v.isSaller = saller; trade_v.mob = mob; trade_v.set_trade(); trade_v.Visible = true; trade_v.BringToFront(); }
// арбалетчик елитный рыцарь призрак гонец молот наездник пеший рыцарь щитовик алебарда викинг деревенщина волк призрак 2 //настраиваем мобов public void init_mobs() { gp = new Game_Person(); gp.name = "лучник"; gp.hp = 120; gp.atk = 30; gp.texture = Properties.Resources.archer_test; gp.texture_action = Properties.Resources.archer_test; gp.icon = Properties.Resources.archer_test; gp.is_map = true; gp.isGamer = false; //добавляем так возможности мобов ну там удары хилы и прочее gp.add_action(new Person_Action("Выстрел стрелой", "", 0, 10, 0)); gp.add_action(new Person_Action("Выстрел двумя стрелами", "", 0, 20, 0)); gp.add_action(new Person_Action("Лечение", "", 10, 0, 0)); mobs.Add(gp); gp = new Game_Person(); gp.name = "топорщик"; gp.hp = 150; gp.atk = 40; gp.texture = Properties.Resources.axe_test; gp.texture_action = Properties.Resources.axe_test; gp.icon = Properties.Resources.axe_test; gp.is_map = true; gp.isGamer = false; gp.add_action(new Person_Action("Удар", "", 0, 10, 0)); gp.add_action(new Person_Action("Сильный удар", "", 0, 20, 0)); gp.add_action(new Person_Action("Лечение", "", 10, 0, 0)); mobs.Add(gp); gp = new Game_Person(); gp.name = "медведь"; gp.hp = 200; gp.atk = 60; gp.texture = Properties.Resources.bear_еуые; gp.texture_action = Properties.Resources.bear_еуые; gp.icon = Properties.Resources.bear_еуые; gp.is_map = true; gp.isGamer = false; gp.add_action(new Person_Action("Удар", "", 0, 10, 0)); mobs.Add(gp); // хз почему но этот чувак не появляется в бою =Д gp = new Game_Person(); gp.name = "гражданин"; gp.hp = 100; gp.atk = 10; gp.texture = Properties.Resources.citizen_test; gp.texture_action = Properties.Resources.citizen_test; gp.icon = Properties.Resources.citizen_test; gp.is_map = true; gp.isGamer = false; gp.add_action(new Person_Action("Удар", "", 0, 10, 0)); gp.add_action(new Person_Action("Лечение", "", 10, 0, 0)); mobs.Add(gp); }
//тоже самое что и в прошлой функции но для мобов при их респе на карте но не работает void check_fight(Point mob1, Point mob2, Game_Person mob) { Point hero1, hero2, centerA, centerB; int distX, distY, sumX, sumY; //а1,а2,б1 и б2 уже даны hero1 = new Point(hero.Left, hero.Top); hero2 = new Point(hero.Left + hero.Width, hero.Top + hero.Height); centerA = new Point((hero2.X + hero1.X) / 2, (hero2.Y + hero1.Y) / 2); centerB = new Point((mob2.X + mob1.X) / 2, (mob2.Y + mob1.Y) / 2); distX = Math.Abs(centerA.X - centerB.X); distY = Math.Abs(centerA.Y - centerB.Y); sumX = ((hero2.X - hero1.X) / 2) + (mob2.X - mob1.X) / 2; sumY = ((hero2.Y - hero1.Y) / 2) + (mob2.Y - mob1.Y) / 2; if (distX <= sumX && distY <= sumY) { MainForm.selfref.show_fight(mob); } }
//зайти к торговцу торговец создается рандомно с рандомным инвентарем private void loc_trade_Click(object sender, EventArgs e) { Game_Person saller = new Game_Person(); saller.name = "Торговец"; saller.hp = 0; saller.atk = 0; saller.money = rand.Next(100, 5000); saller.texture = Properties.Resources.citizen_test; saller.texture_action = Properties.Resources.citizen_test; saller.icon = Properties.Resources.citizen_test; saller.is_map = false; saller.isGamer = false; foreach (Inventory_Item it in MainForm.selfref.all_items) { if (rand.Next(0, 100) >= 60) //тоже вероятность 40% дропа предмета у торгоша { saller.add_inventory_item(it); } } MainForm.selfref.show_trade(true, saller); //первый параметр типа это если торговец второй объект торговца или моба }
//настраиваем гг public void init_gg_new_game() { gg = new Game_Person(); gg.name = "игрок"; gg.hp = 100; gg.atk = 10; gg.money = 500; gg.texture = Properties.Resources.citizen_test; gg.texture_action = Properties.Resources.citizen_test; gg.icon = Properties.Resources.citizen_test; gg.is_map = true; gg.isGamer = true; gg.map_x = 200; gg.map_y = 200; //кидаем в инвентарь одежду gg.add_inventory_item(all_items.Find(item => item.name == "Топор")); gg.add_inventory_item(all_items.Find(item => item.name == "Обычная одежда")); gg.add_inventory_item(all_items.Find(item => item.name == "Обычная лошадь")); //одеваем вещи на персонажа gg.inv_mass.Find(item => item.name == "Топор").isDress = true; gg.inv_mass.Find(item => item.name == "Обычная одежда").isDress = true; gg.inv_mass.Find(item => item.name == "Обычная лошадь").isDress = true; }