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);
}