Refactor dev mode cheat functions into separate class that through it's restricted access allows determining if a player as cheated during a game

This commit is contained in:
drdev
2014-09-19 21:45:24 +00:00
parent 799e86bf0f
commit 4cb64a18aa
10 changed files with 522 additions and 664 deletions

View File

@@ -185,8 +185,6 @@ public class Player extends GameEntity implements Comparable<Player> {
private boolean isPlayingExtraTrun = false;
public boolean canCheatPlayUnlimitedLands = false;
private List<Card> lostOwnership = new ArrayList<Card>();
private List<Card> gainedOwnership = new ArrayList<Card>();
@@ -1923,7 +1921,7 @@ public class Player extends GameEntity implements Comparable<Player> {
// **** Check for land play limit per turn ****
// Dev Mode
if (this.canCheatPlayUnlimitedLands || this.hasKeyword("You may play any number of additional lands on each of your turns.")) {
if (this.getController().canPlayUnlimitedLands() || this.hasKeyword("You may play any number of additional lands on each of your turns.")) {
return true;
}

View File

@@ -215,10 +215,11 @@ public abstract class PlayerController {
public abstract List<SpellAbility> chooseSaToActivateFromOpeningHand(List<SpellAbility> usableFromOpeningHand);
public abstract Mana chooseManaFromPool(List<Mana> manaChoices);
public abstract String chooseSomeType(String kindOfType, SpellAbility sa, List<String> validTypes, List<String> invalidTypes, boolean isOptional);
public final String chooseSomeType(String kindOfType, SpellAbility sa, List<String> validTypes, List<String> invalidTypes) {
return chooseSomeType(kindOfType, sa, validTypes, invalidTypes, false);
}
public abstract String chooseSomeType(String kindOfType, SpellAbility sa, List<String> validTypes, List<String> invalidTypes, boolean isOptional);
public abstract Object vote(SpellAbility sa, String prompt, List<Object> options, ArrayListMultimap<Object, Player> votes);
public abstract Pair<CounterType,String> chooseAndRemoveOrPutCounter(Card cardWithCounter);
public abstract boolean confirmReplacementEffect(ReplacementEffect replacementEffect, SpellAbility effectSA, String question);
@@ -286,4 +287,8 @@ public abstract class PlayerController {
public boolean isGuiPlayer() {
return false;
}
public boolean canPlayUnlimitedLands() {
return false;
}
}