added toString to game and print it out when assert fails
parent
d1ff534860
commit
168dd68b07
|
@ -346,11 +346,11 @@ public class MCTSAI implements MagicAI {
|
|||
assert choices.size() > 0 : "ERROR! No choice at start of genNewTreeNode";
|
||||
|
||||
assert !curr.hasDetails() || curr.getMaxChildren() == choices.size() :
|
||||
"ERROR! Capacity of node is " + curr.getMaxChildren() + ", number of choices is " + choices.size()
|
||||
+ printPath(path) + printNode(curr, choices);
|
||||
"ERROR! Capacity of node is " + curr.getMaxChildren() + ", number of choices is " + choices.size() +
|
||||
"\n" + game + printPath(path) + printNode(curr, choices);
|
||||
|
||||
assert !curr.hasDetails() || checkNode(curr, choices) :
|
||||
"ERROR! Inconsistent node found" +
|
||||
"ERROR! Inconsistent node found" + "\n" + game +
|
||||
printPath(path) + printNode(curr, choices);
|
||||
|
||||
final MagicEvent event = game.getNextEvent();
|
||||
|
|
|
@ -2258,25 +2258,29 @@ public class TriggerDefinitions {
|
|||
}
|
||||
};
|
||||
|
||||
private static final MagicTrigger SUTURE_PRIEST=new MagicTrigger(MagicTriggerType.WhenOtherComesIntoPlay,"Suture Priest") {
|
||||
|
||||
private static final MagicTrigger SUTURE_PRIEST=new MagicTrigger(
|
||||
MagicTriggerType.WhenOtherComesIntoPlay,
|
||||
"Suture Priest") {
|
||||
@Override
|
||||
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final Object data) {
|
||||
|
||||
final MagicPermanent otherPermanent=(MagicPermanent)data;
|
||||
if (otherPermanent!=permanent&&otherPermanent.isCreature()) {
|
||||
final MagicPlayer player=permanent.getController();
|
||||
final MagicPlayer controller=otherPermanent.getController();
|
||||
final boolean same=controller==player;
|
||||
return new MagicEvent(permanent,player,new Object[]{controller,same?1:-1},this,
|
||||
controller.getName()+(same?" gains 1 life.":" loses 1 life."));
|
||||
return new MagicEvent(
|
||||
permanent,
|
||||
player,
|
||||
new Object[]{controller,same?1:-1},
|
||||
this,
|
||||
controller.getName()+(same?" gains 1 life.":" loses 1 life."));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void executeEvent(final MagicGame game,final MagicEvent event,final Object data[],final Object[] choiceResults) {
|
||||
|
||||
public void executeEvent(final MagicGame game,final MagicEvent event,
|
||||
final Object data[],final Object[] choiceResults) {
|
||||
game.doAction(new MagicChangeLifeAction((MagicPlayer)data[0],(Integer)data[1]));
|
||||
}
|
||||
};
|
||||
|
|
|
@ -206,6 +206,20 @@ public class MagicGame {
|
|||
};
|
||||
return magic.MurmurHash3.hash(keys);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "t=" + turn + " " +
|
||||
"p=" + phase.getType() + " " +
|
||||
"s=" + step + " " +
|
||||
"tp=" + turnPlayer.getIndex() + " " +
|
||||
"lp=" + landPlayed + " " +
|
||||
"ppc=" + priorityPassedCount + " " +
|
||||
"pp=" + priorityPassed + " " +
|
||||
"sc=" + stateCheckRequired + " " +
|
||||
"x=" + getPayedCost().getX() + " " +
|
||||
"e=" + events.size() + " " +
|
||||
"s=" + stack.size();
|
||||
}
|
||||
|
||||
public String getIdString() {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
|
|
|
@ -173,7 +173,6 @@ public class MagicDeclareBlockersResultBuilder {
|
|||
}
|
||||
|
||||
public Collection<Object> buildResults() {
|
||||
|
||||
// Caching for better speed and immediate mode for triggers.
|
||||
game.setImmediate(true);
|
||||
attackingPlayer.setCached(game,true);
|
||||
|
@ -183,6 +182,6 @@ public class MagicDeclareBlockersResultBuilder {
|
|||
game.setImmediate(false);
|
||||
attackingPlayer.setCached(game,false);
|
||||
defendingPlayer.setCached(game,false);
|
||||
return results==null?EMPTY_RESULT:results.getResults();
|
||||
return results == null ? EMPTY_RESULT : results.getResults();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,18 +7,15 @@ public class MagicBeginOfCombatPhase extends MagicPhase {
|
|||
private static final MagicPhase INSTANCE=new MagicBeginOfCombatPhase();
|
||||
|
||||
private MagicBeginOfCombatPhase() {
|
||||
|
||||
super(MagicPhaseType.BeginOfCombat);
|
||||
}
|
||||
|
||||
public static MagicPhase getInstance() {
|
||||
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void executeBeginStep(final MagicGame game) {
|
||||
|
||||
game.setStep(MagicStep.ActivePlayer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue