Beispiel #1
0
        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;
                }
            }
        }