Merge branch 'freezingFlame' into 'master'

Extend DamagedBy and add Aegar the freezing Flame

See merge request core-developers/forge!3778
This commit is contained in:
Hans Mackowiak
2021-02-07 14:39:35 +00:00
2 changed files with 27 additions and 15 deletions

View File

@@ -651,25 +651,29 @@ public class CardProperty {
if ((property.endsWith("Source") || property.equals("DamagedBy")) &&
!card.getReceivedDamageFromThisTurn().containsKey(source)) {
return false;
} else if (property.endsWith("Remembered")) {
boolean matched = false;
for (final Object obj : source.getRemembered()) {
if (!(obj instanceof Card)) {
continue;
} else {
String prop = property.substring("DamagedBy".length());
boolean found = false;
for (Card d : card.getReceivedDamageFromThisTurn().keySet()) {
if (d.isValid(prop, sourceController, source, spellAbility)) {
found = true;
break;
}
matched |= card.getReceivedDamageFromThisTurn().containsKey(obj);
}
if (!matched)
return false;
} else if (property.endsWith("Equipped")) {
final Card equipee = source.getEquipping();
if (equipee == null || !card.getReceivedDamageFromThisTurn().containsKey(equipee))
return false;
} else if (property.endsWith("Enchanted")) {
final Card equipee = source.getEnchantingCard();
if (equipee == null || !card.getReceivedDamageFromThisTurn().containsKey(equipee))
if (!found) {
for (Card d : AbilityUtils.getDefinedCards(source, prop, spellAbility)) {
if (card.getReceivedDamageFromThisTurn().containsKey(d)) {
found = true;
break;
}
}
}
if (!found) {
return false;
}
}
} else if (property.startsWith("Damaged")) {
if (!card.getDealtDamageToThisTurn().containsKey(source)) {
return false;

View File

@@ -0,0 +1,8 @@
Name:Aegar, the Freezing Flame
ManaCost:1 U R
Types:Legendary Creature Giant Wizard
PT:3/3
T:Mode$ ExcessDamage | ValidTarget$ Creature.OppCtrl+DamagedByGiant.YouCtrl,Creature.OppCtrl+DamagedByWizard.YouCtrl,Creature.OppCtrl+DamagedBySpell.YouCtrl,Planeswalker.OppCtrl+DamagedByGiant.YouCtrl,Planeswalker.OppCtrl+DamagedByWizard.YouCtrl,Planeswalker.OppCtrl+DamagedBySpell.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever a creature or planeswalker an opponent controls is dealt excess damage, if a Giant, Wizard, or spell you controlled dealt damage to it this turn, draw a card.
SVar:TrigDraw:DB$ Draw | Defined$ You | NumCards$ 1
Oracle:Whenever a creature or planeswalker an opponent controls is dealt excess damage, if a Giant, Wizard, or spell you controlled dealt damage to it this turn, draw a card.