removed getDirectSVars (#7389)

This commit is contained in:
Hans Mackowiak
2025-04-12 21:15:54 +02:00
committed by GitHub
parent 436697e0b3
commit 6ade60cd59
11 changed files with 23 additions and 43 deletions

View File

@@ -607,7 +607,7 @@ public abstract class CardTraitBase extends GameObject implements IHasCardView,
}
@Override
public final void setSVar(final String name, final String value) {
public void setSVar(final String name, final String value) {
sVars.put(name, value);
}
@@ -622,11 +622,6 @@ public abstract class CardTraitBase extends GameObject implements IHasCardView,
return res;
}
@Override
public Map<String, String> getDirectSVars() {
return sVars;
}
@Override
public void setSVars(Map<String, String> newSVars) {
sVars = Maps.newTreeMap();

View File

@@ -15,7 +15,6 @@ public interface IHasSVars {
//public Set<String> getSVars();
public Map<String, String> getSVars();
public Map<String, String> getDirectSVars();
public void removeSVar(final String var);
}

View File

@@ -1786,11 +1786,10 @@ public class AbilityUtils {
}
// Count$NumTimesChoseMode
if (sq[0].startsWith("NumTimesChoseMode")) {
SpellAbility sub = sa.getRootAbility();
int amount = 0;
while (sub != null) {
if (sub.getDirectSVars().containsKey("CharmOrder")) amount++;
sub = sub.getSubAbility();
SpellAbility tail = sa.getTailAbility();
if (tail.hasSVar("CharmOrder")) {
amount = tail.getSVarInt("CharmOrder");
}
return doXMath(amount, expr, c, ctb);
}

View File

@@ -45,7 +45,7 @@ public class CharmEffect extends SpellAbilityEffect {
choices.removeAll(toRemove);
}
int indx = 0;
int indx = 1;
// set CharmOrder
for (AbilitySub sub : choices) {
sub.setSVar("CharmOrder", Integer.toString(indx));

View File

@@ -2017,11 +2017,6 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars, ITr
return currentState.getSVars();
}
@Override
public Map<String, String> getDirectSVars() {
return ImmutableMap.of();
}
public final void setSVars(final Map<String, String> newSVars) {
currentState.setSVars(newSVars);
}

View File

@@ -569,11 +569,6 @@ public class CardState extends GameObject implements IHasSVars, ITranslatable {
return sVars;
}
@Override
public Map<String, String> getDirectSVars() {
return sVars;
}
@Override
public final String getSVar(final String var) {
if (sVars.containsKey(var)) {

View File

@@ -128,14 +128,10 @@ public class CostAdjustment {
} else if (st.hasParam("Amount")) {
String amount = st.getParam("Amount");
if ("Escalate".equals(amount)) {
SpellAbility sub = sa;
while (sub != null) {
if (sub.getDirectSVars().containsKey("CharmOrder")) {
count++;
}
sub = sub.getSubAbility();
SpellAbility tail = sa.getTailAbility();
if (tail.hasSVar("CharmOrder")) {
count = tail.getSVarInt("CharmOrder") - 1;
}
--count;
} else if ("Strive".equals(amount)) {
for (TargetChoices tc : sa.getAllTargetChoices()) {
count += tc.size();

View File

@@ -410,11 +410,6 @@ public abstract class KeywordInstance<T extends KeywordInstance<?>> implements K
return getSVarFallback().getSVars();
}
@Override
public Map<String, String> getDirectSVars() {
return null;
}
@Override
public void setSVars(Map<String, String> newSVars) {
}

View File

@@ -1180,11 +1180,7 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit
view.updateDescription(this);
}
public void appendSubAbility(final AbilitySub toAdd) {
SpellAbility tailend = this;
while (tailend.getSubAbility() != null) {
tailend = tailend.getSubAbility();
}
tailend.setSubAbility(toAdd);
getTailAbility().setSubAbility(toAdd);
}
public boolean isBasicSpell() {
@@ -1642,6 +1638,13 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit
}
return parent;
}
public SpellAbility getTailAbility() {
SpellAbility tailend = this;
while (tailend.getSubAbility() != null) {
tailend = tailend.getSubAbility();
}
return tailend;
}
public SpellAbility getParent() {
return null;

View File

@@ -31,7 +31,6 @@ import forge.game.card.CardView;
import forge.game.card.IHasCardView;
import forge.game.player.Player;
import forge.game.trigger.TriggerType;
import forge.game.trigger.WrappedAbility;
import forge.util.TextUtil;
/**
@@ -75,10 +74,9 @@ public class SpellAbilityStackInstance implements IIdentifiable, IHasCardView {
subInstance = ability.getSubAbility() == null ? null : new SpellAbilityStackInstance(ability.getSubAbility());
final Map<String, String> sVars = (ability.isWrapper() ? ((WrappedAbility) ability).getWrappedAbility() : ability).getDirectSVars();
if (ApiType.SetState == sa.getApi() && !sVars.containsKey("StoredTransform")) {
if (ApiType.SetState == sa.getApi() && !ability.hasSVar("StoredTransform")) {
// Record current state of Transformation if the ability might change state
sVars.put("StoredTransform", String.valueOf(ability.getHostCard().getTransformedTimestamp()));
ability.setSVar("StoredTransform", String.valueOf(ability.getHostCard().getTransformedTimestamp()));
}
if (sa.getApi() == ApiType.Charm && sa.hasParam("ChoiceRestriction")) {

View File

@@ -296,6 +296,11 @@ public class WrappedAbility extends Ability {
return sa.getSVarInt(name);
}
@Override
public void setSVar(final String name, final String value) {
sa.setSVar(name, value);
}
@Override
public Map<String, String> getSVars() {
return sa.getSVars();