public override InstructionResult Execute(float dt) { if (i >= end) { return(InstructionResult.Done); } else { switch (body.Execute(dt)) { case InstructionResult.Done: i++; body = getBody(i); return(InstructionResult.Running); case InstructionResult.DoneAndCreateAsteroid: i++; body = getBody(i); return(InstructionResult.RunningAndCreateAsteroid); case InstructionResult.Running: return(InstructionResult.Running); case InstructionResult.RunningAndCreateAsteroid: return(InstructionResult.RunningAndCreateAsteroid); } return(InstructionResult.Done); } }
public override InstructionResult Execute(float dt) { if (!isADone) { var Ares = A.Execute(dt); switch (Ares) { case InstructionResult.Done: isADone = true; return(InstructionResult.Running); case InstructionResult.DoneAndCreateAsteroid: isADone = true; return(InstructionResult.RunningAndCreateAsteroid); default: return(Ares); } } else { if (!isBDone) { var Bres = B.Execute(dt); switch (Bres) { case InstructionResult.Done: isBDone = true; break; case InstructionResult.DoneAndCreateAsteroid: isBDone = true; break; } return(Bres); } else { return(InstructionResult.Done); } } }
public override InstructionResult Execute(float dt) { switch (body.Execute(dt)) { case InstructionResult.Done: body = body.Reset(); return(InstructionResult.Running); case InstructionResult.DoneAndCreateAsteroid: body = body.Reset(); return(InstructionResult.RunningAndCreateAsteroid); case InstructionResult.Running: return(InstructionResult.Running); case InstructionResult.RunningAndCreateAsteroid: return(InstructionResult.RunningAndCreateAsteroid); } return(InstructionResult.Running); }