Advertisement
xxeell

Untitled

Jun 29th, 2018
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 9.06 KB | None | 0 0
  1. public class PlayerStats
  2.     {
  3.         public int Attack { get; private set; }
  4.         public int Deffense { get; private set; }
  5.         public int MaxHealth { get; private set; }
  6.         public int Health { get; private set; }
  7.         public bool Alive { get; private set; }
  8.         public int Souls { get; private set; }
  9.         public int MaxSouls { get { return maxSouls; } }
  10.  
  11.         const int maxSouls = 5;
  12.  
  13.         const int cheatDefConst = 10;
  14.         private int cheatDefDeltaMaxHealth;
  15.         private int cheatDefDeltaAttak;
  16.         private int cheatDefDeltaDeffense;
  17.  
  18.         private Random r;
  19.  
  20.         private int walkCounter;
  21.         private const int walkCountUp = 20;
  22.  
  23.         public PlayerStats(Random rand)
  24.         {
  25.             r = rand;
  26.  
  27.             Attack = 1;
  28.             Deffense = 1;
  29.             Health = MaxHealth = 3;
  30.             Souls = 1;
  31.  
  32.             Alive = true;
  33.  
  34.             walkCounter = 0;
  35.             cheatDefDeltaMaxHealth = -7;
  36.             cheatDefDeltaAttak = -9;
  37.             cheatDefDeltaDeffense = -9;
  38.         }
  39.  
  40.         private void cheatsDef()
  41.         {
  42.             if (MaxHealth != (cheatDefConst + cheatDefDeltaMaxHealth))
  43.             {
  44.                 Core.Log.LogWriter.Instance.AddString(string.Format("Ваши размазанные по стенам останки понимают, что играть с магией изменения характеристик - плохая идея."));
  45.                 Alive = false;
  46.             }
  47.  
  48.             if (Attack != (cheatDefConst + cheatDefDeltaAttak))
  49.             {
  50.                 Core.Log.LogWriter.Instance.AddString(string.Format("Ваши размазанные по стенам останки понимают, что играть с магией изменения характеристик - плохая идея."));
  51.                 Alive = false;
  52.             }
  53.  
  54.             if (Deffense != (cheatDefConst + cheatDefDeltaDeffense))
  55.             {
  56.                 Core.Log.LogWriter.Instance.AddString(string.Format("Ваши размазанные по стенам останки понимают, что играть с магией изменения характеристик - плохая идея."));
  57.                 Alive = false;
  58.             }
  59.  
  60.             if (Health > MaxHealth)
  61.             {
  62.                 Core.Log.LogWriter.Instance.AddString(string.Format("Вы чувствуете себя настолько здоровым, что Вас разрывает. Буквально."));
  63.                 Alive = false;
  64.             }
  65.  
  66.             if (Souls > maxSouls)
  67.             {
  68.                 Core.Log.LogWriter.Instance.AddString(string.Format("Вас разрывает от переизбытка душ."));
  69.                 Alive = false;
  70.             }
  71.         }
  72.  
  73.         public void TimeHealPlayer()
  74.         {
  75.             walkCounter++;
  76.  
  77.             cheatsDef();            
  78.  
  79.             if (walkCounter == walkCountUp)
  80.             {
  81.                 if (Health < MaxHealth) Health++;
  82.                 walkCounter = 0;
  83.             }
  84.         }
  85.  
  86.         public void UpdateWithChest()
  87.         {
  88.             if (r.Next() % 7 == 2)
  89.             {
  90.                 Core.Log.LogWriter.Instance.AddString(string.Format("Вы видите в сундуке странный красный камень. От прикосновения он рассыпается, но Вы чувствуете себя здоровее."));
  91.                 Health = MaxHealth;
  92.                 return;
  93.             }
  94.             if (Deffense / 2 > Attack)
  95.             {
  96.                 Core.Log.LogWriter.Instance.AddString(string.Format("В сундуке Вы нашли то, что сделает Вас сильнее!"));
  97.                 cheatDefDeltaAttak++;
  98.                 Attack++;
  99.                 return;
  100.             }
  101.             if (Attack / 2 > Deffense)
  102.             {
  103.                 Core.Log.LogWriter.Instance.AddString(string.Format("В сундуке Вы нашли то, что защитит Вас!"));
  104.                 cheatDefDeltaDeffense++;
  105.                 Deffense++;
  106.                 return;
  107.             }
  108.  
  109.             switch (r.Next() % 4)
  110.             {
  111.                 case 0:
  112.                     {
  113.                         Core.Log.LogWriter.Instance.AddString(string.Format("В сундуке Вы нашли то, что сделает Вас сильнее!"));
  114.                         cheatDefDeltaAttak++;
  115.                         Attack++;
  116.                         break;
  117.                     }
  118.                 case 1:
  119.                     {
  120.                         Core.Log.LogWriter.Instance.AddString(string.Format("В сундуке Вы нашли то, что защитит Вас!"));
  121.                         cheatDefDeltaDeffense++;
  122.                         Deffense++;
  123.                         break;
  124.                     }
  125.                 case 2:
  126.                     {
  127.                         Core.Log.LogWriter.Instance.AddString(string.Format("В сундуке Вы нашли то, что сделает Вас сильнее!"));
  128.                         cheatDefDeltaAttak++;
  129.                         Attack++;
  130.                         break;
  131.                     }
  132.                 case 3:
  133.                     {
  134.                         Core.Log.LogWriter.Instance.AddString(string.Format("В сундуке Вы нашли то, что защитит Вас!"));
  135.                         cheatDefDeltaDeffense++;
  136.                         Deffense++;
  137.                         break;
  138.                     }
  139.             }
  140.         }
  141.  
  142.         public void MaxHealthUp()
  143.         {
  144.             MaxHealth++;
  145.             cheatDefDeltaMaxHealth++;
  146.         }
  147.  
  148.         public void HealthDown()
  149.         {
  150.             Health--;
  151.             if (Health == 0) Alive = false;
  152.         }
  153.  
  154.         public void FullHealth()
  155.         {
  156.             Health = MaxHealth;
  157.         }
  158.  
  159.         public void LevelUp()
  160.         {
  161.             LevelUpDialog.LevelUpForm luf = new LevelUpDialog.LevelUpForm();
  162.             luf.ShowDialog();
  163.             switch (luf.DialogResult)
  164.             {
  165.                 case DialogResult.Yes:
  166.                     Core.Log.LogWriter.Instance.AddString(string.Format("Уровень повышен! Сила повышена!"));
  167.                     cheatDefDeltaAttak++;
  168.                     Attack++;
  169.                     break;
  170.                 case DialogResult.OK:
  171.                     Core.Log.LogWriter.Instance.AddString(string.Format("Уровень повышен! Защита повышена!"));
  172.                     cheatDefDeltaDeffense++;
  173.                     Deffense++;
  174.                     break;
  175.                 case DialogResult.No:
  176.                     Core.Log.LogWriter.Instance.AddString(string.Format("Уровень повышен! Здоровье повышено!"));
  177.                     cheatDefDeltaMaxHealth++;
  178.                     MaxHealth++;
  179.                     break;
  180.             }
  181.  
  182.             Health = MaxHealth;
  183.         }
  184.  
  185.         public void DrawHealthBar(Graphics g, int drawX, int drawY, int weight, int height)
  186.         {
  187.             using (Bitmap res = new Bitmap(weight, height))
  188.             {
  189.                 if (Health == MaxHealth)
  190.                 {
  191.                     for (int i = 0; i < weight; i++)
  192.                     {
  193.                         for (int q = 0; q < height; q++)
  194.                         {
  195.                             res.SetPixel(i, q, Color.Red);
  196.                         }
  197.                     }
  198.                 }
  199.                 else
  200.                 {
  201.  
  202.                     double PR1 = MaxHealth / 100.0;
  203.                     double PRex = Health / PR1;
  204.  
  205.                     int l = (int)((weight / 100.0) * PRex);
  206.  
  207.                     for (int i = 0; i < l && i < weight; i++)
  208.                     {
  209.                         for (int q = 0; q < height; q++)
  210.                         {
  211.                             res.SetPixel(i, q, Color.Red);
  212.                         }
  213.                     }
  214.                 }
  215.                 g.DrawImage(res, drawX, drawY, weight, height);
  216.             }
  217.         }
  218.  
  219.         public bool IsSoulsMax
  220.         {
  221.             get
  222.             {
  223.                 return (Souls == MaxSouls);
  224.             }
  225.         }
  226.  
  227.         public void SoulsUp()
  228.         {
  229.             if (IsSoulsMax) return;
  230.             Souls++;
  231.         }
  232.  
  233.         public void SoulsDown()
  234.         {
  235.             if (Souls == 0)
  236.             {
  237.                 Alive = false;
  238.                 Core.Log.LogWriter.Instance.AddString(string.Format("Души закончились. Вам нечем откупиться от Смерти. Ваш путь завершен."));
  239.                 return;
  240.             }
  241.  
  242.             if (Souls > 0)
  243.             {
  244.                 Alive = true;
  245.                 Core.Log.LogWriter.Instance.AddString(string.Format("Вы избежали кончины, откупившись от Жнеца душой монстра."));
  246.                 Souls--;
  247.                 Health = 1;
  248.             }
  249.         }
  250.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement