mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 20:58:03 +00:00
- ORI: Added Thornbow Archer
- Fixed Disorder
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -14335,6 +14335,7 @@ forge-gui/res/cardsfolder/t/thorn_of_amethyst.txt svneol=native#text/plain
|
|||||||
forge-gui/res/cardsfolder/t/thorn_thallid.txt svneol=native#text/plain
|
forge-gui/res/cardsfolder/t/thorn_thallid.txt svneol=native#text/plain
|
||||||
forge-gui/res/cardsfolder/t/thorn_thrash_viashino.txt svneol=native#text/plain
|
forge-gui/res/cardsfolder/t/thorn_thrash_viashino.txt svneol=native#text/plain
|
||||||
forge-gui/res/cardsfolder/t/thornbite_staff.txt -text
|
forge-gui/res/cardsfolder/t/thornbite_staff.txt -text
|
||||||
|
forge-gui/res/cardsfolder/t/thornbow_archer.txt -text
|
||||||
forge-gui/res/cardsfolder/t/thorncaster_sliver.txt -text
|
forge-gui/res/cardsfolder/t/thorncaster_sliver.txt -text
|
||||||
forge-gui/res/cardsfolder/t/thornling.txt svneol=native#text/plain
|
forge-gui/res/cardsfolder/t/thornling.txt svneol=native#text/plain
|
||||||
forge-gui/res/cardsfolder/t/thornscape_apprentice.txt svneol=native#text/plain
|
forge-gui/res/cardsfolder/t/thornscape_apprentice.txt svneol=native#text/plain
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ import forge.game.zone.ZoneType;
|
|||||||
import forge.item.IPaperCard;
|
import forge.item.IPaperCard;
|
||||||
import forge.util.Aggregates;
|
import forge.util.Aggregates;
|
||||||
import forge.util.collect.FCollection;
|
import forge.util.collect.FCollection;
|
||||||
|
import forge.util.Expressions;
|
||||||
import forge.util.Lang;
|
import forge.util.Lang;
|
||||||
import forge.util.MyRandom;
|
import forge.util.MyRandom;
|
||||||
|
|
||||||
@@ -69,6 +70,8 @@ import java.util.*;
|
|||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.concurrent.ConcurrentSkipListMap;
|
import java.util.concurrent.ConcurrentSkipListMap;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Abstract Player class.
|
* Abstract Player class.
|
||||||
@@ -1727,7 +1730,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final boolean isValid(final String restriction, final Player sourceController, final Card source) {
|
public final boolean isValid(final String restriction, final Player sourceController, final Card source) {
|
||||||
final String[] incR = restriction.split("\\.");
|
final String[] incR = restriction.split("\\.", 2);
|
||||||
|
|
||||||
if (incR[0].equals("Opponent")) {
|
if (incR[0].equals("Opponent")) {
|
||||||
if (equals(sourceController) || !isOpponentOf(sourceController)) {
|
if (equals(sourceController) || !isOpponentOf(sourceController)) {
|
||||||
@@ -1860,6 +1863,15 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
if (getPoisonCounters() <= 0) {
|
if (getPoisonCounters() <= 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
} else if (property.startsWith("controls")) {
|
||||||
|
final String[] type = property.substring(8).split("_");
|
||||||
|
final CardCollectionView list = CardLists.getValidCards(getCardsIn(ZoneType.Battlefield), type[0], sourceController, source);
|
||||||
|
String comparator = type[1];
|
||||||
|
String compareTo = comparator.substring(2);
|
||||||
|
int y = StringUtils.isNumeric(compareTo) ? Integer.parseInt(compareTo) : 0;
|
||||||
|
if (!Expressions.compare(list.size(), comparator, y)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
} else if (property.startsWith("withMore")) {
|
} else if (property.startsWith("withMore")) {
|
||||||
final String cardType = property.split("sThan")[0].substring(8);
|
final String cardType = property.split("sThan")[0].substring(8);
|
||||||
final Player controller = "Active".equals(property.split("sThan")[1]) ? game.getPhaseHandler().getPlayerTurn() : sourceController;
|
final Player controller = "Active".equals(property.split("sThan")[1]) ? game.getPhaseHandler().getPlayerTurn() : sourceController;
|
||||||
|
|||||||
@@ -1,14 +1,7 @@
|
|||||||
Name:Disorder
|
Name:Disorder
|
||||||
ManaCost:1 R
|
ManaCost:1 R
|
||||||
Types:Sorcery
|
Types:Sorcery
|
||||||
A:SP$ DamageAll | Cost$ 1 R | ValidCards$ Creature.White | NumDmg$ 2 | SubAbility$ RepeatedDisorder | RememberDamaged$ True | SpellDescription$ Disorder deals 2 damage to each white creature and each player who controls a white creature.
|
A:SP$ DamageAll | Cost$ 1 R | ValidCards$ Creature.White | ValidPlayers$ Player.controlsCreature.White_GE1 | NumDmg$ 2 | SpellDescription$ Disorder deals 2 damage to each white creature and each player who controls a white creature.
|
||||||
SVar:RepeatedDisorder:DB$ RepeatEach | Cost$ 2 W W | RepeatPlayers$ Player | RepeatSubAbility$ DisorderPlayerDmg | SubAbility$ DBCleanup
|
|
||||||
SVar:DisorderPlayerDmg:DB$ DealDamage | Defined$ Player.IsRemembered | ConditionCheckSVar$ DisorderX | ConditionSVarCompare$ GE1 | NumDmg$ 2 | References$ DisorderX,StillInPlay,AlreadyDestroyed
|
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
|
||||||
#Seeing as it should seal the damage to the creatures and players simultaneously, check whether the player DID have white creatures before the creature damage.
|
|
||||||
SVar:AlreadyDestroyed:RememberedLKI$Valid Creature.White+RememberedPlayerCtrl
|
|
||||||
SVar:StillInPlay:Count$Valid Creature.White+RememberedPlayerCtrl
|
|
||||||
SVar:DisorderX:SVar$AlreadyDestroyed/Plus.StillInPlay
|
|
||||||
SVar:RemRandomDeck:True
|
SVar:RemRandomDeck:True
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/disorder.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/disorder.jpg
|
||||||
Oracle:Disorder deals 2 damage to each white creature and each player who controls a white creature.
|
Oracle:Disorder deals 2 damage to each white creature and each player who controls a white creature.
|
||||||
|
|||||||
9
forge-gui/res/cardsfolder/t/thornbow_archer.txt
Normal file
9
forge-gui/res/cardsfolder/t/thornbow_archer.txt
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Name:Thornbow Archer
|
||||||
|
ManaCost:B
|
||||||
|
Types:Creature Elf Archer
|
||||||
|
PT:1/2
|
||||||
|
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigLoseLife | TriggerDescription$ Whenever CARDNAME attacks, each opponent who doesn't control an Elf loses 1 life.
|
||||||
|
SVar:TrigLoseLife:AB$ LoseLife | Cost$ 0 | Defined$ Player.Opponent+controlsElf_EQ0 | LifeAmount$ 1
|
||||||
|
SVar:HasAttackEffect:TRUE
|
||||||
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/thornbow_archer.jpg
|
||||||
|
Oracle:Whenever Infectious Horror attacks, each opponent who doesn't control an Elf loses 1 life.
|
||||||
Reference in New Issue
Block a user