// 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);
        }