public override void ActionEffect(Action callBack) { // remove one shield // It should not be possible to get there without having at least one shield (IsActionEffectAvailable), // but just in case ... if (Host.Shields > 0) { Messages.ShowInfoToHuman(Name + ": losing one shield to reroll any number of dice"); Host.LoseShield(); // reroll dice DiceRerollManager diceRerollManager = new DiceRerollManager { SidesCanBeRerolled = null, // all the sides can be reroll NumberOfDiceCanBeRerolled = 0, CallBack = callBack // all the dices can be reroll }; diceRerollManager.Start(); } else { // should never happens, thanks to IsActionEffectAvailable... Messages.ShowError(Name + ": no shield available, unable to use the ability."); callBack(); } }
public override void ActionEffect(System.Action callBack) { if (ActionsHolder.HasTargetLockOn(Combat.Attacker, Combat.Defender)) { List <char> letters = ActionsHolder.GetTargetLocksLetterPairs(Combat.Attacker, Combat.Defender); if (Combat.Attacker.Tokens.GetToken(typeof(BlueTargetLockToken), letters.First()).CanBeUsed) { DiceRerollManager diceRerollManager = new DiceRerollManager() { CallBack = callBack }; Selection.ActiveShip.Tokens.SpendToken(typeof(BlueTargetLockToken), diceRerollManager.Start, letters.First()); } else { Messages.ShowErrorToHuman("The attacker cannot use its current Target Lock on the defender"); callBack(); } } else { Messages.ShowErrorToHuman("The attacker has no Target Lock on the defender"); callBack(); } }
public override void ActionEffect(System.Action callBack) { if (Actions.HasTargetLockOn(Combat.Attacker, Combat.Defender)) { char letter = ' '; letter = Actions.GetTargetLocksLetterPair(Combat.Attacker, Combat.Defender); if (Combat.Attacker.Tokens.GetToken(typeof(Tokens.BlueTargetLockToken), letter).CanBeUsed) { DiceRerollManager diceRerollManager = new DiceRerollManager() { CallBack = callBack }; Selection.ActiveShip.Tokens.SpendToken(typeof(Tokens.BlueTargetLockToken), diceRerollManager.Start, letter); } else { Messages.ShowErrorToHuman("Cannot use current Target Lock on defender"); callBack(); } } else { Messages.ShowErrorToHuman("No Target Lock on defender"); callBack(); } }
public override void ActionEffect(System.Action callBack) { DiceRerollManager diceRerollManager = new DiceRerollManager { NumberOfDiceCanBeRerolled = 1, CallBack = callBack }; diceRerollManager.Start(); }
public override void ActionEffect(System.Action callBack) { DiceRerollManager diceRerollManager = new DiceRerollManager { NumberOfDiceCanBeRerolled = (Combat.Defender.IsUnique) ? 2 : 1, CallBack = callBack }; diceRerollManager.Start(); }
public override void ActionEffect(Action callBack) { DiceRerollManager diceRerollManager = new DiceRerollManager { NumberOfDiceCanBeRerolled = 1, CallBack = callBack }; Source.SpendCharge(diceRerollManager.Start); }
public override void ActionEffect(System.Action callBack) { DiceRerollManager diceRerollManager = new DiceRerollManager { NumberOfDiceCanBeRerolled = (Combat.Defender.PilotSkill > 2) ? 1 : 2, CallBack = callBack }; diceRerollManager.Start(); }
public override void ActionEffect(System.Action callBack) { Host.Tokens.SpendToken(typeof(BlueTargetLockToken), delegate { DiceRerollManager diceRerollManager = new DiceRerollManager { CallBack = callBack }; diceRerollManager.Start(); }, sharaLockLetter); }
public override void ActionEffect(System.Action callBack) { DiceRerollManager diceRerollManager = new DiceRerollManager { CallBack = delegate { Source.TryDiscard(callBack); } }; diceRerollManager.Start(); SelectAllRerolableDices(); diceRerollManager.ConfirmRerollButtonIsPressed(); }
public override void ActionEffect(System.Action callBack) { Host.OnRerollIsConfirmed += AssignStressForEachRerolled; DiceRerollManager diceRerollManager = new DiceRerollManager { CallBack = callBack }; diceRerollManager.Start(); }
public override void ActionEffect(System.Action callBack) { DiceRerollManager diceRerollManager = new DiceRerollManager { CallBack = callBack }; diceRerollManager.Start(); SelectAllRerolableDices(); diceRerollManager.ConfirmRerollButtonIsPressed(); }
public override void Execute() { List <bool> selectedDice = new List <bool>(); JSONObject jsonHolder1 = (JSONObject)GetParameter("dice"); foreach (var dieInfo in jsonHolder1.list) { bool isSelected = bool.Parse(dieInfo["selected"].str); selectedDice.Add(isSelected); } DiceRerollManager.SyncDiceRerollSelected(selectedDice); }
//Reroll is the effect of Rage public override void ActionEffect(System.Action callBack) { IsReroll = true; //These effect is a reroll effect DiceRerollManager diceRerollManager = new DiceRerollManager { NumberOfDiceCanBeRerolled = 3, CallBack = callBack }; diceRerollManager.Start(); }
public override void ActionEffect(System.Action callBack) { DiceRerollManager diceRerollManager = new DiceRerollManager { SidesCanBeRerolled = new List <DieSide> { DieSide.Blank }, CallBack = callBack }; diceRerollManager.Start(); }
public override void ActionEffect(System.Action callBack) { DiceRerollManager diceRerollManager = new DiceRerollManager { SidesCanBeRerolled = new System.Collections.Generic.List <DieSide> { DieSide.Focus }, CallBack = callBack }; diceRerollManager.Start(); }
public override void ActionEffect(System.Action callBack) { // reroll dice DiceRerollManager diceRerollManager = new DiceRerollManager { SidesCanBeRerolled = null, // all the sides can be reroll NumberOfDiceCanBeRerolled = Combat.Attacker.PrimaryWeapon.AttackValue, CallBack = callBack // all the dices can be reroll }; diceRerollManager.Start(); }
public override void ActionEffect(System.Action callBack) { int dices = getDices(); if (dices > 0) { DiceRerollManager diceRerollManager = new DiceRerollManager { NumberOfDiceCanBeRerolled = dices, CallBack = callBack }; diceRerollManager.Start(); } }
public override void ActionEffect(System.Action callBack) { DiceRerollManager diceRerollManager = new DiceRerollManager { NumberOfDiceCanBeRerolled = 1, IsOpposite = true, CallBack = delegate { AssignStress(callBack); } }; diceRerollManager.Start(); }
public void UnblockButtons() { if (!IsTrueReroll) { MarkAsFakeReroll(); } DiceRerollManager.CurrentDiceRerollManager = null; Combat.CurrentDiceRoll.ToggleRerolledLocks(false); Phases.CurrentSubPhase.Next(); }
public override void ActionEffect(System.Action callBack) { hostAbility.usedThisRound = true; SpendTargetLock(() => { DiceRerollManager diceRerollManager = new DiceRerollManager { NumberOfDiceCanBeRerolled = int.MaxValue, IsOpposite = true, CallBack = callBack }; diceRerollManager.Start(); }); }
public override void ActionEffect(System.Action callBack) { int tempFriendlyShips = numFriendlyShips; numFriendlyShips = 0; DiceRerollManager diceRerollManager = new DiceRerollManager { NumberOfDiceCanBeRerolled = tempFriendlyShips, CallBack = callBack }; diceRerollManager.Start(); }
public override void ActionEffect(System.Action callBack) { GenericSpecialWeapon weapon = Combat.ChosenWeapon as GenericSpecialWeapon; weapon.State.SpendCharge(); DiceRerollManager diceRerollManager = new DiceRerollManager { NumberOfDiceCanBeRerolled = 2, IsOpposite = true, CallBack = callBack }; diceRerollManager.Start(); }
public override void ActionEffect(System.Action callBack) { if (Actions.HasTargetLockOn(Combat.Attacker, Combat.Defender)) { DiceRerollManager diceRerollManager = new DiceRerollManager() { CallBack = callBack }; char letter = ' '; letter = Actions.GetTargetLocksLetterPair(Combat.Attacker, Combat.Defender); Selection.ActiveShip.SpendToken(typeof(Tokens.BlueTargetLockToken), diceRerollManager.Start, letter); } }
private void UnblockButtons(DiceRoll diceRoll) { DiceRerollManager.currentDiceRerollManager = null; Combat.CurentDiceRoll.ToggleRerolledLocks(false); if (Selection.ActiveShip.Owner.GetType() == typeof(Players.HumanPlayer)) { ToggleDiceModificationsPanel(true); } if (CallBack != null) { CallBack(); } }
public override void ActionEffect(System.Action callBack) { // Can reroll focus if Attacker PS > 2, focus or blank if Attacker PS <= 2 List<DieSide> allowedRerolls = (Combat.Attacker.PilotSkill > 2) ? new List<DieSide> { DieSide.Focus } : new List<DieSide> { DieSide.Blank, DieSide.Focus }; DiceRerollManager diceRerollManager = new DiceRerollManager { SidesCanBeRerolled = allowedRerolls, CallBack = callBack }; diceRerollManager.Start(); }
public override void Execute() { string diceToText = ""; List <bool> selectedDice = new List <bool>(); JSONObject jsonHolder1 = (JSONObject)GetParameter("dice"); foreach (var dieInfo in jsonHolder1.list) { bool isSelected = bool.Parse(dieInfo["selected"].str); selectedDice.Add(isSelected); diceToText += isSelected + " "; } Console.Write($"Dice are selected for reroll: {diceToText}"); DiceRerollManager.SyncDiceRerollSelected(selectedDice); }
/// <summary> /// Creates an action effect that allows rerolling dice /// </summary> /// <param name="numberOfDice">Number of dice that can be rerolled</param> /// <param name="sidesCanBeRerolled">List of die sides that can be rerolled. Default is all sides.</param> /// <param name="isOpposite">Set to true to reroll the opposing players dice</param> public void AllowReroll(int numberOfDice, List <DieSide> sidesCanBeRerolled = null, bool isOpposite = false) { if (IsReroll == null) { IsReroll = true; } ActionEffects.Add(callback => { DiceRerollManager diceRerollManager = new DiceRerollManager { NumberOfDiceCanBeRerolled = numberOfDice, SidesCanBeRerolled = sidesCanBeRerolled, IsOpposite = isOpposite, CallBack = callback }; diceRerollManager.Start(); }); }
public override void ActionEffect(Action callBack) { Messages.ShowInfoToHuman(Name + ": suffer one hit to reroll any number of dice"); // reroll dice DiceRerollManager diceRerollManager = new DiceRerollManager { SidesCanBeRerolled = null, // all the sides can be reroll CallBack = callBack // all the dices can be reroll }; DamageSourceEventArgs inaldraRerollDmg = new DamageSourceEventArgs() { Source = "Inaldra Reroll", DamageType = DamageTypes.CardAbility }; HostShip.Damage.TryResolveDamage(1, inaldraRerollDmg, diceRerollManager.Start); }
public void UnblockButtons() { if (!IsTrueReroll) { MarkAsFakeReroll(); } DiceRerollManager.CurrentDiceRerollManager = null; Combat.CurrentDiceRoll.ToggleRerolledLocks(false); if (Selection.ActiveShip.Owner.GetType() == typeof(Players.HumanPlayer)) { ToggleDiceModificationsPanel(true); } if (CallBack != null) { CallBack(); } }
public override void ActionEffect(System.Action callBack) { DiceRerollManager diceRerollManager = new DiceRerollManager { NumberOfDiceCanBeRerolled = 1, IsOpposite = true, CallBack = delegate { if (Combat.CurrentDiceRoll.DiceRerolled.Any()) { AssignStress(callBack); } else { callBack(); } } }; diceRerollManager.Start(); }