public static Dictionary <teResourceGUID, GameRulesetSchema> GetData() { var gameRulesets = new Dictionary <teResourceGUID, GameRulesetSchema>(); foreach (teResourceGUID key in TrackedFiles[0xC6]) { var rulesetSchema = GetInstance <STUGameRulesetSchema>(key); if (rulesetSchema == null) { continue; } var ruleset = new GameRulesetSchema(rulesetSchema, key); gameRulesets[key] = ruleset; } return(gameRulesets); }
private static List <GameRulesetSchema> GetGameRulesets() { var gameRulesets = new List <GameRulesetSchema>(); foreach (var key in TrackedFiles[0xC6]) { var rulesetSchema = GetInstance <STUGameRulesetSchema>(key); if (rulesetSchema == null) { continue; } var ruleset = new GameRulesetSchema(rulesetSchema, key); gameRulesets.Add(ruleset); } return(gameRulesets); }
private Dictionary <teResourceGUID, GameRuleset> GetData() { var @return = new Dictionary <teResourceGUID, GameRuleset>(); // Hero rulesets that are used on Heroes var heroRulesetMapping = new Dictionary <teResourceGUID, RulesetSchemaMapping>(); foreach (teResourceGUID key in TrackedFiles[0x75]) { var hero = STUHelper.GetInstance <STUHero>(key); if (hero?.m_gameRulesetSchemas == null) { continue; } foreach (var guid in hero.m_gameRulesetSchemas) { var rulesetSchema = new GameRulesetSchema(guid); if (rulesetSchema?.Entries == null) { continue; } foreach (var rulesetSchemaEntry in rulesetSchema.Entries) { heroRulesetMapping[rulesetSchemaEntry.Virtual01C] = new RulesetSchemaMapping { GUID = rulesetSchemaEntry.Virtual01C, Name = rulesetSchemaEntry.Name, Value = rulesetSchemaEntry.Value }; } } } foreach (teResourceGUID key in TrackedFiles[0xC0]) { var ruleset = new GameRuleset(key); if (ruleset.GUID == 0) { continue; } // Generate game rulesets schemas that are used for this gamemode var rulesetMapping = new Dictionary <teResourceGUID, RulesetSchemaMapping>(); foreach (var guid in ruleset.GameMode.GameMode.GameRulesetSchemas) { var rulesetSchema = new GameRulesetSchema(guid); foreach (var rulesetSchemaEntry in rulesetSchema?.Entries) { rulesetMapping[rulesetSchemaEntry.Virtual01C] = new RulesetSchemaMapping { GUID = rulesetSchemaEntry.Virtual01C, Name = rulesetSchemaEntry.Name, Value = rulesetSchemaEntry.Value }; } } ruleset.GameMode.ConfigValues = ruleset.GameMode?.STU?.m_3CE93B76? .Select(configValuePair => GenerateConfigValues(configValuePair, rulesetMapping)) .Where(x => x != null) .ToArray(); foreach (var gameRulesetTeam in ruleset.GameMode?.Teams) { gameRulesetTeam.ConfigValues = gameRulesetTeam.STU.m_CF58324E? .Select(configValuePair => GenerateConfigValues(configValuePair, heroRulesetMapping)) .Where(x => x != null) .ToArray(); } if (ruleset.GameMode.ConfigValues?.Length == 0) { ruleset.GameMode.ConfigValues = null; } @return[key] = ruleset; } return(@return); }