public GameObject CreatePrefab() { GameObject gameObject = CreateLightBug("LightBugPurple", STRINGS.CREATURES.SPECIES.LIGHTBUG.VARIANT_PURPLE.NAME, STRINGS.CREATURES.SPECIES.LIGHTBUG.VARIANT_PURPLE.DESC, "lightbug_kanim", false); EntityTemplates.ExtendEntityToFertileCreature(gameObject, "LightBugPurpleEgg", STRINGS.CREATURES.SPECIES.LIGHTBUG.VARIANT_PURPLE.EGG_NAME, STRINGS.CREATURES.SPECIES.LIGHTBUG.VARIANT_PURPLE.DESC, "egg_lightbug_kanim", LightBugTuning.EGG_MASS, "LightBugPurpleBaby", 15.000001f, 5f, LightBugTuning.EGG_CHANCES_PURPLE, EGG_SORT_ORDER, true, false, true, 1f); return(gameObject); }
public GameObject CreatePrefab() { GameObject prefab = CreatePacu("PacuCleaner", STRINGS.CREATURES.SPECIES.PACU.VARIANT_CLEANER.NAME, STRINGS.CREATURES.SPECIES.PACU.VARIANT_CLEANER.DESC, "pacu_kanim", false); prefab = EntityTemplates.ExtendEntityToWildCreature(prefab, PacuTuning.PEN_SIZE_PER_CREATURE, 25f); return(EntityTemplates.ExtendEntityToFertileCreature(prefab, "PacuCleanerEgg", STRINGS.CREATURES.SPECIES.PACU.VARIANT_CLEANER.EGG_NAME, STRINGS.CREATURES.SPECIES.PACU.VARIANT_CLEANER.DESC, "egg_pacu_kanim", PacuTuning.EGG_MASS, "PacuCleanerBaby", 15.000001f, 5f, PacuTuning.EGG_CHANCES_CLEANER, 501, false, true, false, 0.75f)); }
public GameObject CreatePrefab() { ComplexRecipe.RecipeElement[] ingredients = new ComplexRecipe.RecipeElement[4] { new ComplexRecipe.RecipeElement((Tag)PuftConfig.EGG_ID, 2f), new ComplexRecipe.RecipeElement((Tag)PuftBleachstoneConfig.EGG_ID, 1f), new ComplexRecipe.RecipeElement((Tag)PuftOxyliteConfig.EGG_ID, 1f), new ComplexRecipe.RecipeElement(SimHashes.SourGas.CreateTag(), 10f), }; ComplexRecipe.RecipeElement[] results = new ComplexRecipe.RecipeElement[1] { new ComplexRecipe.RecipeElement((Tag)DevilPuftConfig.EGG_ID, 1f) }; var r = new ComplexRecipe(ComplexRecipeManager.MakeRecipeID(ID, (IList <ComplexRecipe.RecipeElement>)ingredients, (IList <ComplexRecipe.RecipeElement>)results), ingredients, results, 0) { time = 80f / 8, description = BabyDescription, nameDisplay = ComplexRecipe.RecipeNameDisplay.Result }; r.fabricators = new List <Tag>() { TagManager.Create(SupermaterialRefineryConfig.ID) }; return(EntityTemplates.ExtendEntityToFertileCreature(DevilPuftConfig.CreatePuft(ID, Name, Description, "devil_puft_adult_kanim", false), EGG_ID, EggName, Description, "devil_puft_egg_kanim", PuftTuning.EGG_MASS, BABY_ID, 45f, 15f, EggChances, DevilPuftConfig.EGG_SORT_ORDER, true, false, true, 1f)); }
public GameObject CreatePrefab() { GameObject gameObject = CreateOilFloater("Oilfloater", STRINGS.CREATURES.SPECIES.OILFLOATER.NAME, STRINGS.CREATURES.SPECIES.OILFLOATER.DESC, "oilfloater_kanim", false); EntityTemplates.ExtendEntityToFertileCreature(gameObject, "OilfloaterEgg", STRINGS.CREATURES.SPECIES.OILFLOATER.EGG_NAME, STRINGS.CREATURES.SPECIES.OILFLOATER.DESC, "egg_oilfloater_kanim", OilFloaterTuning.EGG_MASS, "OilfloaterBaby", 60.0000038f, 20f, OilFloaterTuning.EGG_CHANCES_BASE, EGG_SORT_ORDER, true, false, true, 1f); return(gameObject); }
public GameObject CreatePrefab() { return(EntityTemplates.ExtendEntityToFertileCreature( EntityTemplates.ExtendEntityToWildCreature( CreatePacu(ID, NAME, DESCRIPTION, "custompacu_kanim", false), PacuTuning.PEN_SIZE_PER_CREATURE, 25f), EGG_ID, EGG_NAME, DESCRIPTION, "egg_custompacu_kanim", PacuTuning.EGG_MASS, BabyBetaPacuConfig.ID, 15f, 5f, CustomPacuTuning.EGG_CHANCES_BETA, EGG_SORT_ORDER, false, true, false, 0.75f)); }
public GameObject CreatePrefab() { GameObject gameObject = CreateLightBug("LightBugCrystal", STRINGS.CREATURES.SPECIES.LIGHTBUG.VARIANT_CRYSTAL.NAME, STRINGS.CREATURES.SPECIES.LIGHTBUG.VARIANT_CRYSTAL.DESC, "lightbug_kanim", false); EntityTemplates.ExtendEntityToFertileCreature(gameObject, "LightBugCrystalEgg", STRINGS.CREATURES.SPECIES.LIGHTBUG.VARIANT_CRYSTAL.EGG_NAME, STRINGS.CREATURES.SPECIES.LIGHTBUG.VARIANT_CRYSTAL.DESC, "egg_lightbug_kanim", LightBugTuning.EGG_MASS, "LightBugCrystalBaby", 45f, 15f, LightBugTuning.EGG_CHANCES_CRYSTAL, EGG_SORT_ORDER, true, false, true, 1f); return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = CreateOilFloater(ID, PHO_STRINGS.VARIANT_OWO.NAME, PHO_STRINGS.VARIANT_OWO.DESC, base_kanim_id, false); DecorProvider decorProvider = gameObject.AddOrGet <DecorProvider>(); decorProvider.SetValues(TUNING.DECOR.BONUS.TIER5); EffectArea owoEffect = gameObject.AddComponent <EffectArea>(); owoEffect.EffectName = "OwO_effect"; owoEffect.Area = 5; EntityTemplates.ExtendEntityToFertileCreature(gameObject, EGG_ID, PHO_STRINGS.VARIANT_OWO.EGG_NAME, PHO_STRINGS.VARIANT_OWO.DESC, egg_kanim_id, OilFloaterTuning.EGG_MASS, ID + "Baby", 60.0000038f, 20f, EGG_CHANCES_OWO, EGG_SORT_ORDER, true, false, true, 1f); return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = CreateLightBug("LightBug", STRINGS.CREATURES.SPECIES.LIGHTBUG.NAME, STRINGS.CREATURES.SPECIES.LIGHTBUG.DESC, "lightbug_kanim", false); EntityTemplates.ExtendEntityToFertileCreature(gameObject, "LightBugEgg", STRINGS.CREATURES.SPECIES.LIGHTBUG.EGG_NAME, STRINGS.CREATURES.SPECIES.LIGHTBUG.DESC, "egg_lightbug_kanim", LightBugTuning.EGG_MASS, "LightBugBaby", 15.000001f, 5f, LightBugTuning.EGG_CHANCES_BASE, EGG_SORT_ORDER, true, false, true, 1f); gameObject.GetComponent <KPrefabID>().AddTag(RoomConstraints.ConstraintTags.LightSource, false); return(gameObject); }
public GameObject CreatePrefab() { GameObject prefab = CreateCrab("Crab", STRINGS.CREATURES.SPECIES.CRAB.NAME, STRINGS.CREATURES.SPECIES.CRAB.DESC, "pincher_kanim", false, "CrabShell"); prefab = EntityTemplates.ExtendEntityToFertileCreature(prefab, "CrabEgg", STRINGS.CREATURES.SPECIES.CRAB.EGG_NAME, STRINGS.CREATURES.SPECIES.CRAB.DESC, "egg_pincher_kanim", CrabTuning.EGG_MASS, "CrabBaby", 60.0000038f, 20f, CrabTuning.EGG_CHANCES_BASE, EGG_SORT_ORDER, true, false, true, 1f); EggProtectionMonitor.Def def = prefab.AddOrGetDef <EggProtectionMonitor.Def>(); def.allyTags = new Tag[1] { GameTags.Creatures.CrabFriend }; return(prefab); }
public GameObject CreatePrefab() { ComplexRecipe.RecipeElement[] ingredients = new ComplexRecipe.RecipeElement[4] { new ComplexRecipe.RecipeElement((Tag)SquirrelConfig.EGG_ID, 2f), new ComplexRecipe.RecipeElement((Tag)RawEggConfig.ID, (float)(5)), new ComplexRecipe.RecipeElement(BasicSingleHarvestPlantConfig.SEED_ID.ToTag(), 10f), new ComplexRecipe.RecipeElement(SimHashes.Clay.CreateTag(), 1000f), }; ComplexRecipe.RecipeElement[] results = new ComplexRecipe.RecipeElement[1] { new ComplexRecipe.RecipeElement((Tag)EGG_ID, 1f) }; var r = new ComplexRecipe(ComplexRecipeManager.MakeRecipeID(ID, (IList <ComplexRecipe.RecipeElement>)ingredients, (IList <ComplexRecipe.RecipeElement>)results), ingredients, results, 0) { time = 80f / 8, description = BabyDescription, nameDisplay = ComplexRecipe.RecipeNameDisplay.Result }; r.fabricators = new List <Tag>() { TagManager.Create(SupermaterialRefineryConfig.ID) }; //add_recipe_Dirt(); return(EntityTemplates.ExtendEntityToFertileCreature( CreateCritter( id: ID, name: Name, desc: Description, anim_file: //"squirrel_kanim", //"squirrel_autumn_kanim", "squirrel_autumn_kanim", is_baby: false ), EGG_ID, EggName, Description, //"egg_squirrel_kanim", "egg_squirrel_autumn_kanim", SquirrelTuning.EGG_MASS, BabyId, FertilityCycles, IncubationCycles, EggChances, EGG_SORT_ORDER)); }
public GameObject CreatePrefab() { GameObject gameObject = CreateMole("Mole", STRINGS.CREATURES.SPECIES.MOLE.NAME, STRINGS.CREATURES.SPECIES.MOLE.DESC, "driller_kanim", false); GameObject prefab = gameObject; string eggId = "MoleEgg"; string eggName = STRINGS.CREATURES.SPECIES.MOLE.EGG_NAME; string eggDesc = STRINGS.CREATURES.SPECIES.MOLE.DESC; string egg_anim = "egg_driller_kanim"; float eGG_MASS = MoleTuning.EGG_MASS; string baby_id = "MoleBaby"; float fertility_cycles = 60.0000038f; float incubation_cycles = 20f; int eGG_SORT_ORDER = EGG_SORT_ORDER; return(EntityTemplates.ExtendEntityToFertileCreature(prefab, eggId, eggName, eggDesc, egg_anim, eGG_MASS, baby_id, fertility_cycles, incubation_cycles, MoleTuning.EGG_CHANCES_BASE, eGG_SORT_ORDER, true, false, true, 1f)); }
public virtual GameObject CreatePrefab() { GameObject gameObject = CreateDrecko("Drecko", CREATURES.SPECIES.DRECKO.NAME, CREATURES.SPECIES.DRECKO.DESC, "drecko_kanim", false); GameObject prefab = gameObject; string eggId = "DreckoEgg"; string eggName = CREATURES.SPECIES.DRECKO.EGG_NAME; string eggDesc = CREATURES.SPECIES.DRECKO.DESC; string egg_anim = "egg_drecko_kanim"; float eGG_MASS = DreckoTuning.EGG_MASS; string baby_id = "DreckoBaby"; float fertility_cycles = 90f; float incubation_cycles = 30f; int eGG_SORT_ORDER = EGG_SORT_ORDER; return(EntityTemplates.ExtendEntityToFertileCreature(prefab, eggId, eggName, eggDesc, egg_anim, eGG_MASS, baby_id, fertility_cycles, incubation_cycles, DreckoTuning.EGG_CHANCES_BASE, eGG_SORT_ORDER, true, false, true, 1f)); }
public GameObject CreatePrefab() { ComplexRecipe.RecipeElement[] ingredients = new ComplexRecipe.RecipeElement[4] { new ComplexRecipe.RecipeElement((Tag)DreckoConfig.EGG_ID, 2f), new ComplexRecipe.RecipeElement((Tag)RawEggConfig.ID, (float)(5)), new ComplexRecipe.RecipeElement(SimHashes.Algae.CreateTag(), 5000f), new ComplexRecipe.RecipeElement(SimHashes.ToxicSand.CreateTag(), 1000f), }; ComplexRecipe.RecipeElement[] results = new ComplexRecipe.RecipeElement[1] { new ComplexRecipe.RecipeElement((Tag)EGG_ID, 1f) }; var r = new ComplexRecipe(ComplexRecipeManager.MakeRecipeID(ID, (IList <ComplexRecipe.RecipeElement>)ingredients, (IList <ComplexRecipe.RecipeElement>)results), ingredients, results, 0) { time = 80f / 8, description = BabyDescription, nameDisplay = ComplexRecipe.RecipeNameDisplay.Result }; r.fabricators = new List <Tag>() { TagManager.Create(SupermaterialRefineryConfig.ID) }; return(EntityTemplates.ExtendEntityToFertileCreature( CreateCritter( id: ID, name: Name, desc: Description, anim_file: "adult_algae_drecko_kanim", is_baby: false ), EGG_ID, EggName, Description, "egg_algae_drecko_kanim", DreckoTuning.EGG_MASS, BabyId, FertilityCycles, IncubationCycles, EggChances, EGG_SORT_ORDER)); }
public GameObject CreatePrefab() { GameObject gameObject = CreateOilfloater(ID, PHO_STRINGS.VARIANT_AQUA.NAME, PHO_STRINGS.VARIANT_AQUA.DESC, base_kanim_id, false); EntityTemplates.ExtendEntityToFertileCreature( gameObject, EGG_ID, PHO_STRINGS.VARIANT_AQUA.EGG_NAME, PHO_STRINGS.VARIANT_AQUA.DESC, egg_kanim_id, OilFloaterTuning.EGG_MASS, ID + "Baby", 40f, 10f, EGG_CHANCES_AQUA, EGG_SORT_ORDER); return(gameObject); }
public GameObject CreatePrefab() { return(EntityTemplates.ExtendEntityToFertileCreature( EntityTemplates.ExtendEntityToWildCreature( CreatePacu(ID, NAME, DESC, "pacu_kanim", false), PacuTuning.PEN_SIZE_PER_CREATURE, 25f), EGG_ID, EGGNAME, EGGDESC, "egg_pacu_kanim", PacuTuning.EGG_MASS, BabyOilFishConfig.ID, 15f, 5f, EGG_CHANCES_OIL, 502, false, true, false, 0.75f )); }
public GameObject CreatePrefab() { GameObject gameObject = CreateOilfloater(ID, PHO_STRINGS.VARIANT_LEAFY.NAME, PHO_STRINGS.VARIANT_LEAFY.DESC, base_kanim_id, false); gameObject.AddOrGetDef <CreatureLightMonitor.Def>(); EntityTemplates.ExtendEntityToFertileCreature( gameObject, EGG_ID, PHO_STRINGS.VARIANT_LEAFY.EGG_NAME, PHO_STRINGS.VARIANT_LEAFY.DESC, egg_kanim_id, OilFloaterTuning.EGG_MASS, ID + "Baby", 30f, 10f, EGG_CHANCES_LEAFY, EGG_SORT_ORDER); return(gameObject); }
public GameObject CreatePrefab() { return(EntityTemplates.ExtendEntityToFertileCreature( CreateHatch( id: Id, name: Name, desc: Description, anim_file: "floral_hatch_adult_kanim", is_baby: false ), EggId, EggName, Description, "floral_hatch_egg_kanim", HatchTuning.EGG_MASS, BabyId, FertilityCycles, IncubationCycles, EggChances, HatchConfig.EGG_SORT_ORDER)); }
public GameObject CreatePrefab() { return(EntityTemplates.ExtendEntityToFertileCreature( CreateHatch( id: Id, name: Name, desc: Description, anim_file: "hatch_new", // this is your new hatch anim - it should be made from the unmodified anim + build but your modified texture/png file. is_baby: false ), EggId, EggName, Description, "egg_hatch_kanim", // replace this with your egg anim HatchTuning.EGG_MASS, BabyId, FertilityCycles, IncubationCycles, EggChances, HatchVeggieConfig.EGG_SORT_ORDER)); }
public GameObject CreatePrefab() { GameObject prefab = CreatePuftAlpha("PuftAlpha", STRINGS.CREATURES.SPECIES.PUFT.VARIANT_ALPHA.NAME, STRINGS.CREATURES.SPECIES.PUFT.VARIANT_ALPHA.DESC, "puft_kanim", false); return(EntityTemplates.ExtendEntityToFertileCreature(prefab, "PuftAlphaEgg", STRINGS.CREATURES.SPECIES.PUFT.VARIANT_ALPHA.EGG_NAME, STRINGS.CREATURES.SPECIES.PUFT.VARIANT_ALPHA.DESC, "egg_puft_kanim", PuftTuning.EGG_MASS, "PuftAlphaBaby", 45f, 15f, PuftTuning.EGG_CHANCES_ALPHA, EGG_SORT_ORDER, true, false, true, 1f)); }
public GameObject CreatePrefab() { GameObject prefab = CreatePacu("Pacu", CREATURES.SPECIES.PACU.NAME, CREATURES.SPECIES.PACU.DESC, "pacu_kanim", false); return(EntityTemplates.ExtendEntityToFertileCreature(prefab, "PacuEgg", CREATURES.SPECIES.PACU.EGG_NAME, CREATURES.SPECIES.PACU.DESC, "egg_pacu_kanim", PacuTuning.EGG_MASS, "PacuBaby", 15.000001f, 5f, PacuTuning.EGG_CHANCES_BASE, 500, false, true, false, 0.75f)); }
public GameObject CreatePrefab() { GameObject rollerSnake = CreateSteelRollerSnake(Id, Name, Description, "rollersnake_kanim", false); return(EntityTemplates.ExtendEntityToFertileCreature(rollerSnake, EggId, EggName, Description, "rollersnakeegg_kanim", RollerSnakeTuning.EGG_MASS, BabySteelRollerSnakeConfig.Id, FertilityCycles, IncubationCycles, RollerSnakeTuning.EGG_CHANCES_STEEL, EggSortOrder, true, false, true, 1f)); }
public GameObject CreatePrefab() { GameObject prefab = CreatePuftBleachstone("PuftBleachstone", STRINGS.CREATURES.SPECIES.PUFT.VARIANT_BLEACHSTONE.NAME, STRINGS.CREATURES.SPECIES.PUFT.VARIANT_BLEACHSTONE.DESC, "puft_kanim", false); return(EntityTemplates.ExtendEntityToFertileCreature(prefab, "PuftBleachstoneEgg", STRINGS.CREATURES.SPECIES.PUFT.VARIANT_BLEACHSTONE.EGG_NAME, STRINGS.CREATURES.SPECIES.PUFT.VARIANT_BLEACHSTONE.DESC, "egg_puft_kanim", PuftTuning.EGG_MASS, "PuftBleachstoneBaby", 45f, 15f, PuftTuning.EGG_CHANCES_BLEACHSTONE, EGG_SORT_ORDER, true, false, true, 1f)); }
public GameObject CreatePrefab() { GameObject prefab = CreateHatch("HatchVeggie", STRINGS.CREATURES.SPECIES.HATCH.VARIANT_VEGGIE.NAME, STRINGS.CREATURES.SPECIES.HATCH.VARIANT_VEGGIE.DESC, "hatch_kanim", false); return(EntityTemplates.ExtendEntityToFertileCreature(prefab, "HatchVeggieEgg", STRINGS.CREATURES.SPECIES.HATCH.VARIANT_VEGGIE.EGG_NAME, STRINGS.CREATURES.SPECIES.HATCH.VARIANT_VEGGIE.DESC, "egg_hatch_kanim", HatchTuning.EGG_MASS, "HatchVeggieBaby", 60.0000038f, 20f, HatchTuning.EGG_CHANCES_VEGGIE, EGG_SORT_ORDER, true, false, true, 1f)); }
public void test() { // configurations string id = "HatchHard"; string name = "Stone Hatch"; string desc = "Stone Hatches excrete solid Coal as waste and enjoy burrowing into the ground."; string anim_file = "hatch_kanim"; bool is_baby = false; string traitId = "HatchHardBaseTrait"; string override_prefix = "hvy_"; int space_requirement = HatchTuning.PEN_SIZE_PER_CREATURE; float lifespan = 100f; float mass = 100f; int width = 1; int height = 1; EffectorValues decor = TUNING.DECOR.BONUS.TIER0; string navGridName = !is_baby ? "WalkerNavGrid1x1" : "WalkerBabyNavGrid"; NavType navi = NavType.Floor; float moveSpeed = 2f; string dropOnDeath = "Meat"; int dropCount = 2; bool canDrown = true; bool canCrushed = false; float tempLowDeath = 243.15f; float tempLowWarning = 283.15f; float tempBorn = 293f; float tempHighWarning = 293.15f; float tempHighDeath = 343.15f; bool pickup_only_from_top = true; bool pickup_allow_mark = true; bool pickup_use_gun = false; Tag tag = GameTags.Creatures.Walker; Tag species = GameTags.Creatures.Species.HatchSpecies; float attackValue = 1f; ChoreTable.Builder chore_table = new ChoreTable.Builder().Add(new DeathStates.Def(), true).Add(new AnimInterruptStates.Def(), true).Add(new ExitBurrowStates.Def(), !is_baby).Add(new PlayAnimsStates.Def(GameTags.Creatures.Burrowed, true, "idle_mound", STRINGS.CREATURES.STATUSITEMS.BURROWED.NAME, STRINGS.CREATURES.STATUSITEMS.BURROWED.TOOLTIP), !is_baby).Add(new GrowUpStates.Def(), true).Add(new TrappedStates.Def(), true).Add(new IncubatingStates.Def(), true).Add(new BaggedStates.Def(), true).Add(new FallStates.Def(), true).Add(new StunnedStates.Def(), true).Add(new DrowningStates.Def(), true).Add(new DebugGoToStates.Def(), true).Add(new FleeStates.Def(), true).Add(new AttackStates.Def(), !is_baby).PushInterruptGroup().Add(new CreatureSleepStates.Def(), true).Add(new FixedCaptureStates.Def(), true).Add(new RanchedStates.Def(), true).Add(new PlayAnimsStates.Def(GameTags.Creatures.WantsToEnterBurrow, false, "hide", STRINGS.CREATURES.STATUSITEMS.BURROWING.NAME, STRINGS.CREATURES.STATUSITEMS.BURROWING.TOOLTIP), !is_baby).Add(new LayEggStates.Def(), true).Add(new EatStates.Def(), true).Add(new PlayAnimsStates.Def(GameTags.Creatures.Poop, false, "poop", STRINGS.CREATURES.STATUSITEMS.EXPELLING_SOLID.NAME, STRINGS.CREATURES.STATUSITEMS.EXPELLING_SOLID.TOOLTIP), true).Add(new CallAdultStates.Def(), true).PopInterruptGroup().Add(new IdleStates.Def(), true); string adultId = "HatchHard"; string eggId = "HatchHardBaby"; string eggName = "Stone Hatchling Egg"; string anim_egg = "egg_hatch_kanim"; float egg_mass = 2f; string dropOnMature = null; float fertility_cycles = 60f; float incubation_cycles = 20f; int egg_sortorder = 2; List <FertilityMonitor.BreedingChance> egg_chances = new List <FertilityMonitor.BreedingChance>(); egg_chances.Add(BreedingChance("HatchHardEgg", 1f)); bool is_ranchable = true; bool is_fish = false; float egg_scale = 1f; float calories_per_KG = 700000f / 140f; float min_poop_KG = 25; List <Diet.Info> diet_list = BaseHatchConfig.HardRockDiet(SimHashes.Carbon.CreateTag(), calories_per_KG, TUNING.CREATURES.CONVERSION_EFFICIENCY.NORMAL, null, 0f); // end of configurations // basic generation object obj = Activator.CreateInstance(typeof(HatchHardConfig)); KPrefabID obj_kPrefabID = (obj as HatchHardConfig).CreatePrefab().GetComponent <KPrefabID>(); obj_kPrefabID.prefabInitFn += (obj as HatchHardConfig).OnPrefabInit; obj_kPrefabID.prefabSpawnFn += (obj as HatchHardConfig).OnSpawn; Assets.AddPrefab(obj_kPrefabID); // advanced generation // critter = BaseHatchConfig.BaseHatch(id, name, desc, anim_file, traitId, is_baby, override_prefix); GameObject critter; critter = EntityTemplates.CreatePlacedEntity(id, name, desc, mass, Assets.GetAnim(anim_file), "idle_loop", Grid.SceneLayer.Creatures, width, height, decor, default(EffectorValues), SimHashes.Creature, null, tempBorn); EntityTemplates.ExtendEntityToBasicCreature(critter, FactionManager.FactionID.Pest, traitId, navGridName, navi, 32, moveSpeed, dropOnDeath, dropCount, canDrown, canCrushed, tempLowWarning, tempHighWarning, tempLowDeath, tempHighDeath); if (override_prefix != null) { critter.AddOrGet <SymbolOverrideController>().ApplySymbolOverridesByAffix(Assets.GetAnim(anim_file), override_prefix, null, 0); } critter.AddOrGet <Trappable>(); critter.AddOrGetDef <CreatureFallMonitor.Def>(); critter.AddOrGetDef <BurrowMonitor.Def>(); critter.AddOrGetDef <WorldSpawnableMonitor.Def>().adjustSpawnLocationCb = (int cell) => { return(cell); };//new Func<int, int>(BaseHatchConfig.AdjustSpawnLocationCB); critter.AddOrGetDef <ThreatMonitor.Def>().fleethresholdState = Health.HealthState.Dead; critter.AddWeapon(attackValue, attackValue, AttackProperties.DamageType.Standard, AttackProperties.TargetType.Single, 1, 0f); EntityTemplates.CreateAndRegisterBaggedCreature(critter, pickup_only_from_top, pickup_allow_mark, pickup_use_gun); KPrefabID prefabID = critter.GetComponent <KPrefabID>(); prefabID.AddTag(tag, false); prefabID.prefabInitFn += delegate(GameObject inst) { inst.GetAttributes().Add(Db.Get().Attributes.MaxUnderwaterTravelCost); }; EntityTemplates.AddCreatureBrain(critter, chore_table, species, override_prefix); EntityTemplates.ExtendEntityToWildCreature(critter, space_requirement, lifespan); Diet diet = new Diet(diet_list.ToArray()); CreatureCalorieMonitor.Def calorieMonitor = critter.AddOrGetDef <CreatureCalorieMonitor.Def>(); calorieMonitor.diet = diet; calorieMonitor.minPoopSizeInCalories = calories_per_KG * min_poop_KG; critter.AddOrGetDef <SolidConsumerMonitor.Def>().diet = diet; if (is_baby) { EntityTemplates.ExtendEntityToBeingABaby(critter, adultId, dropOnMature); } else { EntityTemplates.ExtendEntityToFertileCreature(critter, eggId, eggName, desc, anim_egg, egg_mass, eggId, fertility_cycles, incubation_cycles, egg_chances, egg_sortorder, is_ranchable, is_fish, true, egg_scale); } }