Exemple #1
0
        private static ObjectAction GetMoveAction_Phase0()
        {
            ObjectAction teleportToInitialLocation = ObjectActionGenerator.DoOnce(
                ObjectAction.SetPosition(
                    xMillis: MathExpression.Constant(500 * 1000),
                    yMillis: MathExpression.Constant(850 * 1000)));

            ObjectAction moveAction = ObjectAction.Union(
                ObjectAction.StrafeMove(moveToXMillis: MathExpression.XMillis(), moveToYMillis: MathExpression.Constant(0)),
                ObjectAction.SetSpeed(MathExpression.Constant(20)));

            BooleanExpression shouldStopMoving = BooleanExpression.LessThanOrEqualTo(
                MathExpression.YMillis(),
                MathExpression.Constant(500 * 1000));

            ObjectAction stopMovingAction = ObjectAction.SetSpeed(MathExpression.Constant(0));
            ObjectAction setPhaseAction   = ObjectAction.SetNumericVariable(CurrentPhaseVariableName, MathExpression.Constant(1));

            return(ObjectAction.ConditionalNextAction(
                       currentAction: ObjectAction.Union(teleportToInitialLocation, moveAction),
                       condition: shouldStopMoving,
                       nextAction: ObjectActionGenerator.DoOnce(ObjectAction.Union(stopMovingAction, setPhaseAction))));
        }