forked from External/mage
GUI: added card hints in choose replacement effect dialog
This commit is contained in:
parent
67ff2da060
commit
7b2e9b390c
7 changed files with 50 additions and 26 deletions
|
|
@ -868,7 +868,10 @@ public class ContinuousEffects implements Serializable {
|
|||
} else {
|
||||
//20100716 - 616.1c
|
||||
Player player = game.getPlayer(event.getPlayerId());
|
||||
index = player.chooseReplacementEffect(getReplacementEffectsTexts(rEffects, game), game);
|
||||
Map<String, String> effectsMap = new LinkedHashMap<>();
|
||||
Map<String, MageObject> objectsMap = new LinkedHashMap<>();
|
||||
prepareReplacementEffectMaps(rEffects, game, effectsMap, objectsMap);
|
||||
index = player.chooseReplacementEffect(effectsMap, objectsMap, game);
|
||||
}
|
||||
// get the selected effect
|
||||
int checked = 0;
|
||||
|
|
@ -1317,18 +1320,26 @@ public class ContinuousEffects implements Serializable {
|
|||
}
|
||||
}
|
||||
|
||||
public Map<String, String> getReplacementEffectsTexts(Map<ReplacementEffect, Set<Ability>> rEffects, Game game) {
|
||||
public void prepareReplacementEffectMaps(Map<ReplacementEffect, Set<Ability>> rEffects, Game game,
|
||||
Map<String, String> effectsMap, Map<String, MageObject> objectsMap) {
|
||||
// warning, autoSelectReplacementEffects uses [object id] in texts as different settings,
|
||||
// so if you change keys or texts logic then don't forget to change auto-choose too
|
||||
Map<String, String> texts = new LinkedHashMap<>();
|
||||
if (!(effectsMap instanceof LinkedHashMap) || !(objectsMap instanceof LinkedHashMap)) {
|
||||
throw new IllegalArgumentException("Wrong code usage: must use LinkedHashMap only");
|
||||
}
|
||||
effectsMap.clear();
|
||||
objectsMap.clear();
|
||||
for (Map.Entry<ReplacementEffect, Set<Ability>> entry : rEffects.entrySet()) {
|
||||
if (entry.getValue() != null) {
|
||||
for (Ability ability : entry.getValue()) {
|
||||
MageObject object = game.getObject(ability.getSourceId());
|
||||
String key = ability.getId().toString() + '_' + entry.getKey().getId().toString();
|
||||
if (object != null) {
|
||||
texts.put(ability.getId().toString() + '_' + entry.getKey().getId().toString(), object.getIdName() + ": " + ability.getRule(object.getName()));
|
||||
effectsMap.put(key, object.getIdName() + ": " + ability.getRule(object.getName()));
|
||||
objectsMap.put(key, object);
|
||||
} else {
|
||||
texts.put(ability.getId().toString() + '_' + entry.getKey().getId().toString(), entry.getKey().getText(null));
|
||||
effectsMap.put(key, entry.getKey().getText(null));
|
||||
objectsMap.put(key, null);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
|
@ -1337,7 +1348,6 @@ public class ContinuousEffects implements Serializable {
|
|||
}
|
||||
}
|
||||
}
|
||||
return texts;
|
||||
}
|
||||
|
||||
public boolean existRequirementEffects() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue