Merge branch 'combatPhaseHandlerFix' into 'master'

Combat: initConstraints before Declare Attackers

See merge request core-developers/forge!2281
This commit is contained in:
Hans Mackowiak
2019-11-14 11:12:31 +00:00
2 changed files with 9 additions and 5 deletions

View File

@@ -50,7 +50,7 @@ import java.util.Map.Entry;
*/
public class Combat {
private final Player playerWhoAttacks;
private final AttackConstraints attackConstraints;
private AttackConstraints attackConstraints;
// Defenders, as they are attacked by hostile forces
private final FCollection<GameEntity> attackableEntries = new FCollection<>();
@@ -71,10 +71,6 @@ public class Combat {
public Combat(final Player attacker) {
playerWhoAttacks = attacker;
// Create keys for all possible attack targets
attackableEntries.addAll(CombatUtil.getAllPossibleDefenders(playerWhoAttacks));
attackConstraints = new AttackConstraints(this);
}
public Combat(Combat combat, GameObjectMap map) {
@@ -119,6 +115,13 @@ public class Combat {
attackConstraints = new AttackConstraints(this);
}
public void initConstraints() {
// Create keys for all possible attack targets
attackableEntries.addAll(CombatUtil.getAllPossibleDefenders(playerWhoAttacks));
attackConstraints = new AttackConstraints(this);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();

View File

@@ -283,6 +283,7 @@ public class PhaseHandler implements java.io.Serializable {
case COMBAT_DECLARE_ATTACKERS:
if (!playerTurn.hasLost()) {
combat.initConstraints();
game.getStack().freezeStack();
declareAttackersTurnBasedAction();
game.getStack().unfreezeStack();