//TODO: Додати користувачу по замовчуванню декілька аптечок, для можливості відхілу public void Attack() { Random random = new Random(); var forUser = random.NextDouble(); var forBoss = random.NextDouble(); bool isUserCritical = false; bool isBossCritical = false; if (CurrentUser.ChanceCriticalAttack > forUser) { BossHpAndDef -= CurrentUser.CriticalAttack; UserHpAndDef -= CurrentBoss.Attack; Messages("Кріт урон", true); isUserCritical = true; } if (CurrentBoss.CriticalChance > forBoss) { BossHpAndDef -= CurrentUser.Attack; if (!CurrentBoss.IsStun) { UserHpAndDef -= CurrentBoss.CriticalAttack; Messages("Кріт урон від боса", false); } else { CurrentBoss.StunningTime -= 1; if (CurrentBoss.StunningTime == 0) { CurrentBoss.IsStun = false; } } isBossCritical = true; } if (!isUserCritical) { BossHpAndDef -= CurrentUser.Attack; } if (!isBossCritical) { if (!CurrentBoss.IsStun) { UserHpAndDef -= CurrentBoss.Attack; } else { CurrentBoss.StunningTime -= 1; if (CurrentBoss.StunningTime == 0) { CurrentBoss.IsStun = false; } } } Math.Round(UserHpAndDef, 2); Math.Round(BossHpAndDef, 2); if (CurrentSkill != null && CurrentSkill.IsRecharge) { CurrentSkill.Recharge -= 1; if (CurrentSkill.Recharge == 0) { CurrentSkill.IsRecharge = false; } UserController userController = new UserController(CurrentUser.Name); userController.Save(); } if (UserHpAndDef <= 0) { UserController userController = new UserController(CurrentUser.Name); ItemController itemController = new ItemController(CurrentUser); Messages($"Користувач: {CurrentUser.Name} програв", false); Messages($"Ви нічого не отримали", false); SaveUser(userController, itemController); IsExit = true; } else if (BossHpAndDef <= 0) { Messages($"Бос: {CurrentBoss.Name} програв", true); IsWin = true; IsExit = true; DropedExpAndItem(); } }