mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -1629,7 +1629,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
||||
}
|
||||
}
|
||||
if (keyword.startsWith("CantBeCounteredBy") || keyword.startsWith("Panharmonicon")
|
||||
|| keyword.startsWith("Dieharmonicon")) {
|
||||
|| keyword.startsWith("Dieharmonicon") || keyword.startsWith("Shrineharmonicon")) {
|
||||
final String[] p = keyword.split(":");
|
||||
sbLong.append(p[2]).append("\r\n");
|
||||
} else if (keyword.startsWith("etbCounter")) {
|
||||
@@ -4192,6 +4192,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
||||
public final boolean isFortification() { return getType().hasSubtype("Fortification"); }
|
||||
public final boolean isCurse() { return getType().hasSubtype("Curse"); }
|
||||
public final boolean isAura() { return getType().hasSubtype("Aura"); }
|
||||
public final boolean isShrine() { return getType().hasSubtype("Shrine"); }
|
||||
|
||||
public final boolean isAttachment() { return isAura() || isEquipment() || isFortification(); }
|
||||
public final boolean isHistoric() {return getType().isLegendary() || isArtifact() || getType().hasSubtype("Saga");}
|
||||
|
||||
@@ -26,6 +26,7 @@ import forge.game.ability.AbilityKey;
|
||||
import forge.game.ability.effects.CharmEffect;
|
||||
import forge.game.card.Card;
|
||||
import forge.game.card.CardLists;
|
||||
import forge.game.card.CardPredicates;
|
||||
import forge.game.card.CardUtil;
|
||||
import forge.game.card.CardZoneTable;
|
||||
import forge.game.keyword.KeywordInterface;
|
||||
@@ -618,10 +619,29 @@ public class TriggerHandler {
|
||||
|
||||
private int handlePanharmonicon(final Trigger t, final Map<AbilityKey, Object> runParams, final Player p) {
|
||||
Card host = t.getHostCard();
|
||||
int n = 0;
|
||||
|
||||
// Sanctum of All
|
||||
if (host.isShrine() && host.isInZone(ZoneType.Battlefield) && p.equals(host.getController())) {
|
||||
int shrineCount = CardLists.count(p.getCardsIn(ZoneType.Battlefield), CardPredicates.isType("Shrine"));
|
||||
if (shrineCount >= 6) {
|
||||
for (final Card ck : p.getCardsIn(ZoneType.Battlefield)) {
|
||||
for (final KeywordInterface ki : ck.getKeywords()) {
|
||||
final String kw = ki.getOriginal();
|
||||
if (kw.startsWith("Shrineharmonicon")) {
|
||||
final String valid = kw.split(":")[1];
|
||||
if (host.isValid(valid.split(","), p, ck, null)) {
|
||||
n++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// not a changesZone trigger or changesZoneAll
|
||||
if (t.getMode() != TriggerType.ChangesZone && t.getMode() != TriggerType.ChangesZoneAll) {
|
||||
return 0;
|
||||
return n;
|
||||
}
|
||||
|
||||
// leave battlefield trigger, might be dying
|
||||
@@ -636,7 +656,6 @@ public class TriggerHandler {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int n = 0;
|
||||
if (t.getMode() == TriggerType.ChangesZone) {
|
||||
// iterate over all cards
|
||||
final List<Card> lastCards = CardLists.filterControlledBy(p.getGame().getLastStateBattlefield(), p);
|
||||
|
||||
8
forge-gui/res/cardsfolder/upcoming/sanctum_of_all.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/sanctum_of_all.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
Name:Sanctum of All
|
||||
ManaCost:W U B R G
|
||||
Types:Legendary Enchantment Shrine
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | OptionalDecider$ You | Execute$ TrigSearch | TriggerDescription$ At the beginning of your upkeep, you may search your library and/or graveyard for a Shrine card and put it onto the battlefield. If you search your library this way, shuffle it.
|
||||
SVar:TrigSearch:DB$ ChangeZone | Origin$ Library | OriginChoice$ True | OriginAlternative$ Graveyard | AlternativeMessage$ Would you like to search your library with this ability? If you do, your library will be shuffled. | Destination$ Battlefield | ChangeType$ Card.Shrine
|
||||
K:Shrineharmonicon:Shrine.Other+YouCtrl:If an ability of another Shrine you control triggers while you control six or more Shrines, that ability triggers an additional time.
|
||||
DeckHints:Type$Shrine
|
||||
Oracle:At the beginning of your upkeep, you may search your library and/or graveyard for a Shrine card and put it onto the battlefield. If you search your library this way, shuffle it.\nIf an ability of another Shrine you control triggers while you control six or more Shrines, that ability triggers an additional time.
|
||||
@@ -85,6 +85,7 @@ cbRandomArtInPools=zufällige Kartenbilder in erzeugten Kartensammlungen
|
||||
cbEnableSounds=Ton aktiviert
|
||||
cbEnableMusic=Musik aktiviert
|
||||
cbAltSoundSystem=Nutze alternatives Sound-System
|
||||
cbSROptimize=Optimize UI for screen readers
|
||||
cbUiForTouchScreen=Verbessere Oberfläche für Touchscreens
|
||||
cbTimedTargOverlay=Aktiviere Zielpfeiloptimierung
|
||||
cbCompactMainMenu=Nutze kompakteres Seitenmenü
|
||||
@@ -180,6 +181,7 @@ SoundOptions=Sound Optionen
|
||||
nlEnableSounds=Geräusche während des Spiels
|
||||
nlEnableMusic=Hintergrundmusik während des Spiels
|
||||
nlAltSoundSystem=Nutze alternatives Sound-System (nur nutzen, wenn es Probleme mit fehlenden Geräuschen gibt)
|
||||
nlSrOptimize=Set various options to make FOrge work better with screen readers
|
||||
KeyboardShortcuts=Tastenkombinationen
|
||||
#VSubmenuAchievements.java
|
||||
lblAchievements=Errungenschaften
|
||||
|
||||
@@ -85,6 +85,7 @@ cbRandomArtInPools=Aleatorizar Arte de la Carta en los pools que se generen
|
||||
cbEnableSounds=Activar sonidos
|
||||
cbEnableMusic=Activar música
|
||||
cbAltSoundSystem=Utilizar el sistema de sonido alternativo
|
||||
cbSROptimize=Optimize UI for screen readers
|
||||
cbUiForTouchScreen=Mejorar la interfaz de usuario para pantallas táctiles
|
||||
cbTimedTargOverlay=Habilitar optimización de superposición de capas
|
||||
cbCompactMainMenu=Usar el menú de la barra lateral principal compacta
|
||||
@@ -180,6 +181,7 @@ SoundOptions=Opciones de Sonido
|
||||
nlEnableSounds=Habilitar efectos de sonido durante el juego
|
||||
nlEnableMusic=Habilitar música de fondo durante el juego
|
||||
nlAltSoundSystem=Use el sistema de sonido alternativo (solo use si tiene problemas con el sonido que no se reproduce o desaparece)
|
||||
nlSrOptimize=Set various options to make FOrge work better with screen readers
|
||||
KeyboardShortcuts=Atajos de teclado
|
||||
#VSubmenuAchievements.java
|
||||
lblAchievements=Logros
|
||||
|
||||
@@ -85,6 +85,7 @@ cbRandomArtInPools=Randomizza l''arte della carta nei pool di carte generati
|
||||
cbEnableSounds=Abilita suoni
|
||||
cbEnableMusic=Abilita musica
|
||||
cbAltSoundSystem=Usa un sistema audio alternativo
|
||||
cbSROptimize=Optimize UI for screen readers
|
||||
cbUiForTouchScreen=Migliora l''interfaccia utente per i touchscreen
|
||||
cbTimedTargOverlay=Abilita ottimizzazione overlay di targeting
|
||||
cbCompactMainMenu=Usa il menu principale della barra laterale compatta
|
||||
@@ -180,6 +181,7 @@ SoundOptions=Opzioni audio
|
||||
nlEnableSounds=Abilita gli effetti sonori durante il gioco
|
||||
nlEnableMusic=Abilita la musica di sottofondo durante il gioco
|
||||
nlAltSoundSystem=Utilizza il sistema audio alternativo (utilizza solo se hai problemi con l''audio che non viene riprodotto o che scompare)
|
||||
nlSrOptimize=Set various options to make FOrge work better with screen readers
|
||||
KeyboardShortcuts=Tasti rapidi
|
||||
#VSubmenuAchievements.java
|
||||
lblAchievements=realizzazioni
|
||||
|
||||
@@ -86,6 +86,7 @@ cbEnableSounds=启用音效
|
||||
cbEnableMusic=启用背景音乐
|
||||
cbAltSoundSystem=使用备用音效系统
|
||||
cbUiForTouchScreen=触摸屏UI增强
|
||||
cbSROptimize=为屏幕阅读器启用UI优化
|
||||
cbTimedTargOverlay=启用定位叠加优化
|
||||
cbCompactMainMenu=使用紧凑的主侧边栏菜单
|
||||
cbDetailedPaymentDesc=在付费提示中详细描述咒语
|
||||
@@ -180,6 +181,7 @@ SoundOptions=声音选项
|
||||
nlEnableSounds=在游戏中启用声音效果
|
||||
nlEnableMusic=在游戏中启用背景音乐
|
||||
nlAltSoundSystem=使用备用音效系统(仅在声音消失的情况使用)
|
||||
nlSrOptimize=使屏幕阅读器能更好的在forge上使用
|
||||
KeyboardShortcuts=键盘快捷键
|
||||
#VSubmenuAchievements.java
|
||||
lblAchievements=成就
|
||||
|
||||
Reference in New Issue
Block a user