コード例 #1
0
        public static void PostProcessGeneratedGear(Thing gear, Pawn pawn)
        {
            CompQuality compQuality = gear.TryGetComp <CompQuality>();

            if (compQuality != null)
            {
                QualityCategory q = QualityUtility.GenerateQualityGeneratingPawn(pawn.kindDef);
                if (pawn.royalty != null && pawn.Faction != null)
                {
                    RoyalTitleDef currentTitle = pawn.royalty.GetCurrentTitle(pawn.Faction);
                    if (currentTitle != null)
                    {
                        q = (QualityCategory)Mathf.Clamp((int)QualityUtility.GenerateQualityGeneratingPawn(pawn.kindDef), (int)currentTitle.requiredMinimumApparelQuality, 6);
                    }
                }
                compQuality.SetQuality(q, ArtGenerationContext.Outsider);
            }
            if (gear.def.useHitPoints)
            {
                float randomInRange = pawn.kindDef.gearHealthRange.RandomInRange;
                if (randomInRange < 1f)
                {
                    int b = Mathf.RoundToInt(randomInRange * (float)gear.MaxHitPoints);
                    b = (gear.HitPoints = Mathf.Max(1, b));
                }
            }
        }
コード例 #2
0
ファイル: PawnGenerator.cs プロジェクト: potsh/RimWorld
 public static void PostProcessGeneratedGear(Thing gear, Pawn pawn)
 {
     gear.TryGetComp <CompQuality>()?.SetQuality(QualityUtility.GenerateQualityGeneratingPawn(pawn.kindDef), ArtGenerationContext.Outsider);
     if (gear.def.useHitPoints)
     {
         float randomInRange = pawn.kindDef.gearHealthRange.RandomInRange;
         if (randomInRange < 1f)
         {
             int b = Mathf.RoundToInt(randomInRange * (float)gear.MaxHitPoints);
             b = (gear.HitPoints = Mathf.Max(1, b));
         }
     }
 }