mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
Merge branch 'master' into 'cherry-pick-33f53390'
update branch See merge request core-developers/forge!751
This commit is contained in:
@@ -125,7 +125,7 @@ public class CountersPutAi extends SpellAbilityAi {
|
|||||||
CardCollection list;
|
CardCollection list;
|
||||||
Card choice = null;
|
Card choice = null;
|
||||||
final String type = sa.getParam("CounterType");
|
final String type = sa.getParam("CounterType");
|
||||||
final String amountStr = sa.getParam("CounterNum");
|
final String amountStr = sa.getParamOrDefault("CounterNum", "1");
|
||||||
final boolean divided = sa.hasParam("DividedAsYouChoose");
|
final boolean divided = sa.hasParam("DividedAsYouChoose");
|
||||||
final String logic = sa.getParamOrDefault("AILogic", "");
|
final String logic = sa.getParamOrDefault("AILogic", "");
|
||||||
PhaseHandler ph = ai.getGame().getPhaseHandler();
|
PhaseHandler ph = ai.getGame().getPhaseHandler();
|
||||||
@@ -580,7 +580,7 @@ public class CountersPutAi extends SpellAbilityAi {
|
|||||||
final String type = sa.getParam("CounterType");
|
final String type = sa.getParam("CounterType");
|
||||||
final String logic = sa.getParamOrDefault("AILogic", "");
|
final String logic = sa.getParamOrDefault("AILogic", "");
|
||||||
|
|
||||||
final String amountStr = sa.getParam("CounterNum");
|
final String amountStr = sa.getParamOrDefault("CounterNum", "1");
|
||||||
final boolean divided = sa.hasParam("DividedAsYouChoose");
|
final boolean divided = sa.hasParam("DividedAsYouChoose");
|
||||||
final int amount = AbilityUtils.calculateAmount(sa.getHostCard(), amountStr, sa);
|
final int amount = AbilityUtils.calculateAmount(sa.getHostCard(), amountStr, sa);
|
||||||
|
|
||||||
@@ -660,7 +660,7 @@ public class CountersPutAi extends SpellAbilityAi {
|
|||||||
boolean preferred = true;
|
boolean preferred = true;
|
||||||
CardCollection list;
|
CardCollection list;
|
||||||
final String type = sa.getParam("CounterType");
|
final String type = sa.getParam("CounterType");
|
||||||
final String amountStr = sa.getParam("CounterNum");
|
final String amountStr = sa.getParamOrDefault("CounterNum", "1");
|
||||||
final boolean divided = sa.hasParam("DividedAsYouChoose");
|
final boolean divided = sa.hasParam("DividedAsYouChoose");
|
||||||
final int amount = AbilityUtils.calculateAmount(sa.getHostCard(), amountStr, sa);
|
final int amount = AbilityUtils.calculateAmount(sa.getHostCard(), amountStr, sa);
|
||||||
int left = amount;
|
int left = amount;
|
||||||
@@ -803,7 +803,8 @@ public class CountersPutAi extends SpellAbilityAi {
|
|||||||
if (mode == PlayerActionConfirmMode.Tribute) {
|
if (mode == PlayerActionConfirmMode.Tribute) {
|
||||||
// add counter if that opponent has a giant creature
|
// add counter if that opponent has a giant creature
|
||||||
final List<Card> creats = player.getCreaturesInPlay();
|
final List<Card> creats = player.getCreaturesInPlay();
|
||||||
final int tributeAmount = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("CounterNum"), sa);
|
final String amountStr = sa.getParamOrDefault("CounterNum", "1");
|
||||||
|
final int tributeAmount = AbilityUtils.calculateAmount(sa.getHostCard(), amountStr, sa);
|
||||||
|
|
||||||
final boolean isHaste = source.hasKeyword(Keyword.HASTE);
|
final boolean isHaste = source.hasKeyword(Keyword.HASTE);
|
||||||
List<Card> threatening = CardLists.filter(creats, new Predicate<Card>() {
|
List<Card> threatening = CardLists.filter(creats, new Predicate<Card>() {
|
||||||
@@ -862,7 +863,7 @@ public class CountersPutAi extends SpellAbilityAi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final CounterType type = CounterType.valueOf(sa.getParam("CounterType"));
|
final CounterType type = CounterType.valueOf(sa.getParam("CounterType"));
|
||||||
final String amountStr = sa.getParam("CounterNum");
|
final String amountStr = sa.getParamOrDefault("CounterNum", "1");
|
||||||
final int amount = AbilityUtils.calculateAmount(sa.getHostCard(), amountStr, sa);
|
final int amount = AbilityUtils.calculateAmount(sa.getHostCard(), amountStr, sa);
|
||||||
|
|
||||||
final boolean isCurse = sa.isCurse();
|
final boolean isCurse = sa.isCurse();
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ public class CountersPutEffect extends SpellAbilityEffect {
|
|||||||
final boolean dividedAsYouChoose = sa.hasParam("DividedAsYouChoose");
|
final boolean dividedAsYouChoose = sa.hasParam("DividedAsYouChoose");
|
||||||
|
|
||||||
|
|
||||||
final int amount = AbilityUtils.calculateAmount(card, sa.getParam("CounterNum"), sa);
|
final int amount = AbilityUtils.calculateAmount(card, sa.getParamOrDefault("CounterNum", "1"), sa);
|
||||||
if (sa.hasParam("Bolster")) {
|
if (sa.hasParam("Bolster")) {
|
||||||
sb.append("Bolster ").append(amount);
|
sb.append("Bolster ").append(amount);
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ public class CardFactory {
|
|||||||
public final static SpellAbility copySpellAbilityAndSrcCard(final Card source, final Card original, final SpellAbility sa, final boolean bCopyDetails) {
|
public final static SpellAbility copySpellAbilityAndSrcCard(final Card source, final Card original, final SpellAbility sa, final boolean bCopyDetails) {
|
||||||
//Player originalController = original.getController();
|
//Player originalController = original.getController();
|
||||||
Player controller = sa.getActivatingPlayer();
|
Player controller = sa.getActivatingPlayer();
|
||||||
final Card c = copyCard(original, true);
|
final Card c = (sa.isSpell() ? copyCard(original, true) : original); //copy spells, but not abilities
|
||||||
|
|
||||||
// change the color of the copy (eg: Fork)
|
// change the color of the copy (eg: Fork)
|
||||||
final SpellAbility sourceSA = source.getFirstSpellAbility();
|
final SpellAbility sourceSA = source.getFirstSpellAbility();
|
||||||
@@ -182,8 +182,6 @@ public class CardFactory {
|
|||||||
c.clearControllers();
|
c.clearControllers();
|
||||||
c.setOwner(controller);
|
c.setOwner(controller);
|
||||||
c.setCopiedSpell(true);
|
c.setCopiedSpell(true);
|
||||||
// set counters (e.g. Yisan, the Wanderer Bard)
|
|
||||||
c.setCounters(original.getCounters());
|
|
||||||
|
|
||||||
final SpellAbility copySA;
|
final SpellAbility copySA;
|
||||||
if (sa.isTrigger()) {
|
if (sa.isTrigger()) {
|
||||||
|
|||||||
@@ -3,5 +3,5 @@ Name:Modern
|
|||||||
Order:102
|
Order:102
|
||||||
Subtype:Modern
|
Subtype:Modern
|
||||||
Type:Sanctioned
|
Type:Sanctioned
|
||||||
Sets:8ED, MRD, DST, 5DN, CHK, BOK, SOK, 9ED, RAV, GPT, DIS, CSP, TSP, TSB, PLC, FUT, 10E, LRW, EVE, SHM, MOR, ALA, CFX, ARB, M10, ZEN, WWK, ROE, M11, SOM, MBS, NPH, M12, ISD, DKA, AVR, M13, RTR, GTC, DGM, M14, THS, BNG, JOU, M15, KTK, FRF, DTK, MM2, ORI, BFZ, OGW, SOI, EMN, KLD, AER, AKH, W17, HOU, XLN, RIX, DOM
|
Sets:8ED, MRD, DST, 5DN, CHK, BOK, SOK, 9ED, RAV, GPT, DIS, CSP, TSP, TSB, PLC, FUT, 10E, LRW, EVE, SHM, MOR, ALA, CFX, ARB, M10, ZEN, WWK, ROE, M11, SOM, MBS, NPH, M12, ISD, DKA, AVR, M13, RTR, GTC, DGM, M14, THS, BNG, JOU, M15, KTK, FRF, DTK, MM2, ORI, BFZ, OGW, SOI, EMN, KLD, AER, AKH, W17, HOU, XLN, RIX, DOM, M19
|
||||||
Banned:Ancient Den; Birthing Pod; Blazing Shoal; Chrome Mox; Cloudpost; Dark Depths; Deathrite Shaman; Dig Through Time; Dread Return; Eye of Ugin; Gitaxian Probe; Glimpse of Nature; Golgari Grave-Troll; Great Furnace; Green Sun's Zenith; Hypergenesis; Mental Misstep; Ponder; Preordain; Punishing Fire; Rite of Flame; Seat of the Synod; Second Sunrise; Seething Song; Sensei's Divining Top; Skullclamp; Splinter Twin; Stoneforge Mystic; Summer Bloom; Treasure Cruise; Tree of Tales; Umezawa's Jitte; Vault of Whispers
|
Banned:Ancient Den; Birthing Pod; Blazing Shoal; Chrome Mox; Cloudpost; Dark Depths; Deathrite Shaman; Dig Through Time; Dread Return; Eye of Ugin; Gitaxian Probe; Glimpse of Nature; Golgari Grave-Troll; Great Furnace; Green Sun's Zenith; Hypergenesis; Mental Misstep; Ponder; Preordain; Punishing Fire; Rite of Flame; Seat of the Synod; Second Sunrise; Seething Song; Sensei's Divining Top; Skullclamp; Splinter Twin; Stoneforge Mystic; Summer Bloom; Treasure Cruise; Tree of Tales; Umezawa's Jitte; Vault of Whispers
|
||||||
|
|||||||
@@ -3,5 +3,5 @@ Name:Standard
|
|||||||
Order:101
|
Order:101
|
||||||
Subtype:Standard
|
Subtype:Standard
|
||||||
Type:Sanctioned
|
Type:Sanctioned
|
||||||
Sets:KLD, AER, AKH, W17, HOU, XLN, RIX, DOM
|
Sets:KLD, AER, AKH, W17, HOU, XLN, RIX, DOM, M19
|
||||||
Banned: Attune with Aether; Rogue Refiner; Rampaging Ferocidon; Ramunap Ruins; Smuggler's Copter; Aetherworks Marvel; Felidar Guardian
|
Banned: Attune with Aether; Rogue Refiner; Rampaging Ferocidon; Ramunap Ruins; Smuggler's Copter; Aetherworks Marvel; Felidar Guardian
|
||||||
|
|||||||
Reference in New Issue
Block a user