Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class PlayerStats
- {
- public int Attack { get; private set; }
- public int Deffense { get; private set; }
- public int MaxHealth { get; private set; }
- public int Health { get; private set; }
- public bool Alive { get; private set; }
- public int Souls { get; private set; }
- public int MaxSouls { get { return maxSouls; } }
- const int maxSouls = 5;
- const int cheatDefConst = 10;
- private int cheatDefDeltaMaxHealth;
- private int cheatDefDeltaAttak;
- private int cheatDefDeltaDeffense;
- private Random r;
- private int walkCounter;
- private const int walkCountUp = 20;
- public PlayerStats(Random rand)
- {
- r = rand;
- Attack = 1;
- Deffense = 1;
- Health = MaxHealth = 3;
- Souls = 1;
- Alive = true;
- walkCounter = 0;
- cheatDefDeltaMaxHealth = -7;
- cheatDefDeltaAttak = -9;
- cheatDefDeltaDeffense = -9;
- }
- private void cheatsDef()
- {
- if (MaxHealth != (cheatDefConst + cheatDefDeltaMaxHealth))
- {
- Core.Log.LogWriter.Instance.AddString(string.Format("Ваши размазанные по стенам останки понимают, что играть с магией изменения характеристик - плохая идея."));
- Alive = false;
- }
- if (Attack != (cheatDefConst + cheatDefDeltaAttak))
- {
- Core.Log.LogWriter.Instance.AddString(string.Format("Ваши размазанные по стенам останки понимают, что играть с магией изменения характеристик - плохая идея."));
- Alive = false;
- }
- if (Deffense != (cheatDefConst + cheatDefDeltaDeffense))
- {
- Core.Log.LogWriter.Instance.AddString(string.Format("Ваши размазанные по стенам останки понимают, что играть с магией изменения характеристик - плохая идея."));
- Alive = false;
- }
- if (Health > MaxHealth)
- {
- Core.Log.LogWriter.Instance.AddString(string.Format("Вы чувствуете себя настолько здоровым, что Вас разрывает. Буквально."));
- Alive = false;
- }
- if (Souls > maxSouls)
- {
- Core.Log.LogWriter.Instance.AddString(string.Format("Вас разрывает от переизбытка душ."));
- Alive = false;
- }
- }
- public void TimeHealPlayer()
- {
- walkCounter++;
- cheatsDef();
- if (walkCounter == walkCountUp)
- {
- if (Health < MaxHealth) Health++;
- walkCounter = 0;
- }
- }
- public void UpdateWithChest()
- {
- if (r.Next() % 7 == 2)
- {
- Core.Log.LogWriter.Instance.AddString(string.Format("Вы видите в сундуке странный красный камень. От прикосновения он рассыпается, но Вы чувствуете себя здоровее."));
- Health = MaxHealth;
- return;
- }
- if (Deffense / 2 > Attack)
- {
- Core.Log.LogWriter.Instance.AddString(string.Format("В сундуке Вы нашли то, что сделает Вас сильнее!"));
- cheatDefDeltaAttak++;
- Attack++;
- return;
- }
- if (Attack / 2 > Deffense)
- {
- Core.Log.LogWriter.Instance.AddString(string.Format("В сундуке Вы нашли то, что защитит Вас!"));
- cheatDefDeltaDeffense++;
- Deffense++;
- return;
- }
- switch (r.Next() % 4)
- {
- case 0:
- {
- Core.Log.LogWriter.Instance.AddString(string.Format("В сундуке Вы нашли то, что сделает Вас сильнее!"));
- cheatDefDeltaAttak++;
- Attack++;
- break;
- }
- case 1:
- {
- Core.Log.LogWriter.Instance.AddString(string.Format("В сундуке Вы нашли то, что защитит Вас!"));
- cheatDefDeltaDeffense++;
- Deffense++;
- break;
- }
- case 2:
- {
- Core.Log.LogWriter.Instance.AddString(string.Format("В сундуке Вы нашли то, что сделает Вас сильнее!"));
- cheatDefDeltaAttak++;
- Attack++;
- break;
- }
- case 3:
- {
- Core.Log.LogWriter.Instance.AddString(string.Format("В сундуке Вы нашли то, что защитит Вас!"));
- cheatDefDeltaDeffense++;
- Deffense++;
- break;
- }
- }
- }
- public void MaxHealthUp()
- {
- MaxHealth++;
- cheatDefDeltaMaxHealth++;
- }
- public void HealthDown()
- {
- Health--;
- if (Health == 0) Alive = false;
- }
- public void FullHealth()
- {
- Health = MaxHealth;
- }
- public void LevelUp()
- {
- LevelUpDialog.LevelUpForm luf = new LevelUpDialog.LevelUpForm();
- luf.ShowDialog();
- switch (luf.DialogResult)
- {
- case DialogResult.Yes:
- Core.Log.LogWriter.Instance.AddString(string.Format("Уровень повышен! Сила повышена!"));
- cheatDefDeltaAttak++;
- Attack++;
- break;
- case DialogResult.OK:
- Core.Log.LogWriter.Instance.AddString(string.Format("Уровень повышен! Защита повышена!"));
- cheatDefDeltaDeffense++;
- Deffense++;
- break;
- case DialogResult.No:
- Core.Log.LogWriter.Instance.AddString(string.Format("Уровень повышен! Здоровье повышено!"));
- cheatDefDeltaMaxHealth++;
- MaxHealth++;
- break;
- }
- Health = MaxHealth;
- }
- public void DrawHealthBar(Graphics g, int drawX, int drawY, int weight, int height)
- {
- using (Bitmap res = new Bitmap(weight, height))
- {
- if (Health == MaxHealth)
- {
- for (int i = 0; i < weight; i++)
- {
- for (int q = 0; q < height; q++)
- {
- res.SetPixel(i, q, Color.Red);
- }
- }
- }
- else
- {
- double PR1 = MaxHealth / 100.0;
- double PRex = Health / PR1;
- int l = (int)((weight / 100.0) * PRex);
- for (int i = 0; i < l && i < weight; i++)
- {
- for (int q = 0; q < height; q++)
- {
- res.SetPixel(i, q, Color.Red);
- }
- }
- }
- g.DrawImage(res, drawX, drawY, weight, height);
- }
- }
- public bool IsSoulsMax
- {
- get
- {
- return (Souls == MaxSouls);
- }
- }
- public void SoulsUp()
- {
- if (IsSoulsMax) return;
- Souls++;
- }
- public void SoulsDown()
- {
- if (Souls == 0)
- {
- Alive = false;
- Core.Log.LogWriter.Instance.AddString(string.Format("Души закончились. Вам нечем откупиться от Смерти. Ваш путь завершен."));
- return;
- }
- if (Souls > 0)
- {
- Alive = true;
- Core.Log.LogWriter.Instance.AddString(string.Format("Вы избежали кончины, откупившись от Жнеца душой монстра."));
- Souls--;
- Health = 1;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement