Example #1
0
 // Token: 0x06000018 RID: 24 RVA: 0x00002C58 File Offset: 0x00000E58
 public static bool TryGetCamoHidValue(Pawn seer, Pawn target, out bool hid)
 {
     hid = false;
     if (seer != null)
     {
         PawnCamoData pawnCamoData = ThingCompUtility.TryGetComp <PawnCamoData>(seer);
         if (pawnCamoData != null)
         {
             int           ticksGame = Find.TickManager.TicksGame;
             List <string> list      = pawnCamoData?.PawnHidTickList;
             if (list != null && list.Count > 0)
             {
                 foreach (string valuesStr in list)
                 {
                     if (CamoGearUtility.GetIntValue(valuesStr, 1) + CamoUtility.TickElapse >= ticksGame)
                     {
                         int intValue = CamoGearUtility.GetIntValue(valuesStr, 0);
                         if (target != null && target != null)
                         {
                             int thingIDNumber = target.thingIDNumber;
                             if (intValue == target.thingIDNumber)
                             {
                                 string strValue = CamoGearUtility.GetStrValue(valuesStr, 2);
                                 hid = (strValue == "1");
                                 return(true);
                             }
                         }
                     }
                 }
                 return(false);
             }
         }
     }
     return(false);
 }
Example #2
0
        // Token: 0x06000019 RID: 25 RVA: 0x00002D30 File Offset: 0x00000F30
        public static void TryAddCamoHidValue(Pawn seer, Pawn target, bool value)
        {
            if (seer == null)
            {
                return;
            }

            var b            = false;
            var pawnCamoData = seer.TryGetComp <PawnCamoData>();

            if (pawnCamoData == null)
            {
                return;
            }

            var ticksGame       = Find.TickManager.TicksGame;
            var list            = new List <string>();
            var pawnHidTickList = pawnCamoData.PawnHidTickList;

            if (pawnHidTickList != null && pawnHidTickList.Count > 0)
            {
                foreach (var text in pawnHidTickList)
                {
                    if (CamoGearUtility.GetIntValue(text, 1) + TickElapse < ticksGame)
                    {
                        continue;
                    }

                    list.AddDistinct(text);
                    var intValue = CamoGearUtility.GetIntValue(text, 0);
                    if (target == null)
                    {
                        continue;
                    }

                    var unused = target.thingIDNumber;
                    if (intValue == target.thingIDNumber)
                    {
                        b = true;
                    }
                }
            }

            if (!b)
            {
                if (target != null)
                {
                    var text2 = string.Concat(target.thingIDNumber.ToString(), ";", ticksGame.ToString(), ";",
                                              value ? "1" : "0");
                    list.AddDistinct(text2);
                }
            }

            pawnCamoData.PawnHidTickList = list;
        }
Example #3
0
 // Token: 0x06000019 RID: 25 RVA: 0x00002D30 File Offset: 0x00000F30
 public static void TryAddCamoHidValue(Pawn seer, Pawn target, bool value)
 {
     if (seer != null)
     {
         bool         flag         = false;
         PawnCamoData pawnCamoData = ThingCompUtility.TryGetComp <PawnCamoData>(seer);
         if (pawnCamoData != null)
         {
             int           ticksGame       = Find.TickManager.TicksGame;
             List <string> list            = new List <string>();
             List <string> pawnHidTickList = pawnCamoData.PawnHidTickList;
             if (pawnHidTickList != null && pawnHidTickList.Count > 0)
             {
                 foreach (string text in pawnHidTickList)
                 {
                     if (CamoGearUtility.GetIntValue(text, 1) + CamoUtility.TickElapse >= ticksGame)
                     {
                         GenCollection.AddDistinct <string>(list, text);
                         int intValue = CamoGearUtility.GetIntValue(text, 0);
                         if (target != null && target != null)
                         {
                             int thingIDNumber = target.thingIDNumber;
                             if (intValue == target.thingIDNumber)
                             {
                                 flag = true;
                             }
                         }
                     }
                 }
             }
             if (!flag)
             {
                 string text2 = string.Concat(new string[]
                 {
                     target.thingIDNumber.ToString(),
                     ";",
                     ticksGame.ToString(),
                     ";",
                     value ? "1" : "0"
                 });
                 GenCollection.AddDistinct <string>(list, text2);
             }
             pawnCamoData.PawnHidTickList = list;
         }
     }
 }
Example #4
0
        // Token: 0x06000018 RID: 24 RVA: 0x00002C58 File Offset: 0x00000E58
        public static bool TryGetCamoHidValue(Pawn seer, Pawn target, out bool hid)
        {
            hid = false;

            var pawnCamoData = seer?.TryGetComp <PawnCamoData>();

            if (pawnCamoData == null)
            {
                return(false);
            }

            var ticksGame = Find.TickManager.TicksGame;
            var list      = pawnCamoData.PawnHidTickList;

            if (list == null || list.Count <= 0)
            {
                return(false);
            }

            foreach (var valuesStr in list)
            {
                if (CamoGearUtility.GetIntValue(valuesStr, 1) + TickElapse < ticksGame)
                {
                    continue;
                }

                var intValue = CamoGearUtility.GetIntValue(valuesStr, 0);
                if (target == null)
                {
                    continue;
                }

                var unused = target.thingIDNumber;
                if (intValue != target.thingIDNumber)
                {
                    continue;
                }

                var strValue = CamoGearUtility.GetStrValue(valuesStr, 2);
                hid = strValue == "1";
                return(true);
            }

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