// Token: 0x06000039 RID: 57 RVA: 0x00004024 File Offset: 0x00002224 internal static void WearingCamoGear(Pawn pawn, out float ArcticCamoEff, out float DesertCamoEff, out float JungleCamoEff, out float StoneCamoEff, out float WoodlandCamoEff, out float UrbanCamoEff, out float notDefinedCamoEff) { ArcticCamoEff = 0f; DesertCamoEff = 0f; JungleCamoEff = 0f; StoneCamoEff = 0f; WoodlandCamoEff = 0f; UrbanCamoEff = 0f; notDefinedCamoEff = 0f; List <string> list = new List <string>(); List <string> list2 = new List <string>(); if ((pawn?.apparel) != null && pawn.apparel.WornApparelCount > 0) { foreach (Apparel apparel in pawn.apparel.WornApparel) { float apparelArcticEff = 0f; float apparelDesertEff = 0f; float apparelJungleEff = 0f; float apparelStoneEff = 0f; float apparelWoodlandEff = 0f; float apparelUrbanEff = 0f; float apparelnotDefinedEff = 0f; foreach (string text in CamoGearUtility.CamoTypes()) { float num = Math.Min(1f, CamoGearUtility.GetApparelCamoEff(pawn, apparel, text) * CamoGearUtility.GetQualFactor(apparel)); uint num2 = ComputeStringHash(text); if (num2 <= 1206763323U) { if (num2 != 359505389U) { if (num2 != 437214172U) { if (num2 == 1206763323U) { if (text == "Urban") { apparelUrbanEff = num; } } } else if (text == "Desert") { apparelDesertEff = num; } } else if (text == "Arctic") { apparelArcticEff = num; } } else if (num2 <= 1858049587U) { if (num2 != 1842662042U) { if (num2 == 1858049587U) { if (text == "notDefined") { apparelnotDefinedEff = num; } } } else if (text == "Stone") { apparelStoneEff = num; } } else if (num2 != 3655469229U) { if (num2 == 3729410372U) { if (text == "Jungle") { apparelJungleEff = num; } } } else if (text == "Woodland") { apparelWoodlandEff = num; } } List <BodyPartGroupDef> bodyPartGroups = apparel.def.apparel.bodyPartGroups; int drawOrder = apparel.def.apparel.LastLayer.drawOrder; foreach (BodyPartGroupDef bodyPartGroupDef in bodyPartGroups) { list.Add(CamoGearUtility.GetNewRecord(bodyPartGroupDef, drawOrder, apparelArcticEff, apparelDesertEff, apparelJungleEff, apparelStoneEff, apparelWoodlandEff, apparelUrbanEff, apparelnotDefinedEff)); GenCollection.AddDistinct <string>(list2, bodyPartGroupDef.defName); } } if (list.Count > 0 && list2.Count > 0) { float num3 = 0f; float num4 = 0f; float num5 = 0f; float num6 = 0f; float num7 = 0f; float num8 = 0f; float num9 = 0f; int num10 = 0; foreach (string b in list2) { int num11 = 0; float num12 = 0f; float num13 = 0f; float num14 = 0f; float num15 = 0f; float num16 = 0f; float num17 = 0f; float num18 = 0f; foreach (string valuesStr in list) { if (CamoGearUtility.GetStrValue(valuesStr, 0) == b) { int intValue = CamoGearUtility.GetIntValue(valuesStr, 1); if (intValue >= num11) { num11 = intValue; num12 = (float)CamoGearUtility.GetIntValue(valuesStr, 2) / 1000f; num13 = (float)CamoGearUtility.GetIntValue(valuesStr, 3) / 1000f; num14 = (float)CamoGearUtility.GetIntValue(valuesStr, 4) / 1000f; num15 = (float)CamoGearUtility.GetIntValue(valuesStr, 5) / 1000f; num16 = (float)CamoGearUtility.GetIntValue(valuesStr, 6) / 1000f; num17 = (float)CamoGearUtility.GetIntValue(valuesStr, 7) / 1000f; num18 = (float)CamoGearUtility.GetIntValue(valuesStr, 8) / 1000f; } } } num3 += num12; num4 += num13; num5 += num14; num6 += num15; num7 += num16; num8 += num17; num9 += num18; num10++; } if (num10 > 0) { ArcticCamoEff = num3 / (float)num10; DesertCamoEff = num4 / (float)num10; JungleCamoEff = num5 / (float)num10; StoneCamoEff = num6 / (float)num10; WoodlandCamoEff = num7 / (float)num10; UrbanCamoEff = num8 / (float)num10; notDefinedCamoEff = num9 / (float)num10; } } } list.Clear(); list2.Clear(); }