private static void PerEquipmentStatDefOnRegisterStatDefs(On.RoR2.Stats.PerEquipmentStatDef.orig_RegisterStatDefs orig) { var instancesList = typeof(PerEquipmentStatDef).GetFieldValue <List <PerEquipmentStatDef> >("instancesList"); foreach (PerEquipmentStatDef perEquipmentStatDef in instancesList) { var prefix = perEquipmentStatDef.GetFieldValue <string>("prefix"); var recordType = perEquipmentStatDef.GetFieldValue <StatRecordType>("recordType"); var dataType = perEquipmentStatDef.GetFieldValue <StatDataType>("dataType"); var keyToStatDef = EquipmentCatalog.GetPerEquipmentBuffer <StatDef>(); perEquipmentStatDef.SetFieldValue("keyToStatDef", keyToStatDef); foreach (EquipmentIndex equipmentIndex in EquipmentCatalog.allEquipment) { if ((int)equipmentIndex >= OriginalEquipmentCount) { continue; } StatDef statDef = StatDef.Register(prefix + "." + equipmentIndex, recordType, dataType, 0.0); keyToStatDef[(int)equipmentIndex] = statDef; } } }