Field target = attackInfo.target;
// DamagableMapObject target = attackManager.getTarget(weapon, damagables);
// Damage damage = weapon.getDamage();
ShotResults shotResults = attacker.calculateAttack();
Damage[] damages = shotResults.getDamage();
for (Damage damage : damages) {
List<GameChange> shotChanges = shotResults.getChanges();
List<GameChange> receiveChanges = damageManager.damage(target, damage);
List<GameChange> timeChanges = computeTimeChanges(attacker, time);