public override void CleanUp()
        {
            ShellLeftHalf  = null;
            ShellRightHalf = null;

            LeftHalfPosOffset = RightHalfPosOffset = Vector2.Zero;

            BObjManager = null;
        }
        public ShellBreakAnimObj(BattleObjManager bObjManager, Vector2 position, double animDuration, float maxRotationVal, double rotationTime)
        {
            BObjManager = bObjManager;

            Position     = position;
            AnimDuration = animDuration;
            MaxRotation  = maxRotationVal;
            RotationTime = rotationTime;

            //Load the halves
            Texture2D shellSheet = AssetManager.Instance.LoadRawTexture2D($"{ContentGlobals.SpriteRoot}/Neutral/ShellShieldShell.png");

            ShellLeftHalf  = new CroppedTexture2D(shellSheet, new Rectangle(7, 298, 108, 129));
            ShellRightHalf = new CroppedTexture2D(shellSheet, new Rectangle(117, 298, 94, 128));

            //Calculate the position offsets for the shell halves
            //They're not the same size, with the left half being larger than the right half
            Vector2 leftHalfSize = ShellLeftHalf.WidthHeightToVector2();

            LeftHalfPosOffset = new Vector2(0f, leftHalfSize.Y / 2);

            RightHalfPosOffset = new Vector2(leftHalfSize.X - (Math.Abs(ShellRightHalf.SourceRect.Value.Width - leftHalfSize.X)), LeftHalfPosOffset.Y);
        }
        public void CleanUp()
        {
            ClearAllBattleObjects();

            instance = null;
        }