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

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.