Implement Aeon Engine (#8804)

Co-authored-by: teskogi <tojile7269@yeafam.com>
This commit is contained in:
teskogi 2022-05-25 13:33:28 -07:00 committed by GitHub
parent 015cdf3136
commit 7ec94425df
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 238 additions and 3 deletions

View file

@ -647,4 +647,6 @@ public interface Game extends MageItem, Serializable, Copyable<Game> {
void setGameStopped(boolean gameStopped);
boolean isGameStopped();
boolean isTurnOrderReversed();
}

View file

@ -3769,6 +3769,11 @@ public abstract class GameImpl implements Game {
public boolean isGameStopped() {
return gameStopped;
}
@Override
public boolean isTurnOrderReversed() {
return state.getReverseTurnOrder();
}
@Override
public String toString() {

View file

@ -108,6 +108,7 @@ public class GameState implements Serializable, Copyable<GameState> {
private boolean manaBurn = false;
private boolean hasDayNight = false;
private boolean isDaytime = true;
private boolean reverseTurnOrder = false;
private int applyEffectsCounter; // Upcounting number of each applyEffects execution
@ -1444,9 +1445,21 @@ public class GameState implements Serializable, Copyable<GameState> {
boolean isDaytime() {
return isDaytime;
}
@Override
public String toString() {
return CardUtil.getTurnInfo(this);
}
public boolean setReverseTurnOrder(boolean reverse){
if(this.reverseTurnOrder&&reverse){
this.reverseTurnOrder = false;
} else {
this.reverseTurnOrder = reverse;
}
return this.reverseTurnOrder;
}
public boolean getReverseTurnOrder(){
return this.reverseTurnOrder;
}
}

View file

@ -47,7 +47,11 @@ public class PlayerList extends CircularList<UUID> {
}
Player player;
while (true) {
player = game.getPlayer(super.getNext());
if(game.isTurnOrderReversed()){
player = game.getPlayer(super.getPrevious());
} else{
player = game.getPlayer(super.getNext());
}
if (player.isInGame()) {
break;
}
@ -89,4 +93,4 @@ public class PlayerList extends CircularList<UUID> {
return new PlayerList(this);
}
}
}