Advertisement
mlmisha

DnD without Battles

Apr 13th, 2020
352
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 47.32 KB | None | 0 0
  1. using System;
  2.  
  3. namespace DnD
  4. {
  5.     public class Heroes
  6.     {
  7.         public string nick;
  8.         public int HP;
  9.         public int[] baze;
  10.         public int[] mod;
  11.         public int[] sos;
  12.         public int[] bonus;
  13.         public int hcos;
  14.         public int MHP;
  15.         public int def;
  16.         public int nweap;
  17.         public string[] weap;
  18.         public int[] dam;
  19.         public int master;
  20.         public int nhcos;
  21.         public int ex;
  22.         public int hoc;
  23.         public int hclass;
  24.         public int lev;
  25.         public Heroes(string b, int a, int[] f, int[] d, int[] o, int[] w, int p, int j, int l, int rio, string[] qwe, int[] n, int q, int gh, int fd, int uy, int tur, int level)
  26.         {
  27.             nick = b;
  28.             HP = a;
  29.             baze = f;
  30.             mod = d;
  31.             sos = o;
  32.             bonus = w;
  33.             hcos = p;
  34.             MHP = j;
  35.             def = l;
  36.             weap = qwe;
  37.             nweap = rio;
  38.             dam = n;
  39.             master = q;
  40.             nhcos = gh;
  41.             ex = fd;
  42.             hoc = uy;
  43.             hclass = tur;
  44.             lev = level;
  45.         }
  46.     }
  47.     public class Monsters
  48.     {
  49.         public string name;
  50.         public int mHP;
  51.         public int[] mbaze;
  52.         public int[] mbonus;
  53.         public int mdef;
  54.         public int mnweap;
  55.         public string[] mweap;
  56.         public int[] mdam;
  57.         public int mMHP;
  58.         public int min;
  59.         public int mclass;
  60.         public Monsters(string v, int g, int[] x, int[] s, int y, int asd, string[] fgh, int[] urm, int pot, int iok, int poi)
  61.         {
  62.             name = v;
  63.             mHP = g;
  64.             mbaze = x;
  65.             mbonus = s;
  66.             mdef = y;
  67.             mnweap = asd;
  68.             mweap = fgh;
  69.             mdam = urm;
  70.             mMHP = pot;
  71.             min = iok;
  72.             mclass = poi;
  73.         }
  74.     }
  75.     public class Battle
  76.     {
  77.         public string bname;
  78.         public int bclass;
  79.         public int BHP;
  80.         public int BMHP;
  81.         public int Bnweap;
  82.         public string[] Bweap;
  83.         public int[] Bdam;
  84.         public int bin;
  85.         public int Barm;
  86.         public int Bside;
  87.         public int Btipe;
  88.         public int Blevel;
  89.         public int Blife;
  90.         public int Bstab;
  91.         public int Bnstab;
  92.         public Battle(string a, int cl, int b, int d, int c, string[] e, int[] f, int g, int i, int h, int t, int v, int jop, int tass, int toss)
  93.         {
  94.             bname = a;
  95.             bclass = cl;
  96.             BHP = b;
  97.             BMHP = d;
  98.             Bnweap = c;
  99.             Bweap = e;
  100.             Bdam = f;
  101.             bin = g;
  102.             Barm = i;
  103.             Bside = h;
  104.             Btipe = t;
  105.             Blevel = v;
  106.             Blife = jop;
  107.             Bstab = tass;
  108.             Bnstab = toss;
  109.         }
  110.     }
  111.     class MainClass
  112.     {
  113.         public static void SwitchWeap(Heroes d)
  114.         {
  115.             string[] weapon = new string[5] { "Бонус атаки", "Грани кубика", "Множитель", "Урон", "Если ограничено количество введите число оставшихся, если нет введите -1" };
  116.             int fg = 0;
  117.             for (int yt = 0; yt < d.nweap; yt++)
  118.             {
  119.                 Console.WriteLine("{0}. {1}: ", yt + 1, d.weap[yt]);
  120.                 for (int k = fg; k < 4 + fg; k++)
  121.                 {
  122.                     if (k < 4 + fg)
  123.                     {
  124.                         Console.WriteLine("{0}: {1}", weapon[k - fg], d.dam[k]);
  125.                     }
  126.                     else
  127.                     {
  128.                         if (d.dam[4 + fg] >= 0)
  129.                         {
  130.                             Console.WriteLine("Осталось: {0}", d.dam[k]);
  131.                         }
  132.                     }
  133.                 }
  134.                 fg += 5;
  135.                 Console.WriteLine();
  136.                 Console.WriteLine();
  137.             }
  138.             Console.WriteLine("Какое оружие поменять?");
  139.             int u = int.Parse(Console.ReadLine());
  140.             fg = 5;
  141.             Console.WriteLine("Введите его название");
  142.             d.weap[u - 1] = Console.ReadLine();
  143.             for (int i = 0 + (u - 1) * fg; i < 5 + (u - 1) * fg; i++)
  144.             {
  145.                 Console.Write("{0}. {1}: ", i + 1, weapon[i - (u - 1) * fg]);
  146.                 d.dam[i] = int.Parse(Console.ReadLine());
  147.             }
  148.         }
  149.         public static void Check(Heroes d, int e)
  150.         {
  151.             Console.WriteLine("Какой кубик?");
  152.             int gr = int.Parse(Console.ReadLine());
  153.             Random rnd = new Random();
  154.             int f = rnd.Next(1, gr);
  155.             f += d.mod[e];
  156.             Console.WriteLine("РЕЗУЛЬТАТ: {0}", f);
  157.         }
  158.         public static void Spas(Heroes d, int e)
  159.         {
  160.             Random rnd = new Random();
  161.             int f = rnd.Next(1, 20);
  162.             if (e < 6)
  163.             {
  164.                 f += d.sos[e];
  165.             }
  166.             Console.WriteLine("РЕЗУЛЬТАТ: {0}", f);
  167.         }
  168.         public static void Heal(Heroes d)
  169.         {
  170.             Random rnd = new Random();
  171.             if (d.hcos > 0)
  172.             {
  173.                 int f = rnd.Next(1, d.hcos);
  174.                 Console.WriteLine("Лечение на {0} хитов", f);
  175.                 d.HP += f;
  176.                 if (d.HP > d.MHP)
  177.                 {
  178.                     d.HP = d.MHP;
  179.                 }
  180.                 Console.WriteLine("Теперь у {0} {1} хитов", d.nick, d.HP);
  181.                 d.hcos--;
  182.             }
  183.             else
  184.             {
  185.                 Console.WriteLine("У вас не осталось костей лечения");
  186.             }
  187.         }
  188.         public static void Stable(Heroes d)
  189.         {
  190.             Random rnd = new Random();
  191.             int f = rnd.Next(1, 20);
  192.             f += d.mod[10];
  193.             if (f >= 10)
  194.             {
  195.                 Console.WriteLine("Стабильность сестра жизни");
  196.                 f = rnd.Next(1, 4);
  197.                 Console.WriteLine("Восстановление через {0} часов", f);
  198.             }
  199.             else
  200.             {
  201.                 Console.WriteLine("Неудача");
  202.             }
  203.  
  204.         }
  205.         public static void Relax(Heroes d)
  206.         {
  207.             d.HP = d.MHP;
  208.             d.nhcos += 1;
  209.         }
  210.         public static Heroes Addhero(Heroes d)
  211.         {
  212.             string[] sos = new string[6] { "Сила", "Ловкость", "Телосложение", "Интеллект", "Мудрость", "Харизма" };
  213.             string[] weapon = new string[5] { "Бонус атаки", "Грани кубика", "Множитель", "Урон", "Если ограничено количество введите число оставшихся, если нет введите -1" };
  214.             string[] pok = new string[18] {"Акробатика", "Анализ", "Атлетика", "Внимательность", "Выживание", "Выступление", "Запугивание","История",
  215.                 "Ловкость рук", "Магия", "Медицина", "Обман", "Природа", "Проницательнсоть", "Религия", "Скрытность", "Убеждение", "Уход за животными"};
  216.             Console.WriteLine("Введите имя путешественника");
  217.             string name = Console.ReadLine();
  218.             Console.WriteLine("Введите действ. HP");
  219.             int h = int.Parse(Console.ReadLine());
  220.             int[] poki = new int[7];
  221.             int[] modpok = new int[18];
  222.             int[] sospok = new int[6];
  223.             int[] bonpok = new int[6];
  224.             int[] dama = new int[10];
  225.             Console.WriteLine("Самостоятельно внести базовые показатели?");
  226.             Console.WriteLine("1.Да 2.Нет");
  227.             int u = int.Parse(Console.ReadLine());
  228.             if (u == 1)
  229.             {
  230.                 Console.WriteLine("Введите показатели базовые");
  231.                 for (int i = 0; i < 7; i++)
  232.                 {
  233.                     if (i != 6)
  234.                     {
  235.                         Console.Write("{0} = ", sos[i]);
  236.                     }
  237.                     else
  238.                     {
  239.                         Console.Write("Пассивная мудрость = ");
  240.                     }
  241.                     poki[i] = int.Parse(Console.ReadLine());
  242.                 }
  243.             }
  244.             else
  245.             {
  246.                 Random rnd = new Random();
  247.                 for (int i = 0; i < 7; i++)
  248.                 {
  249.                     poki[i] = rnd.Next(8, 16);
  250.                 }
  251.             }
  252.             Console.WriteLine("Самостоятельно внести навыки?");
  253.             Console.WriteLine("1.Да 2.Нет");
  254.             u = int.Parse(Console.ReadLine());
  255.             if (u == 1)
  256.             {
  257.                 Console.WriteLine("Введите показатели навыков");
  258.                 for (int i = 0; i < 18; i++)
  259.                 {
  260.                     Console.Write("{0} = ", pok[i]);
  261.                     modpok[i] = int.Parse(Console.ReadLine());
  262.                     if (!Console.IsInputRedirected)
  263.                     {
  264.                         while (!Console.IsInputRedirected)
  265.                         {
  266.                             Console.Write("{0} = ", pok[i]);
  267.                             modpok[i] = int.Parse(Console.ReadLine());
  268.                         }
  269.                     }
  270.                 }
  271.             }
  272.             else
  273.             {
  274.                 Random rnd = new Random();
  275.                 for (int i = 0; i < 18; i++)
  276.                 {
  277.                     modpok[i] = rnd.Next(-1, 5);
  278.                 }
  279.             }
  280.             Console.WriteLine("Самостоятельно внести спасброски?");
  281.             Console.WriteLine("1.Да 2.Нет");
  282.             u = int.Parse(Console.ReadLine());
  283.             if (u == 1)
  284.             {
  285.                 Console.WriteLine("Введите спасброски");
  286.                 for (int i = 0; i < 6; i++)
  287.                 {
  288.                     Console.WriteLine("{0} ", sos[i]);
  289.                     sospok[i] = int.Parse(Console.ReadLine());
  290.                 }
  291.             }
  292.             else
  293.             {
  294.                 Random rnd = new Random();
  295.                 for (int i = 0; i < 6; i++)
  296.                 {
  297.                     sospok[i] = rnd.Next(-1, 5);
  298.                 }
  299.             }
  300.             Console.WriteLine("Самостоятельно внести бонусы к основным?");
  301.             Console.WriteLine("1.Да 2.Нет");
  302.             u = int.Parse(Console.ReadLine());
  303.             if (u == 1)
  304.             {
  305.                 Console.WriteLine("Введите бонусные показатели");
  306.                 for (int i = 0; i < 6; i++)
  307.                 {
  308.                     Console.WriteLine("{0} ", sos[i]);
  309.                     bonpok[i] = int.Parse(Console.ReadLine());
  310.                 }
  311.             }
  312.             else
  313.             {
  314.                 Random rnd = new Random();
  315.                 for (int i = 0; i < 6; i++)
  316.                 {
  317.                     bonpok[i] = rnd.Next(-1, 3);
  318.                 }
  319.             }
  320.             Console.WriteLine("КостьХП");
  321.             int hccos = int.Parse(Console.ReadLine());
  322.             Console.WriteLine("Макс HP");
  323.             int maHP = int.Parse(Console.ReadLine());
  324.             Console.Write("КД= ");
  325.             int kd = int.Parse(Console.ReadLine());
  326.             int fg = 0;
  327.             Console.WriteLine("Сколько оружий?");
  328.             int hnweap = int.Parse(Console.ReadLine());
  329.             string[] hweap = new string[hnweap];
  330.             for (int i = 0; i < hnweap; i++)
  331.             {
  332.                 Console.WriteLine("Как называется {0} оружие?", i + 1);
  333.                 hweap[i] = Console.ReadLine();
  334.                 Console.WriteLine("Введите характеристики {0}", hweap[i]);
  335.                 for (int ti = fg; ti < 5 + fg; ti++)
  336.                 {
  337.                     Console.Write("{0}. {1}: ", ti + 1, weapon[ti - fg]);
  338.                     dama[ti] = int.Parse(Console.ReadLine());
  339.                 }
  340.                 fg += 5;
  341.             }
  342.             Console.WriteLine("Владеет магией? 1.Да  2.Нет");
  343.             int mag = int.Parse(Console.ReadLine());
  344.             Console.WriteLine("Бонус мастерства");
  345.             int masterof = int.Parse(Console.ReadLine());
  346.             Console.WriteLine("Число костей ХП");
  347.             int numhcos = int.Parse(Console.ReadLine());
  348.             Console.WriteLine("Опыт");
  349.             int exec = int.Parse(Console.ReadLine());
  350.             Console.WriteLine("Уровень воина");
  351.             int hlev = int.Parse(Console.ReadLine());
  352.             d = new Heroes(name, h, poki, modpok, sospok, bonpok, hccos, maHP, kd, hnweap, hweap, dama, masterof, numhcos, exec, 0,mag,hlev);
  353.             return d;
  354.         }
  355.         public static Monsters Addmonster(Monsters d)
  356.         {
  357.             int[] mpokt = new int[7];
  358.             int[] bmpokt = new int[6];
  359.             int[] olkj = new int[10];
  360.             string[] msos = new string[6] { "Сила", "Ловкость", "Телосложение", "Интеллект", "Мудрость", "Харизма" };
  361.             string[] weapon = new string[5] { "Бонус атаки", "Грани кубика", "Множитель", "Урон", "Если ограничено количество введите число оставшихся, если нет введите -1" };
  362.             Console.WriteLine("Название монстра");
  363.             string b = Console.ReadLine();
  364.             Console.WriteLine("Сколько у него ХП?");
  365.             int we = int.Parse(Console.ReadLine());
  366.             Console.WriteLine("Введите основные характеристики");
  367.             for (int i = 0; i < 7; i++)
  368.             {
  369.                 if (i < 6)
  370.                 {
  371.                     Console.Write("{0}. {1}: ", i + 1, msos[i]);
  372.                     mpokt[i] = int.Parse(Console.ReadLine());
  373.                     Console.Write("Бонус: ");
  374.                     bmpokt[i] = int.Parse(Console.ReadLine());
  375.                 }
  376.                 else
  377.                 {
  378.                     Console.Write("Пассивная внимательность: ");
  379.                     mpokt[i] = int.Parse(Console.ReadLine());
  380.                 }
  381.             }
  382.             Console.Write("Класс доспеха: ");
  383.             int mkd = int.Parse(Console.ReadLine());
  384.             Console.WriteLine("Введите данные об оружии");
  385.             Console.WriteLine("Сколько оружий?");
  386.             int mgf = int.Parse(Console.ReadLine());
  387.             string[] mgff = new string[mgf];
  388.             int fg = 0;
  389.             for (int t = 0; t < mgf; t++)
  390.             {
  391.                 Console.WriteLine("Название {0} оружия", t + 1);
  392.                 mgff[t] = Console.ReadLine();
  393.                 for (int i = fg; i < 5 + fg; i++)
  394.                 {
  395.                     Console.Write("{0}.{1}: ", i + 1, weapon[i - fg]);
  396.                     olkj[i] = int.Parse(Console.ReadLine());
  397.                 }
  398.                 fg += 5;
  399.             }
  400.             Console.WriteLine("Владеет магией? 1.Да  2.Нет");
  401.             int mag = int.Parse(Console.ReadLine());
  402.             d = new Monsters(b, we, mpokt, bmpokt, mkd, mgf, mgff, olkj, we, 0, mag);
  403.             return d;
  404.         }
  405.         public static void Battle(Heroes[] d, Monsters[] m, int mn, int wow)
  406.         {
  407.             int[] monsnum = new int[m.Length];
  408.             int totmon = 0;
  409.             int tother = 0;
  410.             int mc = mn - d.Length;
  411.             if (m.Length == 1)
  412.             {
  413.                 monsnum[0] = mn - d.Length;
  414.             }
  415.             if (m.Length > 1)
  416.             {
  417.                 int r = mn - d.Length;
  418.                 int u = m.Length;
  419.                 for (int i = 0; i < m.Length; i++)
  420.                 {
  421.                     Console.WriteLine("Сколько {0} участвует в бою?", m[i].name);
  422.                     monsnum[i] = int.Parse(Console.ReadLine());
  423.                     if ((r - monsnum[i]) / (m.Length - i) < 1)
  424.                     {
  425.                         while ((r - monsnum[i]) / (m.Length - i - 1) < 1)
  426.                         {
  427.                             Console.WriteLine("{0} слишком много, часть из них сбежала. Сколько осталось?", m[i].name);
  428.                             monsnum[i] = int.Parse(Console.ReadLine());
  429.                         }
  430.                     }
  431.                     r -= monsnum[i];
  432.                 }
  433.             }
  434.             int gk = 0;
  435.             Console.WriteLine("Монстры участники");
  436.             for (int i = 0; i < m.Length; i++)
  437.             {
  438.                 for (int t = 0; t < monsnum[i]; t++)
  439.                 {
  440.                     Console.WriteLine("{0}. {1}", gk + 1, m[i].name);
  441.                     gk++;
  442.                 }
  443.             }
  444.             Console.WriteLine("Герои участники");
  445.             for (int i = 0; i < d.Length; i++)
  446.             {
  447.                 Console.WriteLine("{0}. {1}", i + 1, d[i].nick);
  448.             }
  449.             Random rnd = new Random();
  450.             int f;
  451.             int h = 0;
  452.             int[] init = new int[mn];
  453.             for (int i = 0; i < m.Length; i++)
  454.             {
  455.                 f = rnd.Next(1, 20);
  456.                 f += m[i].mbonus[1];
  457.                 m[i].min = f;
  458.                 h = 0;
  459.                 if (i > 0)
  460.                 {
  461.                     for (int k = 0; k < i; k++)
  462.                     {
  463.                         if (m[i].min == m[k].min)
  464.                         {
  465.                             while (m[i].min == m[k].min)
  466.                             {
  467.                                 f = rnd.Next(1, 20);
  468.                                 f += m[i].mbonus[1];
  469.                                 m[i].min = f;
  470.                             }
  471.                             h++;
  472.                         }
  473.                     }
  474.                 }
  475.                 init[i] = m[i].min;
  476.                 if (h > 0)
  477.                 {
  478.                     i--;
  479.                 }
  480.             }
  481.             int kj = 0;
  482.             while (kj < d.Length)
  483.             {
  484.                 int fj = rnd.Next(1, 20);
  485.                 fj += d[kj].bonus[1];
  486.                 bool bl = true;
  487.                 for (int i = 0; i < mn; i++)
  488.                 {
  489.                     if (fj == init[i])
  490.                     {
  491.                         bl = false;
  492.                         break;
  493.                     }
  494.                 }
  495.                 if (bl)
  496.                 {
  497.                     d[kj].hoc = fj;
  498.                     init[m.Length - 1 + kj] = fj;
  499.                     kj++;
  500.                 }
  501.                 if (kj == (d.Length - 1) && h == 0)
  502.                 {
  503.                     kj--;
  504.                     h++;
  505.                 }
  506.             }
  507.             Battle[] b = new Battle[mn];
  508.             int tip = 0;
  509.             for (int i = 0; i < m.Length; i++)
  510.             {
  511.                 for (int t = 0; t < monsnum[i]; t++)
  512.                 {
  513.                     b[t] = new Battle(m[i].name, m[i].mclass, m[i].mHP, m[i].mMHP, m[i].mnweap, m[i].mweap, m[i].mdam, m[i].min, m[i].mdef, 2, i,0,0,0,0);
  514.                     totmon += b[i].BMHP;
  515.                     tip++;
  516.                 }
  517.             }
  518.             for (int i = tip; i < mn; i++)
  519.             {
  520.                 b[i] = new Battle(d[i - tip].nick, d[i - tip].hclass, d[i - tip].HP, d[i - tip].MHP, d[i - tip].nweap, d[i - tip].weap, d[i - tip].dam, d[i - tip].hoc, d[i - tip].def, 1, -1,d[i-tip].lev,d[i-tip].mod[10], 0, 0);
  521.                 tother += b[i].BMHP;
  522.             }
  523.             for (int i = 0; i < mn; i++)
  524.             {
  525.                 int j = b[i].bin;
  526.                 int ind = i;
  527.                 for (int t = i + 1; t < mn; t++)
  528.                 {
  529.                     if (b[t].bin > j)
  530.                     {
  531.                         j = b[t].bin;
  532.                         ind = t;
  533.                     }
  534.                 }
  535.                 Battle z = b[ind];
  536.                 b[ind] = b[i];
  537.                 b[i] = z;
  538.             }
  539.             //Сортировка работает
  540.             int dl = d.Length;
  541.             int ml = m.Length;
  542.             int wowness = 0;
  543.             int[] ikl = new int[mn];
  544.             while (totmon > 0 && tother > 0)
  545.             {
  546.                 Random rand = new Random();
  547.                 for (int i = 0; i < mn; i++)
  548.                 {
  549.                 label:
  550.                     if (b[i].Bside == wow && wowness == 0)
  551.                     {
  552.                     }
  553.                     else
  554.                     {
  555.                         Console.WriteLine("Ходит {0}. Выбирайте, кого будете атаковать: ", b[i].bname);
  556.                         Console.WriteLine();
  557.                         Console.WriteLine("--------");
  558.                         Console.WriteLine();
  559.                         int asd = 0;
  560.                         if (b[i].Bside == 2)
  561.                         {
  562.                             for (int t = 0; t < mn; t++)
  563.                             {
  564.                                 if (b[t].Bside == 1 && b[t].BHP>0)
  565.                                 {
  566.                                     Console.WriteLine("{0}. {1} [{2}HP]", asd + 1, b[t].bname, b[t].BHP);
  567.                                     ikl[asd] = t;
  568.                                     asd++;
  569.                                 }
  570.                             }
  571.                         }
  572.                         else
  573.                         {
  574.                             if (b[i].BHP <= 0 && b[i].Bstab<3&&b[i].Bstab>-3&&b[i].Bnstab<6)
  575.                             {
  576.                                 Console.WriteLine("{0} пытается вернуться с того света, и....", b[i].bname);
  577.                                 int st = rnd.Next(1, 20) + b[i].Blife;
  578.                                 if (st >= 10)
  579.                                 {
  580.                                     b[i].Bstab++;
  581.                                     Console.WriteLine("Успех");
  582.                                     if (b[i].Bstab ==3)
  583.                                     {
  584.                                         Console.WriteLine("Не Крепкий орешек 5 {0}", b[i].bname);
  585.                                     }
  586.                                 }
  587.                                 else
  588.                                 {
  589.                                     b[i].Bstab--;
  590.                                     Console.WriteLine("Не в этот раз");
  591.                                     if (b[i].Bstab == -3)
  592.                                     {
  593.                                         Console.WriteLine("СМЭРТЬ настигла {0}", b[i].bname);
  594.                                     }
  595.                                 }
  596.                                 b[i].Bnstab++;
  597.                                 if (b[i].Bnstab == 6 && b[i].Bstab>0)
  598.                                 {
  599.                                     Console.WriteLine("{0} вернулся с того света, ура!", b[i].bname);
  600.                                 }
  601.                                 if (b[i].Bnstab == 6 && b[i].Bstab < 0)
  602.                                 {
  603.                                     Console.WriteLine("{0} не смог обмануть смерть...", b[i].bname);
  604.                                 }
  605.                                 i++;
  606.                                 goto label;
  607.                             }
  608.                             if (b[i].BHP>0)
  609.                             {
  610.                                
  611.                                 Console.WriteLine("Если хотите совершить другое действие, введите 100");
  612.                                 Console.WriteLine("Для вывода целей введите не 100");
  613.                                 int u = int.Parse(Console.ReadLine());
  614.                                 if (u != 100)
  615.                                 {
  616.                                     for (int t = 0; t < mn; t++)
  617.                                     {
  618.                                         if (b[t].Bside == 2)
  619.                                         {
  620.                                             Console.WriteLine("{0}. {1} [{2}HP]", asd + 1, b[t].bname, b[t].BHP);
  621.                                             ikl[asd] = t;
  622.                                             asd++;
  623.                                         }
  624.                                     }
  625.                                 }
  626.                                 else
  627.                                 {
  628.                                     Console.WriteLine();
  629.                                     Console.WriteLine("Вам доступны следующие действия: ");
  630.                                     Console.WriteLine();
  631.                                     Console.WriteLine("1.Лечение");
  632.                                     Console.WriteLine("2.Стабилизация");
  633.                                     //Console.WriteLine("3.Изменение показателей");
  634.                                     Console.WriteLine("10.Вернуться");
  635.                                     Console.WriteLine();
  636.                                     int z = int.Parse(Console.ReadLine());
  637.                                     switch (z)
  638.                                     {
  639.                                         case 1:
  640.                                             Console.WriteLine("1.Зелье 2.Способность");
  641.                                             int g = int.Parse(Console.ReadLine());
  642.                                             switch (g)
  643.                                             {
  644.                                                 case 1:
  645.                                                     int j = rnd.Next(1, 4) + rnd.Next(1, 4) + 2;
  646.                                                     b[i].BHP += j;
  647.                                                     if (b[i].BHP > b[i].BMHP)
  648.                                                         {
  649.                                                             j = j - (b[i].BHP - b[i].BMHP);
  650.                                                             b[i].BHP = b[i].BMHP;
  651.                                                         }
  652.                                                         tother += j;
  653.                                                     break;
  654.                                                 case 2:
  655.                                                     if (b[i].bname != "Графдуку" && b[i].bname != "Трендил")
  656.                                                     {
  657.                                                         Console.WriteLine("У вас нет такой способности");
  658.                                                     }
  659.                                                     else
  660.                                                     {
  661.                                                         j = rnd.Next(1, 10) + b[i].Blevel;
  662.                                                         b[i].BHP += j;
  663.                                                         if (b[i].BHP > b[i].BMHP)
  664.                                                         {
  665.                                                             j = j - (b[i].BHP - b[i].BMHP);
  666.                                                             b[i].BHP = b[i].BMHP;
  667.                                                         }
  668.                                                         tother += j;
  669.                                                     }
  670.                                                     break;
  671.                                             }
  672.                                             Console.WriteLine("Текущее здоровье: {0}", b[i].BHP);
  673.                                             break;
  674.                                         case 2:
  675.                                             int fjk = 0;
  676.                                             int[] flo = new int[d.Length-1];
  677.                                             Console.WriteLine("Кого хотите стабилизировать?");
  678.                                             for (int p = 0; p < mn; p++)
  679.                                             {
  680.                                                 if (b[p].Bside == 1 && b[p].BHP <= 0 && b[p].bname!=b[i].bname)
  681.                                                 {
  682.                                                     Console.WriteLine("{0}. {1}", fjk + 1, b[p].bname);
  683.                                                     flo[fjk] = p;
  684.                                                     fjk++;
  685.                                                 }
  686.                                             }
  687.                                             int oi = rnd.Next(1, 20) + b[i].Blife;
  688.                                             if (oi >= 10)
  689.                                             {
  690.                                                 Console.WriteLine("Успешно");
  691.                                                 b[flo[oi - 1]].Bstab = 6;
  692.                                             }
  693.                                             else
  694.                                             {
  695.                                                 Console.WriteLine("Руки слишком дрожат от напряжения, не получилось");
  696.                                             }
  697.                                             break;
  698.                                         case 3:
  699.                                             Console.WriteLine("Какой показатель изменить?");
  700.                                             Console.WriteLine("1.HP [{0}HP] 2.КД [{1}]", b[i].BHP, b[i].Barm);
  701.                                             int ch = int.Parse(Console.ReadLine());
  702.                                             switch (ch)
  703.                                             {
  704.                                                 case 1:
  705.                                                     Console.Write("Новое значение: ");
  706.                                                     int hok = int.Parse(Console.ReadLine());
  707.                                                     tother += (hok-b[i].BHP);
  708.                                                     b[i].BHP = hok;
  709.                                                     break;
  710.                                                 case 2:
  711.                                                     Console.Write("Новое значение: ");
  712.                                                     b[i].Barm = int.Parse(Console.ReadLine());
  713.                                                     break;
  714.                                             }
  715.                                             break;
  716.                                         case 10:
  717.                                             goto label;
  718.  
  719.                                     }
  720.                                     goto label;
  721.                                 }
  722.                             }
  723.                         }
  724.                         int r = int.Parse(Console.ReadLine());
  725.                         if (r >asd || r<=0)
  726.                         {
  727.                             while (r> asd||r<=0)
  728.                             {
  729.                                 Console.WriteLine("Такой цели нет");
  730.                                 Console.Write("Атака на: ");
  731.                                 r = int.Parse(Console.ReadLine());
  732.                             }
  733.                         }
  734.                         Console.WriteLine("Каким оружием будете атаковать?");
  735.                         int fg = 0;
  736.                         for (int t = 0; t < b[i].Bnweap; t++)
  737.                         {
  738.  
  739.                             Console.Write("{0}. {1} ", t + 1, b[i].Bweap[t]);
  740.                             if (b[i].Bdam[4 + fg] < 0)
  741.                             {
  742.                                 Console.Write("+{0}  {1}к{2} + {3}", b[i].Bdam[0 + fg], b[i].Bdam[2 + fg], b[i].Bdam[1 + fg], b[i].Bdam[3 + fg]);
  743.                             }
  744.                             else
  745.                             {
  746.                                 Console.Write("+{0}  {1}к{2} + {3} [{4}]", b[i].Bdam[0 + fg], b[i].Bdam[2 + fg], b[i].Bdam[1 + fg], b[i].Bdam[3 + fg], b[i].Bdam[4 + fg]);
  747.                             }
  748.                             fg += 5;
  749.                             Console.WriteLine();
  750.                         }
  751.                         int op = int.Parse(Console.ReadLine());
  752.                         if (op >b[i].Bnweap|| op<=0)
  753.                         {
  754.                             while (op >b[i].Bnweap|| op<=0)
  755.                             {
  756.                                 Console.WriteLine("Такого оружия нет");
  757.                                 Console.Write("Оружие: ");
  758.                                 op = int.Parse(Console.ReadLine());
  759.                             }
  760.                         }
  761.                         int rn = rand.Next(1, 20);
  762.                         rn += b[i].Bdam[0 + 5 * (op - 1)];
  763.                         if (b[i].Bdam[4 + 5 * (op - 1)] > 0)
  764.                         {
  765.                             b[i].Bdam[4 + 5 * (op - 1)]--;
  766.                         }
  767.                         Console.WriteLine();
  768.                         Console.WriteLine("--------");
  769.                         Console.WriteLine();
  770.                         if (rn > b[ikl[r - 1]].Barm)
  771.                         {
  772.                             Console.WriteLine();
  773.                             Console.WriteLine("МОЩНО");
  774.                             if (rn == (20 + b[i].Bdam[0 + 5 * (op - 1)]))
  775.                             {
  776.                                 Console.WriteLine();
  777.                                 Console.WriteLine("КРИТИЧЕСКИЙ УРОН");
  778.                                 rn = rand.Next(1, b[i].Bdam[1 + 5 * (op - 1)]) * b[i].Bdam[2 + 5 * (op - 1)] + rand.Next(1, b[i].Bdam[1 + 5 * (op - 1)]);
  779.                             }
  780.                             else
  781.                             {
  782.                                 rn = rand.Next(1, b[i].Bdam[1 + 5 * (op - 1)]) * b[i].Bdam[2 + 5 * (op - 1)];
  783.                             }
  784.                             rn += b[i].Bdam[3 + 5 * (op - 1)];
  785.                             b[ikl[r - 1]].BHP -= rn;
  786.                             if (b[i].Bside == 2)
  787.                             {
  788.                                 if (b[ikl[r - 1]].BHP < 0)
  789.                                 {
  790.                                     int ern = b[ikl[r - 1]].BHP + rn;
  791.                                     tother -= ern;
  792.                                 }
  793.                                 else
  794.                                 {
  795.                                     tother -= rn;
  796.                                 }
  797.                                 Console.WriteLine("тотале хер {0}", tother);
  798.                             }
  799.                             else
  800.                             {
  801.                                 if (b[ikl[r - 1]].BHP < 0)
  802.                                 {
  803.                                     int ern = b[ikl[r - 1]].BHP + rn;
  804.                                     totmon -= ern;
  805.                                 }
  806.                                 else
  807.                                 {
  808.                                     totmon -= rn;
  809.                                 }
  810.                                 Console.WriteLine("тотале монс {0}", totmon);
  811.                             }
  812.                             Console.WriteLine("НАНЕСЕН УРОН: {0}", rn);
  813.                         }
  814.                         else
  815.                         {
  816.                             Console.WriteLine();
  817.                             Console.WriteLine("Не пробил");
  818.                         }
  819.                         if (b[ikl[r - 1]].BHP <= 0)
  820.                         {
  821.                             if (b[ikl[r - 1]].Bside == 1)
  822.                             {
  823.                                 dl--;
  824.                                 b[ikl[r - 1]].Bstab = 0;
  825.                             }
  826.                             else
  827.                             {
  828.                                 monsnum[b[ikl[r - 1]].Btipe]--;
  829.                                 mc--;
  830.                                 for (int l = ikl[r - 1]; l<mn; l++)
  831.                                 {
  832.                                     if (l != mn - 1)
  833.                                     {
  834.                                         b[l] = b[l + 1];
  835.                                     }
  836.                                 }
  837.                                 mn--;
  838.                             }
  839.                         }
  840.                         if (tother <= 0 || totmon <= 0)
  841.                         {
  842.                             break;
  843.                         }
  844.                     }
  845.                 }
  846.                 wowness++;
  847.             }
  848.             Console.WriteLine();
  849.             Console.WriteLine("--------");
  850.             Console.WriteLine();
  851.             if (tother > 0)
  852.             {
  853.                 Console.WriteLine();
  854.                 Console.WriteLine("МЫ победили!");
  855.             }
  856.             else
  857.             {
  858.                 Console.WriteLine();
  859.                 Console.WriteLine("МОНСТРЫ победили....");
  860.             }
  861.             Console.WriteLine();
  862.             Console.WriteLine("--------");
  863.             Console.WriteLine();
  864.             for (int i = 0; i < d.Length; i++)
  865.             {
  866.                 for (int t = 0; t < d.Length; t++)
  867.                 {
  868.                     if (b[i].bname == d[t].nick)
  869.                     {
  870.                         d[t].HP = b[i].BHP;
  871.                     }
  872.                 }
  873.             }
  874.         }
  875.         public static void Main(string[] args)
  876.         {
  877.             string[] sos = new string[6] { "Сила", "Ловкость", "Телосложение", "Интеллект", "Мудрость", "Харизма" };
  878.             string[] pok = new string[18] {"Акробатика", "Анализ", "Атлетика", "Внимательность", "Выживание", "Выступление", "Запугивание","История",
  879.                 "Ловкость рук", "Магия", "Медицина", "Обман", "Природа", "Проницательнсоть", "Религия", "Скрытность", "Убеждение", "Уход за животными"};
  880.             string[] weapon = new string[5] { "Бонус атаки", "Грани кубика", "Множитель", "Урон", "Если ограничено количество введите число оставшихся, если нет введите -1" };
  881.             Heroes[] hero = new Heroes[10];
  882.             Monsters[] mons = new Monsters[100];
  883.             string[] quests = new string[20];
  884.             int que = 0;
  885.             int[] Mpok = new int[7] { 8, 16, 12, 13, 10, 16, 10 };
  886.             int[] Mnav = new int[18] { 5, 3, -1, 0, 0, 5, 3, 1, 5, 1, 0, 5, 1, 0, 1, 7, 3, 0 };
  887.             int[] Mspas = new int[6] { -1, 5, 1, 3, 0, 3 };
  888.             int[] Mbon = new int[6] { -1, 3, 1, 1, 0, 3 };
  889.             string[] Mweap = new string[2] { "Короткий меч", "Коротки лук" };
  890.             int[] Mdam = new int[10] { 5, 6, 1, 3, -1, 5, 6, 1, 3, 19 };
  891.             int[] Tpok = new int[7] { 14, 16, 15, 11, 13, 9, 13 };
  892.             int[] Tnav = new int[18] { 3, 0, 2, 3, 3, -1, -1, 2, 3, 0, 1, -1, 0, 1, 0, 3, -1, 3 };
  893.             int[] Tspas = new int[6] { 4, 3, 4, 0, 1, -1 };
  894.             int[] Tbon = new int[6] { 2, 3, 2, 0, 1, -1 };
  895.             int[] Tdam = new int[10] { 4, 8, 1, 3, -1, 7, 8, 1, 3, 10 };
  896.             string[] Tweap = new string[2] { "Коготь", "Длинный лук" };
  897.             int[] Gpok = new int[7] { 16, 9, 15, 11, 13, 14, 13 };
  898.             int[] Gnav = new int[18] { -1, 0, 5, 3, 1, 2, 2, 2, -1, 0, 1, 2, 0, 1, 0, -1, 4, 1 };
  899.             int[] Gspas = new int[6] { 5, -1, 4, 0, 1, 2 };
  900.             int[] Gbon = new int[6] { 3, -1, 2, 0, 1, 2 };
  901.             int[] Gdam = new int[10] { 5, 12, 1, 3, -1, 5, 6, 1, 3, 5};
  902.             string[] Gweap = new string[2] { "Секира", "Метательное копье" };
  903.             int[] Spok = new int[7] { 14, 8, 15, 10, 16, 12, 13 };
  904.             int[] Snav = new int[18] { -1, 0, 4, 3, 3, 1, 3, 0, -1, 0, 5, 1, 0, 3, 2, -1, 1, 3 };
  905.             int[] Sspas = new int[6] { 2, -1, 2, 0, 5, 3 };
  906.             int[] Sbon = new int[6] { 2, -1, 2, 0, 3, 1 };
  907.             int[] Sdam = new int[10] { 4, 8, 1, 2, -1, 4, 6, 1, 2, -1 };
  908.             string[] Sweap = new string[2] { "Боевой молот", "Топор" };
  909.             int[] gobpok = new int[7] { 8, 14, 10, 10, 8, 8, 9 };
  910.             int[] gobbon = new int[6] { -1, 2, 0, 0, -1, -1 };
  911.             int[] gobdam = new int[10] { 4, 6, 1, 2, -1, 4, 6, 1, 2, -1 };
  912.             string[] goweap = new string[2] { "Скимитар", "Короткий лук" };
  913.             hero[0] = new Heroes("Майло", 16, Mpok, Mnav, Mspas, Mbon, 8, 16, 14, 2, Mweap, Mdam, 2, 1, 2560, 0, 1,3);
  914.             hero[1] = new Heroes("Трендил", 28, Tpok, Tnav, Tspas, Tbon, 10, 28, 16, 2, Tweap, Tdam, 2, 1, 2590, 0, 1,3);
  915.             hero[2] = new Heroes("Графдуку", 30, Gpok, Gnav, Gspas, Gbon, 10, 30, 17, 2, Gweap, Gdam, 2, 1, 2530, 0, 1, 3);
  916.             hero[3] = new Heroes("Сталиндар", 11, Spok, Snav, Sspas, Sbon, 8, 11, 18, 2, Sweap, Sdam, 2, 1, 0, 0, 1, 1);
  917.             mons[0] = new Monsters("Гоблин", 7, gobpok, gobbon, 15, 2, goweap, gobdam, 7, 0, 1);
  918.             int col = 3;
  919.             int mcol = 0;
  920.             int c = 0;
  921.             while (c != 1000)
  922.             {
  923.                 Console.WriteLine("1.Битва");
  924.                 Console.WriteLine("2.Cтабилизация");
  925.                 Console.WriteLine("3.Проверка");
  926.                 Console.WriteLine("4.Спасбросок");
  927.                 Console.WriteLine("5.Лечение на отдыхе");
  928.                 Console.WriteLine("6.Долгий отдых");
  929.                 Console.WriteLine("7.Квесты");
  930.                 Console.WriteLine("8.Персонажи");
  931.                 Console.WriteLine("9.Монстры");
  932.                 Console.WriteLine("10.Бросок");
  933.                 Console.WriteLine("20.Изменение данных");
  934.                 Console.WriteLine("21.Вывод данных о персах");
  935.                 c = int.Parse(Console.ReadLine());
  936.                 int t = 0;
  937.                 int a = 0;
  938.                 int u = 0;
  939.                 if (c == 1)
  940.                 {
  941.                     Console.WriteLine("Сколько участников в бою?");
  942.                     Console.WriteLine("Чтобы выйти, введите 1000");
  943.                     int par = int.Parse(Console.ReadLine());
  944.                     if (par < 1)
  945.                     {
  946.                         while (par < 1)
  947.                         {
  948.                             Console.WriteLine("Слишком мало. У нас тут не бойцовский клуб");
  949.                             par = int.Parse(Console.ReadLine());
  950.                         }
  951.                     }
  952.                     if (par != 1000)
  953.                     {
  954.                         int[] uch = new int[par];
  955.                         Console.WriteLine("Сколько героев участвует в бою?");
  956.                         int hpar = int.Parse(Console.ReadLine());
  957.                         if (hpar > par - 1)
  958.                         {
  959.                             Console.WriteLine("Героев слишком много, уступите место женщинам, пассажирам с детьми и монстрам");
  960.                             Console.Write("Героев: ");
  961.                             hpar = int.Parse(Console.ReadLine());
  962.                         }
  963.                         Heroes[] battleh = new Heroes[hpar];
  964.                         Console.WriteLine("Кто учатсвует в бою из героев? Через пробел");
  965.                         for (int i = 0; i <= col; i++)
  966.                         {
  967.                             Console.WriteLine("{0}. {1}", i + 1, hero[i].nick);
  968.                         }
  969.                         string[] hin = Console.ReadLine().Split(' ');
  970.                         for (int i = 0; i < hpar; i++)
  971.                         {
  972.                             uch[i] = int.Parse(hin[i]);
  973.                         }
  974.                         Console.WriteLine("Участвуют следующие герои: ");
  975.                         for (int i = 0; i < hpar; i++)
  976.                         {
  977.                             battleh[i] = hero[uch[i] - 1];
  978.                             Console.WriteLine(battleh[i].nick);
  979.                         }
  980.                         int env = par - hpar;
  981.                         Console.WriteLine("Есть ли там новые монстры, помимо этих?");
  982.                         for (int i = 0; i <= mcol; i++)
  983.                         {
  984.                             Console.WriteLine("{0}. {1}", i + 1, mons[i].name);
  985.                         }
  986.                         Console.WriteLine("1.Да 2.Нет");
  987.                         t = int.Parse(Console.ReadLine());
  988.                         if (t == 1)
  989.                         {
  990.                             while (t == 1)
  991.                             {
  992.                                 mcol++;
  993.                                 mons[mcol] = Addmonster(mons[mcol]);
  994.                                 Console.WriteLine("Есть еще новые виды?");
  995.                                 Console.WriteLine("1.Да 2.Нет");
  996.                                 t = int.Parse(Console.ReadLine());
  997.                             }
  998.                         }
  999.                         Console.WriteLine("Сколько групп монстров?");
  1000.                         int mgr = int.Parse(Console.ReadLine());
  1001.                         int[] much = new int[mgr];
  1002.                         Console.WriteLine("Какие виды участвуют? Через пробел");
  1003.                         for (int i = 0; i <= mcol; i++)
  1004.                         {
  1005.                             Console.WriteLine("{0}. {1}", i + 1, mons[i].name);
  1006.                         }
  1007.                         string[] bv = Console.ReadLine().Split(' ');
  1008.                         Monsters[] battlem = new Monsters[mgr];
  1009.                         for (int i = 0; i < mgr; i++)
  1010.                         {
  1011.                             much[i] = int.Parse(bv[i]);
  1012.                         }
  1013.                         for (int i = 0; i < mgr; i++)
  1014.                         {
  1015.                             battlem[i] = mons[much[i] - 1];
  1016.                         }
  1017.                         Console.WriteLine("Имеет место неожиданность?");
  1018.                         Console.WriteLine("1.Да 2.Нет");
  1019.                         int xc=-1;
  1020.                         switch (int.Parse(Console.ReadLine()))
  1021.                         {
  1022.                             case 1:
  1023.                                 Console.WriteLine("Кто в шоке? 1.Герои 2.Монстры");
  1024.                                 xc = int.Parse(Console.ReadLine());
  1025.                                 break;
  1026.                             case 2:
  1027.                                 xc = 0;
  1028.                                 break;
  1029.                         }
  1030.                         Battle(battleh, battlem, par, xc);
  1031.                     }
  1032.                     Console.WriteLine();
  1033.                     Console.WriteLine("--------");
  1034.                     Console.WriteLine();
  1035.                 }
  1036.                 if (c == 2)
  1037.                 {
  1038.                     Console.WriteLine("Кто лечит?");
  1039.                     for (int i = 0; i <= col; i++)
  1040.                     {
  1041.                         Console.Write(" {0}. {1}", i + 1, hero[i].nick);
  1042.                     }
  1043.                     Console.WriteLine();
  1044.                     Console.WriteLine("Чтобы выйти, введите 1000");
  1045.                     t = int.Parse(Console.ReadLine());
  1046.                     if (t != 1000)
  1047.                     {
  1048.                         Stable(hero[t - 1]);
  1049.                     }
  1050.                     Console.WriteLine();
  1051.                     Console.WriteLine("--------");
  1052.                     Console.WriteLine();
  1053.                 }
  1054.                 if (c == 3)
  1055.                 {
  1056.                     Console.WriteLine("Кто участвует в проверке?");
  1057.                     for (int i = 0; i <= col; i++)
  1058.                     {
  1059.                         Console.Write(" {0}. {1}", i + 1, hero[i].nick);
  1060.                     }
  1061.                     Console.WriteLine("Чтобы выйти, введите 1000");
  1062.                     t = int.Parse(Console.ReadLine());
  1063.                     if (t != 1000)
  1064.                     {
  1065.                         Console.WriteLine("Какой показатель проверяется?");
  1066.                         for (int i = 0; i < 18; i++)
  1067.                         {
  1068.                             Console.WriteLine("{0}. {1}", i + 1, pok[i]);
  1069.                         }
  1070.                         a = int.Parse(Console.ReadLine());
  1071.                         Check(hero[t - 1], a - 1);
  1072.                     }
  1073.                     Console.WriteLine();
  1074.                     Console.WriteLine("--------");
  1075.                     Console.WriteLine();
  1076.                 }
  1077.                 if (c == 4)
  1078.                 {
  1079.                     Console.WriteLine("Кто участвует в проверке?");
  1080.                     for (int i = 0; i <= col; i++)
  1081.                     {
  1082.                         Console.Write(" {0}. {1}", i + 1, hero[i].nick);
  1083.                     }
  1084.                     Console.WriteLine();
  1085.                     Console.WriteLine("Чтобы выйти, введите 1000");
  1086.                     t = int.Parse(Console.ReadLine());
  1087.                     if (t != 1000)
  1088.                     {
  1089.                         Console.WriteLine("Какой показатель проверяется?");
  1090.                         for (int i = 0; i < 6; i++)
  1091.                         {
  1092.                             Console.WriteLine("{0}. {1}", i + 1, sos[i]);
  1093.                         }
  1094.                         Console.WriteLine("{0}. Выживание в битве", sos.Length + 1);
  1095.                         a = int.Parse(Console.ReadLine());
  1096.                         Spas(hero[t - 1], a - 1);
  1097.                     }
  1098.                     Console.WriteLine();
  1099.                     Console.WriteLine("--------");
  1100.                     Console.WriteLine();
  1101.                 }
  1102.                 if (c == 5)
  1103.                 {
  1104.                     Console.WriteLine("Кто лечится?");
  1105.                     for (int i = 0; i <= col; i++)
  1106.                     {
  1107.                         Console.Write(" {0}. {1}", i + 1, hero[i].nick);
  1108.                     }
  1109.                     Console.WriteLine();
  1110.                     Console.WriteLine("Чтобы выйти, введите 1000");
  1111.                     t = int.Parse(Console.ReadLine());
  1112.                     if (t != 1000)
  1113.                     {
  1114.                         Heal(hero[t - 1]);
  1115.                     }
  1116.                     Console.WriteLine();
  1117.                     Console.WriteLine("--------");
  1118.                     Console.WriteLine();
  1119.                 }
  1120.                 if (c == 6)
  1121.                 {
  1122.                     Console.WriteLine("Кто отдыхает?");
  1123.                     for (int i = 0; i <= col; i++)
  1124.                     {
  1125.                         Console.Write(" {0}. {1}", i + 1, hero[i].nick);
  1126.                     }
  1127.                     Console.WriteLine(" {0}. Все", col + 2);
  1128.                     Console.WriteLine("Чтобы выйти, введите 1000");
  1129.                     t = int.Parse(Console.ReadLine());
  1130.                     if (t != 1000)
  1131.                     {
  1132.                         if (t == col + 2)
  1133.                         {
  1134.                             for (int i = 0; i < col; i++)
  1135.                             {
  1136.                                 Relax(hero[i]);
  1137.                             }
  1138.                         }
  1139.                         else
  1140.                         {
  1141.                             Relax(hero[t - 1]);
  1142.                         }
  1143.                     }
  1144.                     Console.WriteLine();
  1145.                     Console.WriteLine("--------");
  1146.                     Console.WriteLine();
  1147.                 }
  1148.                 if (c == 7)
  1149.                 {
  1150.                     Console.WriteLine("1.Список квестов  2.Добавить квесты 3.Удалить квест");
  1151.                     Console.WriteLine("Чтобы выйти, введите 1000");
  1152.                     t = int.Parse(Console.ReadLine());
  1153.                     if (t != 1000)
  1154.                     {
  1155.                         if (t == 1)
  1156.                         {
  1157.                             for (int i = 0; i < que; i++)
  1158.                             {
  1159.                                 Console.WriteLine("КВЕСТ {0}", i + 1);
  1160.                                 Console.WriteLine(quests[i]);
  1161.                                 Console.WriteLine();
  1162.                             }
  1163.                             if (que == 0)
  1164.                             {
  1165.                                 Console.WriteLine("Квестов нет");
  1166.                             }
  1167.                         }
  1168.                         if (t == 2)
  1169.                         {
  1170.                             quests[que] = Console.ReadLine();
  1171.                             que++;
  1172.                         }
  1173.                         if (t == 3 && que > 0)
  1174.                         {
  1175.                             int okl = 0;
  1176.                             for (int i = 0; i < que; i++)
  1177.                             {
  1178.                                 Console.WriteLine("{0}.  {1}", i + 1, quests[i]);
  1179.                             }
  1180.                             Console.WriteLine("Какой квест удалить?");
  1181.                             u = int.Parse(Console.ReadLine());
  1182.                             if (u != que)
  1183.                             {
  1184.                                 for (int i = u - 1; i < que - 1; i++)
  1185.                                 {
  1186.                                     quests[i] = quests[i + 1];
  1187.                                     okl++;
  1188.                                 }
  1189.                                 que -= okl;
  1190.                             }
  1191.                             else
  1192.                             {
  1193.                                 que--;
  1194.                             }
  1195.                         }
  1196.                     }
  1197.                     Console.WriteLine();
  1198.                     Console.WriteLine("--------");
  1199.                     Console.WriteLine();
  1200.                 }
  1201.                 if (c == 8)
  1202.                 {
  1203.                     Console.WriteLine("1.Пригласить 2.Прогнать");
  1204.                     Console.WriteLine("Чтобы выйти, введите 1000");
  1205.                     t = int.Parse(Console.ReadLine());
  1206.                     if (t != 1000)
  1207.                     {
  1208.                         if (t == 1)
  1209.                         {
  1210.                             col++;
  1211.                             hero[col] = Addhero(hero[col]);
  1212.                         }
  1213.                         if (t == 2)
  1214.                         {
  1215.                             for (int i = 0; i <= col; i++)
  1216.                             {
  1217.                                 Console.WriteLine("{0}. {1}", i + 1, hero[i].nick);
  1218.                             }
  1219.                             Console.WriteLine("Какого персонажа удалить?");
  1220.                             u = int.Parse(Console.ReadLine());
  1221.                             for (int i = u - 1; i <= col; i++)
  1222.                             {
  1223.                                 hero[i] = hero[i + 1];
  1224.                             }
  1225.                             col--;
  1226.                         }
  1227.                     }
  1228.                     Console.WriteLine();
  1229.                     Console.WriteLine("--------");
  1230.                     Console.WriteLine();
  1231.                 }
  1232.                 if (c == 9)
  1233.                 {
  1234.                     Console.WriteLine("1.Бестиарий 2.Добавить монстра 3.Удалить монстра");
  1235.                     Console.WriteLine("Чтобы выйти, введите 1000");
  1236.                     t = int.Parse(Console.ReadLine());
  1237.                     if (t == 1)
  1238.                     {
  1239.                         if (mcol >= 0)
  1240.                         {
  1241.                             for (int i = 0; i <= mcol; i++)
  1242.                             {
  1243.                                 Console.WriteLine("{0}. {1}", i + 1, mons[i].name);
  1244.                             }
  1245.                             Console.WriteLine("По какому существу вывести подробную информацию?");
  1246.                             Console.WriteLine("Чтобы выйти, введите 1000");
  1247.                             u = int.Parse(Console.ReadLine());
  1248.                             if (u != 1000)
  1249.                             {
  1250.                                 Console.WriteLine();
  1251.                                 Console.WriteLine("------");
  1252.                                 Console.WriteLine();
  1253.                                 Console.WriteLine("Название: {0}", mons[u - 1].name);
  1254.                                 Console.WriteLine("MAX HP: {0} ", mons[u - 1].mMHP);
  1255.                                 Console.WriteLine("Арсенал: ");
  1256.                                 int fg = 0;
  1257.                                 for (int yt = 0; yt < mons[u - 1].mnweap; yt++)
  1258.                                 {
  1259.                                     Console.WriteLine("{0}. {1}: ", yt + 1, mons[u - 1].mweap[yt]);
  1260.                                     for (int k = fg; k < 4 + fg; k++)
  1261.                                     {
  1262.                                         Console.WriteLine("{0}: {1}", weapon[k - fg], mons[u - 1].mdam[k]);
  1263.                                     }
  1264.                                     fg += 5;
  1265.                                 }
  1266.                                 Console.WriteLine("Характеристики: ");
  1267.                                 for (int k = 0; k < 7; k++)
  1268.                                 {
  1269.                                     if (k < 6)
  1270.                                     {
  1271.                                         Console.WriteLine("{0}.{1}: {2} ({3})", k + 1, sos[k], mons[u - 1].mbaze[k], mons[u - 1].mbonus[k]);
  1272.                                     }
  1273.                                     else
  1274.                                     {
  1275.                                         Console.WriteLine("{0}.Пассивная мудрость: {1}", k + 1, mons[u - 1].mbaze[k]);
  1276.                                     }
  1277.                                 }
  1278.                                 Console.WriteLine("Класс доспеха: {0}", mons[u - 1].mdef);
  1279.                             }
  1280.                         }
  1281.                         else
  1282.                         {
  1283.                             Console.WriteLine("Ваш Бестиарий пуст");
  1284.                         }
  1285.                         Console.WriteLine();
  1286.                         Console.WriteLine("--------");
  1287.                         Console.WriteLine();
  1288.                     }
  1289.                     if (t == 2)
  1290.                     {
  1291.                         mcol++;
  1292.                         mons[mcol] = Addmonster(mons[mcol]);
  1293.                     }
  1294.                     if (t == 3 && mcol >= 0)
  1295.                     {
  1296.                         for (int i = 0; i <= mcol; i++)
  1297.                         {
  1298.                             Console.WriteLine("{0}. {1}", i + 1, mons[i].name);
  1299.                         }
  1300.                         Console.WriteLine("Какое существо вычеркнуть из Бестиария?");
  1301.                         Console.WriteLine("Чтобы выйти, введите 1000");
  1302.                         u = int.Parse(Console.ReadLine());
  1303.                         if (u != 1000)
  1304.                         {
  1305.                             for (int i = u - 1; i <= mcol; i++)
  1306.                             {
  1307.                                 mons[i] = mons[i + 1];
  1308.                             }
  1309.                             mcol--;
  1310.                         }
  1311.                     }
  1312.                     Console.WriteLine();
  1313.                     Console.WriteLine("--------");
  1314.                     Console.WriteLine();
  1315.                 }
  1316.                 if (c == 10)
  1317.                 {
  1318.                     Console.Write("ГРАНИ: ");
  1319.                     int gran = int.Parse(Console.ReadLine());
  1320.                     Console.Write("МНОЖ: ");
  1321.                     int mnozh = int.Parse(Console.ReadLine());
  1322.                     Console.Write("БОНУС: ");
  1323.                     int b = int.Parse(Console.ReadLine());
  1324.                     Random rnd = new Random();
  1325.                     int f = rnd.Next(1, gran);
  1326.                     Console.WriteLine("РЕЗУЛЬТАТ: {0}", (f * mnozh + b));
  1327.                     Console.WriteLine();
  1328.                     Console.WriteLine("--------");
  1329.                     Console.WriteLine();
  1330.                 }
  1331.                 if (c == 20)
  1332.                 {
  1333.                     Console.WriteLine("У кого изменить данные?");
  1334.                     for (int i = 0; i <= col; i++)
  1335.                     {
  1336.                         Console.Write(" {0}. {1}", i + 1, hero[i].nick);
  1337.                     }
  1338.                     Console.WriteLine();
  1339.                     t = int.Parse(Console.ReadLine());
  1340.                     if (t != 1000)
  1341.                     {
  1342.                         Console.WriteLine("0.HP 1.Max_HP 2.Основной показатель 3.Величина навыка 4.Сила доспехов 5.Оружие 6.Опыт");
  1343.                         a = int.Parse(Console.ReadLine());
  1344.                         if (a == 0)
  1345.                         {
  1346.                             Console.Write("Новое значение: ");
  1347.                             hero[t - 1].HP = int.Parse(Console.ReadLine());
  1348.                         }
  1349.                         if (a == 1)
  1350.                         {
  1351.                             Console.Write("Новое значение: ");
  1352.                             hero[t - 1].MHP = int.Parse(Console.ReadLine());
  1353.                         }
  1354.                         if (a == 2)
  1355.                         {
  1356.                             Console.WriteLine("Какой показатель?");
  1357.                             for (int i = 0; i < 6; i++)
  1358.                             {
  1359.                                 Console.WriteLine(" {0}. {1} ", i + 1, sos[i]);
  1360.                             }
  1361.                             u = int.Parse(Console.ReadLine());
  1362.                             if (u < 7 && u > 0)
  1363.                             {
  1364.                                 hero[t - 1].baze[u - 1] = int.Parse(Console.ReadLine());
  1365.                                 Console.WriteLine("Сделано ");
  1366.                             }
  1367.                         }
  1368.                         if (a == 3)
  1369.                         {
  1370.                             Console.WriteLine("Какой показатель?");
  1371.                             for (int i = 0; i < 18; i++)
  1372.                             {
  1373.                                 Console.WriteLine(" {0}. {1} ", i + 1, pok[i]);
  1374.                             }
  1375.                             u = int.Parse(Console.ReadLine());
  1376.                             if (u < 18 && u > 0)
  1377.                             {
  1378.                                 hero[t - 1].mod[u - 1] = int.Parse(Console.ReadLine());
  1379.                                 Console.WriteLine("Сделано");
  1380.                             }
  1381.                             hero[t - 1].mod[u - 1] = int.Parse(Console.ReadLine());
  1382.                             Console.WriteLine("Сделано");
  1383.                         }
  1384.                         if (a == 4)
  1385.                         {
  1386.                             hero[t - 1].def = int.Parse(Console.ReadLine());
  1387.                         }
  1388.                         if (a == 5)
  1389.                         {
  1390.                             SwitchWeap(hero[t - 1]);
  1391.                         }
  1392.                         if (a == 6)
  1393.                         {
  1394.                             Console.Write("Введите новое значение: ");
  1395.                             hero[t - 1].ex = int.Parse(Console.ReadLine());
  1396.                         }
  1397.                     }
  1398.                     Console.WriteLine();
  1399.                     Console.WriteLine("--------");
  1400.                     Console.WriteLine();
  1401.                 }
  1402.  
  1403.                 if (c == 21)
  1404.                 {
  1405.                     Console.WriteLine("Кого вывести?");
  1406.                     for (int i = 0; i <= col; i++)
  1407.                     {
  1408.                         Console.Write(" {0}. {1}", i + 1, hero[i].nick);
  1409.                     }
  1410.                     Console.WriteLine(" {0}. Всех", col + 2);
  1411.                     t = int.Parse(Console.ReadLine());
  1412.                     if (t != col + 2)
  1413.                     {
  1414.                         Console.WriteLine("ИМЯ: {0}", hero[t - 1].nick);
  1415.                         Console.WriteLine("HP: {0}", hero[t - 1].HP);
  1416.                         Console.WriteLine("Базовые показатели");
  1417.                         for (int k = 0; k < 7; k++)
  1418.                         {
  1419.                             if (k < 6)
  1420.                             {
  1421.                                 Console.WriteLine("{0}.{1}: {2} ({3})", k + 1, sos[k], hero[t - 1].baze[k], hero[t - 1].bonus[k]);
  1422.                             }
  1423.                             else
  1424.                             {
  1425.                                 Console.WriteLine("{0}.Пассивная мудрость: {1}", k + 1, hero[t - 1].baze[k]);
  1426.                             }
  1427.                         }
  1428.                         Console.WriteLine("Навыки");
  1429.                         for (int k = 0; k < 18; k++)
  1430.                         {
  1431.                             Console.WriteLine("{0}.{1}: {2}", k + 1, pok[k], hero[t - 1].mod[k]);
  1432.                         }
  1433.                         Console.WriteLine("Спасброски");
  1434.                         for (int k = 0; k < 6; k++)
  1435.                         {
  1436.                             Console.WriteLine("{0}.{1}: {2}", k + 1, sos[k], hero[t - 1].sos[k]);
  1437.                         }
  1438.                         Console.WriteLine("Бонус мастерства: {0}", hero[t - 1].master);
  1439.                         Console.WriteLine("Грань кости хитов: {0}", hero[t - 1].hcos);
  1440.                         Console.WriteLine("Число костей хитов: {0}", hero[t - 1].nhcos);
  1441.                         Console.WriteLine("Max HP: {0}", hero[t - 1].MHP);
  1442.                         Console.WriteLine("Опыт: {0}", hero[t - 1].ex);
  1443.                         Console.WriteLine("Класс доспехов: {0}", hero[t - 1].def);
  1444.                         Console.WriteLine("Вооружение: ");
  1445.                         int fg = 0;
  1446.                         for (int yt = 0; yt < hero[t - 1].nweap; yt++)
  1447.                         {
  1448.                             Console.WriteLine("{0}. {1}: ", yt + 1, hero[t - 1].weap[yt]);
  1449.                             for (int k = fg; k < 4 + fg; k++)
  1450.                             {
  1451.                                 if (k < 4 + fg)
  1452.                                 {
  1453.                                     Console.WriteLine("{0}: {1}", weapon[k - fg], hero[t - 1].dam[k]);
  1454.                                 }
  1455.                                 else
  1456.                                 {
  1457.                                     if (hero[t - 1].dam[4 + fg] >= 0)
  1458.                                     {
  1459.                                         Console.WriteLine("Осталось: {0}", hero[t - 1].dam[k]);
  1460.                                     }
  1461.                                 }
  1462.                             }
  1463.                             fg += 5;
  1464.                         }
  1465.                         Console.WriteLine();
  1466.                         Console.WriteLine("--------");
  1467.                         Console.WriteLine();
  1468.                     }
  1469.                     else
  1470.                     {
  1471.                         for (int i = 0; i <= col; i++)
  1472.                         {
  1473.                             Console.WriteLine("ИМЯ: {0}", hero[i].nick);
  1474.                             Console.WriteLine("HP: {0}", hero[i].HP);
  1475.                             Console.WriteLine("Базовые показатели");
  1476.                             for (int k = 0; k < 7; k++)
  1477.                             {
  1478.                                 if (k < 6)
  1479.                                 {
  1480.                                     Console.WriteLine("{0}.{1}: {2} ({3})", k + 1, sos[k], hero[i].baze[k], hero[i].bonus[k]);
  1481.                                 }
  1482.                                 else
  1483.                                 {
  1484.                                     Console.WriteLine("{0}.Пассивная мудрость: {1}", k + 1, hero[i].baze[k]);
  1485.                                 }
  1486.                             }
  1487.                             Console.WriteLine("Навыки");
  1488.                             for (int k = 0; k < 18; k++)
  1489.                             {
  1490.                                 Console.WriteLine("{0}.{1}: {2}", k + 1, pok[k], hero[i].mod[k]);
  1491.                             }
  1492.                             Console.WriteLine("Спасброски");
  1493.                             for (int k = 0; k < 6; k++)
  1494.                             {
  1495.                                 Console.WriteLine("{0}.{1}: {2}", k + 1, sos[k], hero[i].sos[k]);
  1496.                             }
  1497.                             Console.WriteLine("Бонус мастерства: {0}", hero[i].master);
  1498.                             Console.WriteLine("Грань кости хитов: {0}", hero[i].hcos);
  1499.                             Console.WriteLine("Число костей хитов: {0}", hero[i].nhcos);
  1500.                             Console.WriteLine("Max HP: {0}", hero[i].MHP);
  1501.                             Console.WriteLine("Опыт: {0}", hero[i].ex);
  1502.                             Console.WriteLine("Класс доспехов: {0}", hero[i].def);
  1503.                             Console.WriteLine("Вооружение: ");
  1504.                             int fg = 0;
  1505.                             for (int yt = 0; yt < hero[i].nweap; yt++)
  1506.                             {
  1507.                                 Console.WriteLine("{0}. {1}: ", yt + 1, hero[i].weap[yt]);
  1508.                                 for (int k = fg; k < 4 + fg; k++)
  1509.                                 {
  1510.                                     if (k < 4 + fg)
  1511.                                     {
  1512.                                         Console.WriteLine("{0}: {1}", weapon[k - fg], hero[i].dam[k]);
  1513.                                     }
  1514.                                     else
  1515.                                     {
  1516.                                         if (hero[i].dam[4 + fg] >= 0)
  1517.                                         {
  1518.                                             Console.WriteLine("Осталось: {0}", hero[i].dam[k]);
  1519.                                         }
  1520.                                     }
  1521.                                 }
  1522.                                 fg += 5;
  1523.                             }
  1524.                             Console.WriteLine();
  1525.                             Console.WriteLine("--------");
  1526.                             Console.WriteLine();
  1527.                         }
  1528.                     }
  1529.                 }
  1530.             }
  1531.         }
  1532.     }
  1533. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement