コード例 #1
0
        private static bool CanUsePair(ThingStuffPair pair, Pawn pawn, float moneyLeft, bool allowHeadgear, int fixedSeed)
        {
            bool result;

            if (pair.Price > moneyLeft)
            {
                result = false;
            }
            else if (!allowHeadgear && PawnApparelGenerator.IsHeadgear(pair.thing))
            {
                result = false;
            }
            else if (pair.stuff != null && pawn.Faction != null && !pawn.Faction.def.CanUseStuffForApparel(pair.stuff))
            {
                result = false;
            }
            else if (PawnApparelGenerator.workingSet.PairOverlapsAnything(pair))
            {
                result = false;
            }
            else
            {
                if (!pawn.kindDef.apparelTags.NullOrEmpty <string>())
                {
                    bool flag = false;
                    for (int i = 0; i < pawn.kindDef.apparelTags.Count; i++)
                    {
                        for (int j = 0; j < pair.thing.apparel.tags.Count; j++)
                        {
                            if (pawn.kindDef.apparelTags[i] == pair.thing.apparel.tags[j])
                            {
                                flag = true;
                                break;
                            }
                        }
                        if (flag)
                        {
                            break;
                        }
                    }
                    if (!flag)
                    {
                        return(false);
                    }
                }
                if (pair.thing.generateAllowChance < 1f)
                {
                    if (!Rand.ChanceSeeded(pair.thing.generateAllowChance, fixedSeed ^ (int)pair.thing.shortHash ^ 64128343))
                    {
                        return(false);
                    }
                }
                result = true;
            }
            return(result);
        }
コード例 #2
0
 private static string <ApparelPairs> m__A(ThingStuffPair p)
 {
     return((!PawnApparelGenerator.IsHeadgear(p.thing)) ? string.Empty : "*");
 }
コード例 #3
0
        private static void ApparelPairs()
        {
            IEnumerable <ThingStuffPair> dataSources = from p in PawnApparelGenerator.allApparelPairs
                                                       orderby p.thing.defName descending
                                                       select p;

            TableDataGetter <ThingStuffPair>[] array = new TableDataGetter <ThingStuffPair> [7];
            array[0] = new TableDataGetter <ThingStuffPair>("thing", (ThingStuffPair p) => p.thing.defName);
            array[1] = new TableDataGetter <ThingStuffPair>("stuff", (ThingStuffPair p) => (p.stuff == null) ? string.Empty : p.stuff.defName);
            array[2] = new TableDataGetter <ThingStuffPair>("price", (ThingStuffPair p) => p.Price.ToString());
            array[3] = new TableDataGetter <ThingStuffPair>("commonality", (ThingStuffPair p) => (p.Commonality * 100f).ToString("F4"));
            array[4] = new TableDataGetter <ThingStuffPair>("generateCommonality", (ThingStuffPair p) => p.thing.generateCommonality.ToString("F4"));
            array[5] = new TableDataGetter <ThingStuffPair>("insulationCold", (ThingStuffPair p) => (p.InsulationCold != 0f) ? p.InsulationCold.ToString() : string.Empty);
            array[6] = new TableDataGetter <ThingStuffPair>("headgear", (ThingStuffPair p) => (!PawnApparelGenerator.IsHeadgear(p.thing)) ? string.Empty : "*");
            DebugTables.MakeTablesDialog <ThingStuffPair>(dataSources, array);
        }