mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-12 08:48:39 +00:00
Fix Vexing Puzzlebox (#5180)
This commit is contained in:
@@ -673,17 +673,18 @@ public class AbilityUtils {
|
|||||||
final SpellAbility root = sa.getRootAbility();
|
final SpellAbility root = sa.getRootAbility();
|
||||||
final String[] l = calcX[1].split("/");
|
final String[] l = calcX[1].split("/");
|
||||||
final String m = CardFactoryUtil.extractOperators(calcX[1]);
|
final String m = CardFactoryUtil.extractOperators(calcX[1]);
|
||||||
|
final Object to = root.getTriggeringObject(AbilityKey.fromString(l[0]));
|
||||||
Integer count = null;
|
Integer count = null;
|
||||||
if (calcX[0].endsWith("Max")) {
|
if (to instanceof Iterable<?>) {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
Iterable<Integer> numbers = (Iterable<Integer>) root.getTriggeringObject(AbilityKey.fromString(l[0]));
|
Iterable<Integer> numbers = (Iterable<Integer>) to;
|
||||||
for (Integer n : numbers) {
|
if (calcX[0].endsWith("Max")) {
|
||||||
if (count == null || n > count) {
|
count = Aggregates.max(numbers, Functions.identity());
|
||||||
count = n;
|
} else {
|
||||||
}
|
count = Aggregates.sum(numbers, Functions.identity());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
count = (Integer) root.getTriggeringObject(AbilityKey.fromString(l[0]));
|
count = (Integer) to;
|
||||||
}
|
}
|
||||||
|
|
||||||
val = doXMath(ObjectUtils.firstNonNull(count, 0), m, card, ability);
|
val = doXMath(ObjectUtils.firstNonNull(count, 0), m, card, ability);
|
||||||
|
|||||||
@@ -5,9 +5,10 @@ PT:0/0
|
|||||||
K:Flying
|
K:Flying
|
||||||
K:etbCounter:P1P1:5
|
K:etbCounter:P1P1:5
|
||||||
R:Event$ DamageDone | ActiveZones$ Battlefield | ValidTarget$ Card.Self+counters_GE1_P1P1 | ReplaceWith$ Counters | PreventionEffect$ True | AlwaysReplace$ True | Description$ If damage would be dealt to CARDNAME while it has a +1/+1 counter on it, prevent that damage, remove that many +1/+1 counters it, then give each player a rad counter for each +1/+1 counter removed this way.
|
R:Event$ DamageDone | ActiveZones$ Battlefield | ValidTarget$ Card.Self+counters_GE1_P1P1 | ReplaceWith$ Counters | PreventionEffect$ True | AlwaysReplace$ True | Description$ If damage would be dealt to CARDNAME while it has a +1/+1 counter on it, prevent that damage, remove that many +1/+1 counters it, then give each player a rad counter for each +1/+1 counter removed this way.
|
||||||
SVar:Counters:DB$ RemoveCounter | Defined$ ReplacedTarget | CounterType$ P1P1 | CounterNum$ Y | RememberRemoved$ True | SubAbility$ DBRadiation
|
SVar:Counters:DB$ RemoveCounter | Defined$ ReplacedTarget | CounterType$ P1P1 | CounterNum$ Y | RememberAmount$ True | SubAbility$ DBRadiation
|
||||||
SVar:DBRadiation:DB$ Radiation | Defined$ Player | Num$ Y | SubAbility$ DBCleanup
|
SVar:DBRadiation:DB$ Radiation | Defined$ Player | Num$ Z | SubAbility$ DBCleanup
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
SVar:Y:ReplaceCount$DamageAmount
|
SVar:Y:ReplaceCount$DamageAmount
|
||||||
|
SVar:Z:Count$RememberedNumber
|
||||||
DeckHas:Ability$Counters
|
DeckHas:Ability$Counters
|
||||||
Oracle:Flying\nBloatfly Swarm enters the battlefield with five +1/+1 counters on it.\nIf damage would be dealt to Bloatfly Swarm while it has a +1/+1 counter on it, prevent that damage, remove that many +1/+1 counters from it, then give each player a rad counter for each +1/+1 counter removed this way.
|
Oracle:Flying\nBloatfly Swarm enters the battlefield with five +1/+1 counters on it.\nIf damage would be dealt to Bloatfly Swarm while it has a +1/+1 counter on it, prevent that damage, remove that many +1/+1 counters from it, then give each player a rad counter for each +1/+1 counter removed this way.
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ Name:Vexing Puzzlebox
|
|||||||
ManaCost:3
|
ManaCost:3
|
||||||
Types:Artifact
|
Types:Artifact
|
||||||
T:Mode$ RolledDieOnce | TriggerZones$ Battlefield | ValidPlayer$ You | Execute$ TrigPutCounter | TriggerDescription$ Whenever you roll one or more dice, put a number of charge counters on CARDNAME equal to the result.
|
T:Mode$ RolledDieOnce | TriggerZones$ Battlefield | ValidPlayer$ You | Execute$ TrigPutCounter | TriggerDescription$ Whenever you roll one or more dice, put a number of charge counters on CARDNAME equal to the result.
|
||||||
SVar:DiceResult:TriggerCountMax$Result
|
SVar:DiceResult:TriggerCount$Result
|
||||||
SVar:TrigPutCounter:DB$ PutCounter | CounterType$ CHARGE | CounterNum$ DiceResult
|
SVar:TrigPutCounter:DB$ PutCounter | CounterType$ CHARGE | CounterNum$ DiceResult
|
||||||
A:AB$ Mana | Cost$ T | Produced$ Any | SubAbility$ DBRollDice | SpellDescription$ Add one mana of any color. Roll a d20.
|
A:AB$ Mana | Cost$ T | Produced$ Any | SubAbility$ DBRollDice | SpellDescription$ Add one mana of any color. Roll a d20.
|
||||||
SVar:DBRollDice:DB$ RollDice | Sides$ 20
|
SVar:DBRollDice:DB$ RollDice | Sides$ 20
|
||||||
|
|||||||
Reference in New Issue
Block a user