Files
Ben10OmintrixandGitHub fc55a930a9 Baby stoats can become adults (#96491)
## About The Pull Request
Baby stoats can now grow into adult stoats. ive also included kits into
the spawn pool of maints, (the overall chance of running into a stoat
whether adult/baby remains the same), and you can also now find baby
stoats rummaging through bins. since baby stoats are cute ive made their
growth rates slow so people can enjoy them at their youths for longer.

## Why It's Good For The Game
fixes an oversight.

## Changelog
🆑
fix: baby stoats can now become adults
add: baby stoats are added to the spawn pool of maints, (the overall
chance of running into a stoat whether adult/baby remains the same)
/🆑
2026-06-15 15:41:27 +12:00

97 lines
3.0 KiB
Plaintext

/mob/living/basic/stoat
name = "stoat"
desc = "A natural born vermin exterminator... a janitor's best friend."
icon_state = "stoat"
icon_living = "stoat"
icon_dead = "stoat_dead"
base_icon_state = "stoat"
icon = 'icons/mob/simple/pets.dmi'
butcher_results = list(/obj/item/food/meat/slab = 1)
mob_biotypes = MOB_ORGANIC
mob_size = MOB_SIZE_SMALL
pass_flags = PASSTABLE | PASSMOB
density = FALSE
health = 40
maxHealth = 40
melee_damage_lower = 6
melee_damage_upper = 9
response_help_continuous = "pets"
response_help_simple = "pet"
verb_say = "chips"
verb_ask = "chips curiously"
can_be_held = TRUE
verb_exclaim = "chips loudly"
verb_yell = "chips loudly"
faction = list(FACTION_NEUTRAL)
ai_controller = /datum/ai_controller/basic_controller/stoat
///some commands we obey
var/static/list/pet_commands = list(
/datum/pet_command/idle,
/datum/pet_command/move,
/datum/pet_command/free,
/datum/pet_command/attack,
/datum/pet_command/follow,
/datum/pet_command/fetch,
)
//can this mob breed?
var/can_breed = TRUE
/mob/living/basic/stoat/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_VENTCRAWLER_ALWAYS, INNATE_TRAIT)
AddElement(/datum/element/tiny_mob_hunter)
var/static/list/eatable_food = list(
/obj/item/food/deadmouse,
/obj/item/food/egg,
)
AddComponent(/datum/component/tameable, food_types = eatable_food, tame_chance = 70, bonus_tame_chance = 0)
ai_controller.set_blackboard_key(BB_BASIC_FOODS, typecacheof(eatable_food))
AddElement(/datum/element/wears_collar)
AddComponent(/datum/component/obeys_commands, pet_commands)
if(can_breed)
add_breeding_component()
var/static/list/display_emote = list(
BB_EMOTE_SAY = list("Chirp chirp chirp!"),
BB_EMOTE_SEE = list("sweeps its tail!", "jumps around!", "licks its fur!"),
BB_SPEAK_CHANCE = 2,
BB_EMOTE_SOUND = list('sound/mobs/non-humanoids/stoat/stoat_sounds.ogg'),
)
ai_controller.set_blackboard_key(BB_BASIC_MOB_SPEAK_LINES, display_emote)
/mob/living/basic/stoat/proc/add_breeding_component()
var/static/list/partner_paths = typecacheof(list(/mob/living/basic/stoat))
var/static/list/baby_paths = list(
/mob/living/basic/stoat/kit = 100 // Placeholder until we get proper baby stoats
)
AddComponent(\
/datum/component/breed,\
can_breed_with = typecacheof(list(/mob/living/basic/stoat)),\
baby_paths = baby_paths,\
)
/mob/living/basic/stoat/kit
name = "\improper stoat kit"
real_name = "stoat"
desc = "An apex predator, but friend-shaped, and tiny..."
icon_state = "kit_stoat"
icon_living = "kit_stoat"
icon_dead = "kit_stoat_dead"
density = FALSE
pass_flags = PASSMOB
ai_controller = /datum/ai_controller/basic_controller/stoat/kit
mob_size = MOB_SIZE_SMALL
can_breed = FALSE
/mob/living/basic/stoat/kit/Initialize(mapload)
. = ..()
AddComponent(\
/datum/component/growth_and_differentiation,\
growth_time = 20 MINUTES,\
growth_path = /mob/living/basic/stoat,\
growth_probability = 100,\
lower_growth_value = 0.5,\
upper_growth_value = 1,\
signals_to_kill_on = list(COMSIG_MOB_CLIENT_LOGIN),\
)