var R = require('ramda');
var stats = require('fire-emblem-heroes-stats@0.7.6');
var calculator = require('fire-emblem-heroes-calculator@0.7.6');
/**
* Determine who wins, in a battle to the death!
*/
function doesAttackerWin(attacker, defender) {
// initial states
var attackerHp = calculator.getStat(attacker, 'hp');
var attackerSpecialCharge = 0;
var defenderHp = calculator.getStat(defender, 'hp');
var defenderSpecialCharge = 0;
while (!(attackerHp === 0 || defenderHp === 0)) {
var result = calculator.calculateResult(
{
...attacker,
initialHpMissing: calculator.getStat(attacker, 'hp') - attackerHp,
initialSpecialCharge: attackerSpecialCharge,
},
{
...defender,
initialHpMissing: calculator.getStat(defender, 'hp') - defenderHp,
initialSpecialCharge: defenderSpecialCharge,
},
);
// update state for next round
attackerHp = result.attackerHpRemaining;
// TODO: attackerSpecialCharge = ???
defenderHp = result.defenderHpRemaining;
// TODO: defenderSpecialCharge = ???
}
if (attackerHp === 0) {
return false;
}
return true;
}
var Anna = calculator.getDefaultInstance('Anna');
var Sharena = calculator.getDefaultInstance('Sharena');
doesAttackerWin(Anna, Sharena);