public override void OnSelect()
 {
     for (int i = 0; i < TransformingUnit.ArrayTransformingUnit.Length; ++i)
     {
         AddChoiceToCurrentPanel(new ActionPanelConfirmTransform(TransformingUnit, i, ActiveSquad, Map,
                                                                 TransformingUnit.CanTransform(i, Map.ActiveSquad.CurrentWingmanA, Map.ActiveSquad.CurrentWingmanB)));
     }
 }
        public override void Draw(CustomSpriteBatch g)
        {
            float X, Y;

            DrawNextChoice(g);

            X = (Map.CursorPosition.X + 1 - Map.CameraPosition.X) * Map.TileSize.X;
            Y = (Map.CursorPosition.Y - Map.CameraPosition.Y) * Map.TileSize.Y;

            if (X + MinActionMenuWidth + MinActionMenuWidth >= Constants.Width)
            {
                X = Constants.Width - MinActionMenuWidth - MinActionMenuWidth;
            }

            if (ShowSquadMembers)
            {
                for (int U = 0; U < ActiveSquad.UnitsAliveInSquad; ++U)
                {
                    GameScreen.DrawBox(g, new Vector2(X + MinActionMenuWidth, Y + U * PannelHeight), MinActionMenuWidth, PannelHeight, Color.White);
                    if (!(ActiveSquad[U] is UnitTransforming) ||
                        TransformingUnit.PermanentTransformation)
                    {
                        GameScreen.DrawText(g, ActiveSquad[U].FullName, new Vector2(X + MinActionMenuWidth, Y + U * PannelHeight), Color.Gray);
                    }
                    else
                    {
                        GameScreen.DrawText(g, ActiveSquad[U].FullName, new Vector2(X + MinActionMenuWidth, Y + U * PannelHeight), Color.White);
                    }
                }
                g.Draw(GameScreen.sprPixel, new Rectangle((int)X + MinActionMenuWidth, (int)Y + ActiveSquad.IndexOf(TransformingUnit) * PannelHeight, 50, 20), Color.FromNonPremultiplied(255, 255, 255, 128));
            }

            for (int U = 0; U < TransformingUnit.ArrayTransformingUnit.Length; ++U)
            {
                g.Draw(GameScreen.sprPixel, new Rectangle((int)X + MinActionMenuWidth + MinActionMenuWidth, (int)Y + U * PannelHeight, 50, 20), Color.Navy);
                if (TransformingUnit.CanTransform(U, ActiveSquad.CurrentWingmanA, ActiveSquad.CurrentWingmanB))
                {
                    GameScreen.DrawText(g, TransformingUnit.ArrayTransformingUnit[U].TransformingUnitName, new Vector2(X + MinActionMenuWidth + MinActionMenuWidth, Y + U * PannelHeight), Color.White);
                }
                else
                {
                    GameScreen.DrawText(g, TransformingUnit.ArrayTransformingUnit[U].TransformingUnitName, new Vector2(X + MinActionMenuWidth + MinActionMenuWidth, Y + U * PannelHeight), Color.Gray);
                }
            }

            g.Draw(GameScreen.sprPixel, new Rectangle((int)X + MinActionMenuWidth, (int)Y + TransformationChoice * PannelHeight, 50, 20), Color.FromNonPremultiplied(255, 255, 255, 128));

            g.Draw(GameScreen.sprPixel, new Rectangle(Constants.Width / 2 - 100, Constants.Height / 2 - 25, 200, 50), Color.Navy);
            GameScreen.DrawText(g, ActiveSquad.CurrentLeader.FullName + " will transform into " + TransformingUnit.ArrayTransformingUnit[TransformationChoice].TransformingUnitName + ".\n\rThis will be permanent. Continue?", new Vector2(Constants.Width / 2 - 100, Constants.Height / 2 - 25), Color.White);
        }