Пример #1
0
        public static void Postfix(GameObject __result)
        {
            GasAndLiquidConsumerMonitor.Def def = __result.AddOrGetDef <GasAndLiquidConsumerMonitor.Def>();
            List <string> vanillasSlickstersIds = new List <string>
            {
                "Oilfloater",
                "OilfloaterBaby",
                "OilfloaterDecor",
                "OilfloaterDecorBaby",
                "OilfloaterHighTemp",
                "OilfloaterHighTempBaby"
            };

            KPrefabID kId = __result.AddOrGet <KPrefabID>();

            // If the slickster is a vanilla slickster, I check the options
            if (vanillasSlickstersIds.Contains(kId.PrefabTag.Name))
            {
                if (Patches.Settings.IncreasesVanillaSlickstersConsumption)
                {
                    def.consumptionRate = 5f;
                }
            }
            else
            {
                if (def.consumptionRate <= 0.5f)
                {
                    def.consumptionRate = 5f * Patches.Settings.ConsumptionMultiplier;
                }
            }
        }
Пример #2
0
    public static GameObject SetupDiet(GameObject prefab, Diet.Info[] diet_infos, float caloriesPerKg, float minPoopSizeInKg)
    {
        Diet diet = new Diet(diet_infos);

        CreatureCalorieMonitor.Def def = prefab.AddOrGetDef <CreatureCalorieMonitor.Def>();
        def.diet = diet;
        def.minPoopSizeInCalories = minPoopSizeInKg * caloriesPerKg;
        GasAndLiquidConsumerMonitor.Def def2 = prefab.AddOrGetDef <GasAndLiquidConsumerMonitor.Def>();
        def2.diet = diet;
        return(prefab);
    }
Пример #3
0
        public static GameObject SetupDiet(GameObject prefab, List <Diet.Info> diet_infos, float CALORIES_PER_KG_OF_ORE, float minPoopSizeInKg, float consumptionRate = 5f)
        {
            Diet diet = new Diet(diet_infos.ToArray());

            CreatureCalorieMonitor.Def def = prefab.AddOrGetDef <CreatureCalorieMonitor.Def>();
            def.diet = diet;
            def.minPoopSizeInCalories = CALORIES_PER_KG_OF_ORE * minPoopSizeInKg;
            GasAndLiquidConsumerMonitor.Def def2 = prefab.AddOrGetDef <GasAndLiquidConsumerMonitor.Def>();
            def2.diet            = diet;
            def2.consumptionRate = consumptionRate;
            return(prefab);
        }
    public static GameObject SetupDiet(GameObject prefab, Tag consumed_tag, Tag producedTag, float caloriesPerKg, float producedConversionRate, string diseaseId, float diseasePerKgProduced, float minPoopSizeInKg)
    {
        HashSet <Tag> hashSet = new HashSet <Tag>();

        hashSet.Add(consumed_tag);
        Diet.Info[] infos = new Diet.Info[1]
        {
            new Diet.Info(hashSet, producedTag, caloriesPerKg, producedConversionRate, diseaseId, diseasePerKgProduced, false, false)
        };
        Diet diet = new Diet(infos);

        CreatureCalorieMonitor.Def def = prefab.AddOrGetDef <CreatureCalorieMonitor.Def>();
        def.diet = diet;
        def.minPoopSizeInCalories = minPoopSizeInKg * caloriesPerKg;
        GasAndLiquidConsumerMonitor.Def def2 = prefab.AddOrGetDef <GasAndLiquidConsumerMonitor.Def>();
        def2.diet = diet;
        return(prefab);
    }
Пример #5
0
        public static GameObject CreateLivingCrystal()
        {
            GameObject placedEntity = GeneratePlacedEntity();

            EntityTemplates.ExtendEntityToWildCreature(placedEntity, PenSizePerCreature, Lifespan);
            Diet diet = new Diet(new Diet.Info[1]
            {
                new Diet.Info(new HashSet <Tag>()
                {
                    ElementLoader.FindElementByHash(Elements.MineralWaterElement.SimHash).tag
                }, ElementLoader.FindElementByHash(Elements.MineralWaterElement.SimHash).tag, CaloriesPerKg, ProducedConversionRate, null, 0.0f, false)
            });

            CreatureCalorieMonitor.Def calorieMonitor = placedEntity.AddOrGetDef <CreatureCalorieMonitor.Def>();
            calorieMonitor.diet = diet;
            calorieMonitor.minPoopSizeInCalories = MinPoopSizeInKg * CaloriesPerKg;
            GasAndLiquidConsumerMonitor.Def consumerMonitor = placedEntity.AddOrGetDef <GasAndLiquidConsumerMonitor.Def>();
            consumerMonitor.diet            = diet;
            consumerMonitor.consumptionRate = KgEatenPerCycle / EatTimesPerCycle;
            placedEntity.AddOrGet <LivingCrystal>().Initialize();
            return(placedEntity);
        }