mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
- Added Prowl keyword.
- Added Thieves' Fortune.
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -7741,6 +7741,7 @@ res/cardsfolder/t/thermokarst.txt svneol=native#text/plain
|
|||||||
res/cardsfolder/t/thermopod.txt svneol=native#text/plain
|
res/cardsfolder/t/thermopod.txt svneol=native#text/plain
|
||||||
res/cardsfolder/t/thicket_basilisk.txt svneol=native#text/plain
|
res/cardsfolder/t/thicket_basilisk.txt svneol=native#text/plain
|
||||||
res/cardsfolder/t/thief_of_hope.txt svneol=native#text/plain
|
res/cardsfolder/t/thief_of_hope.txt svneol=native#text/plain
|
||||||
|
res/cardsfolder/t/thieves_fortune.txt -text
|
||||||
res/cardsfolder/t/thieving_magpie.txt svneol=native#text/plain
|
res/cardsfolder/t/thieving_magpie.txt svneol=native#text/plain
|
||||||
res/cardsfolder/t/think_tank.txt svneol=native#text/plain
|
res/cardsfolder/t/think_tank.txt svneol=native#text/plain
|
||||||
res/cardsfolder/t/think_twice.txt svneol=native#text/plain
|
res/cardsfolder/t/think_twice.txt svneol=native#text/plain
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,6 +2,7 @@
|
|||||||
/*.iml
|
/*.iml
|
||||||
/*.tmp
|
/*.tmp
|
||||||
.settings/org.eclipse.core.resources.prefs
|
.settings/org.eclipse.core.resources.prefs
|
||||||
|
/build
|
||||||
/forge.log
|
/forge.log
|
||||||
/forge.preferences
|
/forge.preferences
|
||||||
/release.properties
|
/release.properties
|
||||||
|
|||||||
10
res/cardsfolder/t/thieves_fortune.txt
Normal file
10
res/cardsfolder/t/thieves_fortune.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Name:Thieves' Fortune
|
||||||
|
ManaCost:2 U
|
||||||
|
Types:Tribal Instant Rogue
|
||||||
|
Text:no text
|
||||||
|
A:SP$ Dig | Cost$ U | Activation$ Prowl | DigNum$ 4 | ChangeNum$ 1 | PrecostDesc$ Prowl U | SpellDescription$ (You may cast this for its prowl cost if you dealt combat damage to a player this turn with a Rogue.)
|
||||||
|
A:SP$ Dig | Cost$ 2 U | DigNum$ 4 | ChangeNum$ 1 | SpellDescription$ Look at the top four cards of your library. Put one of them into your hand and the rest on the bottom of your library in any order.
|
||||||
|
SVar:RemAIDeck:True
|
||||||
|
SVar:Rarity:Uncommon
|
||||||
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/thieves_fortune.jpg
|
||||||
|
End
|
||||||
@@ -479,6 +479,8 @@ public class Phase extends MyObservable implements java.io.Serializable {
|
|||||||
Player nextTurn = extraTurns.isEmpty() ? getPlayerTurn().getOpponent() : extraTurns.pop();
|
Player nextTurn = extraTurns.isEmpty() ? getPlayerTurn().getOpponent() : extraTurns.pop();
|
||||||
|
|
||||||
AllZone.resetZoneMoveTracking();
|
AllZone.resetZoneMoveTracking();
|
||||||
|
AllZone.getComputerPlayer().setProwl(false);
|
||||||
|
AllZone.getHumanPlayer().setProwl(false);
|
||||||
|
|
||||||
return skipTurnTimeVault(nextTurn);
|
return skipTurnTimeVault(nextTurn);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ public abstract class Player extends MyObservable {
|
|||||||
|
|
||||||
protected int nTurns = 0;
|
protected int nTurns = 0;
|
||||||
protected boolean skipNextUntap = false;
|
protected boolean skipNextUntap = false;
|
||||||
|
protected boolean prowl = false;
|
||||||
|
|
||||||
protected int maxLandsToPlay = 1;
|
protected int maxLandsToPlay = 1;
|
||||||
protected int numLandsPlayed = 0;
|
protected int numLandsPlayed = 0;
|
||||||
@@ -90,6 +91,7 @@ public abstract class Player extends MyObservable {
|
|||||||
loseConditionSpell = null;
|
loseConditionSpell = null;
|
||||||
maxLandsToPlay = 1;
|
maxLandsToPlay = 1;
|
||||||
numLandsPlayed = 0;
|
numLandsPlayed = 0;
|
||||||
|
prowl = false;
|
||||||
|
|
||||||
handSizeOperations = new ArrayList<HandSizeOp>();
|
handSizeOperations = new ArrayList<HandSizeOp>();
|
||||||
keywords.clear();
|
keywords.clear();
|
||||||
@@ -374,6 +376,9 @@ public abstract class Player extends MyObservable {
|
|||||||
addAssignedDamage(damageToDo);
|
addAssignedDamage(damageToDo);
|
||||||
GameActionUtil.executeDamageDealingEffects(source, damageToDo);
|
GameActionUtil.executeDamageDealingEffects(source, damageToDo);
|
||||||
GameActionUtil.executeDamageToPlayerEffects(this, source, damageToDo);
|
GameActionUtil.executeDamageToPlayerEffects(this, source, damageToDo);
|
||||||
|
|
||||||
|
if(isCombat && source.isType("Rogue"))
|
||||||
|
source.getController().setProwl(true);
|
||||||
|
|
||||||
//Run triggers
|
//Run triggers
|
||||||
HashMap<String, Object> runParams = new HashMap<String, Object>();
|
HashMap<String, Object> runParams = new HashMap<String, Object>();
|
||||||
@@ -1619,6 +1624,19 @@ public abstract class Player extends MyObservable {
|
|||||||
CardList list = ((DefaultPlayerZone) AllZone.getZone("Battlefield", this)).getCardsAddedThisTurn("Any").getType("Land");
|
CardList list = ((DefaultPlayerZone) AllZone.getZone("Battlefield", this)).getCardsAddedThisTurn("Any").getType("Land");
|
||||||
return !list.isEmpty();
|
return !list.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>hasProwl.</p>
|
||||||
|
*
|
||||||
|
* @return a boolean.
|
||||||
|
*/
|
||||||
|
public boolean hasProwl() {
|
||||||
|
return prowl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProwl(boolean newProwl) {
|
||||||
|
prowl = newProwl;
|
||||||
|
}
|
||||||
|
|
||||||
private ArrayList<HandSizeOp> handSizeOperations;
|
private ArrayList<HandSizeOp> handSizeOperations;
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ public class SpellAbility_Restriction extends SpellAbility_Variables {
|
|||||||
if (value.equals("Threshold")) setThreshold(true);
|
if (value.equals("Threshold")) setThreshold(true);
|
||||||
if (value.equals("Metalcraft")) setMetalcraft(true);
|
if (value.equals("Metalcraft")) setMetalcraft(true);
|
||||||
if (value.equals("Hellbent")) setHellbent(true);
|
if (value.equals("Hellbent")) setHellbent(true);
|
||||||
|
if (value.equals("Prowl")) setProwl(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (params.containsKey("ActivationZone"))
|
if (params.containsKey("ActivationZone"))
|
||||||
@@ -180,7 +181,10 @@ public class SpellAbility_Restriction extends SpellAbility_Variables {
|
|||||||
if (!activator.hasMetalcraft())
|
if (!activator.hasMetalcraft())
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (prowl) {
|
||||||
|
if (!activator.hasProwl())
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (sIsPresent != null) {
|
if (sIsPresent != null) {
|
||||||
CardList list = AllZoneUtil.getCardsInZone(presentZone);
|
CardList list = AllZoneUtil.getCardsInZone(presentZone);
|
||||||
|
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ public class SpellAbility_Variables {
|
|||||||
protected boolean threshold = false;
|
protected boolean threshold = false;
|
||||||
protected boolean metalcraft = false;
|
protected boolean metalcraft = false;
|
||||||
protected boolean hellbent = false;
|
protected boolean hellbent = false;
|
||||||
|
protected boolean prowl = false;
|
||||||
|
|
||||||
protected String sIsPresent = null;
|
protected String sIsPresent = null;
|
||||||
protected String presentCompare = "GE1"; // Default Compare to Greater or Equal to 1
|
protected String presentCompare = "GE1"; // Default Compare to Greater or Equal to 1
|
||||||
@@ -261,6 +262,15 @@ public class SpellAbility_Variables {
|
|||||||
public void setMetalcraft(boolean bMetalcraft) {
|
public void setMetalcraft(boolean bMetalcraft) {
|
||||||
metalcraft = bMetalcraft;
|
metalcraft = bMetalcraft;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>Setter for the field <code>prowl</code>.</p>
|
||||||
|
*
|
||||||
|
* @param bProwl a boolean.
|
||||||
|
*/
|
||||||
|
public void setProwl(boolean bProwl) {
|
||||||
|
prowl = bProwl;
|
||||||
|
}
|
||||||
|
|
||||||
//IsPresent for Valid battlefield stuff
|
//IsPresent for Valid battlefield stuff
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user