// Игрок получает награду - опыт и деньги public static void GetRewardForPlayer(Player player, int money, int skill) { player.AddMoney(money); player.BattleSkill += skill; while (player.NextLevelBorder <= player.BattleSkill) { Enemy.ChangeEnemyBorder(player.Level); player.ChangeBattleLevel(); } Task.CheckTask(player); }
/// <summary> /// Проверка столкновения игрока и клада /// </summary> /// <param name="player">Игрок</param> public void CkeckPlayer(Player player) { if (TreasureExist && player.Position.X == this.Position.X && player.Position.Y == this.Position.Y) { if (this.IsEnemy) { Battle.GoBattle(player, this.enemy); } player.AddMoney(GetReward(player.Level)); Thread.Sleep(1000); Window.ClearMap(Window.Map, Window.TreasureSymble); TreasureExist = false; } }
// Лавка, где игрок может продать свою броню public void ArmorShopSell(Player player) { HelloPlayer(player); Console.WriteLine("Вы точно хотите продать вашу броню? \nY / N \n Вы получите {0} монет", player.Armor.GetRealCost(RealCosts["armor"])); switch (Console.ReadKey(true).Key) { case ConsoleKey.Y: player.AddMoney(player.Armor.GetRealCost(RealCosts["armor"])); player.AddArmor(new ArmorComplect()); Console.WriteLine("Вы успешно продали свой комплект брони.\nВаш баланс: {0}", player.Money); return; case ConsoleKey.N: return; } ArmorShopSell(player); }
// Здесь игрок получает награду, если выполнил одно из заданий public void GetRewardForTask(Player player) { Console.Clear(); if (!CheckTasks(player)) { Console.WriteLine("У вас нет заданий в этом городе"); Console.ReadKey(); return; } bool isDoneTask = false; int moneyReward = 0; int skillReward = 0; for (int i = 0; i < player.Tasks.Count; i++) { var task = player.Tasks[i]?.Item2; if (task?.EnemyCountDied >= task?.EnemyCount) { isDoneTask = true; moneyReward += task.MoneyReward; skillReward += task.SkillReward; player.Tasks.RemoveAt(i); } } if (isDoneTask) { player.AddMoney(moneyReward); player.BattleSkill += skillReward; Console.WriteLine("Вы получили {0} монет и {1} опыта", moneyReward, skillReward); while (player.BattleSkill >= player.NextLevelBorder) { player.ChangeBattleLevel(); } } else { Console.WriteLine("Вы еще не выполнили ни одного задания \n" + "Возвращайтесь, когда хоть одно задание будет выполненою"); } Console.ReadKey(); }