Q:

Adding red dot to tip of trajectory animation under specific conditions

I have the following little bit of code that models a thrust force being applied to a point-mass, and was wondering if it's possible to add a red dot to the "tip" of the animated trajectory when thrust is being applied.
Remove["Global`*"]
g = 9.81; (*Gravitational acceleration*)
m0 = 50000; (*Initial mass*)
T = 1200000;(*Thrust*)
Isp = 300; (*Specific impulse*)
tmax = 1000;(*Maximum value for t*)
theta = 177;(*Thrust angle*)

Solution = NDSolve[{
   x''[t] == If[t < 30, T/m[t] Cos[theta Degree], 0],
   y''[t] == If[t < 30, T/m[t] Sin[theta Degree], 0] - g, 
   m'[t] == If[t < 30, -(T/(g Isp)), 0],
   x[0] == 100000, y[0] == 100000, x'[0] == 1900 Cos[70 Degree], 
   y'[0] == 1900 Sin[70 Degree], m[0] == m0}, {x[t], y[t], x'[t], 
   y'[t], m[t]}, {t, 0, tmax}, MaxSteps -> 1000000]

ParametricPlot[Evaluate[{x[t], y[t]} /. Solution], {t, 0, tmax}, 
 AxesLabel -> {x, y}, PlotRange -> {{0, 900000}, {0, 300000}}, 
 PlotStyle -> Automatic, ImageSize -> Large]
Animate[ParametricPlot[Evaluate[{x[t], y[t]} /. Solution], {t, 0, a}, 
  AxesLabel -> {x, y}, PlotRange -> {{0, 900000}, {0, 300000}}, 
  PlotStyle -> Automatic, ImageSize -> Large], {a, 0, tmax}, 
 AnimationRate -> 5, AnimationRepetitions -> 1]

A:

Add something alike as an option to the ParametricPlot.
Epilog -> If[a > 30, {},
  {PointSize[Medium], Red, Point[{x[t], y[t]} /. Solution /. t -> a]}]

Time 30 is the end time of thrust, right?
Update: thrust arrow
Epilog -> With[{
   p = {x[t], y[t]} /. Solution[[1]] /. t -> a,
   v = {x'[t], y'[t]} /. Solution[[1]] /. t -> a},
  If[a > 30, {}, {
    Red, Thick, Arrowheads[Small], Arrow[{p, p + 30000 Normalize[v]}],
    Darker[Red], PointSize[Medium], Point[p]}]]

Update: slight makeover
You don't have to pollute Global space. Instead store the problem constants under one variable as a list of rules. You could also introduce units if inputting something like "50 ton" instead of "50000" seems more natural or if you're uncomfortable with quantities without units. Let's leave that as it is for now.
data = {g -> 9.81, m0 -> 50000, T -> 1200000, Isp -> 300, 
   tmax -> 1000, theta -> 177 Degree};

Solve for {x, y, m} instead of {x[t], y[t], x'[t], y'[t], m[t]}. You can access coordinates more conveniently that way and you can still get to the derivatives. Note the application of the data rules at the outside of the system. Let me also introduce you to WhenEvent. Note the additional "equation" which stops integration when y gets subzero. If you're sure that will happen you can set solving time to Infinity.
sol = NDSolve[{
     x''[t] == If[t < 30, T/m[t] Cos[theta], 0], 
     y''[t] == If[t < 30, T/m[t] Sin[theta], 0] - g, 
     m'[t] == If[t < 30, -(T/(g Isp)), 0],
     x[0] == 100000, y[0] == 100000,
     x'[0] == 1900 Cos[70 Degree],
     y'[0] == 1900 Sin[70 Degree], m[0] == m0,
     WhenEvent[y[t] < 0, "StopIntegration"]} /. data,
   {x, y, m}, {t, 0, Infinity},
   MaxSteps -> 1000000][[1]]

Extract solving time, from any solution.
time = (x /. sol)[[1, 1, 2]]

Plotting derivatives also.
GraphicsRow[{
  Plot[Evaluate[{x[t], y[t], m[t]} /. sol], {t, 0, time}],
  Plot[Evaluate[{x'[t], y'[t]} /. sol], {t, 0, time}]},
 ImageSize -> Medium]

For the sake of plotting, endtime a shouldn't be zero, so I started with the smallest thing bigger. What's different here? Most noticeably the x[a] /. sol replacements in the Epilog: x is replaced with the solving InterpolatingFunction which is evaluated at a. No need to introduce t where it's not needed.
Animate[
 ParametricPlot[
  Evaluate[{x[t], y[t]} /. sol], {t, 0, a},
  AxesLabel -> {"x", "y"},
  PlotRange -> {{0, 500000}, {0, 300000}},
  ImageSize -> Medium,
  Epilog -> With[{
     p = {x[a], y[a]} /. sol,
     v = {x'[a], y'[a]} /. sol}, 
    If[a > 30, {}, {Red, Thick, Arrowheads[Small], 
      Arrow[{p, p + 30000 Normalize[v]}], Darker[Red], 
      PointSize[Medium], Point[p]}]]],
 {a, $MachineEpsilon, time},
 AnimationRate -> 5,
 AnimationRepetitions -> 1]

