refactor: fixed copy constructor in some dynamic values

This commit is contained in:
Oleg Agafonov 2025-01-25 01:03:48 +04:00
parent 2341333b3c
commit de19bd56cb
2 changed files with 26 additions and 30 deletions

View file

@ -3,33 +3,31 @@ package mage.abilities.dynamicvalue;
import mage.abilities.Ability;
import mage.abilities.effects.Effect;
import mage.game.Game;
import mage.util.CardUtil;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* Creates a {@link DynamicValue} from that adds together multiple
* {@link DynamicValue}s.
*/
public class AdditiveDynamicValue implements DynamicValue {
private final List<DynamicValue> dynamicValues;
/**
* Creates a {@link DynamicValue} from that adds together multiple
* {@link DynamicValue}s.
*
* @param dynamicValues The dynamic values to add together.
*/
public AdditiveDynamicValue(DynamicValue... dynamicValues) {
this.dynamicValues = Arrays.asList(dynamicValues);
this(Arrays.asList(dynamicValues));
}
/**
* Creates a {@link DynamicValue} from that adds together multiple
* {@link DynamicValue}s.
*
* @param dynamicValues The dynamic values to add together.
*/
public AdditiveDynamicValue(List<DynamicValue> dynamicValues) {
this.dynamicValues = dynamicValues;
this.dynamicValues = new ArrayList<>(dynamicValues);
}
private AdditiveDynamicValue(final AdditiveDynamicValue value) {
this.dynamicValues = CardUtil.deepCopyObject(value.dynamicValues);
}
@Override
@ -39,7 +37,7 @@ public class AdditiveDynamicValue implements DynamicValue {
@Override
public AdditiveDynamicValue copy() {
return new AdditiveDynamicValue(this.dynamicValues);
return new AdditiveDynamicValue(this);
}
@Override

View file

@ -3,33 +3,31 @@ package mage.abilities.dynamicvalue;
import mage.abilities.Ability;
import mage.abilities.effects.Effect;
import mage.game.Game;
import mage.util.CardUtil;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* Creates a {@link DynamicValue} that finds the maximum of multiple
* {@link DynamicValue}s.
*/
public class MaximumDynamicValue implements DynamicValue {
private final List<DynamicValue> dynamicValues;
/**
* Creates a {@link DynamicValue} that finds the maximum of multiple
* {@link DynamicValue}s.
*
* @param dynamicValues The dynamic values to add together.
*/
public MaximumDynamicValue(DynamicValue... dynamicValues) {
this.dynamicValues = Arrays.asList(dynamicValues);
this(Arrays.asList(dynamicValues));
}
/**
* Creates a {@link DynamicValue} that finds the maximum of multiple
* {@link DynamicValue}s.
*
* @param dynamicValues The dynamic values to add together.
*/
public MaximumDynamicValue(List<DynamicValue> dynamicValues) {
this.dynamicValues = dynamicValues;
this.dynamicValues = new ArrayList<>(dynamicValues);
}
private MaximumDynamicValue(final MaximumDynamicValue value) {
this.dynamicValues = CardUtil.deepCopyObject(value.dynamicValues);
}
@Override
@ -39,7 +37,7 @@ public class MaximumDynamicValue implements DynamicValue {
@Override
public MaximumDynamicValue copy() {
return new MaximumDynamicValue(this.dynamicValues);
return new MaximumDynamicValue(this);
}
@Override