mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
- Added Furnace of Rath and Divine Presence.
This commit is contained in:
2
.gitattributes
vendored
2
.gitattributes
vendored
@@ -1321,6 +1321,7 @@ res/cardsfolder/divebomber_griffin.txt -text svneol=native#text/plain
|
||||
res/cardsfolder/diversionary_tactics.txt -text svneol=native#text/plain
|
||||
res/cardsfolder/divination.txt -text svneol=native#text/plain
|
||||
res/cardsfolder/divine_offering.txt -text svneol=native#text/plain
|
||||
res/cardsfolder/divine_presence.txt -text svneol=native#text/plain
|
||||
res/cardsfolder/divine_sacrament.txt -text svneol=native#text/plain
|
||||
res/cardsfolder/divine_transformation.txt -text svneol=native#text/plain
|
||||
res/cardsfolder/divine_verdict.txt -text svneol=native#text/plain
|
||||
@@ -1918,6 +1919,7 @@ res/cardsfolder/fungus_sliver.txt -text svneol=native#text/plain
|
||||
res/cardsfolder/fungusaur.txt -text svneol=native#text/plain
|
||||
res/cardsfolder/furious_assault.txt -text svneol=native#text/plain
|
||||
res/cardsfolder/furnace_brood.txt -text svneol=native#text/plain
|
||||
res/cardsfolder/furnace_of_rath.txt -text svneol=native#text/plain
|
||||
res/cardsfolder/furnace_spirit.txt -text svneol=native#text/plain
|
||||
res/cardsfolder/furnace_whelp.txt -text svneol=native#text/plain
|
||||
res/cardsfolder/fury_sliver.txt -text svneol=native#text/plain
|
||||
|
||||
9
res/cardsfolder/divine_presence.txt
Normal file
9
res/cardsfolder/divine_presence.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Divine Presence
|
||||
ManaCost:2 W
|
||||
Types:Enchantment
|
||||
Text:If a source would deal 4 or more damage to a creature or player, that source deals 3 damage to that creature or player instead.
|
||||
SVar:PlayMain1:TRUE
|
||||
SVar:RemAIDeck:True
|
||||
SVar:Rarity:Rare
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/divine_presence.jpg
|
||||
End
|
||||
9
res/cardsfolder/furnace_of_rath.txt
Normal file
9
res/cardsfolder/furnace_of_rath.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Furnace of Rath
|
||||
ManaCost:1 R R R
|
||||
Types:Enchantment
|
||||
Text:If a source would deal damage to a creature or player, it deals double that damage to that creature or player instead.
|
||||
SVar:PlayMain1:TRUE
|
||||
SVar:RemAIDeck:True
|
||||
SVar:Rarity:Rare
|
||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/furnace_of_rath.jpg
|
||||
End
|
||||
@@ -2950,6 +2950,16 @@ public class Card extends MyObservable {
|
||||
|
||||
int restDamage = damage;
|
||||
|
||||
if( AllZoneUtil.isCardInPlay("Furnace of Rath")) {
|
||||
|
||||
restDamage += restDamage;
|
||||
}
|
||||
|
||||
if( AllZoneUtil.isCardInPlay("Divine Presence") && restDamage > 3) {
|
||||
|
||||
restDamage = 3;
|
||||
}
|
||||
|
||||
if(getName().equals("Phytohydra")) {
|
||||
addCounter(Counters.P1P1, restDamage);
|
||||
return 0;
|
||||
@@ -2965,7 +2975,7 @@ public class Card extends MyObservable {
|
||||
|
||||
public void addDamage(HashMap<Card, Integer> sourcesMap) {
|
||||
for(Entry<Card, Integer> entry : sourcesMap.entrySet()) {
|
||||
addDamageWithoutPrevention(entry.getValue(), entry.getKey()); // damage prevention is already checked!
|
||||
addDamageAfterPrevention(entry.getValue(), entry.getKey()); // damage prevention is already checked!
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2978,15 +2988,24 @@ public class Card extends MyObservable {
|
||||
damageToAdd = replaceDamage(damageToAdd, source, false);
|
||||
damageToAdd = preventDamage(damageToAdd, source, false);
|
||||
|
||||
addDamageWithoutPrevention(damageToAdd,source);
|
||||
addDamageAfterPrevention(damageToAdd,source);
|
||||
}
|
||||
|
||||
public void addDamageWithoutPrevention(final int damageIn, final Card source) {
|
||||
int damageToAdd = damageIn;
|
||||
boolean wither = false;
|
||||
|
||||
if(!CardFactoryUtil.canDamage(source, this)) return;
|
||||
|
||||
damageToAdd = replaceDamage(damageToAdd, source, false);
|
||||
|
||||
addDamageAfterPrevention(damageToAdd,source);
|
||||
}
|
||||
|
||||
//This function handles damage after replacement and prevention effects are applied
|
||||
public void addDamageAfterPrevention(final int damageIn, final Card source) {
|
||||
int damageToAdd = damageIn;
|
||||
boolean wither = false;
|
||||
|
||||
if( damageToAdd == 0 ) return; //Rule 119.8
|
||||
|
||||
System.out.println("Adding " + damageToAdd + " damage to " + getName());
|
||||
|
||||
@@ -198,7 +198,7 @@ public abstract class Player extends MyObservable{
|
||||
damageToDo = replaceDamage(damageToDo, source, false);
|
||||
damageToDo = preventDamage(damageToDo, source, false);
|
||||
|
||||
addDamageWithoutPrevention(damageToDo,source);
|
||||
addDamageAfterPrevention(damageToDo,source);
|
||||
}
|
||||
|
||||
public void addDamageWithoutPrevention(final int damage, final Card source) {
|
||||
@@ -206,6 +206,13 @@ public abstract class Player extends MyObservable{
|
||||
|
||||
damageToDo = replaceDamage(damageToDo, source, false);
|
||||
|
||||
addDamageAfterPrevention(damageToDo,source);
|
||||
}
|
||||
|
||||
//This function handles damage after replacement and prevention effects are applied
|
||||
public void addDamageAfterPrevention(final int damage, final Card source) {
|
||||
int damageToDo = damage;
|
||||
|
||||
if( source.getKeyword().contains("Infect") ) {
|
||||
addPoisonCounters(damageToDo);
|
||||
}
|
||||
@@ -289,6 +296,21 @@ public abstract class Player extends MyObservable{
|
||||
|
||||
int restDamage = damage;
|
||||
|
||||
if( AllZoneUtil.isCardInPlay("Furnace of Rath")) {
|
||||
|
||||
restDamage += restDamage;
|
||||
}
|
||||
|
||||
if( AllZoneUtil.isCardInPlay("Divine Presence") && restDamage > 3) {
|
||||
|
||||
restDamage = 3;
|
||||
}
|
||||
|
||||
if( AllZoneUtil.isCardInPlay("Forethought Amulet",this) && (source.isInstant() || source.isSorcery()) && restDamage > 2) {
|
||||
|
||||
restDamage = 2;
|
||||
}
|
||||
|
||||
if( AllZoneUtil.isCardInPlay("Crumbling Sanctuary")) {
|
||||
for(int i = 0; i < restDamage; i++) {
|
||||
CardList lib = AllZoneUtil.getPlayerCardsInLibrary(this);
|
||||
@@ -339,7 +361,7 @@ public abstract class Player extends MyObservable{
|
||||
damageToDo = replaceDamage(damageToDo, source, true);
|
||||
damageToDo = preventDamage(damageToDo, source, true);
|
||||
|
||||
addDamageWithoutPrevention(damageToDo, source); //damage prevention is already checked
|
||||
addDamageAfterPrevention(damageToDo, source); //damage prevention is already checked
|
||||
|
||||
if ( damageToDo > 0 ) {
|
||||
GameActionUtil.executeCombatDamageToPlayerEffects(source, damageToDo);
|
||||
|
||||
Reference in New Issue
Block a user