Esempio n. 1
0
 public void NewGame()
 {
     Debug.Log("A new Game has been called");
     // Get the game controller
     controller = GameController.instance.gameObject;
     control    = controller.GetComponent <GameController>();
     generator  = controller.GetComponent <ArenaGenerator>();
     generator.Generate();
     control.CrackedCenterSetup();
     control.SetGameSettings(this, settings, GetComponent <PlayerSkins>());
 }
Esempio n. 2
0
        public void Show(GameServer server, GameClient client)
        {
            while (true)
            {
                arena = ArenaGenerator.Generate(server.GameAssets, seed, biome_count);
                UpdateItems();

                ConsoleBuffer mapbuf = arena.MapBuffer(tempView);
                buffer = new ConsoleBuffer();
                buffer.InsertBuffer(mapbuf, 0, 0);
                buffer.SetCursorPosition(mapbuf.Width, 0);
                buffer.WriteVertical("".PadRight(25, '▌'));

                buffer.SetCursorPosition(mapbuf.Width, 7);
                buffer.Write("█".PadRight(30, '─'));

                buffer.SetCursorPosition(mapbuf.Width + 1, 1);

                this.ReadMenu();

                if (Selected == proitems.Length - 1)
                {
                    return;
                }
                if (Selected == proitems.Length - 2)
                {
                    GameState gs = new GameState(arena, max_players, port, game_name);
                    server.Open(gs);

                    IPEndPoint ep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), port);
                    new ConnectingMenu().Show(client, ep);

                    client.Close();
                    server.Close();
                    return;
                }
            }
        }
Esempio n. 3
0
        private static List <Level> GenerateLevels(int seed, int count)
        {
            count = Math.Max(2, count);

            var nameGenerator           = new NameGenerator(seed);
            var levelGenerator          = new LevelGenerator(seed, nameGenerator);
            var monsterClassesGenerator = new MonsterClassesGenerator(seed, nameGenerator);
            var itemClassesGenerator    = new ItemClassesGenerator(seed, nameGenerator);

            var itemClasses = itemClassesGenerator.Generate(7,
                                                            new ItemClassOptions {
                Level = 3, Rarity = 1
            },
                                                            new ItemClassOptions {
                Level = 10, Rarity = 0.15
            },
                                                            new ItemClassOptions {
                Level = 30, Rarity = 0.1
            });

            var monsterClasses = monsterClassesGenerator.Generate(5,
                                                                  new MonsterClassOptions {
                Skill = 0.5, Rarity = 0.02, Factory = (name, skill, health, attack, defence) => new Dimwit(name, attack, defence, health, health)
            },
                                                                  new MonsterClassOptions {
                Skill = 0.6, Rarity = 0.04, Factory = (name, skill, health, attack, defence) => new Dimwit(name, attack, defence, health, health)
            },
                                                                  new MonsterClassOptions {
                Skill = 0.6, Rarity = 0.06, Factory = (name, skill, health, attack, defence) => new Reptiloid(name, attack, defence, health, health, skill)
            },
                                                                  new MonsterClassOptions {
                Skill = 0.7, Rarity = 0.1, Factory = (name, skill, health, attack, defence) => new Dimwit(name, attack, defence, health, health)
            },
                                                                  new MonsterClassOptions {
                Skill = 0.7, Rarity = 0.2, Factory = (name, skill, health, attack, defence) => new Reptiloid(name, attack, defence, health, health, skill)
            },
                                                                  new MonsterClassOptions {
                Skill = 0.8, Rarity = 1, Factory = (name, skill, health, attack, defence) => new Reptiloid(name, attack, defence, health, health, skill)
            });

            var levels = new List <Level>();

            var settings = FillDefaultSettings();

            for (int i = 0; i < count - 1; i++)
            {
                levels.Add(levelGenerator.Generate(settings, monsterClasses, itemClasses));

                if (i > 0)
                {
                    levels[i - 1].SetNextLevel(levels[i]);
                }

                settings.Monsters.MinSkill += 0.1;
                settings.Monsters.MaxSkill += 0.1;

                if (i == 1)
                {
                    settings.Items.MaxLevel = 100;
                }
            }

            var lastLevelSettigns       = FillLastLevelSettings();
            var lastLevelMonsterClasses = monsterClassesGenerator.Generate(1,
                                                                           new MonsterClassOptions {
                Skill = 1.2, Rarity = 1, Factory = (name, skill, health, attack, defence) => new ArenaFighter(name, attack, defence, health, health, skill)
            });

            var lastLevel = new ArenaGenerator(seed, nameGenerator).Generate(lastLevelSettigns, lastLevelMonsterClasses, itemClasses);

            levels[levels.Count - 1].SetNextLevel(lastLevel);

            levels.Add(lastLevel);

            return(levels);
        }