From 4ba68a795e01be0a455a44a41b8c4f604722e25f Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 09:04:39 +0000 Subject: [PATCH] - Added hidden keywords. - Converted Bubble Matrix to hidden keyword. - Added Gaseous Form and Inviolability. --- .gitattributes | 2 ++ res/cardsfolder/bubble_matrix.txt | 2 +- res/cardsfolder/gaseous_form.txt | 9 +++++++ res/cardsfolder/inviolability.txt | 9 +++++++ src/forge/Card.java | 45 ++++++++++++++++++++++++++++--- 5 files changed, 62 insertions(+), 5 deletions(-) create mode 100644 res/cardsfolder/gaseous_form.txt create mode 100644 res/cardsfolder/inviolability.txt diff --git a/.gitattributes b/.gitattributes index 1f3a79c71a2..edfae9c8419 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1550,6 +1550,7 @@ res/cardsfolder/gargoyle_castle.txt -text svneol=native#text/plain res/cardsfolder/garruk_wildspeaker.txt -text svneol=native#text/plain res/cardsfolder/garruks_companion.txt -text svneol=native#text/plain res/cardsfolder/garza_zol_plague_queen.txt -text svneol=native#text/plain +res/cardsfolder/gaseous_form.txt -text svneol=native#text/plain res/cardsfolder/gate_hound.txt -text svneol=native#text/plain res/cardsfolder/gatekeeper_of_malakir.txt -text svneol=native#text/plain res/cardsfolder/gelectrode.txt -text svneol=native#text/plain @@ -2037,6 +2038,7 @@ res/cardsfolder/intuition.txt -text svneol=native#text/plain res/cardsfolder/inundate.txt -text svneol=native#text/plain res/cardsfolder/invigorating_falls.txt -text svneol=native#text/plain res/cardsfolder/invincible_hymn.txt -text svneol=native#text/plain +res/cardsfolder/inviolability.txt -text svneol=native#text/plain res/cardsfolder/invisibility.txt -text svneol=native#text/plain res/cardsfolder/iona_shield_of_emeria.txt -text svneol=native#text/plain res/cardsfolder/ionas_judgment.txt -text svneol=native#text/plain diff --git a/res/cardsfolder/bubble_matrix.txt b/res/cardsfolder/bubble_matrix.txt index 20921149123..5321a7174e1 100644 --- a/res/cardsfolder/bubble_matrix.txt +++ b/res/cardsfolder/bubble_matrix.txt @@ -2,7 +2,7 @@ Name:Bubble Matrix ManaCost:4 Types:Artifact Text:no text -K:stPumpAll:Creature:0/0/Prevent all damage that would be dealt to CARDNAME.:No Condition:Prevent all damage that would be dealt to creatures. +K:stPumpAll:Creature:0/0/HIDDEN Prevent all damage that would be dealt to CARDNAME.:No Condition:Prevent all damage that would be dealt to creatures. SVar:RemAIDeck:True SVar:Rarity:Rare SVar:Picture:http://www.wizards.com/global/images/magic/general/bubble_matrix.jpg diff --git a/res/cardsfolder/gaseous_form.txt b/res/cardsfolder/gaseous_form.txt new file mode 100644 index 00000000000..034c3397dd1 --- /dev/null +++ b/res/cardsfolder/gaseous_form.txt @@ -0,0 +1,9 @@ +Name:Gaseous Form +ManaCost:2 U +Types:Enchantment Aura +Text:Prevent all combat damage that would be dealt to and dealt by enchanted creature. +K:Enchant creature +K:enPumpCurse:HIDDEN Prevent all combat damage that would be dealt to and dealt by CARDNAME. +SVar:Rarity:Common +SVar:Picture:http://www.wizards.com/global/images/magic/general/gaseous_form.jpg +End \ No newline at end of file diff --git a/res/cardsfolder/inviolability.txt b/res/cardsfolder/inviolability.txt new file mode 100644 index 00000000000..3e413ae6ca9 --- /dev/null +++ b/res/cardsfolder/inviolability.txt @@ -0,0 +1,9 @@ +Name:Inviolability +ManaCost:1 W +Types:Enchantment Aura +Text:Prevent all damage that would be dealt to enchanted creature. +K:Enchant creature +K:enPump:HIDDEN Prevent all damage that would be dealt to CARDNAME. +SVar:Rarity:Common +SVar:Picture:http://www.wizards.com/global/images/magic/general/inviolability.jpg +End \ No newline at end of file diff --git a/src/forge/Card.java b/src/forge/Card.java index 066870df9a6..4654556cfaa 100644 --- a/src/forge/Card.java +++ b/src/forge/Card.java @@ -25,6 +25,7 @@ public class Card extends MyObservable { private ArrayList intrinsicKeyword = new ArrayList(); private ArrayList extrinsicKeyword = new ArrayList(); private ArrayList otherExtrinsicKeyword = new ArrayList(); + private ArrayList HiddenExtrinsicKeyword = new ArrayList(); private ArrayList prevIntrinsicKeyword = new ArrayList(); private ArrayList attached = new ArrayList(); private ArrayList equippedBy = new ArrayList(); //which equipment cards are equipping this card? @@ -781,7 +782,7 @@ public class Card extends MyObservable { StringBuilder sb = new StringBuilder(); StringBuilder sbLong = new StringBuilder(); StringBuilder sbMana = new StringBuilder(); - ArrayList keyword = getKeyword(); + ArrayList keyword = getUnhiddenKeyword(); for (int i = 0; i < keyword.size(); i++) { if (!keyword.get(i).toString().contains("CostChange") @@ -1803,6 +1804,22 @@ public class Card extends MyObservable { //keywords are like flying, fear, first strike, etc... public ArrayList getKeyword() { + ArrayList a1 = new ArrayList(getIntrinsicKeyword()); + ArrayList a2 = new ArrayList(getExtrinsicKeyword()); + ArrayList a3 = new ArrayList(getOtherExtrinsicKeyword()); + ArrayList a4 = new ArrayList(getHiddenExtrinsicKeyword()); + a1.addAll(a2); + a1.addAll(a3); + a1.addAll(a4); + + for(Ability_Mana sa:getManaAbility()) + if(sa.isBasic()) a1.add((sa).orig); + + return a1; + } + + //keywords are like flying, fear, first strike, etc... + public ArrayList getUnhiddenKeyword() { ArrayList a1 = new ArrayList(getIntrinsicKeyword()); ArrayList a2 = new ArrayList(getExtrinsicKeyword()); ArrayList a3 = new ArrayList(getOtherExtrinsicKeyword()); @@ -1879,7 +1896,8 @@ public class Card extends MyObservable { public void addExtrinsicKeyword(String s) { //if(!getKeyword().contains(s)){ - if(s.startsWith("tap: add")) manaAbility.add(new Ability_Mana(this, s) { + if(s.startsWith("HIDDEN")) addHiddenExtrinsicKeyword(s); + else if(s.startsWith("tap: add")) manaAbility.add(new Ability_Mana(this, s) { private static final long serialVersionUID = 221124403788942412L; }); else @@ -1888,7 +1906,8 @@ public class Card extends MyObservable { } public void addStackingExtrinsicKeyword(String s) { - if (s.startsWith("tap: add")) manaAbility.add(new Ability_Mana(this, s) + if(s.startsWith("HIDDEN")) addHiddenExtrinsicKeyword(s); + else if (s.startsWith("tap: add")) manaAbility.add(new Ability_Mana(this, s) { private static final long serialVersionUID = 2443750124751086033L; }); @@ -1896,7 +1915,8 @@ public class Card extends MyObservable { } public void removeExtrinsicKeyword(String s) { - extrinsicKeyword.remove(s); + if(s.startsWith("HIDDEN")) removeHiddenExtrinsicKeyword(s); + else extrinsicKeyword.remove(s); this.updateObservers(); } @@ -1963,6 +1983,23 @@ public class Card extends MyObservable { return prevIntrinsicKeyword.size(); } + // Hidden Keywords will be returned without the indicator HIDDEN + public ArrayList getHiddenExtrinsicKeyword() { + ArrayList Keyword = this.HiddenExtrinsicKeyword; + for (int i = 0; i < Keyword.size(); i++) { + Keyword.set(i, Keyword.get(i).replace("HIDDEN ", "")); + } + return Keyword; + } + + public void addHiddenExtrinsicKeyword(String s) { + HiddenExtrinsicKeyword.add(s); + } + + public void removeHiddenExtrinsicKeyword(String s) { + HiddenExtrinsicKeyword.remove(s); + this.updateObservers(); + } public boolean isPermanent() { return !(isInstant() || isSorcery() || isImmutable());