mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
NCC: Gavel of the Righteous and output support (#298)
This commit is contained in:
@@ -2789,13 +2789,14 @@ public class CardFactoryUtil {
|
||||
String valid = k.length > 2 && !k[2].isEmpty() ? k[2] : "Creature.YouCtrl";
|
||||
String vstr = k.length > 3 && !k[3].isEmpty() ? k[3] : "creature";
|
||||
String extra = k.length > 4 ? k[4] : "";
|
||||
boolean altCost = extra.contains("AlternateCost");
|
||||
String extraDesc = k.length > 5 ? k[5] : "";
|
||||
// Create attach ability string
|
||||
final StringBuilder abilityStr = new StringBuilder();
|
||||
abilityStr.append("AB$ Attach | Cost$ ");
|
||||
abilityStr.append(equipCost);
|
||||
abilityStr.append("| ValidTgts$ ").append(valid);
|
||||
abilityStr.append("| TgtPrompt$ Select target ").append(vstr).append(" you control ");
|
||||
abilityStr.append(" | TgtPrompt$ Select target ").append(vstr).append(" you control ");
|
||||
abilityStr.append("| SorcerySpeed$ True | Equip$ True | AILogic$ Pump | IsPresent$ Equipment.Self+nonCreature ");
|
||||
// add AttachAi for some special cards
|
||||
if (card.hasSVar("AttachAi")) {
|
||||
@@ -2806,19 +2807,23 @@ public class CardFactoryUtil {
|
||||
abilityStr.append(" ").append(vstr);
|
||||
}
|
||||
Cost cost = new Cost(equipCost, true);
|
||||
if (!cost.isOnlyManaCost()) { //Something other than a mana cost
|
||||
if (!cost.isOnlyManaCost() || altCost) { //Something other than a mana cost
|
||||
abilityStr.append("—");
|
||||
} else {
|
||||
abilityStr.append(" ");
|
||||
}
|
||||
abilityStr.append("| CostDesc$ ").append(cost.toSimpleString()).append(" ");
|
||||
if (!altCost) {
|
||||
abilityStr.append("| CostDesc$ ").append(cost.toSimpleString()).append(" ");
|
||||
}
|
||||
abilityStr.append("| SpellDescription$ ");
|
||||
if (!extraDesc.isEmpty()) {
|
||||
abilityStr.append(". ").append(extraDesc).append(". ");
|
||||
}
|
||||
abilityStr.append("(").append(inst.getReminderText()).append(")");
|
||||
if (!altCost) {
|
||||
abilityStr.append("(").append(inst.getReminderText()).append(")");
|
||||
}
|
||||
if (!extra.isEmpty()) {
|
||||
abilityStr.append("| ").append(extra);
|
||||
abilityStr.append(" | ").append(extra);
|
||||
}
|
||||
// instantiate attach ability
|
||||
final SpellAbility newSA = AbilityFactory.getAbility(abilityStr.toString(), card);
|
||||
|
||||
@@ -864,15 +864,21 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit
|
||||
if (hasParam("CostDesc")) {
|
||||
sb.append(getParam("CostDesc")).append(" ");
|
||||
} else {
|
||||
sb.append(payCosts.toString());
|
||||
|
||||
// for cards like Crystal Shard with {3}, {T} or {U}, {T}:
|
||||
if (hasParam("AlternateCost")) {
|
||||
Cost alternateCost = new Cost(getParam("AlternateCost"), payCosts.isAbility());
|
||||
sb.append(" or ").append(alternateCost.toString());
|
||||
boolean altOnlyMana = alternateCost.isOnlyManaCost();
|
||||
if (payCosts.isOnlyManaCost() && !altOnlyMana) {
|
||||
sb.append("Pay ");
|
||||
}
|
||||
sb.append(payCosts.toString());
|
||||
sb.append(" or ").append(altOnlyMana ? alternateCost.toString() :
|
||||
StringUtils.uncapitalize(alternateCost.toString()));
|
||||
sb.append(isEquip() ? "." : "");
|
||||
} else {
|
||||
sb.append(payCosts.toString());
|
||||
}
|
||||
|
||||
if (payCosts.isAbility()) {
|
||||
if (payCosts.isAbility() && !isEquip()) {
|
||||
sb.append(": ");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
Name:Gavel of the Righteous
|
||||
ManaCost:2
|
||||
Types:Artifact Equipment
|
||||
T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of combat on your turn, put a charge counter on CARDNAME.
|
||||
SVar:TrigPutCounter:DB$ PutCounter | CounterType$ CHARGE
|
||||
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ X | AddToughness$ X | Description$ Equipped creature gets +1/+1 for each counter on CARDNAME.
|
||||
SVar:X:Count$CardCounters.ALL
|
||||
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddKeyword$ Double Strike | CheckSVar$ X | SVarCompare$ GE4 | Description$ As long as CARDNAME has four or more counters on it, equipped creature has double strike.
|
||||
K:Equip:3:::AlternateCost$ RemoveAnyCounter<1/Any/Card.Self/CARDNAME>
|
||||
DeckHas:Ability$Counters
|
||||
DeckHints:Ability$Counters
|
||||
Oracle:At the beginning of combat on your turn, put a charge counter on Gavel of the Righteous.\nEquipped creature gets +1/+1 for each counter on Gavel of the Righteous.\nAs long as Gavel of the Righteous has four or more counters on it, equipped creature has double strike.\nEquip—Pay {3} or remove a counter from Gavel of the Righteous.
|
||||
@@ -2391,7 +2391,7 @@ lblSelectNMoreTypeCardsTpReveal=Wähle {0} weitere {1} Karte(n) zum Vorzeigen.
|
||||
lblSelectTargetCounter=Wähle {0} um Marke zu entfernen
|
||||
lblRemoveCounterFromCard=Entferne Marke von Karte
|
||||
lblRemoveAllCountersConfirm=Entferne alle Marken?
|
||||
lblRemoveNTargetCounterFromCardPayCostConfirm=Zahle Kosten: Entferne {0} {1}-Marken von {2}?
|
||||
lblRemoveNTargetCounterFromCardPayCostConfirm=Zahle Kosten: Entferne {0}{1}-Marken von {2}?
|
||||
lblRemoveCountersFromAInZoneCard=Entferne Marke(n) von einer Karte in {0}
|
||||
lblSacrificeCardConfirm=Opfere {0}?
|
||||
lblSelectATargetToSacrifice=Wähle ein(e) {0} zum Opfern (noch {1})
|
||||
|
||||
@@ -2389,7 +2389,7 @@ lblSelectNMoreTypeCardsTpReveal=Select {0} more {1} card(s) to reveal.
|
||||
lblSelectTargetCounter=Select {0} to remove a counter
|
||||
lblRemoveCounterFromCard=remove counter from card
|
||||
lblRemoveAllCountersConfirm=Remove all counters?
|
||||
lblRemoveNTargetCounterFromCardPayCostConfirm=Remove {0} {1} counter(s) from {2}?
|
||||
lblRemoveNTargetCounterFromCardPayCostConfirm=Select {2} to remove {0}{1} counter(s) from
|
||||
lblRemoveCountersFromAInZoneCard=Remove counter(s) from a card in {0}
|
||||
lblSacrificeCardConfirm=Sacrifice {0}?
|
||||
lblSelectATargetToSacrifice=Select {0} to sacrifice ({1} left)
|
||||
|
||||
@@ -2389,7 +2389,7 @@ lblSelectNMoreTypeCardsTpReveal=Selecciona {0} más {1} carta(s) para mostrar.
|
||||
lblSelectTargetCounter=Selecciona {0} para quitar un contador
|
||||
lblRemoveCounterFromCard=quitar contador de la carta
|
||||
lblRemoveAllCountersConfirm=¿Quitar todos los contadores?
|
||||
lblRemoveNTargetCounterFromCardPayCostConfirm=Paga el coste: ¿Quitar el contador de {0} {1} de {2}?
|
||||
lblRemoveNTargetCounterFromCardPayCostConfirm=Paga el coste: ¿Quitar el contador de {0}{1} de {2}?
|
||||
lblRemoveCountersFromAInZoneCard=Quitar contador(es) de una carta en {0}
|
||||
lblSacrificeCardConfirm=¿Sacrificar {0}?
|
||||
lblSelectATargetToSacrifice=Selecciona un {0} para sacrificar ({1} pendiente)
|
||||
|
||||
@@ -2464,7 +2464,7 @@ lblSelectNMoreTypeCardsTpReveal=Escolha mais {0} carta(s) {1} para revelar.
|
||||
lblSelectTargetCounter=Selecione {0} para remover um marcador
|
||||
lblRemoveCounterFromCard=remover marcador do cartão
|
||||
lblRemoveAllCountersConfirm=Remover todos os marcadores?
|
||||
lblRemoveNTargetCounterFromCardPayCostConfirm=Remover {0} {1} contador(es) de {2}?
|
||||
lblRemoveNTargetCounterFromCardPayCostConfirm=Remover {0}{1} contador(es) de {2}?
|
||||
lblRemoveCountersFromAInZoneCard=Remover marcador(es) de uma carta em {0}
|
||||
lblSacrificeCardConfirm=Sacrificar {0}?
|
||||
lblSelectATargetToSacrifice=Selecione {0} para sacrificar ({1} restantes)
|
||||
|
||||
@@ -816,8 +816,13 @@ public class HumanCostDecision extends CostDecisionMakerBase {
|
||||
super(controller, cntCounters, cntCounters, sa);
|
||||
this.validChoices = validCards;
|
||||
counterType = cType;
|
||||
String fromWhat = costPart.getDescriptiveType();
|
||||
if (fromWhat.equals("CARDNAME")) {
|
||||
fromWhat = sa.getHostCard().getName();
|
||||
}
|
||||
|
||||
setMessage(Localizer.getInstance().getMessage("lblRemoveNTargetCounterFromCardPayCostConfirm", "%d", counterType == null ? "any" : counterType.getName().toLowerCase(), costPart.getDescriptiveType()));
|
||||
setMessage(Localizer.getInstance().getMessage("lblRemoveNTargetCounterFromCardPayCostConfirm",
|
||||
"%d", counterType == null ? "" : " " + counterType.getName().toLowerCase(), fromWhat));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user