protected override void UpdatePosition() { base.UpdatePosition(); switch (bubbleAnimation) { case ProjectileAnimationState.Closed: if (totalTravelledTime < Parameter.ProjectileTurtleSSTransformTime) { totalTravelledTime += Parameter.ProjectileMovementTotalTimeElapsed; } else { IsAbleToRefreshPosition = false; bubbleAnimation = ProjectileAnimationState.Opening; } break; case ProjectileAnimationState.Opening: bubbleAnimation = ProjectileAnimationState.Opened; SpecialEffectBuilder.TurtleProjectile3Division(FlipbookList[0].Position, FlipbookList[0].Rotation); TurtleProjectileEmitter.Shot3((Turtle)Mobile, force, FlipbookList[0].Position, FlipbookList[0].Rotation, OnFinalizeExecutionAction); PlayExplosionSFX(); GameScene.Camera.TrackObject(Mobile.LastCreatedProjectileList.First()); IsAbleToRefreshPosition = true; break; case ProjectileAnimationState.Opened: base.Destroy(); break; } }