changed MagicPermanentTriggerMap to EnumMap
parent
74dc2bcf22
commit
8738f0033f
|
@ -1051,10 +1051,14 @@ public class MagicGame {
|
|||
|
||||
// ***** STATICS *****
|
||||
|
||||
public final MagicPermanentStatic addStatic(final MagicPermanent permanent,final MagicStatic mstatic) {
|
||||
final MagicPermanentStatic permanentStatic = new MagicPermanentStatic(getUniqueId(),permanent,mstatic);
|
||||
statics.add(permanentStatic);
|
||||
return permanentStatic;
|
||||
public void addStatic(final MagicPermanent permanent) {
|
||||
for (final MagicStatic mstatic : permanent.getCardDefinition().getStatics()) {
|
||||
addStatic(permanent, mstatic);
|
||||
}
|
||||
}
|
||||
|
||||
public void addStatic(final MagicPermanent permanent, final MagicStatic mstatic) {
|
||||
addStatic(new MagicPermanentStatic(getUniqueId(),permanent,mstatic));
|
||||
}
|
||||
|
||||
public void addStatic(final MagicPermanentStatic permanentStatic) {
|
||||
|
@ -1062,7 +1066,9 @@ public class MagicGame {
|
|||
}
|
||||
|
||||
public void addStatics(final Collection<MagicPermanentStatic> aStatics) {
|
||||
statics.addAll(aStatics);
|
||||
for (final MagicPermanentStatic mpstatic : aStatics) {
|
||||
addStatic(mpstatic);
|
||||
}
|
||||
}
|
||||
|
||||
public Collection<MagicPermanentStatic> getStatics(MagicLayer layer) {
|
||||
|
@ -1070,13 +1076,11 @@ public class MagicGame {
|
|||
}
|
||||
|
||||
public Collection<MagicPermanentStatic> removeTurnStatics() {
|
||||
List<MagicPermanentStatic> removedStatics = new ArrayList<MagicPermanentStatic>();
|
||||
statics.removeTurn(removedStatics);
|
||||
return removedStatics;
|
||||
return statics.removeTurn();
|
||||
}
|
||||
|
||||
public void removeStatics(final MagicPermanent permanent,final Collection<MagicPermanentStatic> removedStatics) {
|
||||
statics.remove(permanent, removedStatics);
|
||||
public Collection<MagicPermanentStatic> removeStatics(final MagicPermanent permanent) {
|
||||
return statics.remove(permanent);
|
||||
}
|
||||
|
||||
public void removeStatic(final MagicPermanent permanent,final MagicStatic mstatic) {
|
||||
|
@ -1091,31 +1095,36 @@ public class MagicGame {
|
|||
this.immediate=immediate;
|
||||
}
|
||||
|
||||
public MagicPermanentTrigger addTrigger(final MagicPermanent permanent,final MagicTrigger trigger) {
|
||||
final MagicPermanentTrigger permanentTrigger=new MagicPermanentTrigger(getUniqueId(),permanent,trigger);
|
||||
triggers.get(trigger.getType()).add(permanentTrigger);
|
||||
return permanentTrigger;
|
||||
public void addTrigger(final MagicPermanent permanent) {
|
||||
for (final MagicTrigger trigger : permanent.getCardDefinition().getTriggers()) {
|
||||
addTrigger(permanent, trigger);
|
||||
}
|
||||
}
|
||||
|
||||
public MagicPermanentTrigger addTrigger(final MagicPermanent permanent, final MagicTrigger trigger) {
|
||||
return addTrigger(new MagicPermanentTrigger(getUniqueId(),permanent,trigger));
|
||||
}
|
||||
|
||||
public void addTrigger(final MagicPermanentTrigger permanentTrigger) {
|
||||
triggers.get(permanentTrigger.getTrigger().getType()).add(permanentTrigger);
|
||||
public MagicPermanentTrigger addTrigger(final MagicPermanentTrigger permanentTrigger) {
|
||||
triggers.add(permanentTrigger);
|
||||
return permanentTrigger;
|
||||
}
|
||||
|
||||
public MagicPermanentTrigger addTurnTrigger(final MagicPermanent permanent,final MagicTrigger trigger) {
|
||||
final MagicPermanentTrigger permanentTrigger=addTrigger(permanent,trigger);
|
||||
final MagicPermanentTrigger permanentTrigger = addTrigger(permanent,trigger);
|
||||
turnTriggers.add(permanentTrigger);
|
||||
return permanentTrigger;
|
||||
}
|
||||
|
||||
public void addTurnTriggers(final List<MagicPermanentTrigger> triggersList) {
|
||||
for (final MagicPermanentTrigger permanentTrigger : triggersList) {
|
||||
triggers.get(permanentTrigger.getTrigger().getType()).add(permanentTrigger);
|
||||
addTrigger(permanentTrigger);
|
||||
}
|
||||
turnTriggers.addAll(triggersList);
|
||||
}
|
||||
|
||||
public void removeTurnTrigger(final MagicPermanentTrigger permanentTrigger) {
|
||||
triggers.get(permanentTrigger.getTrigger().getType()).remove(permanentTrigger);
|
||||
triggers.remove(permanentTrigger);
|
||||
turnTriggers.remove(permanentTrigger);
|
||||
}
|
||||
|
||||
|
@ -1123,24 +1132,15 @@ public class MagicGame {
|
|||
if (turnTriggers.isEmpty()) {
|
||||
return Collections.<MagicPermanentTrigger>emptyList();
|
||||
}
|
||||
final MagicPermanentTriggerList removedTriggers=new MagicPermanentTriggerList(turnTriggers);
|
||||
for (final MagicPermanentTrigger permanentTrigger : turnTriggers) {
|
||||
triggers.get(permanentTrigger.getTrigger().getType()).remove(permanentTrigger);
|
||||
final MagicPermanentTriggerList removedTriggers = new MagicPermanentTriggerList(turnTriggers);
|
||||
for (final MagicPermanentTrigger permanentTrigger : removedTriggers) {
|
||||
removeTurnTrigger(permanentTrigger);
|
||||
}
|
||||
turnTriggers.clear();
|
||||
return removedTriggers;
|
||||
}
|
||||
|
||||
public void removeTriggers(final MagicPermanent permanent,final Collection<MagicPermanentTrigger> removedTriggers) {
|
||||
for (final MagicTriggerType type : triggers.keySet()) {
|
||||
for (final Iterator<MagicPermanentTrigger> iterator=triggers.get(type).iterator();iterator.hasNext();) {
|
||||
final MagicPermanentTrigger permanentTrigger=iterator.next();
|
||||
if (permanentTrigger.getPermanent()==permanent) {
|
||||
iterator.remove();
|
||||
removedTriggers.add(permanentTrigger);
|
||||
}
|
||||
}
|
||||
}
|
||||
public Collection<MagicPermanentTrigger> removeTriggers(final MagicPermanent permanent) {
|
||||
return triggers.remove(permanent);
|
||||
}
|
||||
|
||||
public void executeTrigger(
|
||||
|
|
|
@ -4,6 +4,7 @@ import java.util.SortedSet;
|
|||
import java.util.TreeSet;
|
||||
import java.util.Map;
|
||||
import java.util.EnumMap;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.Collection;
|
||||
|
||||
|
@ -42,14 +43,9 @@ public class MagicPermanentStaticMap {
|
|||
public void add(final MagicPermanentStatic mpstatic) {
|
||||
effects.get(mpstatic.getLayer()).add(mpstatic);
|
||||
}
|
||||
|
||||
public void addAll(final Collection<MagicPermanentStatic> mpstatics) {
|
||||
for (final MagicPermanentStatic mpstatic : mpstatics) {
|
||||
add(mpstatic);
|
||||
}
|
||||
}
|
||||
|
||||
public void remove(final MagicPermanent permanent,final Collection<MagicPermanentStatic> removedStatics) {
|
||||
public Collection<MagicPermanentStatic> remove(final MagicPermanent permanent) {
|
||||
final Collection<MagicPermanentStatic> removedStatics = new ArrayList<MagicPermanentStatic>();
|
||||
for (final Map.Entry<MagicLayer, SortedSet<MagicPermanentStatic>> layer : effects.entrySet()) {
|
||||
final Collection<MagicPermanentStatic> statics = layer.getValue();
|
||||
for (final Iterator<MagicPermanentStatic> iterator = statics.iterator();iterator.hasNext();) {
|
||||
|
@ -60,9 +56,11 @@ public class MagicPermanentStaticMap {
|
|||
}
|
||||
}
|
||||
}
|
||||
return removedStatics;
|
||||
}
|
||||
|
||||
public void removeTurn(final Collection<MagicPermanentStatic> removedStatics) {
|
||||
public Collection<MagicPermanentStatic> removeTurn() {
|
||||
final Collection<MagicPermanentStatic> removedStatics = new ArrayList<MagicPermanentStatic>();
|
||||
for (final Map.Entry<MagicLayer, SortedSet<MagicPermanentStatic>> layer : effects.entrySet()) {
|
||||
final Collection<MagicPermanentStatic> statics = layer.getValue();
|
||||
for (final Iterator<MagicPermanentStatic> iterator = statics.iterator();iterator.hasNext();) {
|
||||
|
@ -73,6 +71,7 @@ public class MagicPermanentStaticMap {
|
|||
}
|
||||
}
|
||||
}
|
||||
return removedStatics;
|
||||
}
|
||||
|
||||
public void remove(final MagicPermanent permanent, final MagicStatic mstatic) {
|
||||
|
@ -81,6 +80,7 @@ public class MagicPermanentStaticMap {
|
|||
final MagicPermanentStatic permanentStatic = iterator.next();
|
||||
if (permanentStatic.getPermanent() == permanent && permanentStatic.getStatic() == mstatic) {
|
||||
iterator.remove();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,29 +1,63 @@
|
|||
package magic.model.trigger;
|
||||
|
||||
import magic.model.MagicCopyMap;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.SortedSet;
|
||||
import java.util.TreeSet;
|
||||
import java.util.Map;
|
||||
import java.util.EnumMap;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.Collection;
|
||||
|
||||
public class MagicPermanentTriggerMap extends HashMap<MagicTriggerType,SortedSet<MagicPermanentTrigger>> {
|
||||
import magic.model.MagicCopyMap;
|
||||
import magic.model.MagicPermanent;
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public MagicPermanentTriggerMap() {
|
||||
for (final MagicTriggerType type : MagicTriggerType.values()) {
|
||||
put(type,new TreeSet<MagicPermanentTrigger>());
|
||||
}
|
||||
}
|
||||
public class MagicPermanentTriggerMap {
|
||||
|
||||
private final Map<MagicTriggerType,SortedSet<MagicPermanentTrigger>> effects =
|
||||
new EnumMap<MagicTriggerType,SortedSet<MagicPermanentTrigger>>(MagicTriggerType.class);
|
||||
|
||||
public MagicPermanentTriggerMap(final MagicCopyMap copyMap,final MagicPermanentTriggerMap source) {
|
||||
for (final Map.Entry<MagicTriggerType,SortedSet<MagicPermanentTrigger>> entry : source.entrySet()) {
|
||||
final SortedSet<MagicPermanentTrigger> triggers=new TreeSet<MagicPermanentTrigger>();
|
||||
put(entry.getKey(),triggers);
|
||||
for (final MagicPermanentTrigger permanentTrigger : entry.getValue()) {
|
||||
triggers.add(new MagicPermanentTrigger(copyMap,permanentTrigger));
|
||||
}
|
||||
}
|
||||
}
|
||||
public MagicPermanentTriggerMap() {
|
||||
for (MagicTriggerType type : MagicTriggerType.values()) {
|
||||
effects.put(type, new TreeSet<MagicPermanentTrigger>());
|
||||
}
|
||||
}
|
||||
|
||||
public MagicPermanentTriggerMap(final MagicCopyMap copyMap, final MagicPermanentTriggerMap sourceMap) {
|
||||
for (MagicTriggerType type : MagicTriggerType.values()) {
|
||||
effects.put(type, new TreeSet<MagicPermanentTrigger>());
|
||||
}
|
||||
|
||||
for (final Map.Entry<MagicTriggerType, SortedSet<MagicPermanentTrigger>> type : sourceMap.effects.entrySet()) {
|
||||
for (final MagicPermanentTrigger mptrigger : type.getValue()) {
|
||||
add(new MagicPermanentTrigger(copyMap, mptrigger));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public SortedSet<MagicPermanentTrigger> get(final MagicTriggerType type) {
|
||||
return effects.get(type);
|
||||
}
|
||||
|
||||
public void add(final MagicPermanentTrigger mptrigger) {
|
||||
effects.get(mptrigger.getTrigger().getType()).add(mptrigger);
|
||||
}
|
||||
|
||||
public Collection<MagicPermanentTrigger> remove(final MagicPermanent permanent) {
|
||||
final Collection<MagicPermanentTrigger> removedTriggers = new ArrayList<MagicPermanentTrigger>();
|
||||
for (final Map.Entry<MagicTriggerType, SortedSet<MagicPermanentTrigger>> type : effects.entrySet()) {
|
||||
final Collection<MagicPermanentTrigger> triggers = type.getValue();
|
||||
for (final Iterator<MagicPermanentTrigger> iterator = triggers.iterator();iterator.hasNext();) {
|
||||
final MagicPermanentTrigger permanentTrigger = iterator.next();
|
||||
if (permanentTrigger.getPermanent() == permanent) {
|
||||
iterator.remove();
|
||||
removedTriggers.add(permanentTrigger);
|
||||
}
|
||||
}
|
||||
}
|
||||
return removedTriggers;
|
||||
}
|
||||
|
||||
public void remove(final MagicPermanentTrigger mptrigger) {
|
||||
effects.get(mptrigger.getTrigger().getType()).remove(mptrigger);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue