mirror of
https://github.com/magefree/mage.git
synced 2026-01-24 12:19:59 -08:00
Added support for casting modal spells or activating modal abilities with more than one mode to choose.
This commit is contained in:
parent
d520d63e2c
commit
853810ce45
8 changed files with 201 additions and 90 deletions
|
|
@ -782,18 +782,23 @@ public class HumanPlayer extends PlayerImpl<HumanPlayer> {
|
|||
MageObject obj = game.getObject(source.getSourceId());
|
||||
Map<UUID, String> modeMap = new LinkedHashMap<UUID, String>();
|
||||
for (Mode mode: modes.values()) {
|
||||
String modeText = mode.getEffects().getText(mode);
|
||||
if (obj != null) {
|
||||
modeText = modeText.replace("{source}", obj.getName());
|
||||
if (!modes.getSelectedModes().contains(mode.getId()) // show only modes not already selected
|
||||
&& mode.getTargets().canChoose(source.getSourceId(), source.getControllerId(), game)) { // and where targets are available
|
||||
String modeText = mode.getEffects().getText(mode);
|
||||
if (obj != null) {
|
||||
modeText = modeText.replace("{source}", obj.getName());
|
||||
}
|
||||
modeMap.put(mode.getId(), modeText);
|
||||
}
|
||||
modeMap.put(mode.getId(), modeText);
|
||||
}
|
||||
game.fireGetModeEvent(playerId, "Choose Mode", modeMap);
|
||||
waitForResponse(game);
|
||||
if (response.getUUID() != null) {
|
||||
for (Mode mode: modes.values()) {
|
||||
if (mode.getId().equals(response.getUUID())) {
|
||||
return mode;
|
||||
if (modeMap.size() > 0) {
|
||||
game.fireGetModeEvent(playerId, "Choose Mode", modeMap);
|
||||
waitForResponse(game);
|
||||
if (response.getUUID() != null) {
|
||||
for (Mode mode: modes.values()) {
|
||||
if (mode.getId().equals(response.getUUID())) {
|
||||
return mode;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue