public static GameObject CreateCritter( string id, string name, string desc, string anim_file, bool is_baby) { GameObject wildCreature = EntityTemplates.ExtendEntityToWildCreature(BaseDreckoConfig.BaseDrecko(id, name, desc, anim_file, BASE_TRAIT_ID, is_baby, (string)null, 308.15f, 363.15f), DreckoTuning.PEN_SIZE_PER_CREATURE); CreateTrait(name); Diet diet = new Diet(new Diet.Info[1] { new Diet.Info(new HashSet <Tag>() { (Tag)SeaLettuceConfig.ID }, AlgaeDrecko.POOP_ELEMENT, AlgaeDrecko.CALORIES_PER_DAY_OF_PLANT_EATEN, AlgaeDrecko.KG_POOP_PER_DAY_OF_PLANT, (string)null, 0.0f, false, true) }); CreatureCalorieMonitor.Def def1 = wildCreature.AddOrGetDef <CreatureCalorieMonitor.Def>(); def1.diet = diet; def1.minPoopSizeInCalories = AlgaeDrecko.MIN_POOP_SIZE_IN_CALORIES; wildCreature.AddOrGetDef <SolidConsumerMonitor.Def>().diet = diet; ScaleGrowthMonitor.Def def2 = wildCreature.AddOrGetDef <ScaleGrowthMonitor.Def>(); def2.defaultGrowthRate = (float)(1.0 / (double)AlgaeDrecko.SCALE_GROWTH_TIME_IN_CYCLES / 600.0); def2.dropMass = AlgaeDrecko.FIBER_PER_CYCLE * AlgaeDrecko.SCALE_GROWTH_TIME_IN_CYCLES; def2.itemDroppedOnShear = AlgaeDrecko.EMIT_ELEMENT; def2.levelCount = 6; def2.targetAtmosphere = SimHashes.CarbonDioxide; return(wildCreature); }
public static GameObject CreateDrecko(string id, string name, string desc, string anim_file, bool is_baby) { GameObject prefab = BaseDreckoConfig.BaseDrecko(id, name, desc, anim_file, "DreckoBaseTrait", is_baby, "fbr_", 308.15f, 363.15f); prefab = EntityTemplates.ExtendEntityToWildCreature(prefab, DreckoTuning.PEN_SIZE_PER_CREATURE, 150f); Trait trait = Db.Get().CreateTrait("DreckoBaseTrait", name, name, null, false, null, true, true); trait.Add(new AttributeModifier(Db.Get().Amounts.Calories.maxAttribute.Id, DreckoTuning.STANDARD_STOMACH_SIZE, name, false, false, true)); trait.Add(new AttributeModifier(Db.Get().Amounts.Calories.deltaAttribute.Id, (0f - DreckoTuning.STANDARD_CALORIES_PER_CYCLE) / 600f, name, false, false, true)); trait.Add(new AttributeModifier(Db.Get().Amounts.HitPoints.maxAttribute.Id, 25f, name, false, false, true)); trait.Add(new AttributeModifier(Db.Get().Amounts.Age.maxAttribute.Id, 150f, name, false, false, true)); HashSet <Tag> hashSet = new HashSet <Tag>(); hashSet.Add("SpiceVine".ToTag()); hashSet.Add(SwampLilyConfig.ID.ToTag()); hashSet.Add("BasicSingleHarvestPlant".ToTag()); Diet.Info[] infos = new Diet.Info[1] { new Diet.Info(hashSet, POOP_ELEMENT, CALORIES_PER_DAY_OF_PLANT_EATEN, KG_POOP_PER_DAY_OF_PLANT, null, 0f, false, true) }; Diet diet = new Diet(infos); CreatureCalorieMonitor.Def def = prefab.AddOrGetDef <CreatureCalorieMonitor.Def>(); def.diet = diet; def.minPoopSizeInCalories = MIN_POOP_SIZE_IN_CALORIES; SolidConsumerMonitor.Def def2 = prefab.AddOrGetDef <SolidConsumerMonitor.Def>(); def2.diet = diet; ScaleGrowthMonitor.Def def3 = prefab.AddOrGetDef <ScaleGrowthMonitor.Def>(); def3.defaultGrowthRate = 1f / SCALE_GROWTH_TIME_IN_CYCLES / 600f; def3.dropMass = FIBER_PER_CYCLE * SCALE_GROWTH_TIME_IN_CYCLES; def3.itemDroppedOnShear = EMIT_ELEMENT; def3.levelCount = 6; def3.targetAtmosphere = SimHashes.Hydrogen; return(prefab); }