Exemplo n.º 1
0
        private void GenerateStartingSurvivalToolAssignments()
        {
            SurvivalToolAssignment staAnything = MakeNewSurvivalToolAssignment();

            staAnything.label = "OutfitAnything".Translate();

            SurvivalToolAssignment staConstructor = MakeNewSurvivalToolAssignment();

            staConstructor.label = "SurvivalToolAssignmentConstructor".Translate();
            staConstructor.filter.SetDisallowAll(null, null);

            SurvivalToolAssignment staMiner = MakeNewSurvivalToolAssignment();

            staMiner.label = "SurvivalToolAssignmentMiner".Translate();
            staMiner.filter.SetDisallowAll(null, null);

            SurvivalToolAssignment staPlantWorker = MakeNewSurvivalToolAssignment();

            staPlantWorker.label = "SurvivalToolAssignmentPlantWorker".Translate();
            staPlantWorker.filter.SetDisallowAll(null, null);

            foreach (ThingDef tDef in DefDatabase <ThingDef> .AllDefs)
            {
                SurvivalToolProperties toolProps = tDef.GetModExtension <SurvivalToolProperties>();
                if (toolProps == null)
                {
                    continue;
                }
                else
                {
                    if (toolProps.defaultSurvivalToolAssignmentTags.Contains("Constructor"))
                    {
                        staConstructor.filter.SetAllow(tDef, true);
                    }
                    if (toolProps.defaultSurvivalToolAssignmentTags.Contains("Miner"))
                    {
                        staMiner.filter.SetAllow(tDef, true);
                    }
                    if (toolProps.defaultSurvivalToolAssignmentTags.Contains("PlantWorker"))
                    {
                        staPlantWorker.filter.SetAllow(tDef, true);
                    }
                }
            }

            SurvivalToolAssignment staNothing = MakeNewSurvivalToolAssignment();

            staNothing.label = "FoodRestrictionNothing".Translate();
            staNothing.filter.SetDisallowAll(null, null);
        }
Exemplo n.º 2
0
        private float GetBaseEstimatedLifespan(SurvivalTool tool, BuildableDef def)
        {
            SurvivalToolProperties props = def.GetModExtension <SurvivalToolProperties>() ?? SurvivalToolProperties.defaultValues;

            if (!((ThingDef)def).useHitPoints)
            {
                return(float.PositiveInfinity);
            }

            // For def
            if (tool == null)
            {
                return(GenDate.TicksToDays(Mathf.RoundToInt((BaseWearInterval * def.GetStatValueAbstract(StatDefOf.MaxHitPoints)) / props.toolWearFactor)));
            }

            // For thing
            StuffPropsTool stuffProps = tool.Stuff?.GetModExtension <StuffPropsTool>() ?? StuffPropsTool.defaultValues;
            float          wearFactor = tool.def.GetModExtension <SurvivalToolProperties>().toolWearFactor *(stuffProps.wearFactorMultiplier);

            return(GenDate.TicksToDays(Mathf.RoundToInt((BaseWearInterval * tool.MaxHitPoints) / wearFactor)));
        }
Exemplo n.º 3
0
 public static bool IsSurvivalTool(this BuildableDef def, out SurvivalToolProperties toolProps)
 {
     toolProps = def.GetModExtension <SurvivalToolProperties>();
     return(def.IsSurvivalTool());
 }