Example #1
0
 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();
            }
        }
Example #4
0
            public override void ActionEffect(System.Action callBack)
            {
                DiceRerollManager diceRerollManager = new DiceRerollManager
                {
                    NumberOfDiceCanBeRerolled = 1,
                    CallBack = callBack
                };

                diceRerollManager.Start();
            }
Example #5
0
        public override void ActionEffect(System.Action callBack)
        {
            DiceRerollManager diceRerollManager = new DiceRerollManager
            {
                NumberOfDiceCanBeRerolled = (Combat.Defender.IsUnique) ? 2 : 1,
                CallBack = callBack
            };

            diceRerollManager.Start();
        }
Example #6
0
        public override void ActionEffect(Action callBack)
        {
            DiceRerollManager diceRerollManager = new DiceRerollManager
            {
                NumberOfDiceCanBeRerolled = 1,
                CallBack = callBack
            };

            Source.SpendCharge(diceRerollManager.Start);
        }
Example #7
0
        public override void ActionEffect(System.Action callBack)
        {
            DiceRerollManager diceRerollManager = new DiceRerollManager
            {
                NumberOfDiceCanBeRerolled = (Combat.Defender.PilotSkill > 2) ? 1 : 2,
                CallBack = callBack
            };

            diceRerollManager.Start();
        }
Example #8
0
 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();
        }
Example #10
0
        public override void ActionEffect(System.Action callBack)
        {
            Host.OnRerollIsConfirmed += AssignStressForEachRerolled;

            DiceRerollManager diceRerollManager = new DiceRerollManager
            {
                CallBack = callBack
            };

            diceRerollManager.Start();
        }
Example #11
0
            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);
        }
Example #13
0
        //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();
        }
Example #14
0
            public override void ActionEffect(System.Action callBack)
            {
                DiceRerollManager diceRerollManager = new DiceRerollManager
                {
                    SidesCanBeRerolled = new List <DieSide> {
                        DieSide.Blank
                    },
                    CallBack = callBack
                };

                diceRerollManager.Start();
            }
Example #15
0
        public override void ActionEffect(System.Action callBack)
        {
            DiceRerollManager diceRerollManager = new DiceRerollManager
            {
                SidesCanBeRerolled = new System.Collections.Generic.List <DieSide> {
                    DieSide.Focus
                },
                CallBack = callBack
            };

            diceRerollManager.Start();
        }
Example #16
0
            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();
            }
Example #17
0
 public override void ActionEffect(System.Action callBack)
 {
     int dices = getDices();
     if (dices > 0)
     {
         DiceRerollManager diceRerollManager = new DiceRerollManager
         {
             NumberOfDiceCanBeRerolled = dices,
             CallBack = callBack
         };
         diceRerollManager.Start();
     }
 }
Example #18
0
        public override void ActionEffect(System.Action callBack)
        {
            DiceRerollManager diceRerollManager = new DiceRerollManager
            {
                NumberOfDiceCanBeRerolled = 1,
                IsOpposite = true,
                CallBack   = delegate {
                    AssignStress(callBack);
                }
            };

            diceRerollManager.Start();
        }
Example #19
0
    public void UnblockButtons()
    {
        if (!IsTrueReroll)
        {
            MarkAsFakeReroll();
        }

        DiceRerollManager.CurrentDiceRerollManager = null;

        Combat.CurrentDiceRoll.ToggleRerolledLocks(false);

        Phases.CurrentSubPhase.Next();
    }
Example #20
0
 public override void ActionEffect(System.Action callBack)
 {
     hostAbility.usedThisRound = true;
     SpendTargetLock(() =>
     {
         DiceRerollManager diceRerollManager = new DiceRerollManager
         {
             NumberOfDiceCanBeRerolled = int.MaxValue,
             IsOpposite = true,
             CallBack   = callBack
         };
         diceRerollManager.Start();
     });
 }
Example #21
0
            public override void ActionEffect(System.Action callBack)
            {
                int tempFriendlyShips = numFriendlyShips;

                numFriendlyShips = 0;

                DiceRerollManager diceRerollManager = new DiceRerollManager
                {
                    NumberOfDiceCanBeRerolled = tempFriendlyShips,
                    CallBack = callBack
                };

                diceRerollManager.Start();
            }
Example #22
0
        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();
        }
Example #23
0
        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);
            }
        }
Example #24
0
    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();
        }
    }
Example #25
0
        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();
        }
Example #26
0
        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);
        }
Example #27
0
 /// <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();
     });
 }
Example #28
0
        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);
        }
Example #29
0
    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();
        }
    }
Example #30
0
        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();
        }