mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 04:08:01 +00:00
Merge branch 'hybrid' into 'master'
ManaEffect: fix for adding from cost with generic half See merge request core-developers/forge!6289
This commit is contained in:
@@ -217,7 +217,7 @@ public class CreatureEvaluator implements Function<Card, Integer> {
|
||||
value += addValue(14, "paired");
|
||||
}
|
||||
|
||||
if (!c.getEncodedCards().isEmpty()) {
|
||||
if (!c.hasEncodedCard()) {
|
||||
value += addValue(24, "encoded");
|
||||
}
|
||||
|
||||
|
||||
@@ -1333,7 +1333,7 @@ public class AttachAi extends SpellAbilityAi {
|
||||
CardCollection preferred = CardLists.filter(list, new Predicate<Card>() {
|
||||
@Override
|
||||
public boolean apply(final Card card) {
|
||||
return card.getAttachedCards().isEmpty();
|
||||
return !card.hasCardAttachments();
|
||||
}
|
||||
});
|
||||
return preferred.isEmpty() ? Aggregates.random(list) : Aggregates.random(preferred);
|
||||
|
||||
@@ -2387,9 +2387,6 @@ public class AbilityUtils {
|
||||
return doXMath(player.getCounters(CounterType.getType(counterType)), expr, c, ctb);
|
||||
}
|
||||
|
||||
if (sq[0].contains("YourPoisonCounters")) {
|
||||
return doXMath(player.getPoisonCounters(), expr, c, ctb);
|
||||
}
|
||||
if (sq[0].contains("TotalOppPoisonCounters")) {
|
||||
return doXMath(player.getOpponentsTotalPoisonCounters(), expr, c, ctb);
|
||||
}
|
||||
|
||||
@@ -149,21 +149,31 @@ public class ManaEffect extends SpellAbilityEffect {
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
int generic = enchanted.getManaCost().getGenericCost();
|
||||
if (generic > 0)
|
||||
sb.append(generic);
|
||||
|
||||
for (ManaCostShard s : enchanted.getManaCost()) {
|
||||
ColorSet cs = ColorSet.fromMask(s.getColorMask());
|
||||
byte chosenColor;
|
||||
if (cs.isColorless())
|
||||
continue;
|
||||
sb.append(' ');
|
||||
if (cs.isMonoColor())
|
||||
sb.append(MagicColor.toShortString(s.getColorMask()));
|
||||
if (s.isOr2Generic()) { // CR 106.8
|
||||
chosenColor = p.getController().chooseColorAllowColorless(Localizer.getInstance().getMessage("lblChooseSingleColorFromTarget", s.toString()), card, cs);
|
||||
if (chosenColor == MagicColor.COLORLESS) {
|
||||
generic += 2;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else if (cs.isMonoColor())
|
||||
chosenColor = s.getColorMask();
|
||||
else /* (cs.isMulticolor()) */ {
|
||||
byte chosenColor = p.getController().chooseColor(Localizer.getInstance().getMessage("lblChooseSingleColorFromTarget", s.toString()), sa, cs);
|
||||
chosenColor = p.getController().chooseColor(Localizer.getInstance().getMessage("lblChooseSingleColorFromTarget", s.toString()), sa, cs);
|
||||
}
|
||||
sb.append(MagicColor.toShortString(chosenColor));
|
||||
sb.append(' ');
|
||||
}
|
||||
if (generic > 0) {
|
||||
sb.append(generic);
|
||||
}
|
||||
|
||||
abMana.setExpressChoice(sb.toString().trim());
|
||||
} else if (type.equals("LastNotedType")) {
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
|
||||
@@ -4819,7 +4819,7 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
||||
}
|
||||
|
||||
setPhasedOut(!phasedOut);
|
||||
final Combat combat = getGame().getPhaseHandler().getCombat();
|
||||
final Combat combat = getGame().getCombat();
|
||||
if (combat != null && phasedOut) {
|
||||
combat.saveLKI(this);
|
||||
combat.removeFromCombat(this);
|
||||
|
||||
@@ -141,7 +141,7 @@ public class CostPartMana extends CostPart {
|
||||
// back from the brink
|
||||
return sa.getPaidList(CostExile.HashLKIListKey).get(0).getManaCost();
|
||||
}
|
||||
if (isEnchantedCreatureCost() && sa.getHostCard().getEnchantingCard() != null) {
|
||||
if (isEnchantedCreatureCost() && sa.getHostCard().isEnchantingCard()) {
|
||||
return sa.getHostCard().getEnchantingCard().getManaCost();
|
||||
}
|
||||
if (isCostPayAnyNumberOfTimes) {
|
||||
|
||||
Reference in New Issue
Block a user