예제 #1
0
        private void PerformReposition(GenericShip ship, Action callback)
        {
            Selection.ChangeActiveShip(ship);

            ship.Tokens.AssignToken
            (
                typeof(Tokens.StrainToken),
                delegate
            {
                ship.AskPerformFreeAction
                (
                    new List <GenericAction>()
                {
                    new BarrelRollAction()
                    {
                        HostShip = ship
                    },
                    new BoostAction()
                    {
                        HostShip = ship
                    },
                },
                    callback,
                    descriptionShort: "\"Hawk\"",
                    descriptionLong: "You can perform barrel roll or boost action",
                    imageHolder: ship
                );
            }
            );
        }
예제 #2
0
        private void PerformRedCalculateActionRecursive(Action callback)
        {
            GenericShip currentShip = Selection.MultiSelectedShips.FirstOrDefault();

            if (currentShip == null)
            {
                Selection.ChangeActiveShip(HostShip);
                callback();
            }
            else
            {
                Selection.MultiSelectedShips.Remove(currentShip);

                Selection.ChangeActiveShip(currentShip);

                currentShip.AskPerformFreeAction(
                    new FocusAction()
                {
                    Color = Actions.ActionColor.Red
                },
                    delegate
                {
                    PerformRedCalculateActionRecursive(callback);
                },
                    HostShip.PilotInfo.PilotName,
                    "You may perform red Calculate action",
                    HostShip
                    );
            }
        }
예제 #3
0
 protected virtual void PerformFreeAction(GenericShip targetShip)
 {
     targetShip.AskPerformFreeAction(
         GetPossibleActions(),
         delegate {
         Selection.ChangeActiveShip(CoordinateActionData.CoordinateProvider);
         Triggers.FinishTrigger();
     },
         "Coordinate action",
         "You are coordinated by " + CoordinateActionData.CoordinateProvider.PilotInfo.PilotName
         );
 }
예제 #4
0
        private void EachShipAction(GenericShip ship, Action action)
        {
            Selection.ChangeActiveShip(ship);

            ship.Tokens.AssignToken(typeof(Tokens.StrainToken), delegate
            {
                ship.AskPerformFreeAction(new FocusAction(),
                                          action,
                                          descriptionShort: "Clone Captain Rex",
                                          descriptionLong: "You may perform a Focus action",
                                          imageHolder: HostUpgrade
                                          );
            });
        }