From 03f0e02a21dd31d00d3e302e2f79835aa0d396d0 Mon Sep 17 00:00:00 2001 From: Daniel Odendahl Jr Date: Sun, 28 May 2017 14:40:42 +0000 Subject: [PATCH] Improve Battle System --- commands/games/battle.js | 50 +++++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 14 deletions(-) diff --git a/commands/games/battle.js b/commands/games/battle.js index f4bd3d3b..d0a746f3 100644 --- a/commands/games/battle.js +++ b/commands/games/battle.js @@ -39,12 +39,14 @@ module.exports = class BattleCommand extends Command { let oppoHP = 500; let userTurn = true; let guard = false; + let userCure = false; + let oppoCure = false; while (userHP > 0 && oppoHP > 0) { const username = userTurn ? msg.author.username : opponent.username; await msg.say(stripIndents` - ${username}, do you fight, guard, special, or run? - ${username}: ${userTurn ? userHP : oppoHP} HP - ${userTurn ? opponent.username : msg.author.username}: ${userTurn ? oppoHP : userHP} HP + ${username}, do you **fight**, **guard**, **special**, **cure** or **run**? + **${msg.author.username}**: ${userHP}HP + **${opponent.username}**: ${oppoHP}HP `); try { const turn = await msg.channel.awaitMessages(res => res.author.id === (userTurn ? msg.author.id : opponent.id), { @@ -54,34 +56,54 @@ module.exports = class BattleCommand extends Command { }); const choice = turn.first().content.toLowerCase(); if (choice === 'fight') { - const damage = Math.floor(Math.random() * (guard ? 50 : 100)) + 1; + const damage = Math.floor(Math.random() * (guard ? 25 : 100)) + 1; await msg.say(`${username} deals ${damage} damage!`); - if (userTurn) oppoHP = oppoHP - damage; - else userHP = userHP - damage; + if (userTurn) { + oppoHP = oppoHP - damage; + userTurn = false; + } else { + userHP = userHP - damage; + userTurn = true; + } if (guard) guard = false; - if (userTurn) userTurn = false; - else userTurn = true; } else if (choice === 'guard') { await msg.say(`${username} guards!`); guard = true; if (userTurn) userTurn = false; else userTurn = true; } else if (choice === 'special') { - const hit = Math.floor(Math.random() * 2) + 1; + const hit = Math.floor(Math.random() * 4) + 1; if (hit === 1) { - const damage = Math.floor(Math.random() * (guard ? 150 : 300)) + 1; + const damage = Math.floor(Math.random() * ((guard ? 300 : 150) - 100 + 1) + 100); await msg.say(`${username} deals ${damage} damage!`); - if (userTurn) oppoHP = oppoHP - damage; - else userHP = userHP - damage; + if (userTurn) { + oppoHP = oppoHP - damage; + userTurn = false; + } else { + userHP = userHP - damage; + userTurn = true; + } if (guard) guard = false; - if (userTurn) userTurn = false; - else userTurn = true; } else { await msg.say('It missed!'); if (guard) guard = false; if (userTurn) userTurn = false; else userTurn = true; } + } else if (choice === 'cure') { + if (userTurn ? userCure : oppoCure) { + await msg.say(`${username} regains 250HP!`); + if (userTurn) { + userHP = userHP + 250; + userCure = true; + userTurn = false; + } else { + oppoHP = oppoHP + 250; + oppoCure = true; + userTurn = true; + } + if (guard) guard = false; + } else await msg.say('You have already cured!'); } else if (choice === 'run') { await msg.say(`${username} flees!`); if (userTurn) userHP = 0;