// Token: 0x06000054 RID: 84 RVA: 0x00005F60 File Offset: 0x00004160 public static string GetCamoDefTerrain(TerrainDef terrain) { if (terrain.HasModExtension <CompCamoDefs>()) { string text = terrain?.GetModExtension <CompCamoDefs>().CamoType; if (CamoGearUtility.CamoTypes().Contains(text)) { return(text); } } return("notDefined"); }
// Token: 0x06000053 RID: 83 RVA: 0x00005F24 File Offset: 0x00004124 public static string GetCamoDefBiome(BiomeDef biome) { if (biome.HasModExtension <CompCamoDefs>()) { string text = biome?.GetModExtension <CompCamoDefs>().CamoType; if (CamoGearUtility.CamoTypes().Contains(text)) { return(text); } } return("notDefined"); }
// 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(); }
// Token: 0x0600004F RID: 79 RVA: 0x00004F10 File Offset: 0x00003110 public static float GetCamoPresetEff(Apparel apparel, string type) { var num = 0f; var compGearCamo = apparel.TryGetComp <CompGearCamo>(); if (compGearCamo != null) { switch (type) { case "Arctic": num = compGearCamo.Props.ArcticCamoEff; break; case "Desert": num = compGearCamo.Props.DesertCamoEff; break; case "Jungle": num = compGearCamo.Props.JungleCamoEff; break; case "Stone": num = compGearCamo.Props.StoneCamoEff; break; case "Woodland": num = compGearCamo.Props.WoodlandCamoEff; break; case "Urban": num = compGearCamo.Props.UrbanCamoEff; break; } } else { var def = apparel.def; List <string> list; if (def == null) { list = null; } else { var apparel2 = def.apparel; list = apparel2?.tags; } var list2 = list; if (list2 == null || list2.Count <= 0) { return(num); } foreach (var text in list2) { if (!text.StartsWith("PassiveCamo") || !GetCamoTags().Contains(text) && !GetColourTags().Contains(text) && !text.StartsWith("PassiveCamo_Multi") && !text.StartsWith("PassiveCamo_Colour")) { continue; } var text2 = GetTagValue(text, 1); if (!CamoGearUtility.CamoTypes().Contains(text2) && text2 != "Multi") { if (text2 == "Colour") { text2 = CamoPresetColour.GetClosestType(apparel); } switch (text2) { case "Black": switch (type) { case "Arctic": num = 0.12f; break; case "Desert": num = 0.25f; break; case "Jungle": num = 0.3f; break; case "Stone": num = 0.27f; break; case "Woodland": num = 0.29f; break; case "Urban": num = 0.3f; break; } break; case "White": switch (type) { case "Arctic": num = 0.65f; break; case "Desert": case "Jungle": num = 0.22f; break; case "Stone": num = 0.3f; break; case "Woodland": num = 0.22f; break; case "Urban": num = 0.3f; break; } break; case "Red": switch (type) { case "Arctic": num = 0.05f; break; case "Desert": num = 0.32f; break; case "Jungle": num = 0.25f; break; case "Stone": num = 0.15f; break; case "Woodland": num = 0.25f; break; case "Urban": num = 0.15f; break; } break; case "Orange": switch (type) { case "Arctic": num = 0.07f; break; case "Desert": num = 0.55f; break; case "Jungle": num = 0.25f; break; case "Stone": num = 0.15f; break; case "Woodland": num = 0.24f; break; case "Urban": num = 0.17f; break; } break; case "Yellow": switch (type) { case "Arctic": num = 0.12f; break; case "Desert": num = 0.6f; break; case "Jungle": num = 0.29f; break; case "Stone": num = 0.12f; break; case "Woodland": num = 0.27f; break; case "Urban": num = 0.18f; break; } break; case "Green": switch (type) { case "Arctic": num = 0.1f; break; case "Desert": num = 0.37f; break; case "Jungle": num = 0.58f; break; case "Stone": num = 0.15f; break; case "Woodland": num = 0.55f; break; case "Urban": num = 0.19f; break; } break; case "Blue": switch (type) { case "Arctic": num = 0.1f; break; case "Desert": num = 0.22f; break; case "Jungle": num = 0.37f; break; case "Stone": num = 0.25f; break; case "Woodland": num = 0.35f; break; case "Urban": num = 0.25f; break; } break; case "Cyan": switch (type) { case "Arctic": num = 0.19f; break; case "Desert": num = 0.12f; break; case "Jungle": num = 0.24f; break; case "Stone": num = 0.25f; break; case "Woodland": num = 0.24f; break; case "Urban": num = 0.23f; break; } break; case "Violet": switch (type) { case "Arctic": num = 0.09f; break; case "Desert": num = 0.26f; break; case "Jungle": num = 0.21f; break; case "Stone": case "Woodland": case "Urban": num = 0.19f; break; } break; case "Purple": switch (type) { case "Arctic": num = 0.07f; break; case "Desert": num = 0.22f; break; case "Jungle": num = 0.24f; break; case "Stone": case "Woodland": num = 0.22f; break; case "Urban": num = 0.21f; break; } break; case "Brown": switch (type) { case "Arctic": num = 0.09f; break; case "Desert": num = 0.42f; break; case "Jungle": num = 0.4f; break; case "Stone": num = 0.42f; break; case "Woodland": num = 0.41f; break; case "Urban": num = 0.23f; break; } break; case "Dark": switch (type) { case "Arctic": num = 0.11f; break; case "Desert": num = 0.26f; break; case "Jungle": num = 0.31f; break; case "Stone": num = 0.28f; break; case "Woodland": num = 0.3f; break; case "Urban": num = 0.31f; break; } break; case "Light": switch (type) { case "Arctic": num = 0.4f; break; case "Desert": num = 0.3f; break; case "Jungle": case "Stone": case "Woodland": num = 0.2f; break; case "Urban": num = 0.35f; break; } break; case "Rainbow": switch (type) { case "Arctic": case "Desert": case "Jungle": case "Stone": case "Woodland": num = 0.25f; break; case "Urban": num = 0.3f; break; } break; } return(num); } if (text2 == null) { continue; } switch (text2) { case "Arctic": switch (type) { case "Arctic": num = 0.54f; break; case "Desert": case "Jungle": num = 0.22f; break; case "Stone": num = 0.39f; break; case "Woodland": num = 0.22f; break; case "Urban": num = 0.32f; break; } break; case "Desert": switch (type) { case "Arctic": num = 0.22f; break; case "Desert": num = 0.54f; break; case "Jungle": num = 0.39f; break; case "Stone": num = 0.22f; break; case "Woodland": num = 0.39f; break; case "Urban": num = 0.32f; break; } break; case "Jungle": switch (type) { case "Arctic": num = 0.22f; break; case "Desert": num = 0.39f; break; case "Jungle": num = 0.54f; break; case "Stone": num = 0.22f; break; case "Woodland": num = 0.48f; break; case "Urban": num = 0.32f; break; } break; case "Stone": switch (type) { case "Arctic": num = 0.39f; break; case "Desert": case "Jungle": num = 0.22f; break; case "Stone": num = 0.54f; break; case "Woodland": num = 0.22f; break; case "Urban": num = 0.37f; break; } break; case "Woodland": switch (type) { case "Arctic": num = 0.22f; break; case "Desert": num = 0.39f; break; case "Jungle": num = 0.48f; break; case "Stone": num = 0.22f; break; case "Woodland": num = 0.54f; break; case "Urban": num = 0.32f; break; } break; case "Urban": switch (type) { case "Arctic": case "Desert": case "Jungle": num = 0.32f; break; case "Stone": num = 0.37f; break; case "Woodland": num = 0.32f; break; case "Urban": num = 0.54f; break; } break; case "Multi": switch (type) { case "Arctic": num = 0.32f; break; case "Desert": num = 0.49f; break; case "Jungle": num = 0.47f; break; case "Stone": num = 0.37f; break; case "Woodland": num = 0.49f; break; case "Urban": num = 0.35f; break; } break; } var tagValue = GetTagValue(text, 2); if (tagValue != null) { switch (tagValue) { case "Med": num *= 1.2f; break; case "High": num *= 1.33f; break; } } var techLevel = apparel.def.techLevel; if (techLevel != TechLevel.Spacer) { if (techLevel == TechLevel.Ultra) { num *= 1.1f; } } else { num *= 1.05f; } return(num); } return(num); } return(num); }