Fix New Blood not fully working

This commit is contained in:
tool4EvEr
2021-11-22 00:15:12 +01:00
parent 72bead4941
commit c272df37f7
3 changed files with 9 additions and 9 deletions

View File

@@ -70,7 +70,7 @@ public class ChangeTextEffect extends SpellAbilityEffect {
kindOfType = "basic land"; kindOfType = "basic land";
} else if (changedTypeWordsArray[0].equals("ChooseCreatureType")) { } else if (changedTypeWordsArray[0].equals("ChooseCreatureType")) {
validTypes.addAll(CardType.Constant.CREATURE_TYPES); validTypes.addAll(CardType.Constant.CREATURE_TYPES);
kindOfType = "creature"; kindOfType = "Creature";
} }
changedTypeWordOriginal = sa.getActivatingPlayer().getController().chooseSomeType(kindOfType, sa, validTypes, Lists.newArrayList()); changedTypeWordOriginal = sa.getActivatingPlayer().getController().chooseSomeType(kindOfType, sa, validTypes, Lists.newArrayList());
} else { } else {
@@ -86,7 +86,7 @@ public class ChangeTextEffect extends SpellAbilityEffect {
kindOfType = "basic land"; kindOfType = "basic land";
} else if (changedTypeWordsArray[1].equals("ChooseCreatureType")) { } else if (changedTypeWordsArray[1].equals("ChooseCreatureType")) {
validTypes.addAll(CardType.Constant.CREATURE_TYPES); validTypes.addAll(CardType.Constant.CREATURE_TYPES);
kindOfType = "creature"; kindOfType = "Creature";
} }
changedTypeWordNew = sa.getActivatingPlayer().getController().chooseSomeType(kindOfType, sa, validTypes, forbiddenTypes); changedTypeWordNew = sa.getActivatingPlayer().getController().chooseSomeType(kindOfType, sa, validTypes, forbiddenTypes);
} else { } else {
@@ -102,7 +102,7 @@ public class ChangeTextEffect extends SpellAbilityEffect {
if (changedColorWordOriginal != null && changedColorWordNew != null) { if (changedColorWordOriginal != null && changedColorWordNew != null) {
c.addChangedTextColorWord(changedColorWordOriginal, changedColorWordNew, timestamp, 0); c.addChangedTextColorWord(changedColorWordOriginal, changedColorWordNew, timestamp, 0);
} }
if (changedTypeWordOriginal != null && changedTypeWordNew != null ) { if (changedTypeWordOriginal != null && changedTypeWordNew != null) {
c.addChangedTextTypeWord(changedTypeWordOriginal, changedTypeWordNew, timestamp, 0); c.addChangedTextTypeWord(changedTypeWordOriginal, changedTypeWordNew, timestamp, 0);
} }
@@ -123,6 +123,8 @@ public class ChangeTextEffect extends SpellAbilityEffect {
} }
game.fireEvent(new GameEventCardStatsChanged(c)); game.fireEvent(new GameEventCardStatsChanged(c));
c.updateStateForView();
c.updateTypesForView();
} }
} }

View File

@@ -3533,7 +3533,7 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
return getType(currentState); return getType(currentState);
} }
public final CardTypeView getType(CardState state) { public final CardTypeView getType(CardState state) {
if (changedCardTypes.isEmpty() && changedCardTypesCharacterDefining.isEmpty()) { if (changedCardTypes.isEmpty() && changedCardTypesCharacterDefining.isEmpty() && changedTypeByText == null) {
return state.getType(); return state.getType();
} }
// CR 506.4 attacked planeswalkers leave combat // CR 506.4 attacked planeswalkers leave combat
@@ -3548,14 +3548,12 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
public final CardTypeView getOriginalType() { public final CardTypeView getOriginalType() {
return getOriginalType(currentState); return getOriginalType(currentState);
} }
public final CardTypeView getOriginalType(CardState state) { public final CardTypeView getOriginalType(CardState state) {
return state.getType(); return state.getType();
} }
// TODO add changed type by card text // TODO add changed type by card text
public Iterable<CardChangedType> getChangedCardTypes() { public Iterable<CardChangedType> getChangedCardTypes() {
Iterable<CardChangedType> byText = changedTypeByText == null ? ImmutableList.of() : ImmutableList.of(this.changedTypeByText); Iterable<CardChangedType> byText = changedTypeByText == null ? ImmutableList.of() : ImmutableList.of(this.changedTypeByText);
return Iterables.unmodifiableIterable(Iterables.concat( return Iterables.unmodifiableIterable(Iterables.concat(
@@ -3563,7 +3561,7 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
byText, // Layer 3 by Word Changes, byText, // Layer 3 by Word Changes,
changedCardTypesCharacterDefining.values(), // Layer 4 changedCardTypesCharacterDefining.values(), // Layer 4
changedCardTypes.values() // Layer 6 changedCardTypes.values() // Layer 6
)); ));
} }
public Table<Long, Long, CardChangedType> getChangedCardTypesTable() { public Table<Long, Long, CardChangedType> getChangedCardTypesTable() {
@@ -4474,7 +4472,7 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
final List<KeywordInterface> addKeywords = Lists.newArrayList(); final List<KeywordInterface> addKeywords = Lists.newArrayList();
final List<KeywordInterface> removeKeywords = Lists.newArrayList(); final List<KeywordInterface> removeKeywords = Lists.newArrayList();
// Text Change for intrinsic keywords // Text Change for intrinsic keywords
for(KeywordInterface kw : beforeKeywords) { for (KeywordInterface kw : beforeKeywords) {
String oldtxt = kw.getOriginal(); String oldtxt = kw.getOriginal();
final String newtxt = AbilityUtils.applyKeywordTextChangeEffects(oldtxt, this); final String newtxt = AbilityUtils.applyKeywordTextChangeEffects(oldtxt, this);
if (!newtxt.equals(oldtxt)) { if (!newtxt.equals(oldtxt)) {

View File

@@ -874,7 +874,7 @@ public class CardView extends GameEntityView {
set(TrackableProperty.Modal, c.isModal()); set(TrackableProperty.Modal, c.isModal());
//backside //backside
if (c.getAlternateState()!=null) if (c.getAlternateState() != null)
updateBackSide(c.getAlternateState().getName(), c.hasBackSide()); updateBackSide(c.getAlternateState().getName(), c.hasBackSide());
final Card cloner = c.getCloner(); final Card cloner = c.getCloner();