Merge remote-tracking branch 'core/master'

This commit is contained in:
Anthony Calosa
2021-03-05 01:57:48 +08:00
7 changed files with 58 additions and 28 deletions

View File

@@ -223,6 +223,19 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect {
if (!movedCard.getZone().equals(originZone)) { if (!movedCard.getZone().equals(originZone)) {
triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), movedCard); triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), movedCard);
if (c.getMeldedWith() != null) {
Card meld = game.getCardState(c.getMeldedWith(), null);
if (meld != null) {
triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), meld);
}
}
if (c.hasMergedCard()) {
for (final Card cm : c.getMergedCards()) {
if (cm == c) continue;
triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), cm);
}
}
} }
} }

View File

@@ -728,17 +728,29 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
} }
} }
if (!movedCard.getZone().equals(originZone)) { if (!movedCard.getZone().equals(originZone)) {
Card meld = null;
triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), movedCard); triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), movedCard);
if (gameCard.getMeldedWith() != null) {
meld = game.getCardState(gameCard.getMeldedWith(), null);
if (meld != null) {
triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), meld);
}
}
if (gameCard.hasMergedCard()) {
for (final Card c : gameCard.getMergedCards()) {
if (c == gameCard) continue;
triggerList.put(originZone.getZoneType(), movedCard.getZone().getZoneType(), c);
}
}
if (remember != null) { if (remember != null) {
hostCard.addRemembered(movedCard); hostCard.addRemembered(movedCard);
// addRememberedFromCardState ? // addRememberedFromCardState ?
if (gameCard.getMeldedWith() != null) {
Card meld = game.getCardState(gameCard.getMeldedWith(), null);
if (meld != null) { if (meld != null) {
hostCard.addRemembered(meld); hostCard.addRemembered(meld);
} }
}
if (gameCard.hasMergedCard()) { if (gameCard.hasMergedCard()) {
for (final Card c : gameCard.getMergedCards()) { for (final Card c : gameCard.getMergedCards()) {
if (c == gameCard) continue; if (c == gameCard) continue;

View File

@@ -68,8 +68,10 @@ public class RollDiceEffect extends SpellAbilityEffect {
total += roll; total += roll;
} }
if (amount > 0) {
String message = Localizer.getInstance().getMessage("lblPlayerRolledResult", player, StringUtils.join(rolls, ", ")); String message = Localizer.getInstance().getMessage("lblPlayerRolledResult", player, StringUtils.join(rolls, ", "));
player.getGame().getAction().nofityOfValue(sa, player, message, null); player.getGame().getAction().nofityOfValue(sa, player, message, null);
}
if (sa.hasParam("ResultSVar")) { if (sa.hasParam("ResultSVar")) {
host.setSVar(sa.getParam("ResultSVar"), ""+total); host.setSVar(sa.getParam("ResultSVar"), ""+total);

View File

@@ -3,10 +3,10 @@ ManaCost:X B B
Types:Creature Zombie Types:Creature Zombie
PT:0/1 PT:0/1
R:Event$ Moved | ValidCard$ Card.Self | Destination$ Battlefield | ReplaceWith$ ExileCreature | Description$ As CARDNAME enters the battlefield, exile X creature cards from your graveyard. If you can't, put CARDNAME into its owner's graveyard instead of onto the battlefield. For each creature card exiled this way, CARDNAME enters the battlefield with a +2/+0, +1/+1, or +0/+2 counter on it. R:Event$ Moved | ValidCard$ Card.Self | Destination$ Battlefield | ReplaceWith$ ExileCreature | Description$ As CARDNAME enters the battlefield, exile X creature cards from your graveyard. If you can't, put CARDNAME into its owner's graveyard instead of onto the battlefield. For each creature card exiled this way, CARDNAME enters the battlefield with a +2/+0, +1/+1, or +0/+2 counter on it.
SVar:ExileCreature:DB$ ChooseCard | ETB$ True | Choices$ Creature.YouOwn | ChoiceZone$ Graveyard | Amount$ X | Mandatory$ True | ConditionCheckSVar$ CheckYard | ConditionSVarCompare$ GEX | References$ CheckYard,X | SubAbility$ DBExile SVar:ExileCreature:DB$ ChooseCard | ETB$ True | Choices$ Creature.YouOwn | ChoiceZone$ Graveyard | Amount$ X | Mandatory$ True | ConditionCheckSVar$ CheckYard | ConditionSVarCompare$ GEX | SubAbility$ DBExile
SVar:DBExile:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Graveyard | Destination$ Exile | RememberChanged$ True | SubAbility$ Movetoyard SVar:DBExile:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Graveyard | Destination$ Exile | RememberChanged$ True | SubAbility$ Movetoyard
SVar:Movetoyard:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Graveyard | Defined$ Self | ConditionCheckSVar$ CheckExiled | ConditionSVarCompare$ LTX | References$ CheckExiled,X | Imprint$ True | SubAbility$ ChooseCounters SVar:Movetoyard:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Graveyard | Defined$ Self | ConditionCheckSVar$ CheckExiled | ConditionSVarCompare$ LTX | Imprint$ True | ETB$ True | SubAbility$ ChooseCounters
SVar:ChooseCounters:DB$ Repeat | MaxRepeat$ X | ETB$ True | RepeatSubAbility$ DBChooseCounter | ConditionCheckSVar$ CheckExiled | ConditionSVarCompare$ EQX | References$ CheckExiled,X | SubAbility$ MovetoPlay SVar:ChooseCounters:DB$ Repeat | MaxRepeat$ X | ETB$ True | RepeatSubAbility$ DBChooseCounter | ConditionCheckSVar$ CheckExiled | ConditionSVarCompare$ EQX | SubAbility$ MovetoPlay
SVar:DBChooseCounter:DB$ GenericChoice | Choices$ SVarP1P1,SVarP2P0,SVarP0P2 SVar:DBChooseCounter:DB$ GenericChoice | Choices$ SVarP1P1,SVarP2P0,SVarP0P2
SVar:SVarP1P1:DB$ PutCounter | CounterType$ P1P1 | CounterNum$ 1 | ETB$ True | SpellDescription$ +1/+1 SVar:SVarP1P1:DB$ PutCounter | CounterType$ P1P1 | CounterNum$ 1 | ETB$ True | SpellDescription$ +1/+1
SVar:SVarP2P0:DB$ PutCounter | CounterType$ P2P0 | CounterNum$ 1 | ETB$ True | SpellDescription$ +2/+0 SVar:SVarP2P0:DB$ PutCounter | CounterType$ P2P0 | CounterNum$ 1 | ETB$ True | SpellDescription$ +2/+0

View File

@@ -4,7 +4,8 @@ Types:Creature Frog Rogue
PT:2/1 PT:2/1
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, target opponent reveals their hand. Choose a nonland card from it. Ransom that card. (Exile it. Its owner may pay {3} at any time to return it to their hand.) T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigExile | TriggerDescription$ When CARDNAME enters the battlefield, target opponent reveals their hand. Choose a nonland card from it. Ransom that card. (Exile it. Its owner may pay {3} at any time to return it to their hand.)
SVar:TrigExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | ValidTgts$ Opponent | DefinedPlayer$ Targeted | Chooser$ You | TgtPrompt$ Select target opponent | ChangeType$ Card.nonLand | ChangeNum$ 1 | IsCurse$ True | RememberChanged$ True | SubAbility$ TrigRansom SVar:TrigExile:DB$ ChangeZone | Origin$ Hand | Destination$ Exile | ValidTgts$ Opponent | DefinedPlayer$ Targeted | Chooser$ You | TgtPrompt$ Select target opponent | ChangeType$ Card.nonLand | ChangeNum$ 1 | IsCurse$ True | RememberChanged$ True | SubAbility$ TrigRansom
SVar:TrigRansom:DB$ Effect | EffectOwner$ ParentTarget | Duration$ Permanent | Abilities$ PayUp | SVars$ ExileEffect | RememberObjects$ RememberedLKI SVar:TrigRansom:DB$ Effect | EffectOwner$ ParentTarget | Duration$ Permanent | Abilities$ PayUp | SVars$ ExileEffect | RememberObjects$ RememberedLKI | SubAbility$ DBCleanup
SVar:PayUp:ST$ ChangeZone | Cost$ 3 | Defined$ Remembered | Origin$ Exile | Destination$ Hand | ActivationZone$ Command | AILogic$ Always | SubAbility$ ExileEffect SVar:PayUp:ST$ ChangeZone | Cost$ 3 | Defined$ Remembered | Origin$ Exile | Destination$ Hand | ActivationZone$ Command | AILogic$ Always | SubAbility$ ExileEffect
SVar:ExileEffect:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile SVar:ExileEffect:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
Oracle:When Frogkin Kidnapper enters the battlefield, target opponent reveals their hand. Choose a nonland card from it. Ransom that card. (Exile it. Its owner may pay {3} at any time to return it to their hand.) Oracle:When Frogkin Kidnapper enters the battlefield, target opponent reveals their hand. Choose a nonland card from it. Ransom that card. (Exile it. Its owner may pay {3} at any time to return it to their hand.)

View File

@@ -4,7 +4,7 @@ Types:Creature Hydra Dog
PT:0/0 PT:0/0
K:ETBReplacement:Other:RollCounters K:ETBReplacement:Other:RollCounters
SVar:X:Count$xPaid SVar:X:Count$xPaid
SVar:RollCounters:DB$ RollDice | Amt$ X | ResultSVar$ Result | SubAbility$ DBCounters | SpellDescription$ As CARDNAME enters the battlefield, roll X six-sided dice. CARDNAME enters the battlefield with a number of +1/+1 counters on it equal to the total of those results. SVar:RollCounters:DB$ RollDice | Amt$ X | ETB$ True | ResultSVar$ Result | SubAbility$ DBCounters | SpellDescription$ As CARDNAME enters the battlefield, roll X six-sided dice. CARDNAME enters the battlefield with a number of +1/+1 counters on it equal to the total of those results.
SVar:DBCounters:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ Result | ETB$ True SVar:DBCounters:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ Result | ETB$ True
K:Reach K:Reach
K:Trample K:Trample

View File

@@ -585,10 +585,10 @@ lblRandomDecks=Mazos aleatorios
lblNetDecks=Mazos online lblNetDecks=Mazos online
lblNetCommanderDecks=Mazos Commander online lblNetCommanderDecks=Mazos Commander online
lblNetArchiveStandardDecks=Archivo online de mazos Standard lblNetArchiveStandardDecks=Archivo online de mazos Standard
lblNetArchivePioneerDecks=Archivo online de mazos Pioneer
lblNetArchiveModernDecks=Archivo online de mazos Modern lblNetArchiveModernDecks=Archivo online de mazos Modern
lblNetArchivePioneerDecks=Net Archive Pioneer Decks lblNetArchiveLegacyDecks=Archivo online de mazos Legacy
lblNetArchiveLegacyDecks=Net Archive Legacy Decks lblNetArchiveVintageDecks=Archivo online de mazos Vintage
lblNetArchiveVintageDecks=Net Archive Vintage Decks
#VSubmenuTutorial #VSubmenuTutorial
lblTutorial=Tutorial lblTutorial=Tutorial
lblTutorialMode=Modo Tutorial lblTutorialMode=Modo Tutorial
@@ -933,7 +933,7 @@ lblSideboard=Banquillo
lblNew=Nuevo lblNew=Nuevo
lblOwned=Adquirida lblOwned=Adquirida
lblPower=Fuerza lblPower=Fuerza
ttPower=Power ttPower=Fuerza
lblPrice=Precio lblPrice=Precio
ttPrice=Precio ttPrice=Precio
lblRanking=Ranking lblRanking=Ranking
@@ -1003,16 +1003,16 @@ lblEnableRoundBorder=Habilitar máscara de bordes redondeados
nlEnableRoundBorder=Cuando está habilitado, las esquinas de las cartas se redondean (Preferiblemente Cartas con bordes completos). nlEnableRoundBorder=Cuando está habilitado, las esquinas de las cartas se redondean (Preferiblemente Cartas con bordes completos).
lblPreloadExtendedArtCards=Precargar cartas de arte extendido lblPreloadExtendedArtCards=Precargar cartas de arte extendido
nlPreloadExtendedArtCards=Cuando está habilitado, carga previamente las cartas de arte ampliadas en la caché al iniciar el programa (Alto uso de RAM). nlPreloadExtendedArtCards=Cuando está habilitado, carga previamente las cartas de arte ampliadas en la caché al iniciar el programa (Alto uso de RAM).
lblEnableMatchScrollIndicator=Match Scroll Indicator lblMatchScrollIndicator=Indicador de desplazamiento del juego
nlEnableMatchScrollIndicator=When enabled, show the scroll indicator on the match screen. nlMatchScrollIndicator=Cuando está habilitado, muestra el indicador de desplazamiento en la pantalla de juego.
lblShowFPSDisplay=Mostrar FPS lblShowFPSDisplay=Mostrar FPS
nlShowFPSDisplay=Cuando está habilitado, muestra los FPS (Experimental). nlShowFPSDisplay=Cuando está habilitado, muestra los FPS (Experimental).
lblEnableUnknownCards=Habilitar cartas desconocidas lblEnableUnknownCards=Habilitar cartas desconocidas
nlEnableUnknownCards=Habilitar que las cartas desconocidas se carguen en el Unknown Set. (Requiere reinicio) nlEnableUnknownCards=Habilitar que las cartas desconocidas se carguen en el Unknown Set. (Requiere reinicio)
lblEnableNonLegalCards=Enable Non-Legal Cards lblEnableNonLegalCards=Habilitar cartas no legales
nlEnableNonLegalCards=Enable Non-Legal Cards like Un-sets and PlayTest Cards. (Requires restart) nlEnableNonLegalCards=Habilita cartas no legales como Un-Sets y cartas para testeo. (Requiere reinicio)
lblDisableCardImages=Disable Card Images lblDisableCardImages=Desactivar imágenes de cartas
nlDisableCardImages=When enabled, Forge will not display card images. nlDisableCardImages=Cuando está habilitado, Forge no mostrará imágenes de tarjetas.
lblExperimentalNetworkCompatibility=Compatibilidad de red experimental lblExperimentalNetworkCompatibility=Compatibilidad de red experimental
nlExperimentalNetworkCompatibility=Forge cambia a un flujo de red compatible. (Si no estás seguro, deshabilita esta opción) nlExperimentalNetworkCompatibility=Forge cambia a un flujo de red compatible. (Si no estás seguro, deshabilita esta opción)
lblDisposeTextures=Desechar texturas lblDisposeTextures=Desechar texturas
@@ -1737,7 +1737,7 @@ lblSelectACardAttachSourceTo={0} - Selecciona una carta a la que anexar.
#BidLifeEffect.java #BidLifeEffect.java
lblBidLife=Elige una puja más alta lblBidLife=Elige una puja más alta
lblChooseStartingBid=Elige una apuesta inicial lblChooseStartingBid=Elige una apuesta inicial
lblDoYouWantTopBid=¿Quieres hacer una puja máxima? Puja actual \ lblDoYouWantTopBid=Do you want to top bid? Current Bid \=
lblTopBidWithValueLife=puja más alta con {0} de vida lblTopBidWithValueLife=puja más alta con {0} de vida
#BondEffect.java #BondEffect.java
lblSelectACardPair=Selecciona una carta para emparejarla con lblSelectACardPair=Selecciona una carta para emparejarla con
@@ -1913,9 +1913,9 @@ lblFaceDownCardCantTurnFaceUp=La carta boca abajo no se puede girar boca arriba
#ShuffleEffect.java #ShuffleEffect.java
lblHaveTargetShuffle=¿Ha barajado {0}? lblHaveTargetShuffle=¿Ha barajado {0}?
#SubgameEffect.java #SubgameEffect.java
lblSubgameStart=Subgame started by {0}''s effect. lblSubgameStart=Subjuego iniciado por el efecto de {0}.
lblSubgameEnd=Subgame ended. {0} wins. {1} loses. lblSubgameEnd=Terminó el subjuego. {0} gana. {1} pierde.
lblSubgameEndDraw=Subgame ended in a draw. lblSubgameEndDraw=El subjuego terminó en empate.
#SurveilEffect.java #SurveilEffect.java
lblDoYouWantSurveil=¿Quieres vigilar? lblDoYouWantSurveil=¿Quieres vigilar?
#TapOrUntapAllEffect.java #TapOrUntapAllEffect.java
@@ -1932,6 +1932,8 @@ lblSelectCardToUntap=Selecciona las cartas que quieres enderezar
lblVote=Votar lblVote=Votar
lblCurrentVote=Votos actuales lblCurrentVote=Votos actuales
lblHowManyAdditionalVotesDoYouWant=¿Cuántos votos adicionales quieres? lblHowManyAdditionalVotesDoYouWant=¿Cuántos votos adicionales quieres?
#InputPayMana.java
lblChooseManaAbility=Elige una habilidad de maná:
#VDevMenu.java #VDevMenu.java
lblUnlimitedLands=Jugar tierras ilimitadas lblUnlimitedLands=Jugar tierras ilimitadas
lblGenerateMana=Generar maná lblGenerateMana=Generar maná
@@ -1976,11 +1978,11 @@ lblLibraryZone=biblioteca
lblGraveyardZone=cementerio lblGraveyardZone=cementerio
lblBattlefieldZone=campo de batalla lblBattlefieldZone=campo de batalla
lblExileZone=exilio lblExileZone=exilio
lblFlashbackZone=flashback lblFlashbackZone=restrospectiva
lblCommandZone=mando lblCommandZone=mando
lblStackZone=pila lblStackZone=pila
lblSideboardZone=banquillo lblSideboardZone=banquillo
lblAnteZone=ante lblAnteZone=apuesta
lblSchemeDeckZone=mazo scheme lblSchemeDeckZone=mazo scheme
lblPlanarDeckZone=mazo planar lblPlanarDeckZone=mazo planar
lblSubgameZone=subjuego lblSubgameZone=subjuego