return;
}
if (Victory()) {
- // TODO: push victory state
ctrl.PopState();
return;
}
if (Defeat()) {
- // TODO: push defeat state
ctrl.PopState();
return;
}
if (ac.GetType() == AttackChoice::DEFEND) return;
TargetSelection &ts(ac.Selection());
- // TODO: this only evaluates SWORD type attacks
if (CurrentAttack().isMonster) {
const Stats &attackerStats(MonsterAt(CurrentAttack().index).GetStats());
CalculateDamage(attackerStats, ts);
AttackChoice &ac(m.GetAttackChoice());
TargetSelection &ts(ac.Selection());
ac.Reset();
- // TODO: run monster's attack script
int target(rand() % NumHeroes());
while (!HeroPositionOccupied(target)) {
target = rand() % NumHeroes();
}
Uint16 BattleState::CalculateDamage(const Stats &attacker, const Stats &defender) const {
- // TODO: find out real formula and add some randomness
return attacker.Attack() / 2 - defender.Defense() / 4;
}