mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
Venture into abilities - added card hints about current dungeon and room (part of #12274);
This commit is contained in:
parent
e1ab0be505
commit
bf2c4cac15
43 changed files with 153 additions and 33 deletions
|
|
@ -10,6 +10,7 @@ import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
|||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.ReturnToHandSourceEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -50,7 +51,9 @@ public final class AcererakTheArchlich extends CardImpl {
|
|||
"to its owner's hand and venture into the dungeon."
|
||||
);
|
||||
ability.addEffect(new VentureIntoTheDungeonEffect());
|
||||
this.addAbility(ability.addHint(CompletedDungeonCondition.getHint()), new CompletedDungeonWatcher());
|
||||
ability.addHint(CurrentDungeonHint.instance);
|
||||
ability.addHint(CompletedDungeonCondition.getHint());
|
||||
this.addAbility(ability, new CompletedDungeonWatcher());
|
||||
|
||||
// Whenever Acererak the Archlich attacks, for each opponent, you create a 2/2 black Zombie creature token unless that player sacrifices a creature.
|
||||
this.addAbility(new AttacksTriggeredAbility(new AcererakTheArchlichEffect()));
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import java.util.UUID;
|
|||
|
||||
import mage.abilities.effects.common.CounterTargetEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -33,6 +34,7 @@ public final class BarTheGate extends CardImpl {
|
|||
this.getSpellAbility().addTarget(new TargetSpell(filter));
|
||||
this.getSpellAbility().addEffect(new CounterTargetEffect());
|
||||
this.getSpellAbility().addEffect(new VentureIntoTheDungeonEffect());
|
||||
this.getSpellAbility().addHint(CurrentDungeonHint.instance);
|
||||
}
|
||||
|
||||
private BarTheGate(final BarTheGate card) {
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import mage.abilities.condition.common.CompletedDungeonCondition;
|
|||
import mage.abilities.decorator.ConditionalOneShotEffect;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -44,7 +45,8 @@ public final class BarrowinOfClanUndurr extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// When Barrowin of Clan Undurr enters the battlefield, venture into the dungeon.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new VentureIntoTheDungeonEffect()));
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new VentureIntoTheDungeonEffect())
|
||||
.addHint(CurrentDungeonHint.instance));
|
||||
|
||||
// Whenever Barrowin of Clan Undurr attacks, return up to one creature card with mana value 3 or less from your graveyard to the battlefield if you've completed a dungeon.
|
||||
Ability ability = new AttacksTriggeredAbility(new ConditionalOneShotEffect(
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package mage.cards.c;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.DiesSourceTriggeredAbility;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -23,7 +24,8 @@ public final class ClatteringSkeletons extends CardImpl {
|
|||
this.toughness = new MageInt(3);
|
||||
|
||||
// When Clattering Skeletons dies, venture into the dungeon.
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new VentureIntoTheDungeonEffect()));
|
||||
this.addAbility(new DiesSourceTriggeredAbility(new VentureIntoTheDungeonEffect())
|
||||
.addHint(CurrentDungeonHint.instance));
|
||||
}
|
||||
|
||||
private ClatteringSkeletons(final ClatteringSkeletons card) {
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import mage.abilities.decorator.ConditionalContinuousEffect;
|
|||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -32,7 +33,8 @@ public final class CloisterGargoyle extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
// When Cloister Gargoyle enters the battlefield, venture into the dungeon.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new VentureIntoTheDungeonEffect()));
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new VentureIntoTheDungeonEffect())
|
||||
.addHint(CurrentDungeonHint.instance));
|
||||
|
||||
// As long as you've completed a dungeon, Cloister Gargoyle gets +3/+0 and has flying.
|
||||
Ability ability = new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import mage.abilities.common.AttacksAttachedTriggeredAbility;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.continuous.BoostEquippedEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.keyword.EquipAbility;
|
||||
import mage.constants.SubType;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -27,7 +28,8 @@ public final class DelversTorch extends CardImpl {
|
|||
this.addAbility(new SimpleStaticAbility(new BoostEquippedEffect(1, 1)));
|
||||
|
||||
// Whenever equipped creature attacks, venture into the dungeon.
|
||||
this.addAbility(new AttacksAttachedTriggeredAbility(new VentureIntoTheDungeonEffect()));
|
||||
this.addAbility(new AttacksAttachedTriggeredAbility(new VentureIntoTheDungeonEffect())
|
||||
.addHint(CurrentDungeonHint.instance));
|
||||
|
||||
// Equip {3}
|
||||
this.addAbility(new EquipAbility(3));
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import mage.abilities.common.SimpleActivatedAbility;
|
|||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.ReturnToHandSourceEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -27,7 +28,8 @@ public final class DisplacerBeast extends CardImpl {
|
|||
this.toughness = new MageInt(2);
|
||||
|
||||
// When Displacer Beast enters the battlefield, venture into the dungeon.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new VentureIntoTheDungeonEffect()));
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new VentureIntoTheDungeonEffect())
|
||||
.addHint(CurrentDungeonHint.instance));
|
||||
|
||||
// Displacement — {3}{U}: Return Displacer Beast to its owner's hand.
|
||||
this.addAbility(new SimpleActivatedAbility(
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import mage.abilities.costs.common.TapSourceCost;
|
|||
import mage.abilities.costs.common.TapTargetCost;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.mana.ColorlessManaAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -45,6 +46,7 @@ public final class DungeonDescent extends CardImpl {
|
|||
Ability ability = new ActivateAsSorceryActivatedAbility(new VentureIntoTheDungeonEffect(), new GenericManaCost(4));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new TapTargetCost(new TargetControlledCreaturePermanent(filter)));
|
||||
ability.addHint(CurrentDungeonHint.instance);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import mage.abilities.common.ActivateAsSorceryActivatedAbility;
|
|||
import mage.abilities.costs.common.TapSourceCost;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.mana.ColorlessManaAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -28,6 +29,7 @@ public final class DungeonMap extends CardImpl {
|
|||
new VentureIntoTheDungeonEffect(), new GenericManaCost(3)
|
||||
);
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addHint(CurrentDungeonHint.instance);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import mage.abilities.condition.common.CompletedDungeonCondition;
|
|||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.effects.ContinuousEffectImpl;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -36,7 +37,8 @@ public final class EccentricApprentice extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// When Eccentric Apprentice enters the battlefield, venture into the dungeon.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new VentureIntoTheDungeonEffect()));
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new VentureIntoTheDungeonEffect())
|
||||
.addHint(CurrentDungeonHint.instance));
|
||||
|
||||
// At the beginning of combat on your turn, if you've completed a dungeon, up to one target creature becomes a Bird with base power and toughness 1/1 and flying until end of turn.
|
||||
Ability ability = new ConditionalInterveningIfTriggeredAbility(
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import mage.abilities.LoyaltyAbility;
|
|||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.effects.common.GetEmblemEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.cards.*;
|
||||
import mage.constants.*;
|
||||
import mage.filter.StaticFilters;
|
||||
|
|
@ -29,7 +30,8 @@ public final class EllywickTumblestrum extends CardImpl {
|
|||
this.setStartingLoyalty(4);
|
||||
|
||||
// +1: Venture into the dungeon.
|
||||
this.addAbility(new LoyaltyAbility(new VentureIntoTheDungeonEffect(), 1));
|
||||
this.addAbility(new LoyaltyAbility(new VentureIntoTheDungeonEffect(), 1)
|
||||
.addHint(CurrentDungeonHint.instance));
|
||||
|
||||
// −2: Look at the top six cards of your library. You may reveal a creature card from among them and put it into your hand. If it's legendary, you gain 3 life. Put the rest on the bottom of your library in a random order.
|
||||
this.addAbility(new LoyaltyAbility(new EllywickTumblestrumEffect(), -2));
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package mage.cards.f;
|
|||
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToHandTargetEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -24,6 +25,7 @@ public final class FatesReversal extends CardImpl {
|
|||
0, 1, StaticFilters.FILTER_CARD_CREATURE_YOUR_GRAVEYARD
|
||||
));
|
||||
this.getSpellAbility().addEffect(new VentureIntoTheDungeonEffect().concatBy("."));
|
||||
this.getSpellAbility().addHint(CurrentDungeonHint.instance);
|
||||
}
|
||||
|
||||
private FatesReversal(final FatesReversal card) {
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import mage.abilities.costs.mana.ManaCostsImpl;
|
|||
import mage.abilities.effects.common.DontUntapInControllersNextUntapStepTargetEffect;
|
||||
import mage.abilities.effects.common.combat.CantBlockTargetEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -44,6 +45,7 @@ public final class FiftyFeetOfRope extends CardImpl {
|
|||
// Rappel Down — {4}, {T}: Venture into the dungeon. Activate only as a sorcery.
|
||||
ability = new ActivateAsSorceryActivatedAbility(new VentureIntoTheDungeonEffect(), new ManaCostsImpl<>("{4}"));
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addHint(CurrentDungeonHint.instance);
|
||||
this.addAbility(ability.withFlavorWord("Rappel Down"));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import mage.abilities.costs.common.TapSourceCost;
|
|||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.keyword.EnchantAbility;
|
||||
import mage.abilities.mana.SimpleManaAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -36,7 +37,8 @@ public final class FindThePath extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// When Find the Path enters the battlefield, venture into the dungeon.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new VentureIntoTheDungeonEffect()));
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new VentureIntoTheDungeonEffect())
|
||||
.addHint(CurrentDungeonHint.instance));
|
||||
|
||||
// Enchanted land has "{T}: Add {G}{G}."
|
||||
this.addAbility(new SimpleStaticAbility(new GainAbilityAttachedEffect(
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityAttachedEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.constants.AttachmentType;
|
||||
import mage.constants.SubType;
|
||||
|
|
@ -43,6 +44,7 @@ public final class Fly extends CardImpl {
|
|||
new DealsCombatDamageToAPlayerTriggeredAbility(new VentureIntoTheDungeonEffect(), false),
|
||||
AttachmentType.AURA).setText("and \"Whenever this creature deals combat damage to a player, venture into the dungeon.\"")
|
||||
);
|
||||
ability.addHint(CurrentDungeonHint.instance);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import mage.abilities.costs.mana.ManaCostsImpl;
|
|||
import mage.abilities.effects.ContinuousEffectImpl;
|
||||
import mage.abilities.effects.RestrictionEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.keyword.InspiredAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -38,7 +39,8 @@ public final class ImmovableRod extends CardImpl {
|
|||
this.addAbility(new SkipUntapOptionalAbility());
|
||||
|
||||
// Whenever Immovable Rod becomes untapped, venture into the dungeon.
|
||||
this.addAbility(new InspiredAbility(new VentureIntoTheDungeonEffect(), false, false));
|
||||
this.addAbility(new InspiredAbility(new VentureIntoTheDungeonEffect(), false, false)
|
||||
.addHint(CurrentDungeonHint.instance));
|
||||
|
||||
// {3}{W}, {T}: For as long as Immovable Rod remains tapped, another target permanent loses all abilities and can't attack or block.
|
||||
Ability ability = new SimpleActivatedAbility(new ImmovableRodAbilityEffect(), new ManaCostsImpl<>("{3}{W}"));
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package mage.cards.i;
|
|||
|
||||
import mage.MageInt;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.keyword.PackTacticsAbility;
|
||||
import mage.abilities.keyword.ReachAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -28,7 +29,8 @@ public final class IntrepidOutlander extends CardImpl {
|
|||
this.addAbility(ReachAbility.getInstance());
|
||||
|
||||
// Pack tactics — Whenever Intrepid Outlander attacks, if you attacked with creatures with total power 6 or greater this combat, venture into the dungeon.
|
||||
this.addAbility(new PackTacticsAbility(new VentureIntoTheDungeonEffect()));
|
||||
this.addAbility(new PackTacticsAbility(new VentureIntoTheDungeonEffect())
|
||||
.addHint(CurrentDungeonHint.instance));
|
||||
}
|
||||
|
||||
private IntrepidOutlander(final IntrepidOutlander card) {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import mage.abilities.Ability;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.ContinuousRuleModifyingEffectImpl;
|
||||
import mage.abilities.effects.common.continuous.GainAbilityControllerEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.keyword.HexproofAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -35,7 +36,7 @@ public final class KeenEaredSentry extends CardImpl {
|
|||
this.addAbility(new SimpleStaticAbility(new GainAbilityControllerEffect(HexproofAbility.getInstance())));
|
||||
|
||||
// Your opponents can't venture into the dungeon more than once each turn.
|
||||
this.addAbility(new SimpleStaticAbility(new KeenEaredSentryEffect()), new KeenEaredSentryWatcher());
|
||||
this.addAbility(new SimpleStaticAbility(new KeenEaredSentryEffect()).addHint(CurrentDungeonHint.instance), new KeenEaredSentryWatcher());
|
||||
}
|
||||
|
||||
private KeenEaredSentry(final KeenEaredSentry card) {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import mage.abilities.effects.common.combat.CantBeBlockedTargetEffect;
|
|||
import mage.abilities.effects.common.continuous.GainAbilityTargetEffect;
|
||||
import mage.abilities.effects.common.counter.AddCountersTargetEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.keyword.HasteAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -40,6 +41,7 @@ public final class KickInTheDoor extends CardImpl {
|
|||
.setText("and can't be blocked by Walls this turn")
|
||||
);
|
||||
this.getSpellAbility().addEffect(new VentureIntoTheDungeonEffect());
|
||||
this.getSpellAbility().addHint(CurrentDungeonHint.instance);
|
||||
}
|
||||
|
||||
private KickInTheDoor(final KickInTheDoor card) {
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import mage.abilities.common.DealCombatDamageControlledTriggeredAbility;
|
|||
import mage.abilities.common.SimpleStaticAbility;
|
||||
import mage.abilities.effects.common.combat.CantBeBlockedByCreaturesAllEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -44,7 +45,8 @@ public final class MidnightPathlighter extends CardImpl {
|
|||
)));
|
||||
|
||||
// Whenever one or more creatures you control deal combat damage to a player, venture into the dungeon.
|
||||
this.addAbility(new DealCombatDamageControlledTriggeredAbility(new VentureIntoTheDungeonEffect()));
|
||||
this.addAbility(new DealCombatDamageControlledTriggeredAbility(new VentureIntoTheDungeonEffect())
|
||||
.addHint(CurrentDungeonHint.instance));
|
||||
}
|
||||
|
||||
private MidnightPathlighter(final MidnightPathlighter card) {
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import mage.abilities.condition.common.CompletedDungeonCondition;
|
|||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.keyword.VigilanceAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -36,7 +37,8 @@ public final class NadaarSelflessPaladin extends CardImpl {
|
|||
this.addAbility(VigilanceAbility.getInstance());
|
||||
|
||||
// Whenever Nadaar, Selfless Paladin enters the battlefield or attacks, venture into the dungeon.
|
||||
this.addAbility(new EntersBattlefieldOrAttacksSourceTriggeredAbility(new VentureIntoTheDungeonEffect()));
|
||||
this.addAbility(new EntersBattlefieldOrAttacksSourceTriggeredAbility(new VentureIntoTheDungeonEffect())
|
||||
.addHint(CurrentDungeonHint.instance));
|
||||
|
||||
// Other creatures you control get +1/+1 as long as you've completed a dungeon.
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package mage.cards.p;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.AttacksTriggeredAbility;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -27,7 +28,8 @@ public final class PlanarAlly extends CardImpl {
|
|||
this.addAbility(FlyingAbility.getInstance());
|
||||
|
||||
// Whenever Planar Ally attacks, venture into the dungeon.
|
||||
this.addAbility(new AttacksTriggeredAbility(new VentureIntoTheDungeonEffect(), false));
|
||||
this.addAbility(new AttacksTriggeredAbility(new VentureIntoTheDungeonEffect(), false)
|
||||
.addHint(CurrentDungeonHint.instance));
|
||||
}
|
||||
|
||||
private PlanarAlly(final PlanarAlly card) {
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import mage.abilities.decorator.ConditionalContinuousEffect;
|
|||
import mage.abilities.effects.common.AttachEffect;
|
||||
import mage.abilities.effects.common.continuous.BoostEnchantedEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.keyword.EnchantAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -38,7 +39,8 @@ public final class PrecipitousDrop extends CardImpl {
|
|||
this.addAbility(ability);
|
||||
|
||||
// When Precipitous Drop enters the battlefield, venture into the dungeon.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new VentureIntoTheDungeonEffect()));
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new VentureIntoTheDungeonEffect())
|
||||
.addHint(CurrentDungeonHint.instance));
|
||||
|
||||
// Enchanted creature gets -2/-2. It gets -5/-5 instead as long as you've completed a dungeon.
|
||||
this.addAbility(new SimpleStaticAbility(new ConditionalContinuousEffect(
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import mage.abilities.costs.common.DiscardSourceCost;
|
|||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.GainLifeEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.abilities.keyword.LifelinkAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -48,7 +49,7 @@ public final class RadiantSolar extends CardImpl {
|
|||
// Whenever Radiant Solar or another nontoken creature you control enters, venture into the dungeon.
|
||||
this.addAbility(new EntersBattlefieldThisOrAnotherTriggeredAbility(
|
||||
new VentureIntoTheDungeonEffect(), filter, false, true
|
||||
));
|
||||
).addHint(CurrentDungeonHint.instance));
|
||||
|
||||
// {W}, Discard Radiant Solar: Venture into the dungeon and you gain 3 life.
|
||||
Ability ability = new SimpleActivatedAbility(
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import mage.abilities.costs.common.TapSourceCost;
|
|||
import mage.abilities.costs.common.TapTargetCost;
|
||||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.keyword.FlyingAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -49,6 +50,7 @@ public final class RangersHawk extends CardImpl {
|
|||
);
|
||||
ability.addCost(new TapSourceCost());
|
||||
ability.addCost(new TapTargetCost(new TargetControlledPermanent(filter)));
|
||||
ability.addHint(CurrentDungeonHint.instance);
|
||||
this.addAbility(ability);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import mage.MageInt;
|
|||
import mage.abilities.common.ActivateAsSorceryActivatedAbility;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.keyword.DefenderAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -30,7 +31,7 @@ public final class SecretDoor extends CardImpl {
|
|||
// {4}{U}: Venture into the dungeon. Activate only as a sorcery.
|
||||
this.addAbility(new ActivateAsSorceryActivatedAbility(
|
||||
new VentureIntoTheDungeonEffect(), new ManaCostsImpl<>("{4}{U}")
|
||||
));
|
||||
).addHint(CurrentDungeonHint.instance));
|
||||
}
|
||||
|
||||
private SecretDoor(final SecretDoor card) {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import mage.abilities.common.CompletedDungeonTriggeredAbility;
|
|||
import mage.abilities.common.PutCardIntoGraveFromAnywhereAllTriggeredAbility;
|
||||
import mage.abilities.effects.common.ReturnFromGraveyardToBattlefieldTargetEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -38,7 +39,7 @@ public final class SefrisOfTheHiddenWays extends CardImpl {
|
|||
// Whenever one or more creature cards are put into your graveyard from anywhere, venture into the dungeon. This ability triggers only once each turn.
|
||||
this.addAbility(new PutCardIntoGraveFromAnywhereAllTriggeredAbility(
|
||||
new VentureIntoTheDungeonEffect(), false, filter, TargetController.YOU
|
||||
).setTriggersLimitEachTurn(1));
|
||||
).setTriggersLimitEachTurn(1).addHint(CurrentDungeonHint.instance));
|
||||
|
||||
// Create Undead — Whenever you complete a dungeon, return target creature card from your graveyard to the battlefield.
|
||||
Ability ability = new CompletedDungeonTriggeredAbility(new ReturnFromGraveyardToBattlefieldTargetEffect());
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package mage.cards.s;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -26,7 +27,7 @@ public final class ShortcutSeeker extends CardImpl {
|
|||
// Whenever Shortcut Seeker deals combat damage to a player, venture into the dungeon.
|
||||
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
|
||||
new VentureIntoTheDungeonEffect(), false
|
||||
));
|
||||
).addHint(CurrentDungeonHint.instance));
|
||||
}
|
||||
|
||||
private ShortcutSeeker(final ShortcutSeeker card) {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import mage.abilities.common.AttacksWithCreaturesTriggeredAbility;
|
|||
import mage.abilities.common.SacrificePermanentTriggeredAbility;
|
||||
import mage.abilities.effects.keyword.InvestigateEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -23,7 +24,8 @@ public final class ThoroughInvestigation extends CardImpl {
|
|||
this.addAbility(new AttacksWithCreaturesTriggeredAbility(new InvestigateEffect(), 1));
|
||||
|
||||
// Whenever you sacrifice a Clue, venture into the dungeon.
|
||||
this.addAbility(new SacrificePermanentTriggeredAbility(new VentureIntoTheDungeonEffect(), StaticFilters.FILTER_CONTROLLED_CLUE));
|
||||
this.addAbility(new SacrificePermanentTriggeredAbility(new VentureIntoTheDungeonEffect(), StaticFilters.FILTER_CONTROLLED_CLUE)
|
||||
.addHint(CurrentDungeonHint.instance));
|
||||
}
|
||||
|
||||
private ThoroughInvestigation(final ThoroughInvestigation card) {
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import mage.abilities.condition.common.MyTurnCondition;
|
|||
import mage.abilities.decorator.ConditionalContinuousEffect;
|
||||
import mage.abilities.effects.common.continuous.GainAbilitySourceEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.hint.common.MyTurnHint;
|
||||
import mage.abilities.keyword.FirstStrikeAbility;
|
||||
import mage.constants.Duration;
|
||||
|
|
@ -42,7 +43,8 @@ public final class TriumphantAdventurer extends CardImpl {
|
|||
).addHint(MyTurnHint.instance));
|
||||
|
||||
// Whenever Triumphant Adventurer attacks, venture into the dungeon.
|
||||
this.addAbility(new AttacksTriggeredAbility(new VentureIntoTheDungeonEffect(), false));
|
||||
this.addAbility(new AttacksTriggeredAbility(new VentureIntoTheDungeonEffect(), false)
|
||||
.addHint(CurrentDungeonHint.instance));
|
||||
}
|
||||
|
||||
private TriumphantAdventurer(final TriumphantAdventurer card) {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import mage.abilities.common.SpellCastControllerTriggeredAbility;
|
|||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.keyword.ReachAbility;
|
||||
import mage.abilities.keyword.WardAbility;
|
||||
import mage.cards.CardImpl;
|
||||
|
|
@ -52,7 +53,7 @@ public final class VarisSilverymoonRanger extends CardImpl {
|
|||
// Whenever you cast a creature or planeswalker spell, venture into the dungeon. This ability triggers only once each turn.
|
||||
this.addAbility(new SpellCastControllerTriggeredAbility(
|
||||
new VentureIntoTheDungeonEffect(), filter, false
|
||||
).setTriggersLimitEachTurn(1));
|
||||
).setTriggersLimitEachTurn(1).addHint(CurrentDungeonHint.instance));
|
||||
|
||||
// Whenever you complete a dungeon, create a 2/2 green Wolf creature token.
|
||||
this.addAbility(new CompletedDungeonTriggeredAbility(new CreateTokenEffect(new WolfToken())));
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package mage.cards.v;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -24,7 +25,8 @@ public final class VeteranDungeoneer extends CardImpl {
|
|||
this.toughness = new MageInt(4);
|
||||
|
||||
// When Veteran Dungeoneer enters the battlefield, venture into the dungeon.
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new VentureIntoTheDungeonEffect()));
|
||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new VentureIntoTheDungeonEffect())
|
||||
.addHint(CurrentDungeonHint.instance));
|
||||
}
|
||||
|
||||
private VeteranDungeoneer(final VeteranDungeoneer card) {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import mage.abilities.common.BeginningOfYourEndStepTriggeredAbility;
|
|||
import mage.abilities.condition.common.LandfallCondition;
|
||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.constants.SubType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -31,7 +32,7 @@ public final class WanderingTroubadour extends CardImpl {
|
|||
new BeginningOfYourEndStepTriggeredAbility(new VentureIntoTheDungeonEffect(), false),
|
||||
LandfallCondition.instance,
|
||||
"At the beginning of your end step, if you had a land enter the battlefield under your control this turn, venture into the dungeon."
|
||||
), new LandfallWatcher());
|
||||
).addHint(CurrentDungeonHint.instance), new LandfallWatcher());
|
||||
}
|
||||
|
||||
private WanderingTroubadour(final WanderingTroubadour card) {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import mage.abilities.Mode;
|
|||
import mage.abilities.effects.common.CreateTokenEffect;
|
||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
import mage.constants.CardType;
|
||||
|
|
@ -36,6 +37,7 @@ public final class YouFindACursedIdol extends CardImpl {
|
|||
mode = new Mode(new CreateTokenEffect(new TreasureToken()));
|
||||
mode.addEffect(new VentureIntoTheDungeonEffect().concatBy("and"));
|
||||
this.getSpellAbility().addMode(mode.withFlavorWord("Steal Its Eyes"));
|
||||
this.getSpellAbility().addHint(CurrentDungeonHint.instance);
|
||||
}
|
||||
|
||||
private YouFindACursedIdol(final YouFindACursedIdol card) {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package mage.cards.y;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.keyword.DeathtouchAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -30,7 +31,7 @@ public final class YuanTiFangBlade extends CardImpl {
|
|||
// Whenever Yuan-Ti Fang-Blade deals combat damage to a player, venture into the dungeon.
|
||||
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
|
||||
new VentureIntoTheDungeonEffect(), false
|
||||
));
|
||||
).addHint(CurrentDungeonHint.instance));
|
||||
}
|
||||
|
||||
private YuanTiFangBlade(final YuanTiFangBlade card) {
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import mage.abilities.condition.common.SourceAttackingAloneCondition;
|
|||
import mage.abilities.decorator.ConditionalRestrictionEffect;
|
||||
import mage.abilities.effects.common.combat.CantBeBlockedSourceEffect;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.constants.SubType;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -35,7 +36,8 @@ public final class YuanTiMalison extends CardImpl {
|
|||
)));
|
||||
|
||||
// Whenever Yuan-Ti Malison deals combat damage to a player, venture into the dungeon.
|
||||
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new VentureIntoTheDungeonEffect(), false));
|
||||
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(new VentureIntoTheDungeonEffect(), false)
|
||||
.addHint(CurrentDungeonHint.instance));
|
||||
}
|
||||
|
||||
private YuanTiMalison(final YuanTiMalison card) {
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package mage.cards.z;
|
|||
import mage.MageInt;
|
||||
import mage.abilities.common.DealtDamageToSourceTriggeredAbility;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.keyword.TrampleAbility;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -30,7 +31,8 @@ public final class ZaltoFireGiantDuke extends CardImpl {
|
|||
this.addAbility(TrampleAbility.getInstance());
|
||||
|
||||
// Whenever Zalto, Fire Giant Duke is dealt damage, venture into the dungeon.
|
||||
this.addAbility(new DealtDamageToSourceTriggeredAbility(new VentureIntoTheDungeonEffect(), false));
|
||||
this.addAbility(new DealtDamageToSourceTriggeredAbility(new VentureIntoTheDungeonEffect(), false)
|
||||
.addHint(CurrentDungeonHint.instance));
|
||||
}
|
||||
|
||||
private ZaltoFireGiantDuke(final ZaltoFireGiantDuke card) {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import mage.MageInt;
|
|||
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
|
||||
import mage.abilities.condition.common.MorbidCondition;
|
||||
import mage.abilities.effects.keyword.VentureIntoTheDungeonEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.hint.common.MorbidHint;
|
||||
import mage.cards.CardImpl;
|
||||
import mage.cards.CardSetInfo;
|
||||
|
|
@ -31,7 +32,7 @@ public final class ZombieOgre extends CardImpl {
|
|||
this.addAbility(new BeginningOfEndStepTriggeredAbility(
|
||||
Zone.BATTLEFIELD, new VentureIntoTheDungeonEffect(),
|
||||
TargetController.YOU, MorbidCondition.instance, false
|
||||
).addHint(MorbidHint.instance));
|
||||
).addHint(MorbidHint.instance).addHint(CurrentDungeonHint.instance));
|
||||
}
|
||||
|
||||
private ZombieOgre(final ZombieOgre card) {
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import mage.abilities.effects.common.FightTargetsEffect;
|
|||
import mage.abilities.effects.common.counter.ProliferateEffect;
|
||||
import mage.abilities.effects.keyword.ScryEffect;
|
||||
import mage.abilities.hint.common.CitysBlessingHint;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.abilities.hint.common.InitiativeHint;
|
||||
import mage.abilities.hint.common.MonarchHint;
|
||||
import mage.abilities.keyword.*;
|
||||
|
|
@ -2070,6 +2071,7 @@ public class VerifyCardDataTest {
|
|||
cardHints.put(CitysBlessingHint.class, "city's blessing");
|
||||
cardHints.put(MonarchHint.class, "the monarch");
|
||||
cardHints.put(InitiativeHint.class, "the initiative");
|
||||
cardHints.put(CurrentDungeonHint.class, "venture into");
|
||||
for (Class hintClass : cardHints.keySet()) {
|
||||
String lookupText = cardHints.get(hintClass);
|
||||
boolean needHint = ref.text.contains(lookupText);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,43 @@
|
|||
package mage.abilities.hint.common;
|
||||
|
||||
import mage.abilities.Ability;
|
||||
import mage.abilities.condition.common.CitysBlessingCondition;
|
||||
import mage.abilities.hint.ConditionHint;
|
||||
import mage.abilities.hint.Hint;
|
||||
import mage.game.Game;
|
||||
import mage.game.command.Dungeon;
|
||||
import mage.players.Player;
|
||||
|
||||
/**
|
||||
* @author JayDi85
|
||||
*/
|
||||
public enum CurrentDungeonHint implements Hint {
|
||||
|
||||
instance;
|
||||
private static final ConditionHint hint = new ConditionHint(CitysBlessingCondition.instance, "You have city's blessing");
|
||||
|
||||
@Override
|
||||
public String getText(Game game, Ability ability) {
|
||||
Player player = game.getPlayer(ability.getControllerId());
|
||||
if (player == null) {
|
||||
return "";
|
||||
}
|
||||
|
||||
Dungeon dungeon = game.getPlayerDungeon(ability.getControllerId());
|
||||
if (dungeon == null) {
|
||||
return "Current dungeon: not yet entered";
|
||||
}
|
||||
|
||||
String dungeonInfo = "Current dungeon: " + dungeon.getLogName();
|
||||
if (dungeon.getCurrentRoom() != null) {
|
||||
dungeonInfo += ", room: " + dungeon.getCurrentRoom().getName();
|
||||
}
|
||||
|
||||
return dungeonInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Hint copy() {
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@ package mage.designations;
|
|||
import mage.abilities.Ability;
|
||||
import mage.abilities.TriggeredAbilityImpl;
|
||||
import mage.abilities.effects.OneShotEffect;
|
||||
import mage.abilities.hint.common.CurrentDungeonHint;
|
||||
import mage.constants.Outcome;
|
||||
import mage.constants.Zone;
|
||||
import mage.game.Controllable;
|
||||
|
|
@ -113,6 +114,7 @@ class InitiativeVentureTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
InitiativeVentureTriggeredAbility() {
|
||||
super(Zone.ALL, new InitiativeUndercityEffect());
|
||||
addHint(CurrentDungeonHint.instance);
|
||||
}
|
||||
|
||||
private InitiativeVentureTriggeredAbility(final InitiativeVentureTriggeredAbility ability) {
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ public interface Game extends MageItem, Serializable, Copyable<Game> {
|
|||
|
||||
Dungeon getDungeon(UUID objectId);
|
||||
|
||||
Dungeon getPlayerDungeon(UUID objectId);
|
||||
Dungeon getPlayerDungeon(UUID playerId);
|
||||
|
||||
UUID getControllerId(UUID objectId);
|
||||
|
||||
|
|
@ -456,7 +456,12 @@ public interface Game extends MageItem, Serializable, Copyable<Game> {
|
|||
|
||||
Dungeon addDungeon(Dungeon dungeon, UUID playerId);
|
||||
|
||||
void ventureIntoDungeon(UUID playerId, boolean undercity);
|
||||
/**
|
||||
* Enter to dungeon or go to next room
|
||||
*
|
||||
* @param isEnterToUndercity - enter to Undercity instead choose a new dungeon
|
||||
*/
|
||||
void ventureIntoDungeon(UUID playerId, boolean isEnterToUndercity);
|
||||
|
||||
void temptWithTheRing(UUID playerId);
|
||||
|
||||
|
|
|
|||
|
|
@ -560,14 +560,14 @@ public abstract class GameImpl implements Game {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void ventureIntoDungeon(UUID playerId, boolean undercity) {
|
||||
public void ventureIntoDungeon(UUID playerId, boolean isEnterToUndercity) {
|
||||
if (playerId == null) {
|
||||
return;
|
||||
}
|
||||
if (replaceEvent(GameEvent.getEvent(GameEvent.EventType.VENTURE, playerId, null, playerId))) {
|
||||
return;
|
||||
}
|
||||
this.getOrCreateDungeon(playerId, undercity).moveToNextRoom(playerId, this);
|
||||
this.getOrCreateDungeon(playerId, isEnterToUndercity).moveToNextRoom(playerId, this);
|
||||
fireEvent(GameEvent.getEvent(GameEvent.EventType.VENTURED, playerId, null, playerId));
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue