mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
More view cleanup (#6967)
This commit is contained in:
@@ -1326,7 +1326,9 @@ public class ComputerUtilMana {
|
||||
}
|
||||
}
|
||||
|
||||
if (!effect) {
|
||||
CostAdjustment.adjust(manaCost, sa, null, test);
|
||||
}
|
||||
|
||||
if ("NumTimes".equals(sa.getParam("Announce"))) { // e.g. the Adversary cycle
|
||||
ManaCost mkCost = sa.getPayCosts().getTotalMana();
|
||||
|
||||
@@ -1276,7 +1276,7 @@ public class GameAction {
|
||||
// Update P/T and type in the view only once after all the cards have been processed, to avoid flickering
|
||||
for (Card c : affectedCards) {
|
||||
c.updateNameforView();
|
||||
c.updatePowerToughnessForView();
|
||||
c.updatePTforView();
|
||||
c.updateTypesForView();
|
||||
c.updateKeywords();
|
||||
}
|
||||
|
||||
@@ -267,7 +267,7 @@ public class StaticEffect {
|
||||
if (hasParam("AddAbility") || hasParam("GainsAbilitiesOf")
|
||||
|| hasParam("GainsAbilitiesOfDefined") || hasParam("GainsTriggerAbsOf")
|
||||
|| hasParam("AddTrigger") || hasParam("AddStaticAbility")
|
||||
|| hasParam("AddReplacementEffects") || hasParam("RemoveAllAbilities")
|
||||
|| hasParam("AddReplacementEffect") || hasParam("RemoveAllAbilities")
|
||||
|| hasParam("RemoveLandTypes")) {
|
||||
affectedCard.removeChangedCardTraits(getTimestamp(), ability.getId());
|
||||
}
|
||||
@@ -282,9 +282,9 @@ public class StaticEffect {
|
||||
affectedCard.updateKeywordsCache(affectedCard.getCurrentState());
|
||||
}
|
||||
|
||||
if (layers.contains(StaticAbilityLayer.SETPT)) {
|
||||
if (layers.contains(StaticAbilityLayer.CHARACTERISTIC) || layers.contains(StaticAbilityLayer.SETPT)) {
|
||||
if (hasParam("SetPower") || hasParam("SetToughness")) {
|
||||
affectedCard.removeNewPT(getTimestamp(), ability.getId());
|
||||
affectedCard.removeNewPT(getTimestamp(), ability.getId(), false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -202,7 +202,7 @@ public class AnimateEffect extends AnimateEffectBase {
|
||||
|
||||
if (sa.isCrew()) {
|
||||
gameCard.becomesCrewed(sa);
|
||||
gameCard.updatePowerToughnessForView();
|
||||
gameCard.updatePTforView();
|
||||
}
|
||||
|
||||
game.fireEvent(new GameEventCardStatsChanged(gameCard));
|
||||
|
||||
@@ -71,7 +71,7 @@ public class PumpAllEffect extends SpellAbilityEffect {
|
||||
tgtC.addChangedCardKeywords(kws, null, false, timestamp, null);
|
||||
}
|
||||
if (redrawPT) {
|
||||
tgtC.updatePowerToughnessForView();
|
||||
tgtC.updatePTforView();
|
||||
}
|
||||
|
||||
if (!hiddenkws.isEmpty()) {
|
||||
@@ -93,7 +93,7 @@ public class PumpAllEffect extends SpellAbilityEffect {
|
||||
tgtC.removeChangedCardKeywords(timestamp, 0);
|
||||
tgtC.removeHiddenExtrinsicKeywords(timestamp, 0);
|
||||
|
||||
tgtC.updatePowerToughnessForView();
|
||||
tgtC.updatePTforView();
|
||||
|
||||
game.fireEvent(new GameEventCardStatsChanged(tgtC));
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@ public class PumpEffect extends SpellAbilityEffect {
|
||||
gameCard.addHiddenExtrinsicKeywords(timestamp, 0, hiddenKws);
|
||||
}
|
||||
if (redrawPT) {
|
||||
gameCard.updatePowerToughnessForView();
|
||||
gameCard.updatePTforView();
|
||||
}
|
||||
|
||||
if (sa.hasParam("CanBlockAny")) {
|
||||
@@ -120,7 +120,7 @@ public class PumpEffect extends SpellAbilityEffect {
|
||||
gameCard.removeHiddenExtrinsicKeywords(timestamp, 0);
|
||||
gameCard.removeChangedCardKeywords(timestamp, 0);
|
||||
}
|
||||
gameCard.updatePowerToughnessForView();
|
||||
gameCard.updatePTforView();
|
||||
if (updateText) {
|
||||
gameCard.updateAbilityTextForView();
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1878,6 +1878,10 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
stats.nextTurn();
|
||||
}
|
||||
|
||||
public final int getLastTurnNr() {
|
||||
return this.lastTurnNr;
|
||||
}
|
||||
|
||||
public boolean hasTappedLandForManaThisTurn() {
|
||||
return tappedLandForManaThisTurn;
|
||||
}
|
||||
@@ -2285,6 +2289,13 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
view.updateUnlimitedHandSize(this);
|
||||
}
|
||||
|
||||
public int getStartingHandSize() {
|
||||
return startingHandSize;
|
||||
}
|
||||
public void setStartingHandSize(int shs) {
|
||||
startingHandSize = shs;
|
||||
}
|
||||
|
||||
public final int getLandsPlayedThisTurn() {
|
||||
return landsPlayedThisTurn;
|
||||
}
|
||||
@@ -2519,10 +2530,6 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
return keywords.getAmount(k);
|
||||
}
|
||||
|
||||
public final int getLastTurnNr() {
|
||||
return this.lastTurnNr;
|
||||
}
|
||||
|
||||
public void onCleanupPhase() {
|
||||
for (Card c : getCardsIn(ZoneType.Hand)) {
|
||||
c.setDrawnThisTurn(false);
|
||||
@@ -2693,13 +2700,6 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
return !isInGame();
|
||||
}
|
||||
|
||||
public int getStartingHandSize() {
|
||||
return startingHandSize;
|
||||
}
|
||||
public void setStartingHandSize(int shs) {
|
||||
startingHandSize = shs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Takes the top plane of the planar deck and put it face up in the command zone.
|
||||
* Then runs triggers.
|
||||
@@ -4027,11 +4027,9 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
public void addDeclaresAttackers(long ts, Player p) {
|
||||
this.declaresAttackers.put(ts, p);
|
||||
}
|
||||
|
||||
public void removeDeclaresAttackers(long ts) {
|
||||
this.declaresAttackers.remove(ts);
|
||||
}
|
||||
|
||||
public Player getDeclaresAttackers() {
|
||||
Map.Entry<Long, Player> e = declaresAttackers.lastEntry();
|
||||
return e == null ? null : e.getValue();
|
||||
@@ -4040,11 +4038,9 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
public void addDeclaresBlockers(long ts, Player p) {
|
||||
this.declaresBlockers.put(ts, p);
|
||||
}
|
||||
|
||||
public void removeDeclaresBlockers(long ts) {
|
||||
this.declaresBlockers.remove(ts);
|
||||
}
|
||||
|
||||
public Player getDeclaresBlockers() {
|
||||
Map.Entry<Long, Player> e = declaresBlockers.lastEntry();
|
||||
return e == null ? null : e.getValue();
|
||||
|
||||
@@ -704,7 +704,7 @@ public final class StaticAbilityContinuous {
|
||||
setToughness = AbilityUtils.calculateAmount(affectedCard, setT, stAb, true);
|
||||
}
|
||||
affectedCard.addNewPT(setPower, setToughness,
|
||||
se.getTimestamp(), stAb.getId(), layer == StaticAbilityLayer.CHARACTERISTIC);
|
||||
se.getTimestamp(), stAb.getId(), layer == StaticAbilityLayer.CHARACTERISTIC, false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -752,7 +752,8 @@ public final class StaticAbilityContinuous {
|
||||
}
|
||||
|
||||
affectedCard.addChangedCardKeywords(newKeywords, removeKeywords,
|
||||
removeAllAbilities, se.getTimestamp(), stAb, true);
|
||||
removeAllAbilities, se.getTimestamp(), stAb, false);
|
||||
affectedCard.updateKeywordsCache(affectedCard.getCurrentState());
|
||||
}
|
||||
|
||||
// add HIDDEN keywords
|
||||
@@ -862,7 +863,7 @@ public final class StaticAbilityContinuous {
|
||||
|| removeAllAbilities) {
|
||||
affectedCard.addChangedCardTraits(
|
||||
addedAbilities, null, addedTrigger, addedReplacementEffects, addedStaticAbility, removeAllAbilities, removeNonMana,
|
||||
se.getTimestamp(), stAb.getId()
|
||||
se.getTimestamp(), stAb.getId(), false
|
||||
);
|
||||
}
|
||||
|
||||
@@ -874,7 +875,7 @@ public final class StaticAbilityContinuous {
|
||||
// add Types
|
||||
if ((addTypes != null && !addTypes.isEmpty()) || (removeTypes != null && !removeTypes.isEmpty()) || addAllCreatureTypes || !remove.isEmpty()) {
|
||||
affectedCard.addChangedCardTypes(addTypes, removeTypes, addAllCreatureTypes, remove,
|
||||
se.getTimestamp(), stAb.getId(), true, stAb.isCharacteristicDefining());
|
||||
se.getTimestamp(), stAb.getId(), false, stAb.isCharacteristicDefining());
|
||||
}
|
||||
|
||||
// add colors
|
||||
|
||||
@@ -2,6 +2,6 @@ Name:Pia's Revolution
|
||||
ManaCost:2 R
|
||||
Types:Enchantment
|
||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Artifact.YouOwn+nonToken | TriggerZones$ Battlefield | Execute$ TrigReturn | TriggerDescription$ Whenever a nontoken artifact is put into your graveyard from the battlefield, return that card to your hand unless target opponent has CARDNAME deal 3 damage to them.
|
||||
SVar:TrigReturn:DB$ ChangeZone | Defined$ TriggeredNewCardLKICopy | Origin$ Graveyard | Destination$ Hand | UnlessCost$ DamageYou<3> | UnlessPayer$ Targeted | ValidTgts$ Opponent | IsCurse$ True
|
||||
SVar:TrigReturn:DB$ ChangeZone | ThisDefinedAndTgts$ TriggeredNewCardLKICopy | Origin$ Graveyard | Destination$ Hand | UnlessCost$ DamageYou<3> | UnlessPayer$ Targeted | ValidTgts$ Opponent | IsCurse$ True
|
||||
SVar:BuffedBy:Permanent.White,Permanent.Black
|
||||
Oracle:Whenever a nontoken artifact is put into your graveyard from the battlefield, return that card to your hand unless target opponent has Pia's Revolution deal 3 damage to them.
|
||||
|
||||
Reference in New Issue
Block a user