forked from External/mage
GUI: introduced default card hints:
* refactor: added helper emblems instead rad counter's inherent emblems (use initGameDefaultHelperEmblems to define new card hints or other fake objects); * refactor: added card hints support for emblems, planes and other command objects; * GUI: added storm counter as default card hint (use hints tool to see it, closes #12360);
This commit is contained in:
parent
83823acec7
commit
521a0f6e32
36 changed files with 234 additions and 144 deletions
|
|
@ -48,6 +48,7 @@ import mage.game.command.dungeons.UndercityDungeon;
|
|||
import mage.game.command.emblems.EmblemOfCard;
|
||||
import mage.game.command.emblems.RadiationEmblem;
|
||||
import mage.game.command.emblems.TheRingEmblem;
|
||||
import mage.game.command.emblems.XmageHelperEmblem;
|
||||
import mage.game.events.*;
|
||||
import mage.game.events.TableEvent.EventType;
|
||||
import mage.game.mulligan.Mulligan;
|
||||
|
|
@ -444,7 +445,7 @@ public abstract class GameImpl implements Game {
|
|||
return designation;
|
||||
}
|
||||
}
|
||||
for (Emblem emblem : state.getInherentEmblems()) {
|
||||
for (Emblem emblem : state.getHelperEmblems()) {
|
||||
if (emblem.getId().equals(objectId)) {
|
||||
return emblem;
|
||||
}
|
||||
|
|
@ -1400,13 +1401,7 @@ public abstract class GameImpl implements Game {
|
|||
}
|
||||
}
|
||||
|
||||
// Rad counter mechanic for every player
|
||||
for (UUID playerId : state.getPlayerList(startingPlayerId)) {
|
||||
// This is not a real emblem. Just a fake source for the
|
||||
// inherent trigger ability related to Rad counters
|
||||
// Faking a source just to display something on the stack ability.
|
||||
state.addInherentEmblem(new RadiationEmblem(), playerId);
|
||||
}
|
||||
initGameDefaultHelperEmblems();
|
||||
}
|
||||
|
||||
public void initGameDefaultWatchers() {
|
||||
|
|
@ -1447,6 +1442,22 @@ public abstract class GameImpl implements Game {
|
|||
getState().addWatcher(bloodthirstWatcher);
|
||||
}
|
||||
|
||||
public void initGameDefaultHelperEmblems() {
|
||||
|
||||
// Rad Counter's trigger source
|
||||
for (UUID playerId : state.getPlayerList(startingPlayerId)) {
|
||||
// This is not a real emblem. Just a fake source for the
|
||||
// inherent trigger ability related to Rad counters
|
||||
// Faking a source just to display something on the stack ability.
|
||||
state.addHelperEmblem(new RadiationEmblem(), playerId);
|
||||
}
|
||||
|
||||
// global card hints for better UX
|
||||
for (UUID playerId : state.getPlayerList(startingPlayerId)) {
|
||||
state.addHelperEmblem(new XmageHelperEmblem().withCardHint("storm counter", StormAbility.getHint()), playerId);
|
||||
}
|
||||
}
|
||||
|
||||
protected void sendStartMessage(Player choosingPlayer, Player startingPlayer) {
|
||||
StringBuilder message = new StringBuilder();
|
||||
if (choosingPlayer != null) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue