forked from External/mage
Adding dice rolling trigger/replacement (ready for review) (#7989)
* [AFR] Implemented DiceRolledTriggeredAbility * [AFR] Implemented Brazen Dwarf * [AFR] Implemented Feywild Trickster * [AFC] Implemented Reckless Endeavor * [AFR] Implemented Pixie Guide * [AFR] Implemented Critical Hit * [AFR] Implemented Netherese Puzzle Ward * [AFC] Implemented Neverwinter Hydra * [AFR] Implemented Farideh, Devil's Chosen * [AFR] Implemented Barbarian Class * [AFC] Implemented Vrondiss, Rage of Ancients * [AFC] Implemented Arcane Endeavor * Test framework: added planar die rolls support * Test framework: added random results set up support in AI simulated games; * AI: improved roll die results chooses in computer games; * Roll die: improved combo support for planar die and roll die effects; Co-authored-by: Daniel Bomar <dbdaniel42@gmail.com> Co-authored-by: Oleg Agafonov <jaydi85@gmail.com>
This commit is contained in:
parent
12219cff01
commit
f8d030bef4
97 changed files with 2641 additions and 553 deletions
|
|
@ -24,10 +24,7 @@ import mage.designations.DesignationType;
|
|||
import mage.filter.FilterCard;
|
||||
import mage.filter.FilterMana;
|
||||
import mage.filter.FilterPermanent;
|
||||
import mage.game.Game;
|
||||
import mage.game.GameState;
|
||||
import mage.game.Graveyard;
|
||||
import mage.game.Table;
|
||||
import mage.game.*;
|
||||
import mage.game.combat.CombatGroup;
|
||||
import mage.game.draft.Draft;
|
||||
import mage.game.events.GameEvent;
|
||||
|
|
@ -487,19 +484,21 @@ public interface Player extends MageItem, Copyable<Player> {
|
|||
|
||||
boolean flipCoin(Ability source, Game game, boolean winnable);
|
||||
|
||||
boolean flipCoin(Ability source, Game game, boolean winnable, List<UUID> appliedEffects);
|
||||
|
||||
boolean flipCoinResult(Game game);
|
||||
|
||||
int rollDice(Ability source, Game game, int numSides);
|
||||
default int rollDice(Outcome outcome, Ability source, Game game, int numSides) {
|
||||
return rollDice(outcome, source, game, numSides, 1, 0).stream().findFirst().orElse(0);
|
||||
}
|
||||
|
||||
int rollDice(Ability source, Game game, List<UUID> appliedEffects, int numSides);
|
||||
List<Integer> rollDice(Outcome outcome, Ability source, Game game, int numSides, int numDice, int ignoreLowestAmount);
|
||||
|
||||
PlanarDieRoll rollPlanarDie(Ability source, Game game);
|
||||
int rollDieResult(int sides, Game game);
|
||||
|
||||
PlanarDieRoll rollPlanarDie(Ability source, Game game, List<UUID> appliedEffects);
|
||||
default PlanarDieRollResult rollPlanarDie(Outcome outcome, Ability source, Game game) {
|
||||
return rollPlanarDie(outcome, source, game, GameOptions.PLANECHASE_PLANAR_DIE_CHAOS_SIDES, GameOptions.PLANECHASE_PLANAR_DIE_PLANAR_SIDES);
|
||||
}
|
||||
|
||||
PlanarDieRoll rollPlanarDie(Ability source, Game game, List<UUID> appliedEffects, int numberChaosSides, int numberPlanarSides);
|
||||
PlanarDieRollResult rollPlanarDie(Outcome outcome, Ability source, Game game, int numberChaosSides, int numberPlanarSides);
|
||||
|
||||
Card discardOne(boolean random, boolean payForCost, Ability source, Game game);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue