mirror of
https://github.com/correl/mage.git
synced 2024-11-25 03:00:11 +00:00
small nonfunctional cleanup to continuous effects handling
This commit is contained in:
parent
e532cfddcd
commit
9c8943384a
2 changed files with 18 additions and 32 deletions
|
@ -1288,45 +1288,36 @@ public class ContinuousEffects implements Serializable {
|
|||
switch (effect.getEffectType()) {
|
||||
case REPLACEMENT:
|
||||
case REDIRECTION:
|
||||
ReplacementEffect newReplacementEffect = (ReplacementEffect) effect;
|
||||
replacementEffects.addEffect(newReplacementEffect, source);
|
||||
replacementEffects.addEffect((ReplacementEffect) effect, source);
|
||||
break;
|
||||
case PREVENTION:
|
||||
PreventionEffect newPreventionEffect = (PreventionEffect) effect;
|
||||
preventionEffects.addEffect(newPreventionEffect, source);
|
||||
preventionEffects.addEffect((PreventionEffect) effect, source);
|
||||
break;
|
||||
case RESTRICTION:
|
||||
RestrictionEffect newRestrictionEffect = (RestrictionEffect) effect;
|
||||
restrictionEffects.addEffect(newRestrictionEffect, source);
|
||||
restrictionEffects.addEffect((RestrictionEffect) effect, source);
|
||||
break;
|
||||
case RESTRICTION_UNTAP_NOT_MORE_THAN:
|
||||
RestrictionUntapNotMoreThanEffect newRestrictionUntapNotMoreThanEffect = (RestrictionUntapNotMoreThanEffect) effect;
|
||||
restrictionUntapNotMoreThanEffects.addEffect(newRestrictionUntapNotMoreThanEffect, source);
|
||||
restrictionUntapNotMoreThanEffects.addEffect((RestrictionUntapNotMoreThanEffect) effect, source);
|
||||
break;
|
||||
case REQUIREMENT:
|
||||
RequirementEffect newRequirementEffect = (RequirementEffect) effect;
|
||||
requirementEffects.addEffect(newRequirementEffect, source);
|
||||
requirementEffects.addEffect((RequirementEffect) effect, source);
|
||||
break;
|
||||
case ASTHOUGH:
|
||||
AsThoughEffect newAsThoughEffect = (AsThoughEffect) effect;
|
||||
if (!asThoughEffectsMap.containsKey(newAsThoughEffect.getAsThoughEffectType())) {
|
||||
asThoughEffectsMap.computeIfAbsent(newAsThoughEffect.getAsThoughEffectType(), x -> {
|
||||
ContinuousEffectsList<AsThoughEffect> list = new ContinuousEffectsList<>();
|
||||
allEffectsLists.add(list);
|
||||
asThoughEffectsMap.put(newAsThoughEffect.getAsThoughEffectType(), list);
|
||||
}
|
||||
asThoughEffectsMap.get(newAsThoughEffect.getAsThoughEffectType()).addEffect(newAsThoughEffect, source);
|
||||
return list;
|
||||
}).addEffect(newAsThoughEffect, source);
|
||||
break;
|
||||
case COSTMODIFICATION:
|
||||
CostModificationEffect newCostModificationEffect = (CostModificationEffect) effect;
|
||||
costModificationEffects.addEffect(newCostModificationEffect, source);
|
||||
costModificationEffects.addEffect((CostModificationEffect) effect, source);
|
||||
break;
|
||||
case SPLICE:
|
||||
SpliceCardEffect newSpliceCardEffect = (SpliceCardEffect) effect;
|
||||
spliceCardEffects.addEffect(newSpliceCardEffect, source);
|
||||
spliceCardEffects.addEffect((SpliceCardEffect) effect, source);
|
||||
break;
|
||||
case CONTINUOUS_RULE_MODIFICATION:
|
||||
ContinuousRuleModifyingEffect newContinuousRuleModifiyingEffect = (ContinuousRuleModifyingEffect) effect;
|
||||
continuousRuleModifyingEffects.addEffect(newContinuousRuleModifiyingEffect, source);
|
||||
continuousRuleModifyingEffects.addEffect((ContinuousRuleModifyingEffect) effect, source);
|
||||
break;
|
||||
default:
|
||||
layeredEffects.addEffect(effect, source);
|
||||
|
|
|
@ -192,24 +192,19 @@ public class ContinuousEffectsList<T extends ContinuousEffect> extends ArrayList
|
|||
* @param source - connected ability
|
||||
*/
|
||||
public void addEffect(T effect, Ability source) {
|
||||
if (effectAbilityMap.containsKey(effect.getId())) {
|
||||
Set<Ability> set = effectAbilityMap.get(effect.getId());
|
||||
for (Ability ability : set) {
|
||||
if (ability.getId().equals(source.getId()) && ability.getSourceId().equals(source.getSourceId())) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
set.add(source);
|
||||
Set<Ability> set = effectAbilityMap.computeIfAbsent(effect.getId(), x -> new HashSet<>());
|
||||
if (set.stream()
|
||||
.filter(ability -> ability.getId().equals(source.getId()))
|
||||
.map(Ability::getId)
|
||||
.anyMatch(source.getId()::equals)) {
|
||||
return;
|
||||
}
|
||||
Set<Ability> set = new HashSet<>();
|
||||
set.add(source);
|
||||
this.effectAbilityMap.put(effect.getId(), set);
|
||||
this.add(effect);
|
||||
}
|
||||
|
||||
public Set<Ability> getAbility(UUID effectId) {
|
||||
return effectAbilityMap.getOrDefault(effectId, new HashSet<>());
|
||||
return effectAbilityMap.computeIfAbsent(effectId, x -> new HashSet<>());
|
||||
}
|
||||
|
||||
public void removeTemporaryEffects() {
|
||||
|
@ -230,7 +225,7 @@ public class ContinuousEffectsList<T extends ContinuousEffect> extends ArrayList
|
|||
|
||||
@Override
|
||||
public boolean contains(Object object) {
|
||||
if (object == null || !(object instanceof ContinuousEffect)) {
|
||||
if (!(object instanceof ContinuousEffect)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue