JSFiddle - React, Tailwind, and code Playground
by Abdul Ahmad
JavaScript
function getCharacter() {
return {
attack: 99,
strength: 99,
defense: 99,
health: 99,
};
}
function battle() {
var characterOne = getCharacter();
var characterTwo = getCharacter();
var randomNum = Math.floor(Math.random() * 101);
var attackTurnFor = '';
attackTurnFor = randomNum > 50 ? 'one' : 'two';
var numOfRounds = 0;
while (characterOne.health > 0 && characterTwo.health > 0) {
if (attackTurnFor === 'one') {
playerAttack({ attacking: characterOne, defending: characterTwo});
attackTurnFor = 'two';
} else {
playerAttack({ attacking: characterTwo, defending: characterOne });
attackTurnFor = 'one';
}
numOfRounds++;
if (numOfRounds > 300) return;
}
console.log('player one: ', characterOne);
console.log('player two: ', characterTwo);
}
function playerAttack({ attacking, defending }) {
}
function calcDamage({ attacking, defending }) {
var randomNum = randomNumber(100);
// - assuming 85% damage success rate
if (randomNum > 85) return 0;
randomNum = randomNumber(100);
// - let's assume max damage possible is 25
// - since 'strength' is 99:
// - damage above 20 is 30% possible
// - damage between 10 and 20 is 50% possible
// - damage below 10 is 20% possible
var damage = '';
if (randomNum < 51) damage = randomNumber(10) + 10;
else if (randomNum > 50 && randomNum < 81) damage = randomNumber(5) + 20;
else damage = randomNumber(10);
}
function randomNumber(maxValue) {
return Math.floor(Math.random() * maxValue + 1);
}