mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
*Triggers are now tracked by an integer ID so that the correct trigger object can be removed even after copying it, if need be. Fixes Raging Ravine.
*Fixed LandPlayed triggers not copying any OverridingAbility info. (not that we used any hardcoded LandPlayed triggers but still)
This commit is contained in:
@@ -2286,6 +2286,7 @@ public class GameAction {
|
|||||||
AllZone.ComputerPlayer.clearHandSizeOperations();
|
AllZone.ComputerPlayer.clearHandSizeOperations();
|
||||||
|
|
||||||
AllZone.TriggerHandler.clearRegistered();
|
AllZone.TriggerHandler.clearRegistered();
|
||||||
|
forge.card.trigger.Trigger.resetIDs();
|
||||||
|
|
||||||
|
|
||||||
{//re-number cards just so their unique numbers are low, just for user friendliness
|
{//re-number cards just so their unique numbers are low, just for user friendliness
|
||||||
|
|||||||
@@ -13,6 +13,15 @@ import forge.card.spellability.SpellAbility;
|
|||||||
|
|
||||||
public abstract class Trigger {
|
public abstract class Trigger {
|
||||||
|
|
||||||
|
private static int nextID = 0;
|
||||||
|
|
||||||
|
public static void resetIDs()
|
||||||
|
{
|
||||||
|
nextID = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected int ID = nextID++;
|
||||||
|
|
||||||
protected String name;
|
protected String name;
|
||||||
public String getName()
|
public String getName()
|
||||||
{
|
{
|
||||||
@@ -23,6 +32,11 @@ public abstract class Trigger {
|
|||||||
name = n;
|
name = n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setID(int id)
|
||||||
|
{
|
||||||
|
ID = id;
|
||||||
|
}
|
||||||
|
|
||||||
protected HashMap<String,String> mapParams = new HashMap<String,String>();
|
protected HashMap<String,String> mapParams = new HashMap<String,String>();
|
||||||
public HashMap<String,String> getMapParams()
|
public HashMap<String,String> getMapParams()
|
||||||
{
|
{
|
||||||
@@ -276,6 +290,15 @@ public abstract class Trigger {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o)
|
||||||
|
{
|
||||||
|
if(!(o instanceof Trigger))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return this.ID == ((Trigger)o).ID;
|
||||||
|
}
|
||||||
|
|
||||||
public abstract boolean performTest(HashMap<String,Object> runParams);
|
public abstract boolean performTest(HashMap<String,Object> runParams);
|
||||||
|
|
||||||
public abstract Trigger getCopy();
|
public abstract Trigger getCopy();
|
||||||
|
|||||||
@@ -193,7 +193,12 @@ public class TriggerHandler {
|
|||||||
|
|
||||||
public void removeRegisteredTrigger(Trigger trig)
|
public void removeRegisteredTrigger(Trigger trig)
|
||||||
{
|
{
|
||||||
registeredTriggers.remove(trig);
|
|
||||||
|
for(int i=0;i< registeredTriggers.size();i++)
|
||||||
|
{
|
||||||
|
if(registeredTriggers.get(i).equals(trig))
|
||||||
|
registeredTriggers.remove(i);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<Trigger> getRegisteredTriggers() {
|
public ArrayList<Trigger> getRegisteredTriggers() {
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ public class Trigger_AttackerBlocked extends Trigger {
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ public class Trigger_AttackerUnblocked extends Trigger {
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ public class Trigger_Attacks extends Trigger {
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ public class Trigger_Blocks extends Trigger {
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ public class Trigger_ChangesZone extends Trigger {
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ public class Trigger_CounterAdded extends Trigger {
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ public class Trigger_Cycled extends Trigger {
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ public class Trigger_DamageDone extends Trigger {
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ public class Trigger_Discarded extends Trigger {
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ public class Trigger_Drawn extends Trigger {
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,15 @@ public class Trigger_LandPlayed extends Trigger {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Trigger getCopy() {
|
public Trigger getCopy() {
|
||||||
return new Trigger_LandPlayed(this.name, this.mapParams, this.hostCard);
|
Trigger copy = new Trigger_LandPlayed(name,mapParams,hostCard);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
|
if(this.overridingAbility != null)
|
||||||
|
{
|
||||||
|
copy.setOverridingAbility(overridingAbility);
|
||||||
|
}
|
||||||
|
|
||||||
|
return copy;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ public class Trigger_LifeGained extends Trigger {
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ public class Trigger_LifeLost extends Trigger {
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ public class Trigger_Phase extends Trigger {
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ public class Trigger_Sacrificed extends Trigger {
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ public class Trigger_Shuffled extends Trigger{
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -153,6 +153,7 @@ public class Trigger_SpellAbilityCast extends Trigger {
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ public class Trigger_Taps extends Trigger {
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ public class Trigger_TurnFaceUp extends Trigger {
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ public class Trigger_Unequip extends Trigger {
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ public class Trigger_Untaps extends Trigger {
|
|||||||
copy.setOverridingAbility(overridingAbility);
|
copy.setOverridingAbility(overridingAbility);
|
||||||
}
|
}
|
||||||
copy.setName(name);
|
copy.setName(name);
|
||||||
|
copy.setID(ID);
|
||||||
|
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user