public override void Load()
        {
            sndButtonOver  = new FMODSound(FMODSystem, "Content/Triple Thunder/Menus/SFX/Button Over.wav");
            sndButtonClick = new FMODSound(FMODSystem, "Content/Triple Thunder/Menus/SFX/Button Click.wav");

            fntText = Content.Load <SpriteFont>("Fonts/Arial10");

            sprBackground = Content.Load <Texture2D>("Triple Thunder/Menus/Character Select/Background");

            CharacterBackground = new AnimatedSprite(Content, "Triple Thunder/Menus/Character Select/Character Background", Vector2.Zero, 0, 1, 4);

            CancelButton = new InteractiveButton(Content, "Triple Thunder/Menus/Common/Cancel Button", new Vector2(508, 510), OnButtonOver, Cancel);
            OKButton     = new InteractiveButton(Content, "Triple Thunder/Menus/Common/OK Button", new Vector2(590, 510), OnButtonOver, Confirm);

            foreach (string ActiveCharacterPath in Directory.EnumerateFiles("Content/Units/Triple Thunder/Characters"))
            {
                string ActiveCharacter = ActiveCharacterPath.Remove(0, 40);
                ActiveCharacter = ActiveCharacter.Remove(ActiveCharacter.Length - 4);

                CharacterInfo NewCharacterInfo = new CharacterInfo(ActiveCharacter,
                                                                   Content.Load <Texture2D>("Triple Thunder/Menus/Character Select/" + ActiveCharacter),
                                                                   Content.Load <Texture2D>("Triple Thunder/Menus/Character Select/" + ActiveCharacter + " Portrait"));

                ListCharacterInfo.Add(NewCharacterInfo);

                if (ActivePlayer.Equipment.CharacterType == ActiveCharacter)
                {
                    SelectedCharacterInfo = NewCharacterInfo;
                }
            }
        }
        public override void Load()
        {
            #region Ressources

            sndBGM = new FMODSound(FMODSystem, "Content/Triple Thunder/Menus/Music/Wait Room.mp3");
            sndBGM.SetLoop(true);
            sndBGM.PlayAsBGM();

            sndButtonOver  = new FMODSound(FMODSystem, "Content/Triple Thunder/Menus/SFX/Button Over.wav");
            sndButtonClick = new FMODSound(FMODSystem, "Content/Triple Thunder/Menus/SFX/Button Click.wav");

            fntText = Content.Load <SpriteFont>("Fonts/Arial10");

            sprBackground = Content.Load <Texture2D>("Triple Thunder/Menus/Wait Room/Background Mission");
            sprHostText   = Content.Load <Texture2D>("Triple Thunder/Menus/Wait Room/Player Host Text");
            sprReadyText  = Content.Load <Texture2D>("Triple Thunder/Menus/Wait Room/Player Ready Text");

            DicCharacterIconByName = new Dictionary <string, Texture2D>();
            foreach (string ActiveCharacterPath in Directory.EnumerateFiles("Content/Triple Thunder/Menus/Wait Room/Character Icons/", "*"))
            {
                string ActiveCharacter = ActiveCharacterPath.Remove(0, 55);
                ActiveCharacter = ActiveCharacter.Remove(ActiveCharacter.Length - 4);
                DicCharacterIconByName.Add(ActiveCharacter, Content.Load <Texture2D>("Triple Thunder/Menus/Wait Room/Character Icons/" + ActiveCharacter));
            }

            sprActivePlayerIcon = DicCharacterIconByName["Jack"];

            ChangeRoomNameButton  = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Change Room Name Button", new Vector2(350, 17), OnButtonOver, null);
            CharacterSelectButton = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Character Select Button", new Vector2(678, 160), OnButtonOver, OpenCharacterSelectScreen);
            ActivateItemButton    = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Activate Item Button", new Vector2(628, 202), OnButtonOver, null);
            InviteButton          = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Invite Button", new Vector2(490, 30), OnButtonOver, null);
            QuestEasyButton       = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Quest Easy Button", new Vector2(230, 67), OnButtonOver, OnEasySelected);
            QuestNormalButton     = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Quest Normal Button", new Vector2(340, 67), OnButtonOver, OnNormalSelected);
            QuestHardButton       = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Quest Hard Button", new Vector2(480, 67), OnButtonOver, OnHardSelected);
            ReadyButton           = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Ready Button", new Vector2(680, 500), 8, OnButtonOver, Ready);
            StartButton           = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Start Button", new Vector2(680, 500), OnButtonOver, StartGame);
            BackToLobbyButton     = new InteractiveButton(Content, "Triple Thunder/Menus/Common/Back To Lobby", new Vector2(678, 565),
                                                          "Triple Thunder/Menus/Common/Back Arrow Icon", new Vector2(-86, 0), 6, OnButtonOver, ReturnToLobby);

            PlayerInfo        = new AnimatedSprite(Content, "Triple Thunder/Menus/Wait Room/Player Info", new Vector2(0, 0), 0, 1, 3);
            PlayerInfoOutline = new AnimatedSprite(Content, "Triple Thunder/Menus/Wait Room/Player Info Outline", new Vector2(0, 0), 0, 1, 4);
            PlayerInfoOutline.SetFrame(2);

            QuestButton        = new AnimatedSprite(Content, "Triple Thunder/Menus/Wait Room/Quest Button", new Vector2(0, 0), 0, 1, 3);
            QuestOutlineButton = new AnimatedSprite(Content, "Triple Thunder/Menus/Wait Room/Quest Button Outline", new Vector2(0, 0), 0, 1, 4);
            QuestOutlineButton.SetFrame(2);

            QuestEasyButton.CanBeChecked   = true;
            QuestNormalButton.CanBeChecked = true;
            QuestHardButton.CanBeChecked   = true;

            IsHost = false;
            foreach (Player ActivePlayer in Room.GetLocalPlayers())
            {
                if (ActivePlayer.IsHost())
                {
                    IsHost = true;
                }
            }

            if (IsHost)
            {
                ArrayMenuButton = new InteractiveButton[]
                {
                    ChangeRoomNameButton, CharacterSelectButton, ActivateItemButton, InviteButton,
                    QuestEasyButton, QuestNormalButton, QuestHardButton,
                    BackToLobbyButton, StartButton,
                };
            }
            else
            {
                ArrayMenuButton = new InteractiveButton[]
                {
                    ChangeRoomNameButton, CharacterSelectButton, ActivateItemButton, InviteButton,
                    QuestEasyButton, QuestNormalButton, QuestHardButton,
                    BackToLobbyButton, ReadyButton,
                };
            }

            #endregion

            ChangeDifficulty(Room.CurrentDifficulty);

            if (IsHost)
            {
                UpdateSelectedMission(ListMissionInfo[0]);
            }
            else if (string.IsNullOrEmpty(Room.MapPath))
            {
                UpdateSelectedMap(Room.CurrentDifficulty, ListMissionInfo[0].MissionPath);
            }
            else
            {
                UpdateSelectedMap(Room.CurrentDifficulty, Room.MapPath);
            }

            foreach (Player ActivePlayer in Room.ListRoomPlayer)
            {
                ActivePlayer.CharacterPreview = new RobotAnimation("Players/" + ActivePlayer.Equipment.CharacterType, null, Vector2.Zero, 0, new PlayerEquipment(), new MuteSFXGenerator(), new List <Weapon>());
            }
        }
        public override void Load()
        {
            #region Ressources

            sndBGM = new FMODSound(FMODSystem, "Content/Triple Thunder/Menus/Music/Wait Room.mp3");
            sndBGM.SetLoop(true);
            sndBGM.PlayAsBGM();

            sndButtonOver  = new FMODSound(FMODSystem, "Content/Triple Thunder/Menus/SFX/Button Over.wav");
            sndButtonClick = new FMODSound(FMODSystem, "Content/Triple Thunder/Menus/SFX/Button Click.wav");

            fntText = Content.Load <SpriteFont>("Fonts/Arial10");

            sprBackground        = Content.Load <Texture2D>("Triple Thunder/Menus/Wait Room/Background Battle");
            fntTest              = Content.Load <Texture2D>("Triple Thunder/HUD/Menus/Numbers White");
            sprHostText          = Content.Load <Texture2D>("Triple Thunder/Menus/Wait Room/Player Host Text");
            sprReadyText         = Content.Load <Texture2D>("Triple Thunder/Menus/Wait Room/Player Ready Text");
            sprTeamSeparatorBlue = Content.Load <Texture2D>("Triple Thunder/Menus/Wait Room/Team Separator Blue");
            sprTeamSeparatorRed  = Content.Load <Texture2D>("Triple Thunder/Menus/Wait Room/Team Separator Red");

            DicCharacterIconByName = new Dictionary <string, Texture2D>();
            foreach (string ActiveCharacterPath in Directory.EnumerateFiles("Content/Triple Thunder/Menus/Wait Room/Character Icons/", "*"))
            {
                string ActiveCharacter = ActiveCharacterPath.Remove(0, 55);
                ActiveCharacter = ActiveCharacter.Remove(ActiveCharacter.Length - 4);
                DicCharacterIconByName.Add(ActiveCharacter, Content.Load <Texture2D>("Triple Thunder/Menus/Wait Room/Character Icons/" + ActiveCharacter));
            }

            sprActivePlayerIcon = DicCharacterIconByName["Jack"];

            ChangeRoomNameButton  = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Change Room Name Button", new Vector2(350, 17), OnButtonOver, null);
            CharacterSelectButton = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Character Select Button", new Vector2(678, 160), OnButtonOver, OpenCharacterSelectScreen);
            ActivateItemButton    = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Activate Item Button", new Vector2(625, 250), OnButtonOver, null);
            WeaponLimitButton     = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Weapon Limit Button", new Vector2(727, 250), OnButtonOver, null);
            MapSelectButton       = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Map Select Button", new Vector2(675, 416), OnButtonOver, OpenMapSelectScreen);
            MapTextOverlay        = Content.Load <Texture2D>("Triple Thunder/Menus/Wait Room/Map Text");
            MapStar                     = Content.Load <Texture2D>("Triple Thunder/Menus/Wait Room/Map Star");
            MapLevelCategory            = new AnimatedSprite(Content, "Triple Thunder/Menus/Wait Room/Map Level", new Vector2(0, 0), 0, 1, 3);
            ModeSelectButton            = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Mode Select Arrows", new Vector2(698, 207), OnButtonOver, OpenModeSelectScreen);
            ModeSelectTextButton        = new AnimatedSprite(Content, "Triple Thunder/Menus/Wait Room/Mode Select Text", new Vector2(697, 209), 0, 1, 3);
            MatchTypeButton             = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Match Type Team Button", new Vector2(100, 67), OnButtonOver, null);
            RedTeamButton               = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Red Team Button", new Vector2(215, 65), OnButtonOver, RedTeamSelected);
            RedTeamButton.CanBeChecked  = true;
            BlueTeamButton              = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Blue Team Button", new Vector2(300, 65), OnButtonOver, BlueTeamSelected);
            BlueTeamButton.CanBeChecked = true;
            RedTeamButton.Select();
            KillPlusButton  = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Plus Button", new Vector2(638, 300), OnButtonOver, KillPlus);
            KillMinusButton = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Minus Button", new Vector2(752, 300), OnButtonOver, KillMinus);
            TimePlusButton  = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Plus Button", new Vector2(638, 324), OnButtonOver, TimePlus);
            TimeMinusButton = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Minus Button", new Vector2(752, 324), OnButtonOver, TimeMinus);

            InviteButton      = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Invite Button", new Vector2(490, 30), OnButtonOver, null);
            ReadyButton       = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Ready Button", new Vector2(450, 66), 8, OnButtonOver, Ready);
            StartButton       = new InteractiveButton(Content, "Triple Thunder/Menus/Wait Room/Start Button", new Vector2(450, 66), OnButtonOver, StartGame);
            BackToLobbyButton = new InteractiveButton(Content, "Triple Thunder/Menus/Common/Back To Lobby", new Vector2(678, 565),
                                                      "Triple Thunder/Menus/Common/Back Arrow Icon", new Vector2(-86, 0), 6, OnButtonOver, ReturnToLobby);

            PlayerInfo        = new AnimatedSprite(Content, "Triple Thunder/Menus/Wait Room/Player Info", new Vector2(0, 0), 0, 1, 3);
            PlayerInfoOutline = new AnimatedSprite(Content, "Triple Thunder/Menus/Wait Room/Player Info Outline", new Vector2(0, 0), 0, 1, 4);
            PlayerInfoOutline.SetFrame(2);

            UpdateReadyOrHost();

            #endregion

            UpdateRoomSubtype(Room.RoomSubtype);
            Room.MapPath = "Random";
            sprMapImage  = Content.Load <Texture2D>("Triple Thunder/Menus/Wait Room/Map Icons/Random");

            if (OnlineClient != null && OnlineClient.IsConnected)
            {
                DirectoryInfo MapDirectory = new DirectoryInfo(Content.RootDirectory + "/Maps/Triple Thunder/Battle/");

                FileInfo[] ArrayMapFile = MapDirectory.GetFiles("*.ttm");
                Random     Random       = new Random();
                string     FileName     = ArrayMapFile[Random.Next(ArrayMapFile.Length)].Name;
                FileName = FileName.Remove(FileName.Length - 4);
                OnlineClient.Host.Send(new AskChangeMapScriptClient(Room.CurrentDifficulty, "Battle/" + FileName));
            }

            foreach (Player ActivePlayer in Room.ListRoomPlayer)
            {
                ActivePlayer.CharacterPreview = new RobotAnimation("Players/" + ActivePlayer.Equipment.CharacterType, null, Vector2.Zero, 0, new PlayerEquipment(), new MuteSFXGenerator(), new List <Weapon>());
            }
        }