My comments.
This commit is contained in:
parent
77cb3f4613
commit
a8c9d868be
6 changed files with 147 additions and 84 deletions
151
files/combat.js
151
files/combat.js
|
|
@ -2,6 +2,8 @@ import './variables.js';
|
|||
import { randomNumber, userInput } from './functions.js';
|
||||
import { inventoryMenuM } from './inventory.js';
|
||||
|
||||
// InitCombat function (currently not used in final game)
|
||||
// First sets the proper level of the enemy, then sets the stats of the enemy and runs combat() with it as a parameter.
|
||||
function initCombat(enemy) {
|
||||
if (enemy.minLevel > level) {
|
||||
var enemyLevelFinal = enemy.minLevel;
|
||||
|
|
@ -14,92 +16,101 @@ function initCombat(enemy) {
|
|||
if (enemy.armor.value > 85 && enemy.armor.unit == "dr") {
|
||||
var enemyArmor = 85;
|
||||
} else {
|
||||
var enemyArmor = enemy.armor.value
|
||||
var enemyArmor = enemy.armor.value;
|
||||
}
|
||||
|
||||
var enemyStats = {level: enemyLevelFinal, health: enemy.health+enemyLevelFinal, weapon: enemy.weapon, armor: enemyArmor, armorUnit: enemy.armor.unit};
|
||||
var playerStats = {level: level, health: health, weapon: equippedWeapon, armor: equippedArmor, armorUnit: equippedArmor.unit, chem: "placeholder"};
|
||||
combat(enemyStats);
|
||||
}
|
||||
|
||||
// Combat function (currently not used in final game)
|
||||
// Gives a menu to attack the enemy, open inventoryM(), or view player stats. Menu will repeat until enemy.health is not > 0
|
||||
function combat(enemy) {
|
||||
console.clear();
|
||||
console.log("You enter combat with "+enemy.name+"...");
|
||||
let combatInput;
|
||||
while (true) {
|
||||
console.log("What would you like to do?");
|
||||
console.log("-----------------------");
|
||||
console.log("1) Attack");
|
||||
console.log("2) Check your Inventory");
|
||||
console.log("3) View Stats");
|
||||
combatInput = userInput("Enter: ");
|
||||
|
||||
if (combatInput != "1" && combatInput != "2" && combatInput != "3") {
|
||||
console.log("Invalid input. Please enter 1, 2, or 3.");
|
||||
} else {
|
||||
break;
|
||||
while (enemy.health > 0) {
|
||||
while (true) {
|
||||
console.log("What would you like to do?");
|
||||
console.log("-----------------------");
|
||||
console.log("1) Attack");
|
||||
console.log("2) Check your Inventory");
|
||||
console.log("3) View Stats");
|
||||
combatInput = userInput("Enter: ");
|
||||
|
||||
// Input validation
|
||||
if (combatInput != "1" && combatInput != "2" && combatInput != "3") {
|
||||
console.log("Invalid input. Please enter 1, 2, or 3.");
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
switch(combatInput) {
|
||||
case "1":
|
||||
console.log("You attack "+enemy.name+" with your "+equippedWeapon.name+"!");
|
||||
sleep(2);
|
||||
let attackRoll = randomNumber(1,100);
|
||||
if (attackRoll <= 10) {
|
||||
console.log("You critically hit "+enemy.name+" dealing "+damageCalc(player, true)+" damage!");
|
||||
|
||||
switch(combatInput) {
|
||||
case "1":
|
||||
console.log("You attack "+enemy.name+" with your "+equippedWeapon.name+"!");
|
||||
sleep(2);
|
||||
} else if (attackRoll <= 50) {
|
||||
console.log("You hit "+enemy.name+" dealing "+damageCalc(player, false)+" damage!");
|
||||
let attackRoll = randomNumber(1,100);
|
||||
if (attackRoll <= 10) {
|
||||
console.log("You critically hit "+enemy.name+" dealing "+damageCalc(player, true)+" damage!");
|
||||
sleep(2);
|
||||
} else if (attackRoll <= 50) {
|
||||
console.log("You hit "+enemy.name+" dealing "+damageCalc(player, false)+" damage!");
|
||||
sleep(2);
|
||||
} else if (attackRoll <= 90) {
|
||||
console.log("You miss "+enemy.name+"!");
|
||||
sleep(2);
|
||||
} else {
|
||||
console.log("You critically miss "+enemy.name+", dealing 3 damage to yourself!");
|
||||
health-3;
|
||||
sleep(2);
|
||||
}
|
||||
|
||||
console.log(enemy.name+" Attacks you with thier "+enemyStats.weapon.name+"!");
|
||||
sleep(2);
|
||||
} else if (attackRoll <= 90) {
|
||||
console.log("You miss "+enemy.name+"!");
|
||||
sleep(2);
|
||||
} else {
|
||||
console.log("You critically miss "+enemy.name+", dealing 3 damage to yourself!");
|
||||
health-3;
|
||||
sleep(2);
|
||||
}
|
||||
|
||||
console.log(enemy.name+" Attacks you with thier "+enemyStats.weapon.name+"!");
|
||||
sleep(2);
|
||||
let enemyRoll = randomNumber(1,100);
|
||||
if (attackRoll <= 10) {
|
||||
console.log(enemy.name+" critically hit you dealing "+damageCalc(enemy, true)+" damage!");
|
||||
sleep(2);
|
||||
} else if (attackRoll <= 50) {
|
||||
console.log(enemy.name+" hit you dealing "+damageCalc(player, false)+" damage!");
|
||||
sleep(2);
|
||||
} else if (attackRoll <= 90) {
|
||||
console.log(enemy.name+" misses you!");
|
||||
sleep(2);
|
||||
} else {
|
||||
console.log(enemy.name+" critically misses, dealing 3 damage to themself!");
|
||||
enemyStats.health-3;
|
||||
sleep(2);
|
||||
}
|
||||
case "2":
|
||||
inventoryMenuM();
|
||||
break;
|
||||
case "3":
|
||||
console.clear();
|
||||
console.log("Player Stats");
|
||||
console.log("-------------");
|
||||
console.log("Name: "+name);
|
||||
console.log("Level: "+level);
|
||||
console.log("Current Health: "+health+"/"+healthCap);
|
||||
console.log("Radiation Points: "+radPoints);
|
||||
console.log("Radiation Severity: "+radSeverity);
|
||||
console.log("Walk Rate: "+walkRate);
|
||||
console.log("Food Amt: "+food);
|
||||
console.log("Food Rate: "+foodRate);
|
||||
console.log("Distance to next POI: " + pois[poiCounter].location-location);
|
||||
console.log("Current Path: "+path);
|
||||
userInput("\n[Press Enter to return]");
|
||||
break;
|
||||
let enemyRoll = randomNumber(1,100);
|
||||
if (attackRoll <= 10) {
|
||||
console.log(enemy.name+" critically hit you dealing "+damageCalc(enemy, true)+" damage!");
|
||||
sleep(2);
|
||||
} else if (attackRoll <= 50) {
|
||||
console.log(enemy.name+" hit you dealing "+damageCalc(player, false)+" damage!");
|
||||
sleep(2);
|
||||
} else if (attackRoll <= 90) {
|
||||
console.log(enemy.name+" misses you!");
|
||||
sleep(2);
|
||||
} else {
|
||||
console.log(enemy.name+" critically misses, dealing 3 damage to themself!");
|
||||
enemyStats.health-3;
|
||||
sleep(2);
|
||||
}
|
||||
case "2":
|
||||
inventoryMenuM();
|
||||
break;
|
||||
case "3":
|
||||
console.clear();
|
||||
console.log("Player Stats");
|
||||
console.log("-------------");
|
||||
console.log("Name: "+name);
|
||||
console.log("Level: "+level);
|
||||
console.log("Current Health: "+health+"/"+healthCap);
|
||||
console.log("Radiation Points: "+radPoints);
|
||||
console.log("Radiation Severity: "+radSeverity);
|
||||
console.log("Walk Rate: "+walkRate);
|
||||
console.log("Food Amt: "+food);
|
||||
console.log("Food Rate: "+foodRate);
|
||||
console.log("Distance to next POI: " + pois[poiCounter].location-location);
|
||||
console.log("Current Path: "+path);
|
||||
userInput("\n[Press Enter to return]");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// damageCalc() function (currently not used in final game)
|
||||
// If the attacker parameter = the player it runs the respective menus, checking for damage dealt and returns it.
|
||||
// Vice versa if attacker = enemy
|
||||
// If crit = true 3 extra damage is applied regardless of armor calculations.
|
||||
function damageCalc(attacker, crit) {
|
||||
if (attacker = player) {
|
||||
if (playerStats.chem == "psycho") {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue