mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
CardCharacteristics.triggers: now using a thread-safe collection
other members that were referenced as ArrayLists now are declared as lists, dependencies updated
This commit is contained in:
@@ -31,6 +31,7 @@ import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.TreeMap;
|
||||
import java.util.concurrent.ConcurrentSkipListMap;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
@@ -827,7 +828,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
||||
* a {@link java.util.ArrayList} object.
|
||||
*/
|
||||
public final void setTriggers(final List<Trigger> trigs) {
|
||||
final ArrayList<Trigger> copyList = new ArrayList<Trigger>();
|
||||
final List<Trigger> copyList = new CopyOnWriteArrayList<Trigger>();
|
||||
for (final Trigger t : trigs) {
|
||||
if (t.isIntrinsic()) {
|
||||
final Trigger newtrig = t.getCopy();
|
||||
@@ -1624,7 +1625,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
||||
*
|
||||
* @return a {@link java.util.ArrayList} object.
|
||||
*/
|
||||
public final ArrayList<CardColor> getColor() {
|
||||
public final List<CardColor> getColor() {
|
||||
return this.getCharacteristics().getCardColor();
|
||||
}
|
||||
|
||||
@@ -4527,7 +4528,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
||||
* @param a
|
||||
* a {@link java.util.ArrayList} object.
|
||||
*/
|
||||
public final void setStaticAbilityStrings(final ArrayList<String> a) {
|
||||
public final void setStaticAbilityStrings(final List<String> a) {
|
||||
this.getCharacteristics().setStaticAbilityStrings(new ArrayList<String>(a));
|
||||
}
|
||||
|
||||
@@ -4536,7 +4537,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
||||
*
|
||||
* @return the static ability strings
|
||||
*/
|
||||
public final ArrayList<String> getStaticAbilityStrings() {
|
||||
public final List<String> getStaticAbilityStrings() {
|
||||
return this.getCharacteristics().getStaticAbilityStrings();
|
||||
}
|
||||
|
||||
@@ -8065,7 +8066,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
||||
*
|
||||
* @return the replacement effects
|
||||
*/
|
||||
public ArrayList<ReplacementEffect> getReplacementEffects() {
|
||||
public List<ReplacementEffect> getReplacementEffects() {
|
||||
return this.getCharacteristics().getReplacementEffects();
|
||||
}
|
||||
|
||||
@@ -8075,7 +8076,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
||||
* @param res
|
||||
* the new replacement effects
|
||||
*/
|
||||
public void setReplacementEffects(final ArrayList<ReplacementEffect> res) {
|
||||
public void setReplacementEffects(final List<ReplacementEffect> res) {
|
||||
this.getCharacteristics().getReplacementEffects().clear();
|
||||
for (final ReplacementEffect replacementEffect : res) {
|
||||
this.addReplacementEffect(replacementEffect);
|
||||
|
||||
@@ -26,7 +26,6 @@ import java.util.List;
|
||||
import com.esotericsoftware.minlog.Log;
|
||||
|
||||
import forge.card.TriggerReplacementBase;
|
||||
import forge.card.replacement.ReplacementEffect;
|
||||
import forge.card.spellability.SpellAbility;
|
||||
import forge.card.staticability.StaticAbility;
|
||||
import forge.game.GameState;
|
||||
@@ -239,16 +238,13 @@ public class StaticEffects {
|
||||
|
||||
// remove abilities
|
||||
if (params.containsKey("RemoveAllAbilities")) {
|
||||
final ArrayList<SpellAbility> abilities = affectedCard.getSpellAbilities();
|
||||
for (final SpellAbility ab : abilities) {
|
||||
for (final SpellAbility ab : affectedCard.getSpellAbilities()) {
|
||||
ab.setTemporarilySuppressed(false);
|
||||
}
|
||||
final ArrayList<StaticAbility> staticAbilities = affectedCard.getStaticAbilities();
|
||||
for (final StaticAbility stA : staticAbilities) {
|
||||
for (final StaticAbility stA : affectedCard.getStaticAbilities()) {
|
||||
stA.setTemporarilySuppressed(false);
|
||||
}
|
||||
final ArrayList<ReplacementEffect> replacementEffects = affectedCard.getReplacementEffects();
|
||||
for (final TriggerReplacementBase rE : replacementEffects) {
|
||||
for (final TriggerReplacementBase rE : affectedCard.getReplacementEffects()) {
|
||||
rE.setTemporarilySuppressed(false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,17 +40,17 @@ public class CardCharacteristics {
|
||||
private String name = "";
|
||||
private List<String> type = new CopyOnWriteArrayList<String>();
|
||||
private ManaCost manaCost = ManaCost.NO_COST;
|
||||
private ArrayList<CardColor> cardColor = new ArrayList<CardColor>();
|
||||
private List<CardColor> cardColor = new ArrayList<CardColor>();
|
||||
private int baseAttack = 0;
|
||||
private int baseDefense = 0;
|
||||
private ArrayList<String> intrinsicKeyword = new ArrayList<String>();
|
||||
private List<String> intrinsicKeyword = new ArrayList<String>();
|
||||
private final List<SpellAbility> spellAbility = new ArrayList<SpellAbility>();
|
||||
private final List<SpellAbility> manaAbility = new ArrayList<SpellAbility>();
|
||||
private List<String> unparsedAbilities = new ArrayList<String>();
|
||||
private ArrayList<Trigger> triggers = new ArrayList<Trigger>();
|
||||
private ArrayList<ReplacementEffect> replacementEffects = new ArrayList<ReplacementEffect>();
|
||||
private ArrayList<StaticAbility> staticAbilities = new ArrayList<StaticAbility>();
|
||||
private ArrayList<String> staticAbilityStrings = new ArrayList<String>();
|
||||
private List<Trigger> triggers = new CopyOnWriteArrayList<Trigger>();
|
||||
private List<ReplacementEffect> replacementEffects = new ArrayList<ReplacementEffect>();
|
||||
private List<StaticAbility> staticAbilities = new ArrayList<StaticAbility>();
|
||||
private List<String> staticAbilityStrings = new ArrayList<String>();
|
||||
private String imageKey = "";
|
||||
private Map<String, String> sVars = new TreeMap<String, String>();
|
||||
|
||||
@@ -120,7 +120,7 @@ public class CardCharacteristics {
|
||||
*
|
||||
* @return the cardColor
|
||||
*/
|
||||
public final ArrayList<CardColor> getCardColor() {
|
||||
public final List<CardColor> getCardColor() {
|
||||
return this.cardColor;
|
||||
}
|
||||
|
||||
@@ -186,7 +186,7 @@ public class CardCharacteristics {
|
||||
*
|
||||
* @return the intrinsicKeyword
|
||||
*/
|
||||
public final ArrayList<String> getIntrinsicKeyword() {
|
||||
public final List<String> getIntrinsicKeyword() {
|
||||
return this.intrinsicKeyword;
|
||||
}
|
||||
|
||||
@@ -253,7 +253,7 @@ public class CardCharacteristics {
|
||||
* @param triggers0
|
||||
* the triggers to set
|
||||
*/
|
||||
public final void setTriggers(final ArrayList<Trigger> triggers0) {
|
||||
public final void setTriggers(final List<Trigger> triggers0) {
|
||||
this.triggers = triggers0;
|
||||
}
|
||||
|
||||
@@ -262,7 +262,7 @@ public class CardCharacteristics {
|
||||
*
|
||||
* @return the staticAbilities
|
||||
*/
|
||||
public final ArrayList<StaticAbility> getStaticAbilities() {
|
||||
public final List<StaticAbility> getStaticAbilities() {
|
||||
return this.staticAbilities;
|
||||
}
|
||||
|
||||
@@ -300,7 +300,7 @@ public class CardCharacteristics {
|
||||
*
|
||||
* @return the staticAbilityStrings
|
||||
*/
|
||||
public final ArrayList<String> getStaticAbilityStrings() {
|
||||
public final List<String> getStaticAbilityStrings() {
|
||||
return this.staticAbilityStrings;
|
||||
}
|
||||
|
||||
@@ -317,7 +317,7 @@ public class CardCharacteristics {
|
||||
/**
|
||||
* @return the replacementEffects
|
||||
*/
|
||||
public ArrayList<ReplacementEffect> getReplacementEffects() {
|
||||
public List<ReplacementEffect> getReplacementEffects() {
|
||||
return replacementEffects;
|
||||
}
|
||||
|
||||
|
||||
@@ -197,9 +197,9 @@ public class AnimateAllEffect extends AnimateEffectBase {
|
||||
}
|
||||
|
||||
// suppress static abilities from the animated card
|
||||
final ArrayList<ReplacementEffect> removedReplacements = new ArrayList<ReplacementEffect>();
|
||||
final List<ReplacementEffect> removedReplacements = new ArrayList<ReplacementEffect>();
|
||||
if (sa.hasParam("OverwriteReplacements") || sa.hasParam("RemoveAllAbilities")) {
|
||||
final ArrayList<ReplacementEffect> replacementsToRemove = c.getReplacementEffects();
|
||||
final List<ReplacementEffect> replacementsToRemove = c.getReplacementEffects();
|
||||
for (final ReplacementEffect re : replacementsToRemove) {
|
||||
re.setTemporarilySuppressed(true);
|
||||
removedReplacements.add(re);
|
||||
|
||||
@@ -222,8 +222,7 @@ public class AnimateEffect extends AnimateEffectBase {
|
||||
// suppress static abilities from the animated card
|
||||
final ArrayList<ReplacementEffect> removedReplacements = new ArrayList<ReplacementEffect>();
|
||||
if (sa.hasParam("OverwriteReplacements") || removeAll) {
|
||||
final ArrayList<ReplacementEffect> replacementsToRemove = c.getReplacementEffects();
|
||||
for (final ReplacementEffect re : replacementsToRemove) {
|
||||
for (final ReplacementEffect re : c.getReplacementEffects()) {
|
||||
re.setTemporarilySuppressed(true);
|
||||
removedReplacements.add(re);
|
||||
}
|
||||
|
||||
@@ -282,13 +282,11 @@ public class CardFactory {
|
||||
}
|
||||
card.setState(state);
|
||||
CardFactoryUtil.addAbilityFactoryAbilities(card);
|
||||
final ArrayList<String> stAbs = card.getStaticAbilityStrings();
|
||||
if (stAbs.size() > 0) {
|
||||
for (int i = 0; i < stAbs.size(); i++) {
|
||||
card.addStaticAbility(stAbs.get(i));
|
||||
}
|
||||
for (String stAb : card.getStaticAbilityStrings()) {
|
||||
card.addStaticAbility(stAb);
|
||||
}
|
||||
|
||||
|
||||
if ( state == CardCharacteristicName.LeftSplit || state == CardCharacteristicName.RightSplit )
|
||||
{
|
||||
CardCharacteristics original = card.getState(CardCharacteristicName.Original);
|
||||
|
||||
@@ -34,7 +34,6 @@ import forge.card.TriggerReplacementBase;
|
||||
import forge.card.ability.AbilityFactory;
|
||||
import forge.card.ability.AbilityUtils;
|
||||
import forge.card.cardfactory.CardFactoryUtil;
|
||||
import forge.card.replacement.ReplacementEffect;
|
||||
import forge.card.spellability.AbilityActivated;
|
||||
import forge.card.spellability.SpellAbility;
|
||||
import forge.card.trigger.Trigger;
|
||||
@@ -447,16 +446,13 @@ public class StaticAbilityContinuous {
|
||||
|
||||
// remove activated and static abilities
|
||||
if (removeAllAbilities) {
|
||||
final ArrayList<SpellAbility> abilities = affectedCard.getSpellAbilities();
|
||||
for (final SpellAbility ab : abilities) {
|
||||
for (final SpellAbility ab : affectedCard.getSpellAbilities()) {
|
||||
ab.setTemporarilySuppressed(true);
|
||||
}
|
||||
final ArrayList<StaticAbility> staticAbilities = affectedCard.getStaticAbilities();
|
||||
for (final StaticAbility stA : staticAbilities) {
|
||||
for (final StaticAbility stA : affectedCard.getStaticAbilities()) {
|
||||
stA.setTemporarilySuppressed(true);
|
||||
}
|
||||
final ArrayList<ReplacementEffect> replacementEffects = affectedCard.getReplacementEffects();
|
||||
for (final TriggerReplacementBase rE : replacementEffects) {
|
||||
for (final TriggerReplacementBase rE : affectedCard.getReplacementEffects()) {
|
||||
rE.setTemporarilySuppressed(true);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user