Remove some redundancy

This commit is contained in:
tool4EvEr
2021-12-15 22:14:56 +01:00
parent 383f5b3f20
commit 68fe6ec7e3
22 changed files with 37 additions and 95 deletions

View File

@@ -955,7 +955,6 @@ public class Game {
Multimap<Player, Card> anteed = ArrayListMultimap.create(); Multimap<Player, Card> anteed = ArrayListMultimap.create();
if (matchRarity) { if (matchRarity) {
boolean onePlayerHasTimeShifted = false; boolean onePlayerHasTimeShifted = false;
List<CardRarity> validRarities = new ArrayList<>(Arrays.asList(CardRarity.values())); List<CardRarity> validRarities = new ArrayList<>(Arrays.asList(CardRarity.values()));
@@ -1018,7 +1017,6 @@ public class Game {
} else { } else {
chooseRandomCardsForAnte(player, anteed); chooseRandomCardsForAnte(player, anteed);
} }
} }
} }
else { else {

View File

@@ -43,7 +43,6 @@ public class GameView extends TrackableObject {
set(TrackableProperty.GameLog, game.getGameLog()); set(TrackableProperty.GameLog, game.getGameLog());
set(TrackableProperty.NumPlayedGamesInMatch, game.getMatch().getOutcomes().size()); set(TrackableProperty.NumPlayedGamesInMatch, game.getMatch().getOutcomes().size());
} }
public Match getMatch() { public Match getMatch() {

View File

@@ -176,16 +176,12 @@ public class AnimateEffect extends AnimateEffectBase {
// give Remembered // give Remembered
if (animateRemembered != null) { if (animateRemembered != null) {
for (final Object o : AbilityUtils.getDefinedObjects(source, animateRemembered, sa)) { c.addRemembered(AbilityUtils.getDefinedObjects(source, animateRemembered, sa));
c.addRemembered(o);
}
} }
// give Imprinted // give Imprinted
if (animateImprinted != null) { if (animateImprinted != null) {
for (final Card imprintedCard : AbilityUtils.getDefinedCards(source, animateImprinted, sa)) { c.addImprintedCards(AbilityUtils.getDefinedCards(source, animateImprinted, sa));
c.addImprintedCard(imprintedCard);
}
} }
game.fireEvent(new GameEventCardStatsChanged(c)); game.fireEvent(new GameEventCardStatsChanged(c));

View File

@@ -212,19 +212,13 @@ public class ChooseCardEffect extends SpellAbilityEffect {
} }
host.setChosenCards(chosen); host.setChosenCards(chosen);
if (sa.hasParam("RememberChosen")) { if (sa.hasParam("RememberChosen")) {
for (final Card rem : chosen) { host.addRemembered(chosen);
host.addRemembered(rem);
}
} }
if (sa.hasParam("ForgetChosen")) { if (sa.hasParam("ForgetChosen")) {
for (final Card rem : chosen) { host.removeRemembered(chosen);
host.removeRemembered(rem);
}
} }
if (sa.hasParam("ImprintChosen")) { if (sa.hasParam("ImprintChosen")) {
for (final Card imp : chosen) { host.addImprintedCards(chosen);
host.addImprintedCard(imp);
}
} }
} }
} }

View File

@@ -56,9 +56,7 @@ public class DelayedTriggerEffect extends SpellAbilityEffect {
if (sa.hasParam("RememberObjects")) { if (sa.hasParam("RememberObjects")) {
for (final String rem : sa.getParam("RememberObjects").split(",")) { for (final String rem : sa.getParam("RememberObjects").split(",")) {
for (final Object o : AbilityUtils.getDefinedEntities(sa.getHostCard(), rem, sa)) { delTrig.addRemembered(AbilityUtils.getDefinedEntities(sa.getHostCard(), rem, sa));
delTrig.addRemembered(o);
}
} }
} }

View File

@@ -177,14 +177,10 @@ public class DigEffect extends SpellAbilityEffect {
} }
if (sa.hasParam("RememberRevealed") && !sa.hasParam("RevealValid") && hasRevealed) { if (sa.hasParam("RememberRevealed") && !sa.hasParam("RevealValid") && hasRevealed) {
for (final Card one : top) { host.addRemembered(top);
host.addRemembered(one);
}
} }
if (sa.hasParam("ImprintRevealed") && hasRevealed) { if (sa.hasParam("ImprintRevealed") && hasRevealed) {
for (final Card one : top) { host.addImprintedCards(top);
host.addImprintedCard(one);
}
} }
if (sa.hasParam("Choser")) { if (sa.hasParam("Choser")) {
final FCollectionView<Player> choosers = AbilityUtils.getDefinedPlayers(host, sa.getParam("Choser"), sa); final FCollectionView<Player> choosers = AbilityUtils.getDefinedPlayers(host, sa.getParam("Choser"), sa);

View File

@@ -204,14 +204,10 @@ public class DigUntilEffect extends SpellAbilityEffect {
} }
if (sa.hasParam("RememberRevealed")) { if (sa.hasParam("RememberRevealed")) {
for (final Card c : revealed) { host.addRemembered(revealed);
host.addRemembered(c);
}
} }
if (sa.hasParam("ImprintRevealed")) { if (sa.hasParam("ImprintRevealed")) {
for (final Card c : revealed) { host.addImprintedCards(revealed);
host.addImprintedCard(c);
}
} }
if (sa.hasParam("RevealRandomOrder")) { if (sa.hasParam("RevealRandomOrder")) {
Collections.shuffle(revealed, MyRandom.getRandom()); Collections.shuffle(revealed, MyRandom.getRandom());

View File

@@ -127,9 +127,6 @@ public class DiscardEffect extends SpellAbilityEffect {
for (final Player p : discarders) { for (final Player p : discarders) {
CardCollectionView toBeDiscarded = new CardCollection(); CardCollectionView toBeDiscarded = new CardCollection();
if ((mode.equals("RevealTgtChoose") && firstTarget != null) || !sa.usesTargeting() || p.canBeTargetedBy(sa)) { if ((mode.equals("RevealTgtChoose") && firstTarget != null) || !sa.usesTargeting() || p.canBeTargetedBy(sa)) {
if (sa.hasParam("RememberDiscarder") && p.canDiscardBy(sa, true)) {
source.addRemembered(p);
}
final int numCardsInHand = p.getCardsIn(ZoneType.Hand).size(); final int numCardsInHand = p.getCardsIn(ZoneType.Hand).size();
if (mode.equals("Defined")) { if (mode.equals("Defined")) {
if (!p.canDiscardBy(sa, true)) { if (!p.canDiscardBy(sa, true)) {

View File

@@ -79,9 +79,7 @@ public class DrawEffect extends SpellAbilityEffect {
} }
} }
if (sa.hasParam("RememberDrawn")) { if (sa.hasParam("RememberDrawn")) {
for (final Card c : drawn) { source.addRemembered(drawn);
source.addRemembered(c);
}
} }
sa.setSVar("AFNotDrawnNum_" + p.getId(), "Number$" + drawn.size()); sa.setSVar("AFNotDrawnNum_" + p.getId(), "Number$" + drawn.size());
} }

View File

@@ -53,10 +53,7 @@ public class FightEffect extends DamageBaseEffect {
} }
if (sa.hasParam("RememberObjects")) { if (sa.hasParam("RememberObjects")) {
final String remembered = sa.getParam("RememberObjects"); host.addRemembered(AbilityUtils.getDefinedObjects(host, sa.getParam("RememberObjects"), sa));
for (final Object o : AbilityUtils.getDefinedObjects(host, remembered, sa)) {
host.addRemembered(o);
}
} }
Player controller = host.getController(); Player controller = host.getController();

View File

@@ -59,9 +59,7 @@ public class ImmediateTriggerEffect extends SpellAbilityEffect {
if (sa.hasParam("RememberObjects")) { if (sa.hasParam("RememberObjects")) {
for (final String rem : sa.getParam("RememberObjects").split(",")) { for (final String rem : sa.getParam("RememberObjects").split(",")) {
for (final Object o : AbilityUtils.getDefinedEntities(sa.getHostCard(), rem, sa)) { immediateTrig.addRemembered(AbilityUtils.getDefinedEntities(sa.getHostCard(), rem, sa));
immediateTrig.addRemembered(o);
}
} }
} }

View File

@@ -68,14 +68,10 @@ public class MillEffect extends SpellAbilityEffect {
} }
} }
if (sa.hasParam("RememberMilled")) { if (sa.hasParam("RememberMilled")) {
for (final Card c : milled) { source.addRemembered(milled);
source.addRemembered(c);
}
} }
if (sa.hasParam("Imprint")) { if (sa.hasParam("Imprint")) {
for (final Card c : milled) { source.addImprintedCards(milled);
source.addImprintedCard(c);
}
} }
} }
} }

View File

@@ -86,7 +86,6 @@ public class MustAttackEffect extends SpellAbilityEffect {
} }
} }
} }
} // mustAttackResolve() } // mustAttackResolve()
} }

View File

@@ -324,9 +324,7 @@ public class PumpEffect extends SpellAbilityEffect {
} }
if (sa.hasParam("RememberObjects")) { if (sa.hasParam("RememberObjects")) {
for (final Object o : AbilityUtils.getDefinedObjects(host, sa.getParam("RememberObjects"), sa)) { host.addRemembered(AbilityUtils.getDefinedObjects(host, sa.getParam("RememberObjects"), sa));
host.addRemembered(o);
}
} }
if (sa.hasParam("NoteCardsFor")) { if (sa.hasParam("NoteCardsFor")) {
@@ -338,21 +336,15 @@ public class PumpEffect extends SpellAbilityEffect {
} }
if (sa.hasParam("ForgetObjects")) { if (sa.hasParam("ForgetObjects")) {
for (final Object o : AbilityUtils.getDefinedObjects(host, sa.getParam("ForgetObjects"), sa)) { host.removeRemembered(AbilityUtils.getDefinedObjects(host, sa.getParam("ForgetObjects"), sa));
host.removeRemembered(o);
}
} }
if (sa.hasParam("ImprintCards")) { if (sa.hasParam("ImprintCards")) {
for (final Card c : AbilityUtils.getDefinedCards(host, sa.getParam("ImprintCards"), sa)) { host.addImprintedCards(AbilityUtils.getDefinedCards(host, sa.getParam("ImprintCards"), sa));
host.addImprintedCard(c);
}
} }
if (sa.hasParam("ForgetImprinted")) { if (sa.hasParam("ForgetImprinted")) {
for (final Card c : AbilityUtils.getDefinedCards(host, sa.getParam("ForgetImprinted"), sa)) { host.removeImprintedCards(AbilityUtils.getDefinedCards(host, sa.getParam("ForgetImprinted"), sa));
host.removeImprintedCard(c);
}
} }
final ZoneType pumpZone = sa.hasParam("PumpZone") ? ZoneType.smartValueOf(sa.getParam("PumpZone")) final ZoneType pumpZone = sa.hasParam("PumpZone") ? ZoneType.smartValueOf(sa.getParam("PumpZone"))

View File

@@ -50,14 +50,10 @@ public class RevealHandEffect extends SpellAbilityEffect {
} }
sa.getActivatingPlayer().getController().reveal(hand, ZoneType.Hand, p); sa.getActivatingPlayer().getController().reveal(hand, ZoneType.Hand, p);
if (sa.hasParam("RememberRevealed")) { if (sa.hasParam("RememberRevealed")) {
for (final Card c : hand) { host.addRemembered(hand);
host.addRemembered(c);
}
} }
if (sa.hasParam("ImprintRevealed")) { if (sa.hasParam("ImprintRevealed")) {
for (final Card c : hand) { host.addImprintedCards(hand);
host.addImprintedCard(c);
}
} }
if (sa.hasParam("RememberRevealedPlayer")) { if (sa.hasParam("RememberRevealedPlayer")) {
host.addRemembered(p); host.addRemembered(p);

View File

@@ -203,10 +203,7 @@ public abstract class TokenEffectBase extends SpellAbilityEffect {
moved.addRemembered(host); moved.addRemembered(host);
} }
if (sa.hasParam("TokenRemembered")) { if (sa.hasParam("TokenRemembered")) {
final String remembered = sa.getParam("TokenRemembered"); moved.addRemembered(AbilityUtils.getDefinedObjects(host, sa.getParam("TokenRemembered"), sa));
for (final Object o : AbilityUtils.getDefinedObjects(host, remembered, sa)) {
moved.addRemembered(o);
}
} }
allTokens.add(moved); allTokens.add(moved);
} }

View File

@@ -142,9 +142,7 @@ public class TwoPilesEffect extends SpellAbilityEffect {
// take action on the chosen pile // take action on the chosen pile
if (sa.hasParam("ChosenPile")) { if (sa.hasParam("ChosenPile")) {
for (final Card z : chosenPile) { card.addRemembered(chosenPile);
card.addRemembered(z);
}
SpellAbility sub = sa.getAdditionalAbility("ChosenPile"); SpellAbility sub = sa.getAdditionalAbility("ChosenPile");
if (sub != null) { if (sub != null) {
@@ -155,10 +153,8 @@ public class TwoPilesEffect extends SpellAbilityEffect {
// take action on the unchosen pile // take action on the unchosen pile
if (sa.hasParam("UnchosenPile")) { if (sa.hasParam("UnchosenPile")) {
card.clearRemembered(); card.clearRemembered();
for (final Card z : unchosenPile) { card.addRemembered(unchosenPile);
card.addRemembered(z);
}
SpellAbility sub = sa.getAdditionalAbility("UnchosenPile"); SpellAbility sub = sa.getAdditionalAbility("UnchosenPile");
if (sub != null) { if (sub != null) {
AbilityUtils.resolve(sub); AbilityUtils.resolve(sub);

View File

@@ -333,7 +333,6 @@ public class Player extends GameEntity implements Comparable<Player> {
game.getTriggerHandler().runTrigger(TriggerType.SetInMotion, runParams, false); game.getTriggerHandler().runTrigger(TriggerType.SetInMotion, runParams, false);
} }
/** /**
* returns all opponents. * returns all opponents.
* Should keep player relations somewhere in the match structure * Should keep player relations somewhere in the match structure
@@ -533,8 +532,7 @@ public class Player extends GameEntity implements Comparable<Player> {
game.getTriggerHandler().runTrigger(TriggerType.LifeGained, runParams, false); game.getTriggerHandler().runTrigger(TriggerType.LifeGained, runParams, false);
game.fireEvent(new GameEventPlayerLivesChanged(this, oldLife, life)); game.fireEvent(new GameEventPlayerLivesChanged(this, oldLife, life));
} } else {
else {
System.out.println("Player - trying to gain negative or 0 life"); System.out.println("Player - trying to gain negative or 0 life");
} }
return newLifeSet; return newLifeSet;
@@ -616,7 +614,7 @@ public class Player extends GameEntity implements Comparable<Player> {
if (lifePayment > 0 && life < lifePayment) { if (lifePayment > 0 && life < lifePayment) {
return false; return false;
} }
return (lifePayment <= 0) || !StaticAbilityCantGainLosePayLife.anyCantPayLife(this, effect, cause); return lifePayment <= 0 || !StaticAbilityCantGainLosePayLife.anyCantPayLife(this, effect, cause);
} }
public final boolean payLife(final int lifePayment, final SpellAbility cause, final boolean effect) { public final boolean payLife(final int lifePayment, final SpellAbility cause, final boolean effect) {
@@ -2019,7 +2017,7 @@ public class Player extends GameEntity implements Comparable<Player> {
} }
public final boolean cantLoseForZeroOrLessLife() { public final boolean cantLoseForZeroOrLessLife() {
return (hasKeyword("You don't lose the game for having 0 or less life.")); return hasKeyword("You don't lose the game for having 0 or less life.");
} }
public final boolean cantWin() { public final boolean cantWin() {

View File

@@ -107,7 +107,7 @@ public class TriggerSpellAbilityCastOrCopy extends Trigger {
} }
if (hasParam("ActivatorThisTurnCast")) { if (hasParam("ActivatorThisTurnCast")) {
final String compare = getParam("ActivatorThisTurnCast"); final String compare = getParam("ActivatorThisTurnCast");
final String valid = hasParam("ValidCard") ? getParam("ValidCard") : "Card"; final String valid = getParamOrDefault("ValidCard", "Card");
List<Card> thisTurnCast = CardUtil.getThisTurnCast(valid, getHostCard(), this); List<Card> thisTurnCast = CardUtil.getThisTurnCast(valid, getHostCard(), this);
thisTurnCast = CardLists.filterControlledBy(thisTurnCast, si.getSpellAbility(true).getActivatingPlayer()); thisTurnCast = CardLists.filterControlledBy(thisTurnCast, si.getSpellAbility(true).getActivatingPlayer());
int left = thisTurnCast.size(); int left = thisTurnCast.size();

View File

@@ -51,10 +51,11 @@ public enum VSubmenuOnlineLobby implements IVSubmenu<CSubmenuOnlineLobby>, IOnli
} }
public void reset() { public void reset() {
onClosing(null); if (onClosing(null)) {
this.client = null; this.client = null;
this.lobby = null; this.lobby = null;
populate(); populate();
}
} }
public void setClient(final FGameClient client) { public void setClient(final FGameClient client) {

View File

@@ -2,8 +2,8 @@ Name:Tsabo's Decree
ManaCost:5 B ManaCost:5 B
Types:Instant Types:Instant
A:SP$ ChooseType | Cost$ 5 B | Defined$ You | Type$ Creature | SubAbility$ TsabosDiscard | StackDescription$ None | SpellDescription$ Choose a creature type. Target player reveals their hand and discards all creature cards of that type. Then destroy all creatures of that type that player controls. They can't be regenerated. A:SP$ ChooseType | Cost$ 5 B | Defined$ You | Type$ Creature | SubAbility$ TsabosDiscard | StackDescription$ None | SpellDescription$ Choose a creature type. Target player reveals their hand and discards all creature cards of that type. Then destroy all creatures of that type that player controls. They can't be regenerated.
SVar:TsabosDiscard:DB$ Discard | ValidTgts$ Player | ForgetOtherTargets$ True | RememberTargets$ True | RememberDiscarder$ True | Mode$ RevealDiscardAll | DiscardValid$ Creature.ChosenType | SubAbility$ TsabosDestroy SVar:TsabosDiscard:DB$ Discard | ValidTgts$ Player | Mode$ RevealDiscardAll | DiscardValid$ Creature.ChosenType | SubAbility$ TsabosDestroy
SVar:TsabosDestroy:DB$ DestroyAll | ValidCards$ Creature.ChosenType+RememberedPlayerCtrl | NoRegen$ True SVar:TsabosDestroy:DB$ DestroyAll | ValidCards$ Creature.ChosenType+TargetedPlayerCtrl | NoRegen$ True
AI:RemoveDeck:All AI:RemoveDeck:All
SVar:Picture:http://www.wizards.com/global/images/magic/general/tsabos_decree.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/tsabos_decree.jpg
Oracle:Choose a creature type. Target player reveals their hand and discards all creature cards of that type. Then destroy all creatures of that type that player controls. They can't be regenerated. Oracle:Choose a creature type. Target player reveals their hand and discards all creature cards of that type. Then destroy all creatures of that type that player controls. They can't be regenerated.

View File

@@ -2,7 +2,7 @@ Name:Wing Puncture
ManaCost:G ManaCost:G
Types:Instant Types:Instant
A:SP$ Pump | Cost$ G | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | SubAbility$ SoulsDamage | SpellDescription$ Target creature you control deals damage equal to its power to target creature with flying. A:SP$ Pump | Cost$ G | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | SubAbility$ SoulsDamage | SpellDescription$ Target creature you control deals damage equal to its power to target creature with flying.
SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature.withFlying | AILogic$ PowerDmg | TgtPrompt$ Select target creature with flying | NumDmg$ X | DamageSource$ ParentTarget SVar:SoulsDamage:DB$ DealDamage | ValidTgts$ Creature.withFlying | AILogic$ PowerDmg | TgtPrompt$ Select target creature with flying | NumDmg$ X | DamageSource$ ParentTarget
SVar:X:ParentTargeted$CardPower SVar:X:ParentTargeted$CardPower
SVar:Picture:http://www.wizards.com/global/images/magic/general/wing_puncture.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/wing_puncture.jpg
Oracle:Target creature you control deals damage equal to its power to target creature with flying. Oracle:Target creature you control deals damage equal to its power to target creature with flying.