mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
make Player class abstract. Create 2 sub-classes AIPlayer and HumanPlayer. They are just bare-bones at this point.
Now, we should be able to move things one by one to the Human/AI subclasses from GameAction.java.
This commit is contained in:
2
.gitattributes
vendored
2
.gitattributes
vendored
@@ -5290,6 +5290,7 @@ src/arcane/util/Util.java svneol=native#text/plain
|
||||
src/com/cloudgarden/layout/AnchorConstraint.java -text svneol=native#text/plain
|
||||
src/com/cloudgarden/layout/AnchorLayout.java -text svneol=native#text/plain
|
||||
src/com/esotericsoftware/minlog/Log.java svneol=native#text/plain
|
||||
src/forge/AIPlayer.java -text svneol=native#text/plain
|
||||
src/forge/Ability.java svneol=native#text/plain
|
||||
src/forge/AbilityFactory.java -text svneol=native#text/plain
|
||||
src/forge/AbilityFactory_AlterLife.java -text svneol=native#text/plain
|
||||
@@ -5418,6 +5419,7 @@ src/forge/Gui_Treasury.java -text svneol=native#text/plain
|
||||
src/forge/Gui_Welcome.java svneol=native#text/plain
|
||||
src/forge/Gui_WinLose.java svneol=native#text/plain
|
||||
src/forge/HandSizeOp.java -text svneol=native#text/plain
|
||||
src/forge/HumanPlayer.java -text svneol=native#text/plain
|
||||
src/forge/IO.java svneol=native#text/plain
|
||||
src/forge/ImageCache.java svneol=native#text/plain
|
||||
src/forge/ImagePreviewPanel.java -text svneol=native#text/plain
|
||||
|
||||
37
src/forge/AIPlayer.java
Normal file
37
src/forge/AIPlayer.java
Normal file
@@ -0,0 +1,37 @@
|
||||
|
||||
package forge;
|
||||
|
||||
|
||||
public class AIPlayer extends Player{
|
||||
|
||||
public AIPlayer(String myName) {
|
||||
this(myName, 20, 0);
|
||||
}
|
||||
|
||||
public AIPlayer(String myName, int myLife, int myPoisonCounters) {
|
||||
super(myName, myLife, myPoisonCounters);
|
||||
}
|
||||
|
||||
public Player getOpponent() {
|
||||
return AllZone.HumanPlayer;
|
||||
}
|
||||
|
||||
////////////////
|
||||
///
|
||||
/// Methods to ease transition to Abstract Player class
|
||||
///
|
||||
///////////////
|
||||
|
||||
public boolean isHuman() { return false; }
|
||||
public boolean isComputer() { return true; }
|
||||
public boolean isPlayer(Player p1) {
|
||||
return p1.getName().equals(this.name);
|
||||
}
|
||||
|
||||
///////////////
|
||||
///
|
||||
/// End transition methods
|
||||
///
|
||||
///////////////
|
||||
|
||||
}//end AIPlayer class
|
||||
@@ -13,8 +13,8 @@ public class AllZone implements NewConstants {
|
||||
//only for testing, should read decks from local directory
|
||||
// public static final IO IO = new IO("all-decks");
|
||||
|
||||
public static final Player HumanPlayer = new Player("Human");
|
||||
public static final Player ComputerPlayer = new Player("Computer");
|
||||
public static final Player HumanPlayer = new HumanPlayer("Human");
|
||||
public static final Player ComputerPlayer = new AIPlayer("Computer");
|
||||
|
||||
public static QuestData QuestData = null;
|
||||
public static Quest_Assignment QuestAssignment = null;
|
||||
|
||||
37
src/forge/HumanPlayer.java
Normal file
37
src/forge/HumanPlayer.java
Normal file
@@ -0,0 +1,37 @@
|
||||
|
||||
package forge;
|
||||
|
||||
|
||||
public class HumanPlayer extends Player{
|
||||
|
||||
public HumanPlayer(String myName) {
|
||||
this(myName, 20, 0);
|
||||
}
|
||||
|
||||
public HumanPlayer(String myName, int myLife, int myPoisonCounters) {
|
||||
super(myName, myLife, myPoisonCounters);
|
||||
}
|
||||
|
||||
////////////////
|
||||
///
|
||||
/// Methods to ease transition to Abstract Player class
|
||||
///
|
||||
///////////////
|
||||
|
||||
public boolean isHuman() { return true; }
|
||||
public boolean isComputer() { return false; }
|
||||
public boolean isPlayer(Player p1) {
|
||||
return p1.getName().equals(this.name);
|
||||
}
|
||||
|
||||
///////////////
|
||||
///
|
||||
/// End transition methods
|
||||
///
|
||||
///////////////
|
||||
|
||||
public Player getOpponent() {
|
||||
return AllZone.ComputerPlayer;
|
||||
}
|
||||
|
||||
}//end HumanPlayer class
|
||||
@@ -2,11 +2,11 @@
|
||||
package forge;
|
||||
|
||||
|
||||
public class Player extends MyObservable{
|
||||
private String name;
|
||||
private int poisonCounters;
|
||||
private int life;
|
||||
private int assignedDamage;
|
||||
public abstract class Player extends MyObservable{
|
||||
protected String name;
|
||||
protected int poisonCounters;
|
||||
protected int life;
|
||||
protected int assignedDamage;
|
||||
|
||||
public Player(String myName) {
|
||||
this(myName, 20, 0);
|
||||
@@ -23,24 +23,11 @@ public class Player extends MyObservable{
|
||||
return name;
|
||||
}
|
||||
|
||||
public boolean isHuman() {
|
||||
return name.equals("Human");
|
||||
}
|
||||
public abstract boolean isHuman();
|
||||
public abstract boolean isComputer();
|
||||
public abstract boolean isPlayer(Player p1);
|
||||
|
||||
public boolean isComputer() {
|
||||
return name.equals("Computer");
|
||||
}
|
||||
|
||||
public boolean isPlayer(Player p1) {
|
||||
return p1.getName().equals(this.name);
|
||||
}
|
||||
|
||||
public Player getOpponent() {
|
||||
if(isPlayer(AllZone.HumanPlayer)) {
|
||||
return AllZone.ComputerPlayer;
|
||||
}
|
||||
else return AllZone.HumanPlayer;
|
||||
}
|
||||
public abstract Player getOpponent();
|
||||
|
||||
//////////////////////////
|
||||
//
|
||||
@@ -204,6 +191,8 @@ public class Player extends MyObservable{
|
||||
return new CardList();
|
||||
}
|
||||
|
||||
//public abstract void discard(int n, SpellAbility sa);
|
||||
|
||||
public String toString() {
|
||||
return name;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user