예제 #1
0
        private void AdvancedSettings()
        {
            right.Reset();
            LabelCenter(right, locale["advancedHead"], true);
            TextField(right, User.DieName, locale["diename"], Style.LabelOffset, true);
            TextField(right, User.RaceFinish, locale["raceFinish"], Style.LabelOffset, true);
            TextField(right, User.DieNameFormat, locale["dieStyle"], Style.LabelOffset, true);
            TextField(right, User.WaveFormat, locale["wave"], Style.LabelOffset, true);
            right.MoveY();
            LabelCenter(right, locale["chatSettings"], true);
            TextField(right, User.ChatFormat, locale["chatFormat"], Style.LabelOffset, true);
            TextField(right, User.ChatPmFormat, locale["chatPMFormat"], Style.LabelOffset, true);
            LabelCenter(right, locale["chatFormatSend"], true);
            TextField(right, User.ChatFormatSend, string.Empty, 0f, true);
            LabelCenter(right, locale["chatPMFormatSend"], true);
            TextField(right, User.ChatPmFormatSend, string.Empty, 0f, true);
            right.MoveY();
            LabelCenter(right, locale["others"], true);
            LabelCenter(right, locale["restart"], true);
            TextField(right, User.RestartMessage, string.Empty, 0f, true);
            LabelCenter(right, locale["mcswitch"], true);
            TextField(right, User.McSwitch, string.Empty, 0f, true);

            right.MoveToEndY(WindowPosition, Style.Height * 2f + Style.VerticalMargin);
            if (Button(right, locale["preview"], true))
            {
                pageSelection = PreviewPage;
                return;
            }
            right.BeginHorizontal(2);
            if (Button(right, locale["btnToMain"], false))
            {
                pageSelection = MainPage;
                return;
            }
            right.MoveX();
            if (Button(right, locale["btnBack"], false))
            {
                Disable();
                return;
            }
        }
예제 #2
0
 private void DrawLowerButtons()
 {
     rect.MoveToEndY(WindowPosition, Style.Height);
     rect.MoveToEndX(WindowPosition, Style.LabelOffset);
     rect.width = Style.LabelOffset;
     if (Button(rect, locale["btnBack"]))
     {
         Disable();
         return;
     }
 }
예제 #3
0
        private void LogicPage()
        {
            LabelCenter(left, locale["logicScript"], true);
            left.height = (BoxPosition.y + BoxPosition.height - Style.WindowBottomOffset - Style.Height - Style.VerticalMargin) - left.y;
            CustomLevel.currentScriptLogic = UnityEngine.GUI.TextArea(left.ToRect(), CustomLevel.currentScriptLogic, areaStyle);

            rect.MoveToEndY(BoxPosition, Style.Height);
            rect.width  = 144f;
            rect.height = Style.Height;
            if (Button(rect, locale["btnClear"], false))
            {
                CustomLevel.currentScriptLogic = "";
            }

            rect.MoveToEndX(BoxPosition, 144f);
            if (Button(rect, locale["btnClose"]))
            {
                Disable();
                return;
            }
        }
예제 #4
0
 private void DrawRightColumn()
 {
     right.Reset();
     LabelCenter(right, locale["character"], true);
     SelectionGrid(right, costumeSelection, costumeList, 3, true);
     DropdownMenu(this, right, characterSelection, characterList, true);
     right.MoveToEndY(WindowPosition, new AutoScaleFloat(30f));
     right.MoveOffsetX(new AutoScaleFloat(150f));
     right.height = new AutoScaleFloat(30f);
     if (Button(right, locale["back"], false))
     {
         Disable();
         return;
     }
 }
예제 #5
0
        protected override void DrawMainPart()
        {
            rect.Reset();
            Box(BoxPosition, locale["title"]);
            float offset = new AutoScaleFloat(120f);

            rect.MoveOffsetX(offset);
            rect.width   -= offset;
            pageSelection = SelectionGrid(rect, pageSelection, modeSelection, modeSelection.Length);
            rect.ResetX();
            rect.MoveToEndY(BoxPosition, Style.Height);
            rect.MoveToEndX(BoxPosition, Style.LabelOffset);
            rect.width = Style.LabelOffset;
            if (Button(rect, locale["btnClose"]))
            {
                Disable();
            }
        }
예제 #6
0
 private void DrawLeftColumn()
 {
     left.Reset();
     LabelCenter(left, locale["map"], true);
     SelectionGrid(left, mapSelection, mapList, 1, true);
     LabelCenter(left, locale["difficulity"], true);
     SelectionGrid(left, difficulitySelection, difficulityList, 3, true);
     LabelCenter(left, locale["daylight"], true);
     SelectionGrid(left, dayLightSelection, dayLightList, 3, true);
     LabelCenter(left, locale["camera"], true);
     SelectionGrid(left, Settings.CameraMode, cameraList, cameraList.Length, true);
     left.MoveToEndY(BoxPosition, new AutoScaleFloat(30f));
     left.height = new AutoScaleFloat(30f);
     if (Button(left, locale["start"], true))
     {
         OnButtonStartClick();
         DisableImmediate();
         return;
     }
 }
예제 #7
0
        protected override void DrawMainPart()
        {
            rect.Reset();
            Box(WindowPosition, locale["title"]);
            float offset = new AutoScaleFloat(120f);

            rect.MoveOffsetX(offset);
            rect.width   -= offset;
            pageSelection = SelectionGrid(rect, pageSelection, modeSelection, modeSelection.Length);
            rect.ResetX();
            rect.MoveToEndY(WindowPosition, Style.Height);
            rect.MoveToEndX(WindowPosition, Style.LabelOffset * 2f + Style.HorizontalMargin);
            rect.width = Style.LabelOffset;
            if (Button(rect, locale["btnReset"], false))
            {
                GameModes.DisableAll();
            }
            rect.MoveX(Style.HorizontalMargin, true);
            if (Button(rect, locale["btnClose"]))
            {
                Disable();
            }
        }
예제 #8
0
        protected override void DrawMainPart()
        {
            rect.Reset();
            Box(BoxPosition, locale["title"]);
            rect.MoveOffsetX(new AutoScaleFloat(120f));
            rect.width   -= new AutoScaleFloat(120f);
            pageSelection = SelectionGrid(rect, pageSelection, skinTypeSelection, skinTypeSelection.Length);

            right.Reset();
            if (presets != null && presets.Count > 0 && skinSelection >= 0)
            {
                var set = presets[skinSelection];
                set.Draw(right, locale);
            }

            rect.ResetX();
            rect.MoveToEndY(BoxPosition, Style.Height);
            rect.MoveToEndX(BoxPosition, Style.LabelOffset);
            rect.width = Style.LabelOffset;
            if (Button(rect, locale["btnClose"]))
            {
                Disable();
            }
        }
예제 #9
0
        private void ServerList()
        {
            if (Event.current != null && Event.current.type == EventType.KeyDown && UnityEngine.GUI.GetNameOfFocusedControl() == "ServerListFilter")
            {
                UpdateRoomList();
            }

            rect.Reset();
            region = SelectionGrid(rect, region, regions, regions.Length, true);

            Label(rect, locale["customServer"], false);
            float offset = ((scrollArea.width - (Style.HorizontalMargin * 3)) / 4f) + Style.HorizontalMargin;

            rect.MoveOffsetX(offset);
            rect.width -= (new AutoScaleFloat(100f) - Style.HorizontalMargin);
            float txt = offset + rect.width;

            customServer = SelectionGrid(rect, customServer, customServers, customServers.Length, false);

            rect.ResetX();
            rect.MoveOffsetX(txt + Style.HorizontalMargin);
            customServerField = TextField(rect, customServerField, string.Empty, 0f, true);

            rect.ResetX();
            CheckReconnect();
            UnityEngine.GUI.SetNextControlName("ServerListFilter");
            nameFilter = TextField(rect, nameFilter, locale["filter"], offset, true);

            rect.ResetX();
            rect.MoveY(Style.VerticalMargin);
            scrollRect.Reset();
            scrollArea.y = rect.y;
            scroll       = BeginScrollView(scrollArea, scroll, scrollAreaView);
            if (connected)
            {
                foreach (var room in roomList)
                {
                    if (Button(scrollRect, room.UIName.ToHTMLFormat(), true) && room.PlayerCount != room.MaxPlayers)
                    {
                        if (room.HasPassword)
                        {
                            roomToJoin    = room;
                            pageSelection = PasswordRequestPage;
                        }
                        else
                        {
                            PhotonNetwork.JoinRoom(room.Name);
                            disconnectByJoin = true;
                            DisableImmediate();
                        }
                        return;
                    }
                }
            }
            EndScrollView();

            rect.MoveToEndY(BoxPosition, Style.Height);
            rect.width = new AutoScaleFloat(170f);
            if (Button(rect, locale["btnCreation"], false))
            {
                pageSelection = CreationPage;
                connected     = false;
                return;
            }
            rect.MoveX(new AutoScaleFloat(5f), true);
            if (Button(rect, locale["btnSettings"], false))
            {
                pageSelection = SettingsPage;
                connected     = false;
                return;
            }
            rect.width = new AutoScaleFloat(120f);
            rect.MoveToEndX(BoxPosition, new AutoScaleFloat(120f));
            if (Button(rect, locale["btnBack"]))
            {
                Disable();
                return;
            }
        }
예제 #10
0
        private void RoomCreation()
        {
            left.Reset();
            right.Reset();
            LabelCenter(left, locale["roomSettings"], true);
            serverName = TextField(left, serverName, locale["roomName"], Style.LabelOffset, true);
            password   = TextField(left, password, locale["pwd"], Style.LabelOffset, true);
            serverTime = TextField(left, serverTime, locale["time"], Style.LabelOffset * 2f, true);
            maxPlayers = TextField(left, maxPlayers, locale["players"], Style.LabelOffset * 2f, true);

            LabelCenter(left, locale["difficulity"], true);
            difficulity = SelectionGrid(left, difficulity, difficulities, difficulities.Length, true);

            LabelCenter(left, locale["dayLight"], true);
            daylight = SelectionGrid(left, daylight, daylights, daylights.Length, true);
            left.MoveY();

            LabelCenter(left, locale["presets"], true);
            Label(left, locale["presetNote"], true);
            newPresetName = TextField(left, newPresetName, locale["presetName"], Style.LabelOffset, true);
            left.width    = (left.DefaultWidth - Style.HorizontalMargin) / 2f;
            if (Button(left, locale["presetAdd"], false))
            {
                ServerPreset set = new ServerPreset(newPresetName);
                ExportPreset(set);
                presets.Add(set);
                presetView.height = (presets.Count * Style.Height) + ((presets.Count - 1) * Style.VerticalMargin);
                set.Save();
            }
            left.MoveX();
            if (Button(left, locale["presetRemove"], true))
            {
                if (presets.Count > 0)
                {
                    ServerPreset selected = null;
                    for (int i = 0; i < presets.Count; i++)
                    {
                        if (presets[i].Name == newPresetName)
                        {
                            selected = presets[i];
                        }
                    }
                    if (selected != null)
                    {
                        presets.Remove(selected);
                        selected.Delete();
                        newPresetName = "Set " + (presets.Count + 1);
                        if (presets.Count > 0)
                        {
                            newPresetName = presets[presets.Count - 1].Name;
                        }

                        presetView.height = (presets.Count * Style.Height) + ((presets.Count - 1) * Style.VerticalMargin);
                    }
                }
            }
            left.ResetX();
            if (presets.Count > 0)
            {
                presetArea.y = left.y;
                presetRect.Reset();
                presetScroll = BeginScrollView(presetArea, presetScroll, presetView);
                {
                    for (int i = 0; i < presets.Count; i++)
                    {
                        if (Button(presetRect, presets[i].Name, true))
                        {
                            ServerPreset selected = presets[i];
                            ImportPreset(selected);
                        }
                    }
                }
                EndScrollView();
            }

            left.MoveToEndY(BoxPosition, Style.Height);
            left.width = left.DefaultWidth / 2f - Style.HorizontalMargin;
            if (Button(left, locale["btnCreation"], false))
            {
                disconnectByJoin = true;
                string[] args = new string[]
                {
                    serverName,
                    maps[mapSelection],
                    new string[] { "normal", "hard", "abnormal" }[difficulity],
                    serverTime,
                    new string[] { "day", "dawn", "night" }[daylight],
                    password.Length > 0 ? new SimpleAES().Encrypt(password) : string.Empty,
                    UnityEngine.Random.Range(1000000, 10000000).ToString()
                };
                if (!int.TryParse(maxPlayers, out int max))
                {
                    max = 5;
                }
                PhotonNetwork.CreateRoom(string.Join("`", args), new RoomOptions()
                {
                    isVisible = true, isOpen = true, maxPlayers = max
                }, null);
                DisableImmediate();
                AnarchyManager.Background.Disable();
                return;
            }
            left.MoveX(Style.HorizontalMargin, true);
            if (Button(left, locale["btnOffline"], false))
            {
                disconnectByJoin = true;
                PhotonNetwork.Disconnect();
                PhotonNetwork.offlineMode = true;
                string[] args = new string[]
                {
                    serverName,
                    maps[mapSelection],
                    new string[] { "normal", "hard", "abnormal" }[difficulity],
                    serverTime,
                    new string[] { "day", "dawn", "night" }[daylight],
                    password.Length > 0 ? new SimpleAES().Encrypt(password) : string.Empty,
                    UnityEngine.Random.Range(1000000, 10000000).ToString()
                };
                if (!int.TryParse(maxPlayers, out int max))
                {
                    max = 5;
                }
                PhotonNetwork.CreateRoom(string.Join("`", args), new RoomOptions()
                {
                    isVisible = true, isOpen = true, maxPlayers = max
                }, null);
                DisableImmediate();
                AnarchyManager.Background.Disable();
                return;
            }

            LabelCenter(right, locale["mapSelection"], true);
            mapSelection = SelectionGrid(right, mapSelection, maps, 1);
            right.MoveToEndY(BoxPosition, Style.Height);
            right.MoveToEndX(BoxPosition, new AutoScaleFloat(240f) + Style.HorizontalMargin);
            right.width = new AutoScaleFloat(120f);
            if (Button(right, locale["btnSettings"], false))
            {
                connected     = false;
                pageSelection = SettingsPage;
                return;
            }
            right.MoveX();
            if (Button(right, locale["btnList"], false))
            {
                connected = PhotonNetwork.connected;
                if (connected)
                {
                    timeToUpdate = 0.1f;
                }
                pageSelection = ServerListPage;
                return;
            }
        }
예제 #11
0
        private void DrawControlElements()
        {
            LabelCenter(left, locale["sets"], true);
            Label(left, locale["name"], false);
            left.MoveOffsetX(Style.LabelOffset);
            newSetName = TextField(left, newSetName, string.Empty, 0f, true);
            left.ResetX();
            left.BeginHorizontal(2);
            if (Button(left, locale["btnAdd"], false))
            {
                SkinPreset add = null;
                if (pageSelection == Humans)
                {
                    add = new HumanSkinPreset(newSetName);
                }
                else if (pageSelection == Titans)
                {
                    add = new TitanSkinPreset(newSetName);
                }
                else if (pageSelection == City)
                {
                    add = new CityPreset(newSetName);
                }
                else if (pageSelection == Forest)
                {
                    add = new ForestPreset(newSetName);
                }
                else if (pageSelection == Skyboxes)
                {
                    add = new SkyboxPreset(newSetName);
                }
                else if (pageSelection == Custom)
                {
                    add = new CustomMapPreset(newSetName);
                }
                if (add != null)
                {
                    presets.Add(add);
                    skinSelection = presets.Count - 1;
                    newSetName    = locale["set"] + " " + (presets.Count + 1).ToString();
                    presetLabels  = new string[presets.Count];
                    for (int i = 0; i < presetLabels.Length; i++)
                    {
                        presetLabels[i] = presets[i].Name;
                    }
                }
            }
            left.MoveX();
            if (Button(left, locale["btnDelete"], true))
            {
                if (skinSelection >= 0)
                {
                    presets[skinSelection].Delete();
                    presets.RemoveAt(skinSelection);
                }
                skinSelection = presets.Count > 0 ? presets.Count - 1 : -1;
                presetLabels  = new string[presets.Count];
                for (int i = 0; i < presetLabels.Length; i++)
                {
                    presetLabels[i] = presets[i].Name;
                }
            }
            left.ResetX();

            scrollArea.y = left.y;
            left.MoveToEndY(BoxPosition, Style.Height + Style.VerticalMargin);
            scrollArea.height = left.y - scrollArea.y;
            scrollRect.Reset();
            scrollAreaView.height = (Style.Height * presetLabels.Length) + (Style.VerticalMargin * (presetLabels.Length + 1));


            scroll        = BeginScrollView(scrollArea, scroll, scrollAreaView);
            skinSelection = SelectionGrid(scrollRect, skinSelection, presetLabels, 1, true);
            EndScrollView();
        }
예제 #12
0
        protected override void DrawMainPart()
        {
            left.Reset();
            LabelCenter(left, locale["character"], true);
            SelectionGrid(left, costumeSelection, costumeList, 3, true);
            bool updateChar = avatar == null;
            int  oldChar    = characterSelection.Value;

            SelectionGrid(left, characterSelection, characterList, 1, true);
            if (oldChar != characterSelection.Value)
            {
                updateChar = true;
            }
            character = charactersList[characterSelection].ToUpper();
            var set = CostumeConeveter.LocalDataToHeroCostume(character);

            stats = character.Contains("SET") ? (set == null ? new HeroStat() : set.stat) : HeroStat.getInfo(character);

            LabelCenter(left, locale["camera"], true);
            SelectionGrid(left, Settings.CameraMode, cameraList, cameraList.Length, true);
            float height = Style.Height * (FengGameManagerMKII.Level.PVPEnabled ? 3f : 2f) + (Style.VerticalMargin * (FengGameManagerMKII.Level.PVPEnabled ? 2f : 1f)) + (Style.Height + Style.VerticalMargin);

            left.MoveToEndY(BoxPosition, height);
            if (Button(left, locale["humanStart"], true))
            {
                SpawnHero();
                DisableImmediate();
                return;
            }
            if (FengGameManagerMKII.Level.PVPEnabled)
            {
                if (FengGameManagerMKII.Level.TeamTitan && IN_GAME_MAIN_CAMERA.GameMode != GameMode.PVP_AHSS)
                {
                    if (Button(left, locale["titanStart"], true))
                    {
                        SpawnTitan();
                        DisableImmediate();
                        return;
                    }
                }
                else
                {
                    if (Button(left, locale["ahssStart"], true))
                    {
                        SpawnAHSS();
                        DisableImmediate();
                        return;
                    }
                }
            }
            if (Button(left, locale["back"], true))
            {
                Screen.lockCursor = true;
                Screen.showCursor = true;
                IN_GAME_MAIN_CAMERA.SpecMov.disable = false;
                IN_GAME_MAIN_CAMERA.Look.disable    = false;
                Disable();
                return;
            }
            right.Reset();
            LabelCenter(right, locale["avatar"], true);
            right.height = right.width;
            if (updateChar)
            {
                avatar = LoadTexture(character.Contains("SET") ? "CUSTOM" : character, "png");
            }
            DrawTexture(right, avatar, true);
            right.height = Style.Height;
            LabelCenter(right, locale["stats"], true);
            Label(right, locale.Format("speed", stats.Spd.ToString()), true);
            Label(right, locale.Format("acceleration", stats.Acl.ToString()), true);
            Label(right, locale.Format("gas", stats.Gas.ToString()), true);
            Label(right, locale.Format("blade", stats.Bla.ToString()), true);
        }
예제 #13
0
        protected override void DrawMainPart()
        {
            left.Reset();
            right.Reset();
            rect.Reset();
            float offset = new AutoScaleFloat(120f);

            rect.MoveOffsetX(offset);
            rect.width   -= offset;
            pageSelection = SelectionGrid(rect, pageSelection, selections, selections.Length, true);
            rect.ResetX();

            LabelCenter(right, locale["picker" + pageSelection.ToString()], true);
            right.BeginHorizontal(2);
            if (Button(right, locale["update"], false))
            {
                if (pageSelection == CustomLogicPage)
                {
                    allNames = LoadFiles(LogicsPath);
                }
                else
                {
                    allNames = LoadFiles(MapsPath);
                }
            }
            right.MoveX();
            if (Button(right, locale["random"], true))
            {
                int pickId = Random.Range(0, allNames.Length);
                if (filter.Length > 0)
                {
                    PickByName(allNames[pickId], true);
                }
                else
                {
                    Pick(pickId, allNames[pickId], true);
                }
            }
            right.ResetX();
            filter = TextField(right, filter, locale["filter"], Style.LabelOffset, true);

            scrollArea.y = right.y;
            right.MoveToEndY(BoxPosition, Style.Height + Style.VerticalMargin);
            scrollArea.height = right.y - scrollArea.y;
            scrollRect.Reset();
            scrollAreaView.height = (Style.Height * allNames.Length) + ((Style.VerticalMargin * 2) * allNames.Length);

            scroll = BeginScrollView(scrollArea, scroll, scrollAreaView);
            for (int i = 0; i < allNames.Length; i++)
            {
                if (Button(scrollRect, allNames[i], (i != allNames.Length - 1)))
                {
                    if (filter.Length == 0)
                    {
                        Pick(i, allNames[i], false);
                    }
                    else
                    {
                        PickByName(allNames[i], false);
                    }
                }
            }
            EndScrollView();
        }