mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-14 17:58:01 +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);
|
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
|
@Override
|
||||||
public List<Card> chooseCardsForSplice(SpellAbility sa, List<Card> cards) {
|
public List<Card> chooseCardsForSplice(SpellAbility sa, List<Card> cards) {
|
||||||
// sort from best to worst
|
// sort from best to worst
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import com.google.common.base.Predicates;
|
|||||||
|
|
||||||
import forge.StaticData;
|
import forge.StaticData;
|
||||||
import forge.card.CardRulesPredicates;
|
import forge.card.CardRulesPredicates;
|
||||||
import forge.card.ICardFace;
|
|
||||||
import forge.game.Game;
|
import forge.game.Game;
|
||||||
import forge.game.ability.AbilityKey;
|
import forge.game.ability.AbilityKey;
|
||||||
import forge.game.ability.SpellAbilityEffect;
|
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.
|
// Create a new dungeon card chosen by player in command zone.
|
||||||
List<PaperCard> dungeonCards = StaticData.instance().getVariantCards().getAllCards(
|
List<PaperCard> dungeonCards = StaticData.instance().getVariantCards().getAllCards(
|
||||||
Predicates.compose(CardRulesPredicates.Presets.IS_DUNGEON, PaperCard.FN_GET_RULES));
|
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 message = Localizer.getInstance().getMessage("lblChooseDungeon");
|
||||||
String chosen = player.getController().chooseCardName(sa, faces, message);
|
Card dungeon = player.getController().chooseDungeon(player, dungeonCards, message);
|
||||||
Card dungeon = Card.fromPaperCard(StaticData.instance().getVariantCards().getUniqueByName(chosen), player);
|
|
||||||
|
|
||||||
game.getTriggerHandler().suppressMode(TriggerType.ChangesZone);
|
game.getTriggerHandler().suppressMode(TriggerType.ChangesZone);
|
||||||
game.getAction().moveTo(ZoneType.Command, dungeon, sa);
|
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, Predicate<ICardFace> cpp, String valid, String message);
|
||||||
|
|
||||||
public abstract String chooseCardName(SpellAbility sa, List<ICardFace> faces, 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
|
// 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);
|
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();
|
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
|
@Override
|
||||||
public List<Card> chooseCardsForSplice(SpellAbility sa, List<Card> cards) {
|
public List<Card> chooseCardsForSplice(SpellAbility sa, List<Card> cards) {
|
||||||
GameEntityViewMap<Card, CardView> gameCacheSplice = GameEntityView.getMap(cards);
|
GameEntityViewMap<Card, CardView> gameCacheSplice = GameEntityView.getMap(cards);
|
||||||
|
|||||||
Reference in New Issue
Block a user