mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
Merge pull request #1892 from tool4ever/canFaceDownBeShownTo
Fix canFaceDownBeShownTo
This commit is contained in:
@@ -1337,7 +1337,7 @@ public class AiBlockController {
|
||||
}
|
||||
|
||||
int evalBlk;
|
||||
if (blocker.isFaceDown() && blocker.getView().canFaceDownBeShownTo(ai.getView(), false) && blocker.getState(CardStateName.Original).getType().isCreature()) {
|
||||
if (blocker.isFaceDown() && blocker.getView().canFaceDownBeShownTo(ai.getView()) && blocker.getState(CardStateName.Original).getType().isCreature()) {
|
||||
// if the blocker is a face-down creature (e.g. cast via Morph, Manifest), evaluate it
|
||||
// in relation to the original state, not to the Morph state
|
||||
evalBlk = ComputerUtilCard.evaluateCreature(Card.fromPaperCard(blocker.getPaperCard(), ai), false, true);
|
||||
|
||||
@@ -409,7 +409,7 @@ public class ComputerUtilCost {
|
||||
}
|
||||
|
||||
/**
|
||||
* Check creature sacrifice cost.
|
||||
* Check TapType cost.
|
||||
*
|
||||
* @param cost
|
||||
* the cost
|
||||
|
||||
@@ -220,7 +220,6 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
||||
|
||||
private long bestowTimestamp = -1;
|
||||
private long transformedTimestamp = 0;
|
||||
private long convertedTimestamp = 0;
|
||||
private long mutatedTimestamp = -1;
|
||||
private long prototypeTimestamp = -1;
|
||||
private int timesMutated = 0;
|
||||
@@ -394,9 +393,6 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
||||
public long getTransformedTimestamp() { return transformedTimestamp; }
|
||||
public void incrementTransformedTimestamp() { this.transformedTimestamp++; }
|
||||
|
||||
public long getConvertedTimestamp() { return convertedTimestamp; }
|
||||
public void incrementConvertedTimestamp() { this.convertedTimestamp++; }
|
||||
|
||||
public CardState getCurrentState() {
|
||||
return currentState;
|
||||
}
|
||||
|
||||
@@ -590,12 +590,12 @@ public class CardView extends GameEntityView {
|
||||
return Iterables.any(viewers, new Predicate<PlayerView>() {
|
||||
@Override
|
||||
public final boolean apply(final PlayerView input) {
|
||||
return canFaceDownBeShownTo(input, false);
|
||||
return canFaceDownBeShownTo(input);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public boolean canFaceDownBeShownTo(final PlayerView viewer, boolean skip) {
|
||||
public boolean canFaceDownBeShownTo(final PlayerView viewer) {
|
||||
if (!isFaceDown()) {
|
||||
return true;
|
||||
}
|
||||
@@ -604,12 +604,10 @@ public class CardView extends GameEntityView {
|
||||
if (mayPlayerLook(viewer)) {
|
||||
return true;
|
||||
}
|
||||
if (!skip) {
|
||||
//if viewer is controlled by another player, also check if face can be shown to that player
|
||||
final PlayerView mindSlaveMaster = viewer.getMindSlaveMaster();
|
||||
if (mindSlaveMaster != null) {
|
||||
return canFaceDownBeShownTo(mindSlaveMaster, true);
|
||||
}
|
||||
//if viewer is controlled by another player, also check if face can be shown to that player
|
||||
final PlayerView mindSlaveMaster = getController().getMindSlaveMaster();
|
||||
if (mindSlaveMaster != null && mindSlaveMaster != getController() && mindSlaveMaster == viewer) {
|
||||
return canFaceDownBeShownTo(getController());
|
||||
}
|
||||
|
||||
return isInZone(EnumSet.of(ZoneType.Battlefield, ZoneType.Stack, ZoneType.Sideboard)) && getController().equals(viewer);
|
||||
|
||||
@@ -2,7 +2,9 @@ Name:Akoum Flameseeker
|
||||
ManaCost:2 R
|
||||
Types:Creature Human Shaman Ally
|
||||
PT:3/2
|
||||
A:AB$ Draw | Cost$ T tapXType<1/Ally> | UnlessCost$ Discard<1/Card> | UnlessSwitched$ True | UnlessPayer$ You | PrecostDesc$ Cohort — | SpellDescription$ Discard a card. If you do, draw a card.
|
||||
A:AB$ Discard | Cost$ T tapXType<1/Ally> | Defined$ You | NumCards$ 1 | Mode$ TgtChoose | RememberDiscarded$ True | SubAbility$ DBDraw | PrecostDesc$ Cohort — | SpellDescription$ Discard a card. If you do, draw a card.
|
||||
SVar:DBDraw:DB$ Draw | NumCards$ 1 | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE1 | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
AI:RemoveDeck:All
|
||||
DeckHints:Type$Ally
|
||||
Oracle:Cohort — {T}, Tap an untapped Ally you control: Discard a card. If you do, draw a card.
|
||||
|
||||
@@ -2,8 +2,8 @@ Name:Captain's Maneuver
|
||||
ManaCost:X R W
|
||||
Types:Instant
|
||||
# turn targeted creature or player into chosen
|
||||
A:SP$ ChoosePlayer | Cost$ X R W | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | Choices$ TargetedPlayer | Defined$ You | SubAbility$ DBChooseCreature | StackDescription$ SpellDescription | SpellDescription$ The next X damage that would be dealt to target creature, planeswalker, or player this turn is dealt to another target creature, planeswalker, or player instead.
|
||||
SVar:DBChooseCreature:DB$ ChooseCard | DefinedCards$ Targeted | Mandatory$ True | Defined$ You | SubAbility$ DBSetVarBefore
|
||||
A:SP$ ChoosePlayer | Cost$ X R W | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | Choices$ ThisTargetedPlayer | Defined$ You | SubAbility$ DBChooseCreature | StackDescription$ SpellDescription | SpellDescription$ The next X damage that would be dealt to target creature, planeswalker, or player this turn is dealt to another target creature, planeswalker, or player instead.
|
||||
SVar:DBChooseCreature:DB$ ChooseCard | DefinedCards$ ParentTargeted | Mandatory$ True | Defined$ You | SubAbility$ DBSetVarBefore
|
||||
SVar:DBSetVarBefore:DB$ StoreSVar | SVar$ Y | Type$ Calculate | Expression$ X | SubAbility$ DBEffect
|
||||
SVar:DBEffect:DB$ Effect | ValidTgts$ Creature,Player,Planeswalker | TargetUnique$ True | TgtPrompt$ Select another target to redirect the damage to | ReplacementEffects$ ManeuverDamage | Triggers$ OutOfSight | RememberObjects$ ThisTargetedCard,ThisTargetedPlayer | SubAbility$ DBCleanup
|
||||
SVar:ManeuverDamage:Event$ DamageDone | ValidTarget$ Card.Creature+ChosenCard,Card.Planeswalker+ChosenCard,Player.Chosen | ReplaceWith$ ManeuverDmg | DamageTarget$ Remembered | Description$ The next X damage that would be dealt to target creature, planeswalker, or player this turn is dealt to another target creature, planeswalker, or player instead.
|
||||
|
||||
Reference in New Issue
Block a user