mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-14 09:48:02 +00:00
Update Venture Effect
This commit is contained in:
@@ -1291,6 +1291,13 @@ public class PlayerControllerAi extends PlayerController {
|
||||
return SpellApiToAi.Converter.get(api).chooseCardName(player, sa, faces);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Card chooseDungeon(Player player, List<PaperCard> dungeonCards, String message) {
|
||||
//todo AI
|
||||
int i = MyRandom.getRandom().nextInt(dungeonCards.size());
|
||||
return Card.fromPaperCard(dungeonCards.get(i), player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Card> chooseCardsForSplice(SpellAbility sa, List<Card> cards) {
|
||||
// sort from best to worst
|
||||
|
||||
@@ -8,7 +8,6 @@ import com.google.common.base.Predicates;
|
||||
|
||||
import forge.StaticData;
|
||||
import forge.card.CardRulesPredicates;
|
||||
import forge.card.ICardFace;
|
||||
import forge.game.Game;
|
||||
import forge.game.ability.AbilityKey;
|
||||
import forge.game.ability.SpellAbilityEffect;
|
||||
@@ -45,13 +44,9 @@ public class VentureEffect extends SpellAbilityEffect {
|
||||
// Create a new dungeon card chosen by player in command zone.
|
||||
List<PaperCard> dungeonCards = StaticData.instance().getVariantCards().getAllCards(
|
||||
Predicates.compose(CardRulesPredicates.Presets.IS_DUNGEON, PaperCard.FN_GET_RULES));
|
||||
List<ICardFace> faces = new ArrayList<>();
|
||||
for (PaperCard pc : dungeonCards) {
|
||||
faces.add(pc.getRules().getMainPart());
|
||||
}
|
||||
|
||||
String message = Localizer.getInstance().getMessage("lblChooseDungeon");
|
||||
String chosen = player.getController().chooseCardName(sa, faces, message);
|
||||
Card dungeon = Card.fromPaperCard(StaticData.instance().getVariantCards().getUniqueByName(chosen), player);
|
||||
Card dungeon = player.getController().chooseDungeon(player, dungeonCards, message);
|
||||
|
||||
game.getTriggerHandler().suppressMode(TriggerType.ChangesZone);
|
||||
game.getAction().moveTo(ZoneType.Command, dungeon, sa);
|
||||
|
||||
@@ -261,6 +261,8 @@ public abstract class PlayerController {
|
||||
public abstract String chooseCardName(SpellAbility sa, Predicate<ICardFace> cpp, String valid, String message);
|
||||
|
||||
public abstract String chooseCardName(SpellAbility sa, List<ICardFace> faces, String message);
|
||||
|
||||
public abstract Card chooseDungeon(Player player, List<PaperCard> dungeonCards, String message);
|
||||
// better to have this odd method than those if playerType comparison in ChangeZone
|
||||
public abstract Card chooseSingleCardForZoneChange(ZoneType destination, List<ZoneType> origin, SpellAbility sa, CardCollection fetchList, DelayedReveal delayedReveal, String selectPrompt, boolean isOptional, Player decider);
|
||||
|
||||
|
||||
@@ -3235,6 +3235,12 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
|
||||
return face == null ? "" : face.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Card chooseDungeon(Player player, List<PaperCard> dungeonCards, String message) {
|
||||
PaperCard dungeon = getGui().one(message, dungeonCards);
|
||||
return Card.fromPaperCard(dungeon, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Card> chooseCardsForSplice(SpellAbility sa, List<Card> cards) {
|
||||
GameEntityViewMap<Card, CardView> gameCacheSplice = GameEntityView.getMap(cards);
|
||||
|
||||
Reference in New Issue
Block a user