private static void LoadAllRealms() { var realms = DatabaseManager.World.GetAllRealms().ToDictionary(x => x.Id); foreach (var realmid in RealmIDsByTopologicalSort) { var erealm = RealmConverter.ConvertToEntityRealm(realms[realmid], true); var ruleset = BuildRuleset(erealm); var wrealm = new WorldRealm(erealm, ruleset); RealmsByID[erealm.Id] = wrealm; RealmsByName[erealm.Name] = wrealm; if (Enum.IsDefined(typeof(ReservedRealm), erealm.Id)) { ReservedRealms[(ReservedRealm)erealm.Id] = wrealm; if (erealm.Id == (ushort)ReservedRealm.@default) { DefaultRealm = wrealm; } } //Stupid hack, leaks complexity if (wrealm.Realm.Type == RealmType.Realm && wrealm.StandardRules.GetProperty(RealmPropertyBool.IsDuelingRealm)) { DuelRealm = wrealm; } } ; Realms = RealmsByID.Values.Where(x => x.Realm.Type == RealmType.Realm).ToList().AsReadOnly(); Rulesets = RealmsByID.Values.Where(x => x.Realm.Type == RealmType.Ruleset).ToList().AsReadOnly(); RealmsAndRulesets = RealmsByID.Values.ToList().AsReadOnly(); }