Beispiel #1
0
        protected internal override void OnBuyCommand(Player p, string message, string[] args)
        {
            if (args.Length < 3)
            {
                OnStoreCommand(p); return;
            }
            LevelPreset preset = FindPreset(args[1]);

            if (preset == null)
            {
                Player.Message(p, "%cThat isn't a level preset"); return;
            }

            if (p.money < preset.price)
            {
                Player.Message(p, "%cYou don't have enough %3" + ServerConfig.Currency + "%c to buy that map"); return;
            }
            string name = p.name + "_" + args[2];

            try {
                Command.all.FindByName("NewLvl").Use(null, name + " " + preset.x + " " + preset.y + " " + preset.z + " " + preset.type);
                Player.Message(p, "%aCreating level: '%f" + name + "%a' . . .");

                CmdLoad.LoadLevel(null, name);
                Level level = LevelInfo.FindExact(name);
                CmdOverseer.SetPerms(p, level);
                Level.SaveSettings(level);
                PlayerActions.ChangeMap(p, name);

                Player.Message(p, "%aSuccessfully created your map: '%f" + name + "%a'");
            } catch {
                Player.Message(p, "%cSomething went wrong, Money untouched"); return;
            }
            Economy.MakePurchase(p, preset.price, "%3Map: %f" + preset.name);
        }
Beispiel #2
0
        void AddPreset(Player p, string[] args, LevelPreset preset)
        {
            if (preset != null)
            {
                p.Message("&WThat preset level already exists"); return;
            }

            preset      = new LevelPreset();
            preset.name = args[2];

            ushort x = 0, y = 0, z = 0;

            if (!MapGen.GetDimensions(p, args, 3, ref x, ref y, ref z))
            {
                return;
            }
            preset.x = args[3]; preset.y = args[4]; preset.z = args[5];

            if (MapGen.Find(args[6]) == null)
            {
                MapGen.PrintThemes(p); return;
            }
            preset.type = args[6];
            if (!CommandParser.GetInt(p, args[7], "Price", ref preset.price, 0))
            {
                return;
            }

            Presets.Add(preset);
            p.Message("&aSuccessfully added the following map preset:");
            p.Message("Name: &f" + preset.name);
            p.Message("x:" + preset.x + ", y:" + preset.y + ", z:" + preset.z);
            p.Message("Map Type: &f" + preset.type);
            p.Message("Map Price: &f" + preset.price + " &3" + Server.Config.Currency);
        }
Beispiel #3
0
        static LevelBuilder CreateDenOfEvil()
        {
            var builder = new LevelBuilder("Act 1 - Cave 1");
            var palette = new Maze.Palette();

            palette.special = new LevelPreset[][] {
                new LevelPreset[] {
                    LevelPreset.Find("Act 1 - Cave Prev W"),
                    LevelPreset.Find("Act 1 - Cave Prev E"),
                    LevelPreset.Find("Act 1 - Cave Prev S"),
                    LevelPreset.Find("Act 1 - Cave Prev N")
                },
                new LevelPreset[] {
                    LevelPreset.Find("Act 1 - Cave Den Of Evil W"),
                    LevelPreset.Find("Act 1 - Cave Den Of Evil E"),
                    LevelPreset.Find("Act 1 - Cave Den Of Evil S"),
                    LevelPreset.Find("Act 1 - Cave Den Of Evil N")
                }
            };
            palette.rooms = new LevelPreset[16];
            for (int i = 0; i < 15; ++i)
            {
                palette.rooms[i + 1] = LevelPreset.sheet[53 + i];
            }
            palette.themedRooms = new LevelPreset[16];
            for (int i = 0; i < 15; ++i)
            {
                palette.themedRooms[i + 1] = LevelPreset.sheet[68 + i];
            }
            Maze.Generate(builder, palette);
            return(builder);
        }
Beispiel #4
0
        protected internal override void OnBuyCommand(Player p, string message, string[] args)
        {
            if (args.Length < 3)
            {
                OnStoreCommand(p); return;
            }
            LevelPreset preset = FindPreset(args[1]);

            if (preset == null)
            {
                p.Message("%WThat isn't a level preset"); return;
            }

            if (p.money < preset.price)
            {
                p.Message("%WYou don't have enough &3" + ServerConfig.Currency + "%W to buy that map"); return;
            }
            string name = p.name + "_" + args[2];

            p.Message("&aCreating level: '&f" + name + "&a' . . .");
            UseCommand(p, "NewLvl", name + " " + preset.x + " " + preset.y + " " + preset.z + " " + preset.type);

            Level level = LevelActions.Load(Player.Console, name, true);

            CmdOverseer.SetPerms(p, level);
            Level.SaveSettings(level);
            PlayerActions.ChangeMap(p, name);

            p.Message("&aSuccessfully created your map: '&f" + name + "&a'");
            Economy.MakePurchase(p, preset.price, "%3Map: %f" + preset.name);
        }
Beispiel #5
0
        void AddPreset(Player p, string[] args, LevelPreset preset)
        {
            if (preset != null)
            {
                Player.Message(p, "%cThat preset level already exists"); return;
            }

            preset      = new LevelPreset();
            preset.name = args[2];
            if (OkayAxis(args[3]) && OkayAxis(args[4]) && OkayAxis(args[5]))
            {
                preset.x = args[3]; preset.y = args[4]; preset.z = args[5];
            }
            else
            {
                Player.Message(p, "%cDimension must be a power of 2"); return;
            }

            if (!MapGen.IsRecognisedTheme(args[6]))
            {
                MapGen.PrintThemes(p); return;
            }
            preset.type = args[6].ToLower();
            if (!CommandParser.GetInt(p, args[7], "Price", ref preset.price, 0))
            {
                return;
            }

            Presets.Add(preset);
            Player.Message(p, "%aSuccessfully added the following map preset:");
            Player.Message(p, "Name: %f" + preset.name);
            Player.Message(p, "x:" + preset.x + ", y:" + preset.y + ", z:" + preset.z);
            Player.Message(p, "Map Type: %f" + preset.type);
            Player.Message(p, "Map Price: %f" + preset.price + " %3" + ServerConfig.Currency);
        }
Beispiel #6
0
        public override void Parse(string line, string[] args)
        {
            if (!args[1].CaselessEq("levels"))
            {
                return;
            }

            LevelPreset preset = FindPreset(args[2]);

            if (preset == null)
            {
                preset      = new LevelPreset();
                preset.name = args[2];
                Presets.Add(preset);
            }

            switch (args[3])
            {
            case "price": preset.price = int.Parse(args[4]); break;

            case "x": preset.x = args[4]; break;

            case "y": preset.y = args[4]; break;

            case "z": preset.z = args[4]; break;

            case "type": preset.type = args[4]; break;
            }
        }
Beispiel #7
0
 static LevelInfo()
 {
     foreach (var levelInfo in sheet)
     {
         if (levelInfo.id == 0)
         {
             continue;
         }
         levelInfo.type      = LevelType.sheet[levelInfo.levelTypeIndex];
         levelInfo.preset    = LevelPreset.Find(levelInfo.id);
         levelInfo.entryFile = @"data\local\ui\eng\act" + (levelInfo.act + 1) + @"\" + levelInfo._entryFile + ".dc6";
         foreach (string mon in levelInfo._monsters)
         {
             if (mon != null && mon != "")
             {
                 levelInfo.monsters.Add(mon);
             }
         }
         levelInfo.soundEnv = SoundEnvironment.Find(levelInfo.soundEnvId);
         levelInfo.maze     = LevelMazeInfo.Find(levelInfo.id);
         nameIndex.Add(levelInfo.name, levelInfo);
         idMap.Add(levelInfo.id, levelInfo);
         while (byAct.Count <= levelInfo.act)
         {
             byAct.Add(new List <LevelInfo>());
         }
         byAct[levelInfo.act].Add(levelInfo);
     }
 }
Beispiel #8
0
        void AddPreset(Player p, string[] args, LevelPreset preset)
        {
            if (preset != null)
            {
                Player.Message(p, "%cThat preset level already exists"); return;
            }

            preset      = new LevelPreset();
            preset.name = args[2];
            if (OkayAxis(args[3]) && OkayAxis(args[4]) && OkayAxis(args[5]))
            {
                preset.x = args[3]; preset.y = args[4]; preset.z = args[5];
            }
            else
            {
                Player.Message(p, "%cDimension must be a power of 2"); return;
            }

            if (!MapGen.IsRecognisedTheme(args[6]))
            {
                MapGen.PrintThemes(p); return;
            }
            preset.type = args[6].ToLower();
            if (!int.TryParse(args[7], out preset.price))
            {
                Player.Message(p, "\"" + args[9] + "\" is not a valid integer."); return;
            }

            Presets.Add(preset);
            Player.Message(p, "%aSuccessfully added the following map preset:");
            Player.Message(p, "Name: %f" + preset.name);
            Player.Message(p, "x:" + preset.x + ", y:" + preset.y + ", z:" + preset.z);
            Player.Message(p, "Map Type: %f" + preset.type);
            Player.Message(p, "Map Price: %f" + preset.price + " %3" + Server.moneys);
        }
Beispiel #9
0
        void EditPreset(Player p, string[] args, LevelPreset preset)
        {
            if (preset == null)
            {
                Player.Message(p, "%cThat preset level doesn't exist"); return;
            }

            if (args[3] == "name" || args[3] == "title")
            {
                preset.name = args[4];
                Player.Message(p, "%aSuccessfully changed preset name to %f" + preset.name);
            }
            else if (args[3] == "x" || args[3] == "y" || args[3] == "z")
            {
                if (!OkayAxis(args[4]))
                {
                    Player.Message(p, "%cDimension was wrong, it must be a power of 2"); return;
                }

                if (args[3] == "x")
                {
                    preset.x = args[4];
                }
                if (args[3] == "y")
                {
                    preset.y = args[4];
                }
                if (args[3] == "z")
                {
                    preset.z = args[4];
                }
                Player.Message(p, "%aSuccessfully changed preset {0} size to %f{1}", args[3], args[4]);
            }
            else if (args[3] == "type" || args[3] == "theme")
            {
                if (!MapGen.IsRecognisedTheme(args[4]))
                {
                    MapGen.PrintThemes(p); return;
                }

                preset.type = args[4].ToLower();
                Player.Message(p, "%aSuccessfully changed preset type to %f" + preset.type);
            }
            else if (args[3] == "price")
            {
                int newPrice = 0;
                if (!CommandParser.GetInt(p, args[4], "Price", ref newPrice, 0))
                {
                    return;
                }

                preset.price = newPrice;
                Player.Message(p, "%aSuccessfully changed preset price to %f" + preset.price + " %3" + ServerConfig.Currency);
            }
            else
            {
                Player.Message(p, "Supported properties to edit: name, title, x, y, z, type, price");
            }
        }
Beispiel #10
0
 void Rest()
 {
     titleName        = "";
     sceneName        = "";
     sceneDescription = "";
     Image            = null;
     levelAdding      = null;
 }
Beispiel #11
0
        public void ApplyPreset(LevelPreset preset)
        {
            if (preset == LevelPreset.Test)
            {
                CurrentPreset = LevelPreset.Test;

                Width  = 100;
                Height = 100;

                FinishAutomata   = false;
                DoCleanup        = false;
                RemoveEmptyRooms = false;

                NoisePercent       = 50;
                BoundsNoisePercent = 60;
                BoundsReach        = 10;

                AutomataCycles   = 1;
                StarvationNumber = 3;
                BirthNumber      = 5;

                MinRoomPercent = 30;
                MaxRoomPercent = 50;

                Resize = true;

                PresetEnemySpawnBudget = 25;
                TotalEnemySpawnBudget  = PresetEnemySpawnBudget;
            }

            if (preset == LevelPreset.Forest)
            {
                CurrentPreset = LevelPreset.Forest;

                Width  = 100;
                Height = 100;

                FinishAutomata   = true;
                DoCleanup        = true;
                RemoveEmptyRooms = true;

                NoisePercent       = 52;
                BoundsNoisePercent = 60;
                BoundsReach        = 5;

                AutomataCycles   = 0;
                StarvationNumber = 3;
                BirthNumber      = 5;

                MinRoomPercent = 10;
                MaxRoomPercent = 15;

                Resize = true;

                PresetEnemySpawnBudget = 50;
                TotalEnemySpawnBudget  = PresetEnemySpawnBudget;
            }
        }
Beispiel #12
0
 void RemovePreset(Player p, string[] args, LevelPreset preset)
 {
     if (preset == null)
     {
         p.Message("&WThat preset level doesn't exist"); return;
     }
     Presets.Remove(preset);
     p.Message("&aSuccessfully removed preset: &f" + preset.name);
 }
Beispiel #13
0
    public void Place(LevelPreset preset, Vector2i pos, int minIndex = 0, int maxIndex = -1)
    {
        if (maxIndex == -1)
        {
            maxIndex = preset.ds1Files.Count;
        }
        var ds1Filename = preset.ds1Files[Random.Range(minIndex, maxIndex)];
        var ds1         = DS1.Load(ds1Filename);

        Place(ds1, pos);
    }
Beispiel #14
0
        protected internal override void OnBuyCommand(Player p, string message, string[] args)
        {
            if (args.Length < 2)
            {
                OnStoreCommand(p); return;
            }
            LevelPreset preset = FindPreset(args[1]);

            if (preset == null)
            {
                p.Message("%WThat isn't a level preset"); return;
            }

            if (p.money < preset.price)
            {
                p.Message("%WYou don't have enough &3" + Server.Config.Currency + "%W to buy that map"); return;
            }

            string name = null;

            if (args.Length >= 3)
            {
                name = p.name + "_" + args[2];
            }
            else
            {
                // use a numbered map by default
                for (int i = 1; i < 100; i++)
                {
                    name = p.name + "_" + i;
                    if (!LevelInfo.MapExists(name))
                    {
                        break;
                    }
                }
            }

            if (LevelInfo.MapExists(name))
            {
                p.Message("%WLevel \"{0}\" already exists", name); return;
            }

            p.Message("&aCreating level: '&f" + name + "&a' . . .");
            UseCommand(p, "NewLvl", name + " " + preset.x + " " + preset.y + " " + preset.z + " " + preset.type);

            Level level = LevelActions.Load(Player.Console, name, true);

            CmdOverseer.SetPerms(p, level);
            level.SaveSettings();
            PlayerActions.ChangeMap(p, name);

            p.Message("&aSuccessfully created your map: '&f" + name + "&a'");
            Economy.MakePurchase(p, preset.price, "%3Map: %f" + preset.name);
        }
Beispiel #15
0
    public void RunLevelPreset()
    {
        LevelPreset currentLevelPreset = currentRoundPreset.LevelPresets()[currentLevelIndex];

        for (int i = 0; i < currentLevelPreset.Glyphs().Length; i++)
        {
            AvatarSpeak(currentLevelPreset.Glyphs()[i]);
        }
        if (currentLevelPreset.NewSacredIcon())
        {
            SpawnSacredIcon();
        }
    }
Beispiel #16
0
        protected internal override void OnBuyCommand(Player p, string message, string[] args)
        {
            if (args.Length < 3)
            {
                OnStoreCommand(p); return;
            }
            LevelPreset preset = FindPreset(args[1]);

            if (preset == null)
            {
                Player.Message(p, "%cThat isn't a level preset"); return;
            }

            if (p.money < preset.price)
            {
                Player.Message(p, "%cYou don't have enough %3" + Server.moneys + "%c to buy that map"); return;
            }
            string name = p.name + "_" + args[2];

            try {
                Command.all.Find("newlvl").Use(null, name + " " + preset.x + " " + preset.y + " " + preset.z + " " + preset.type);
                Player.Message(p, "%aCreating level: '%f" + name + "%a' . . .");

                CmdLoad.LoadLevel(null, name);
                Level level = LevelInfo.FindExact(name);
                if (level.permissionbuild > p.Rank)
                {
                    level.permissionbuild = p.Rank;
                }
                if (level.permissionvisit > p.Rank)
                {
                    level.permissionvisit = p.Rank;
                }
                PlayerActions.ChangeMap(p, name);

                Player.Message(p, "%aSuccessfully created your map: '%f" + name + "%a'");
                try {
                    Level.Zone zn = default(Level.Zone);
                    zn.bigX  = (ushort)(level.Width - 1);
                    zn.bigY  = (ushort)(level.Height - 1);
                    zn.bigZ  = (ushort)(level.Length - 1);
                    zn.Owner = p.name;
                    level.ZoneList.Add(zn);
                    LevelDB.CreateZone(level.name, zn);
                    Player.Message(p, "%aZoning Succesful");
                } catch { Player.Message(p, "%cZoning Failed"); }
            } catch {
                Player.Message(p, "%cSomething went wrong, Money untouched"); return;
            }
            Economy.MakePurchase(p, preset.price, "%3Map: %f" + preset.name);
        }
Beispiel #17
0
        static LevelBuilder CreateBloodMoor()
        {
            var bloodMoor   = new LevelBuilder("Act 1 - Wilderness 1", 8, 8);
            var riverN      = DS1.Load(@"data\global\tiles\act1\outdoors\UriverN.ds1");
            var uRiver      = DS1.Load(@"data\global\tiles\act1\outdoors\Uriver.ds1");
            var lRiver      = DS1.Load(@"data\global\tiles\act1\outdoors\Lriver.ds1");
            var bord1       = LevelPreset.Find("Act 1 - Wild Border 1");
            var bord2       = LevelPreset.Find("Act 1 - Wild Border 2");
            var bord3       = LevelPreset.Find("Act 1 - Wild Border 3");
            var bord5       = LevelPreset.Find("Act 1 - Wild Border 5");
            var bord6       = LevelPreset.Find("Act 1 - Wild Border 6");
            var bord9       = LevelPreset.Find("Act 1 - Wild Border 9");
            var cottage     = LevelPreset.Find("Act 1 - Cottages 1");
            var denEntrance = LevelPreset.Find("Act 1 - DOE Entrance");

            for (int i = 0; i < bloodMoor.gridHeight; ++i)
            {
                bloodMoor.Place(lRiver, new Vector2i(bloodMoor.gridWidth - 1, i));
            }
            for (int i = 1; i < bloodMoor.gridHeight; ++i)
            {
                bloodMoor.Place(uRiver, new Vector2i(bloodMoor.gridWidth - 2, i));
            }
            bloodMoor.Place(riverN, new Vector2i(bloodMoor.gridWidth - 2, 0));

            for (int i = 1; i < bloodMoor.gridHeight - 1; ++i)
            {
                bloodMoor.Place(bord2, new Vector2i(0, i), 0, 3);
            }
            bloodMoor.Place(bord5, new Vector2i(0, bloodMoor.gridHeight - 1));

            for (int i = 1; i < 3; ++i)
            {
                bloodMoor.Place(bord1, new Vector2i(i, bloodMoor.gridHeight - 1), 0, 3);
            }
            bloodMoor.Place(bord9, new Vector2i(3, bloodMoor.gridHeight - 1));

            for (int i = 1; i < bloodMoor.gridWidth - 2; ++i)
            {
                bloodMoor.Place(bord3, new Vector2i(i, 0), 0, 3);
            }

            bloodMoor.Place(bord6, new Vector2i(0, 0));
            for (int i = 1; i < 5; ++i)
            {
                bloodMoor.Place(cottage, new Vector2i(i, 4 + Random.Range(-1, 1)));
            }
            bloodMoor.Place(denEntrance, new Vector2i(5, 7));

            return(bloodMoor);
        }
Beispiel #18
0
        protected internal override void OnBuyCommand(Command cmd, Player p,
                                                      string message, string[] args)
        {
            if (args.Length < 3)
            {
                cmd.Help(p); return;
            }
            LevelPreset preset = FindPreset(args[1]);

            if (preset == null)
            {
                Player.SendMessage(p, "%cThat isn't a level preset"); return;
            }

            if (p.money < preset.price)
            {
                Player.SendMessage(p, "%cYou don't have enough %3" + Server.moneys + "%c to buy that map"); return;
            }
            string name = p.name + "_" + args[2];

            try {
                Command.all.Find("newlvl").Use(null, name + " " + preset.x + " " + preset.y + " " + preset.z + " " + preset.type);
                Player.SendMessage(p, "%aCreating level: '%f" + name + "%a' . . .");

                Command.all.Find("load").Use(null, name);
                Thread.Sleep(250);

                Level level = LevelInfo.Find(name);
                if (level.permissionbuild > p.group.Permission)
                {
                    level.permissionbuild = p.group.Permission;
                }
                if (level.permissionvisit > p.group.Permission)
                {
                    level.permissionvisit = p.group.Permission;
                }
                Command.all.Find("goto").Use(p, name);

                Player.SendMessage(p, "%aSuccessfully created your map: '%f" + name + "%a'");
                try {
                    //safe against SQL injections, but will be replaced soon by a new feature
                    Database.executeQuery("INSERT INTO `Zone" + level.name + "` (SmallX, SmallY, SmallZ, BigX, BigY, BigZ, Owner) parts[1]S " +
                                          "(0,0,0," + (level.Width - 1) + "," + (level.Height - 1) + "," + (level.Length - 1) + ",'" + p.name + "')");
                    Player.SendMessage(p, "%aZoning Succesful");
                } catch { Player.SendMessage(p, "%cZoning Failed"); }
            } catch {
                Player.SendMessage(p, "%cSomething went wrong, Money untouchred"); return;
            }
            MakePurchase(p, preset.price, "%3Map: %f" + preset.name);
        }
Beispiel #19
0
    void RemoveSceneAt(int index)
    {
        LevelPreset[] levels = new LevelPreset[levelManager.LevelPresets.Length - 1];
        int           count  = 0;

        for (int i = 0; i < levelManager.LevelPresets.Length; i++)
        {
            if (i != index)
            {
                levels [count] = levelManager.LevelPresets [i];
                count++;
            }
        }

        levelManager.LevelPresets = (LevelPreset[])levels.Clone();
    }
Beispiel #20
0
    void OnEnable()
    {
        if (UnitZ.gameNetwork)
        {
            if (MapSelect)
            {
                MainMenuManager menu  = (MainMenuManager)GameObject.FindObjectOfType(typeof(MainMenuManager));
                LevelPreset     level = UnitZ.levelManager.GetLevel(menu.SceneStart);
                if (level != null)
                {
                    MapSelect.text = level.SceneName;
                }
            }

            if (PortText)
            {
                PortText.text = UnitZ.gameNetwork.networkPort.ToString();
            }

            if (ServerIPText)
            {
                ServerIPText.text = UnitZ.gameNetwork.networkAddress;
            }

            if (ServerNameText)
            {
                ServerNameText.text = UnitZ.gameNetwork.matchName;
            }

            if (ServerNameFillterText)
            {
                ServerNameFillterText.text = UnitZ.gameNetwork.HostNameFillter;
            }

            if (PortText)
            {
                PortText.text = UnitZ.gameNetwork.networkPort.ToString();
            }

            if (PaasswordText)
            {
                PaasswordText.text = UnitZ.gameNetwork.HostPassword.ToString();
            }
        }
    }
Beispiel #21
0
    private void OnEnable()
    {
        if (UnitZ.levelManager == null)
        {
            return;
        }

        LevelPreset currentlevel = UnitZ.levelManager.GetCurrentLevel();

        if (currentlevel != null)
        {
            if (MiniMap != null && MiniMap.GetComponent <Image>() != null)
            {
                MiniMap.GetComponent <Image>().sprite = currentlevel.Minimap;
            }
            WorldRealSize = new Vector2(currentlevel.MinimapSize, currentlevel.MinimapSize);
        }
    }
Beispiel #22
0
        /// <summary> ログ出力のboolをPresetに合わせて簡易設定します。
        /// </summary>
        /// <param name="in_preset"></param>
        public void SetOutputLevel(LevelPreset in_preset)
        {
            switch (in_preset)
            {
            case LevelPreset.All:
                this.presetAll();
                break;

            case LevelPreset.Normal:
                this.presetNormal();
                break;

            case LevelPreset.Minimum:
                this.presetMinimum();
                break;

            default:
                break;
            }
        }
Beispiel #23
0
 public void DisplayWinPanel(LevelPreset levelPreset, float percentage)
 {
     //get screenshot of the gameplay;
     retryButton.SetActive(false);
     NextButton.SetActive(true);
     animator = GetComponent <Animator>();
     if (percentage > levelPreset.threeStarsThreshold)
     {
         animator.SetTrigger("3Stars");
         return;
     }
     if (percentage > levelPreset.twoStarThreshold)
     {
         animator.SetTrigger("2Stars");
         return;
     }
     else
     {
         animator.SetTrigger("1Star");
     }
 }
Beispiel #24
0
        protected internal override void OnSetup(Player p, string[] args)
        {
            LevelPreset preset = FindPreset(args[2]);
            string      cmd    = args[1];

            if (Command.IsCreateCommand(cmd))
            {
                AddPreset(p, args, preset);
            }
            else if (Command.IsDeleteCommand(cmd))
            {
                RemovePreset(p, args, preset);
            }
            else if (Command.IsEditCommand(cmd))
            {
                EditPreset(p, args, preset);
            }
            else
            {
                OnSetupHelp(p);
            }
        }
Beispiel #25
0
        public static void LoadAll()
        {
            var sw = System.Diagnostics.Stopwatch.StartNew();

            Translation.Load();
            SoundInfo.Load();
            SoundEnvironment.Load();
            ObjectInfo.Load();
            BodyLoc.Load();
            ExpTable.Load();
            LevelType.Load();
            LevelWarpInfo.Load();
            LevelPreset.Load();
            LevelMazeInfo.Load();
            LevelInfo.Load();
            OverlayInfo.Load();
            MissileInfo.Load();
            ItemStat.Load();
            ItemRatio.Load();
            ItemType.Load();
            ItemPropertyInfo.Load();
            ItemSet.Load();
            UniqueItem.Load();
            SetItem.Load();
            TreasureClass.Load();
            MagicAffix.Load();
            CharStatsInfo.Load();
            MonLvl.Load();
            MonPreset.Load();
            MonSound.Load();
            MonStatsExtended.Load();
            MonStat.Load();
            SuperUnique.Load();
            SkillDescription.Load();
            SkillInfo.Load();
            SpawnPreset.Load();
            StateInfo.Load();
            Debug.Log("All txt files loaded in " + sw.ElapsedMilliseconds + " ms");
        }
Beispiel #26
0
        protected internal override void OnSetupCommand(Player p, string[] args)
        {
            LevelPreset preset = FindPreset(args[2]);

            switch (args[1].ToLower())
            {
            case "new":
            case "create":
            case "add":
                AddPreset(p, args, preset); break;

            case "delete":
            case "remove":
                RemovePreset(p, args, preset); break;

            case "edit":
            case "change":
                EditPreset(p, args, preset); break;

            default:
                OnSetupCommandHelp(p); break;
            }
        }
Beispiel #27
0
    public void HostGame(int levelindex, bool online)
    {
        LevelPreset level = UnitZ.levelManager.GetLevel(levelindex);

        if (level == null)
        {
            return;
        }

        if (ServerLog.instance != null)
        {
            ServerLog.instance.Log("Host Map :: " + level.LevelName);
        }

        playScene       = level.SceneName;
        NetworkGamePlay = level.GamePlayObject;
        if (NetworkGamePlay != null)
        {
            UnitZ.gameManager.IsAutoSpawn = NetworkGamePlay.AutoSpawn;
        }
        isMatchMaking  = online;
        startingServer = false;
        if (online)
        {
            if (UnitZ.Hud != null)
            {
                UnitZ.Hud.ProcessPopup.SetActive(true);
            }
            StartMatchMaker();
            singleton.matchMaker.CreateMatch(matchName, (uint)maxConnections, true, HostPassword, "", "", 0, 0, OnMatchCreate);
        }
        else
        {
            singleton.StartHost();
        }
        Debug.Log("Host game Max" + maxConnections);
    }
Beispiel #28
0
        public override void Parse(string line, string[] split)
        {
            if (split[1] == "enabled")
            {
                Enabled = split[2].CaselessEq("true");
            }
            else if (split[1] == "levels")
            {
                LevelPreset preset = FindPreset(split[2]);
                if (preset == null)
                {
                    preset = new LevelPreset();
                    Presets.Add(preset);
                }

                switch (split[3])
                {
                case "name":
                    preset.name = split[4]; break;

                case "price":
                    preset.price = int.Parse(split[4]); break;

                case "x":
                    preset.x = split[4]; break;

                case "y":
                    preset.y = split[4]; break;

                case "z":
                    preset.z = split[4]; break;

                case "type":
                    preset.type = split[4]; break;
                }
            }
        }
Beispiel #29
0
        protected internal override void OnPurchase(Player p, string raw)
        {
            string[] args = raw.SplitSpaces();
            if (raw.Length == 0)
            {
                OnStoreCommand(p); return;
            }
            LevelPreset preset = FindPreset(args[0]);

            if (preset == null)
            {
                p.Message("&WThat isn't a level preset"); return;
            }
            if (!CheckPrice(p, preset.price, "that map"))
            {
                return;
            }

            string name = null;

            if (args.Length > 1)
            {
                name = p.name + "_" + args[1];
            }
            else
            {
                // use a numbered map by default
                for (int i = 1; i < 100; i++)
                {
                    name = p.name + "_" + i;
                    if (!LevelInfo.MapExists(name))
                    {
                        break;
                    }
                }
            }

            p.Message("&aCreating level: '&f" + name + "&a' . . .");

            ushort x = 0, y = 0, z = 0;

            string[] xyz = { preset.x, preset.y, preset.z };
            if (!MapGen.GetDimensions(p, xyz, 0, ref x, ref y, ref z, false))
            {
                return;
            }

            MapGen gen = MapGen.Find(preset.type);
            Level  lvl = MapGen.Generate(p, gen, name, x, y, z, "");

            if (lvl == null)
            {
                return;
            }

            MapGen.SetRealmPerms(p, lvl);
            try {
                lvl.Save(true);
            } finally {
                lvl.Dispose();
                Server.DoGC();
            }
            Economy.MakePurchase(p, preset.price, "%3Map: %f" + preset.name);
        }
Beispiel #30
0
        void EditPreset(Player p, string[] args, LevelPreset preset)
        {
            if (preset == null)
            {
                p.Message("&WThat preset level doesn't exist"); return;
            }

            if (args[3] == "name" || args[3] == "title")
            {
                preset.name = args[4];
                p.Message("&aSuccessfully changed preset name to &f" + preset.name);
            }
            else if (args[3] == "x" || args[3] == "y" || args[3] == "z")
            {
                string[] dims = new string[] { preset.x, preset.y, preset.z };
                if (args[3] == "x")
                {
                    dims[0] = args[4];
                }
                if (args[3] == "y")
                {
                    dims[1] = args[4];
                }
                if (args[3] == "z")
                {
                    dims[2] = args[4];
                }

                ushort x = 0, y = 0, z = 0;
                if (!MapGen.GetDimensions(p, dims, 0, ref x, ref y, ref z))
                {
                    return;
                }
                preset.x = dims[0]; preset.y = dims[1]; preset.z = dims[2];

                p.Message("&aSuccessfully changed preset {0} size to &f{1}", args[3], args[4]);
            }
            else if (args[3] == "type" || args[3] == "theme")
            {
                if (MapGen.Find(args[4]) == null)
                {
                    MapGen.PrintThemes(p); return;
                }

                preset.type = args[4];
                p.Message("&aSuccessfully changed preset type to &f" + preset.type);
            }
            else if (args[3] == "price")
            {
                int newPrice = 0;
                if (!CommandParser.GetInt(p, args[4], "Price", ref newPrice, 0))
                {
                    return;
                }

                preset.price = newPrice;
                p.Message("&aSuccessfully changed preset price to &f" + preset.price + " &3" + Server.Config.Currency);
            }
            else
            {
                p.Message("Supported properties to edit: name, title, x, y, z, type, price");
            }
        }