Exemplo n.º 1
0
 // Token: 0x0600108E RID: 4238 RVA: 0x00075694 File Offset: 0x00073894
 private void SetupAvailableRooms()
 {
     DungeonGenerator.m_availableRooms.Clear();
     foreach (DungeonDB.RoomData roomData in DungeonDB.GetRooms())
     {
         if ((roomData.m_room.m_theme & this.m_themes) != (Room.Theme) 0 && roomData.m_room.m_enabled)
         {
             DungeonGenerator.m_availableRooms.Add(roomData);
         }
     }
 }
Exemplo n.º 2
0
        internal static void PrintDungeonDropTables()
        {
            var orderedLocations = ZoneSystem.instance.m_locations
                                   .OrderBy(x => x.m_biome)
                                   .ThenBy(x => x.m_prefabName);

            List <string> tableData = new();

            foreach (var location in orderedLocations)
            {
                var locPrefab = location.m_prefab;

                if (locPrefab is null)
                {
                    continue;
                }

                var dungeons = locPrefab.GetComponentsInChildren <DungeonGenerator>();

                if (dungeons is not null && dungeons.Length > 0)
                {
                    foreach (var dungeon in dungeons)
                    {
                        //Find rooms
                        var rooms = DungeonDB.GetRooms()
                                    .Where(x => (x.m_room.m_theme & dungeon.m_themes) == x.m_room.m_theme)
                                    .ToList();

                        if (rooms is null)
                        {
                            continue;
                        }

                        if (rooms.Count == 0)
                        {
                            continue;
                        }

                        foreach (var room in rooms)
                        {
                            tableData.AddRange(Extract(room.m_room.gameObject, $"Biome: {location.m_biome.GetNames()}", $"Location: {location.m_prefabName}", $"Room Theme: {room.m_room.m_theme}", $"Room: {room.m_room.name}"));
                        }
                    }
                }
            }

            PrintDebugFile.PrintFile(tableData, "drop_that.drop_table.dungeons.txt", "drop tables for dungeons");
        }
    private static void ScanRooms(DungeonDB __instance, List <DungeonDB.RoomData> ___m_rooms)
    {
#if DEBUG
        Log.LogDebug("Starting CreatureSpawner scan.");
#endif

        if (___m_rooms is null)
        {
            return;
        }

        if (ConfigurationManager.GeneralConfig?.WriteCreatureSpawnersToFile?.Value == true)
        {
#if DEBUG
            Log.LogDebug($"Starting CreatureSpawner file writing for {ZoneSystem.instance.m_locations.Count} location and {___m_rooms.Count} rooms.");
#endif
            RoomCreatureSpawnerFileDumper.WriteToFile(___m_rooms);
        }
    }
Exemplo n.º 4
0
        public static void HackCamp()
        {
            var list = DungeonDB.GetRooms();
            var go   = list[0].m_room.transform.parent;
            var a    = go.GetComponentsInChildren <CreatureSpawner>(true);

            //Debug.Log(a.Length);
            foreach (var item in a)
            {
                if (item.name.StartsWith("Spawner_Goblin"))
                {
                    var c = Instantiate(PrefabList["SpawnHuman"], item.transform.parent);
                    c.transform.localPosition = item.transform.localPosition;
                    item.m_creaturePrefab     = PrefabList["HumanMobB"];
                    c.name = "SpawnHuman";
                    //Debug.Log("hack campe");
                }
            }
            //var a =  ZNetScene.instance.GetPrefab("Spawner_Goblin").GetComponent<CreatureSpawner>();
            //a.m_creaturePrefab=HumanTest;
        }
Exemplo n.º 5
0
 // Token: 0x0600107C RID: 4220 RVA: 0x00074C34 File Offset: 0x00072E34
 private void Start()
 {
     ZLog.Log("DungeonDB Start " + Time.frameCount);
     this.m_rooms = DungeonDB.SetupRooms();
     this.GenerateHashList();
 }
    public static void WriteToFile(List <ZoneSystem.ZoneLocation> zoneLocations)
    {
        List <string> spawnersSerialized = new List <string>();

        var orderedLocations = zoneLocations
                               .OrderBy(x => x.m_biome)
                               .ThenBy(x => x.m_prefabName);

        foreach (var location in orderedLocations)
        {
            var locPrefab = location.m_prefab;

            if (locPrefab is null)
            {
                continue;
            }

            //Get location spawners
            var spawners = locPrefab.GetComponentsInChildren <CreatureSpawner>().ToList();

            //Get location dungeon generators, so we can scan for their spawners too
            var dungeons = locPrefab.GetComponentsInChildren <DungeonGenerator>();

            if (dungeons is not null && dungeons.Length > 0)
            {
                foreach (var dungeon in dungeons)
                {
                    //Find rooms and extract spawners
                    var rooms = DungeonDB.GetRooms().Where(x => (x.m_room.m_theme & dungeon.m_themes) == x.m_room.m_theme).ToList();

                    if (rooms.Count == 0)
                    {
                        Log.LogDebug($"No rooms for {locPrefab.name}:{dungeon.name}");
                    }


                    var roomSpawners = rooms
                                       .SelectMany(x => x.m_room.GetComponentsInChildren <CreatureSpawner>())
                                       .Where(x => x is not null)
                                       .ToList();

                    if (roomSpawners.Count > 0)
                    {
                        if (spawners is null)
                        {
                            spawners = roomSpawners;
                        }
                        else
                        {
                            spawners.AddRange(roomSpawners);
                        }
                    }
                    else
                    {
                        Log.LogDebug($"No room spawners for {locPrefab.name}:{dungeon.name}");
                    }
                }
            }

            if (spawners is not null && spawners.Count > 0)
            {
                spawnersSerialized.Add(Serialize(location, spawners));
            }
        }

        DebugFileWriter.WriteFile(spawnersSerialized, FileName, "local spawner configurations");
    }
Exemplo n.º 7
0
 //class constructor
 public HomeController(UserManager <AppUser> userManager, DungeonDB context)
 {
     _userManager = userManager;
     _context     = context;
 }