mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
*Let AF_CounterMagic use Remember.
*Added barebones beginnings of AF_DelayedTrigger. (Only usable as a subability,no AI.Nothing uses it yet)
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -8774,6 +8774,7 @@ src/forge/card/abilityFactory/AbilityFactory_Copy.java -text svneol=native#text/
|
|||||||
src/forge/card/abilityFactory/AbilityFactory_CounterMagic.java -text svneol=native#text/plain
|
src/forge/card/abilityFactory/AbilityFactory_CounterMagic.java -text svneol=native#text/plain
|
||||||
src/forge/card/abilityFactory/AbilityFactory_Counters.java -text svneol=native#text/plain
|
src/forge/card/abilityFactory/AbilityFactory_Counters.java -text svneol=native#text/plain
|
||||||
src/forge/card/abilityFactory/AbilityFactory_DealDamage.java -text svneol=native#text/plain
|
src/forge/card/abilityFactory/AbilityFactory_DealDamage.java -text svneol=native#text/plain
|
||||||
|
src/forge/card/abilityFactory/AbilityFactory_DelayedTrigger.java -text svneol=native#text/plain
|
||||||
src/forge/card/abilityFactory/AbilityFactory_Destroy.java -text svneol=native#text/plain
|
src/forge/card/abilityFactory/AbilityFactory_Destroy.java -text svneol=native#text/plain
|
||||||
src/forge/card/abilityFactory/AbilityFactory_Effect.java -text svneol=native#text/plain
|
src/forge/card/abilityFactory/AbilityFactory_Effect.java -text svneol=native#text/plain
|
||||||
src/forge/card/abilityFactory/AbilityFactory_EndGameCondition.java -text svneol=native#text/plain
|
src/forge/card/abilityFactory/AbilityFactory_EndGameCondition.java -text svneol=native#text/plain
|
||||||
|
|||||||
@@ -665,7 +665,12 @@ public class AbilityFactory {
|
|||||||
else if(isDb)
|
else if(isDb)
|
||||||
SA = AbilityFactory_Clash.getDrawbackFlip(this);
|
SA = AbilityFactory_Clash.getDrawbackFlip(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(API.equals("DelayedTrigger")) {
|
||||||
|
if(isDb)
|
||||||
|
SA = AbilityFactory_DelayedTrigger.getDrawback(this);
|
||||||
|
}
|
||||||
|
|
||||||
if (SA == null)
|
if (SA == null)
|
||||||
throw new RuntimeException("AbilityFactory : SpellAbility was not created for "+hostCard.getName()+". Looking for API: "+API);
|
throw new RuntimeException("AbilityFactory : SpellAbility was not created for "+hostCard.getName()+". Looking for API: "+API);
|
||||||
|
|
||||||
|
|||||||
@@ -266,6 +266,14 @@ public class AbilityFactory_CounterMagic {
|
|||||||
sas = AbilityFactory.getDefinedSpellAbilities(sa.getSourceCard(), params.get("Defined"), sa);
|
sas = AbilityFactory.getDefinedSpellAbilities(sa.getSourceCard(), params.get("Defined"), sa);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(params.containsKey("ForgetOtherTargets"))
|
||||||
|
{
|
||||||
|
if(params.get("ForgetOtherTargets").equals("True"))
|
||||||
|
{
|
||||||
|
af.getHostCard().clearRemembered();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for(final SpellAbility tgtSA : sas){
|
for(final SpellAbility tgtSA : sas){
|
||||||
Card tgtSACard = tgtSA.getSourceCard();
|
Card tgtSACard = tgtSA.getSourceCard();
|
||||||
if (AllZone.Stack.contains(tgtSA) && !tgtSACard.keywordsContain("CARDNAME can't be countered.")){
|
if (AllZone.Stack.contains(tgtSA) && !tgtSACard.keywordsContain("CARDNAME can't be countered.")){
|
||||||
@@ -313,6 +321,14 @@ public class AbilityFactory_CounterMagic {
|
|||||||
if(tgtSA.isAbility() && params.containsKey("DestroyPermanent")) {
|
if(tgtSA.isAbility() && params.containsKey("DestroyPermanent")) {
|
||||||
AllZone.GameAction.destroy(tgtSACard);
|
AllZone.GameAction.destroy(tgtSACard);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(params.containsKey("RememberTargets"))
|
||||||
|
{
|
||||||
|
if(params.get("RememberTargets").equals("True"))
|
||||||
|
{
|
||||||
|
af.getHostCard().addRemembered(tgtSACard);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,62 @@
|
|||||||
|
package forge.card.abilityFactory;
|
||||||
|
|
||||||
|
import forge.AllZone;
|
||||||
|
import forge.card.spellability.Ability_Sub;
|
||||||
|
import forge.card.spellability.SpellAbility;
|
||||||
|
import forge.card.trigger.Trigger;
|
||||||
|
import forge.card.trigger.TriggerHandler;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by IntelliJ IDEA.
|
||||||
|
* User: Administrator
|
||||||
|
* Date: 5/18/11
|
||||||
|
* Time: 8:53 PM
|
||||||
|
* To change this template use File | Settings | File Templates.
|
||||||
|
*/
|
||||||
|
public class AbilityFactory_DelayedTrigger {
|
||||||
|
public static Ability_Sub getDrawback(final AbilityFactory AF)
|
||||||
|
{
|
||||||
|
final Ability_Sub drawback = new Ability_Sub(AF.getHostCard(),AF.getAbTgt()) {
|
||||||
|
@Override
|
||||||
|
public boolean chkAI_Drawback() {
|
||||||
|
return false; //To change body of implemented methods use File | Settings | File Templates.
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean doTrigger(boolean mandatory) {
|
||||||
|
return false; //To change body of implemented methods use File | Settings | File Templates.
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void resolve() {
|
||||||
|
doResolve(AF,this);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return drawback;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void doResolve(AbilityFactory AF,SpellAbility SA)
|
||||||
|
{
|
||||||
|
HashMap<String,String> mapParams = AF.getMapParams();
|
||||||
|
|
||||||
|
if(mapParams.containsKey("Cost"))
|
||||||
|
mapParams.remove("Cost");
|
||||||
|
|
||||||
|
if(mapParams.containsKey("SpellDescription"))
|
||||||
|
{
|
||||||
|
mapParams.put("TriggerDescription",mapParams.get("SpellDescription"));
|
||||||
|
mapParams.remove("SpellDescription");
|
||||||
|
}
|
||||||
|
|
||||||
|
Trigger delTrig = TriggerHandler.parseTrigger(mapParams,AF.getHostCard());
|
||||||
|
|
||||||
|
AllZone.TriggerHandler.registerDelayedTrigger(delTrig);
|
||||||
|
|
||||||
|
if(AF.hasSubAbility())
|
||||||
|
if(SA.getSubAbility() != null)
|
||||||
|
SA.getSubAbility().resolve();
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user