Ability picker shows now the name of the object instead of {this] in ability text..

This commit is contained in:
LevelX2 2013-11-06 14:32:50 +01:00
parent e8a7a66b52
commit 33c6bf1385
9 changed files with 37 additions and 20 deletions

View file

@ -140,7 +140,7 @@ public interface Game extends MageItem, Serializable {
void firePriorityEvent(UUID playerId);
void firePlayManaEvent(UUID playerId, String message);
void firePlayXManaEvent(UUID playerId, String message);
void fireGetChoiceEvent(UUID playerId, String message, List<? extends ActivatedAbility> choices);
void fireGetChoiceEvent(UUID playerId, String message, MageObject object, List<? extends ActivatedAbility> choices);
void fireGetModeEvent(UUID playerId, String message, Map<UUID, String> modes);
void fireGetAmountEvent(UUID playerId, String message, int min, int max);
void fireChoosePileEvent(UUID playerId, String message, List<? extends Card> pile1, List<? extends Card> pile2);

View file

@ -1506,11 +1506,15 @@ public abstract class GameImpl<T extends GameImpl<T>> implements Game, Serializa
}
@Override
public void fireGetChoiceEvent(UUID playerId, String message, List<? extends ActivatedAbility> choices) {
public void fireGetChoiceEvent(UUID playerId, String message, MageObject object, List<? extends ActivatedAbility> choices) {
if (simulation) {
return;
}
playerQueryEventSource.chooseAbility(playerId, message, choices);
String objectName = null;
if (object != null) {
objectName = object.getName();
}
playerQueryEventSource.chooseAbility(playerId, message, objectName, choices);
}
@Override

View file

@ -30,6 +30,7 @@ package mage.game.events;
import java.io.Serializable;
import java.util.EventObject;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@ -142,8 +143,13 @@ public class PlayerQueryEvent extends EventObject implements ExternalEvent, Seri
return new PlayerQueryEvent(playerId, message, null, null, null, null, QueryType.ASK, 0, 0, false);
}
public static PlayerQueryEvent chooseAbilityEvent(UUID playerId, String message, List<? extends ActivatedAbility> choices) {
return new PlayerQueryEvent(playerId, message, choices, null, null, null, QueryType.CHOOSE_ABILITY, 0, 0, false);
public static PlayerQueryEvent chooseAbilityEvent(UUID playerId, String message, String objectName, List<? extends ActivatedAbility> choices) {
Set<String> nameAsSet = null;
if (objectName != null) {
nameAsSet = new HashSet<String>();
nameAsSet.add(objectName);
}
return new PlayerQueryEvent(playerId, message, choices, nameAsSet, null, null, QueryType.CHOOSE_ABILITY, 0, 0, false);
}
public static PlayerQueryEvent choosePileEvent(UUID playerId, String message, List<? extends Card> pile1, List<? extends Card> pile2) {

View file

@ -58,8 +58,8 @@ public class PlayerQueryEventSource implements EventSource<PlayerQueryEvent>, Se
dispatcher.fireEvent(PlayerQueryEvent.selectEvent(playerId, message));
}
public void chooseAbility(UUID playerId, String message, List<? extends ActivatedAbility> choices) {
dispatcher.fireEvent(PlayerQueryEvent.chooseAbilityEvent(playerId, message, choices));
public void chooseAbility(UUID playerId, String message, String objectName, List<? extends ActivatedAbility> choices) {
dispatcher.fireEvent(PlayerQueryEvent.chooseAbilityEvent(playerId, message, objectName, choices));
}
public void choosePile(UUID playerId, String message, List<? extends Card> pile1, List<? extends Card> pile2) {

View file

@ -914,7 +914,6 @@ public abstract class PlayerImpl<T extends PlayerImpl<T>> implements Player, Ser
LinkedHashMap<UUID, ActivatedAbility> useable = new LinkedHashMap<UUID, ActivatedAbility>();
if (!(object instanceof Permanent) || ((Permanent)object).canUseActivatedAbilities(game)) {
for (ActivatedAbility ability: object.getAbilities().getActivatedAbilities(zone)) {
if (ability.canActivate(playerId, game)) {
useable.put(ability.getId(), ability);
}