mirror of
https://github.com/magefree/mage.git
synced 2025-12-26 13:32:06 -08:00
Implement Aeon Engine (#8804)
Co-authored-by: teskogi <tojile7269@yeafam.com>
This commit is contained in:
parent
015cdf3136
commit
7ec94425df
7 changed files with 238 additions and 3 deletions
|
|
@ -647,4 +647,6 @@ public interface Game extends MageItem, Serializable, Copyable<Game> {
|
|||
void setGameStopped(boolean gameStopped);
|
||||
|
||||
boolean isGameStopped();
|
||||
|
||||
boolean isTurnOrderReversed();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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() {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue