Files
SkyratBot f9906ea240 [MIRROR] converts most pet behavior into elements (#29221)
* converts most pet behavior into elements (#85290)

## About The Pull Request
refactors pet behaviors, such as collars and pet cultists into elements.
also this is a first step to completely removing the pet subtype

## Why It's Good For The Game
this means itll be alot easier for coders to make their tameable mobs
able to wear pet collars without having to make them of the pet subtype,
which i also plan to do

## Changelog
🆑
refactor: refactors pet collars and cultist pets into elements
/🆑

* converts most pet behavior into elements

* removing undefined var

---------

Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: projectkepler-RU <99981766+projectkepler-ru@users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
2024-08-11 19:59:24 +05:30

84 lines
2.8 KiB
Plaintext

/* Foxes.
*
* Foxes are cowardly creatures that will hunt any small animals, but only when no one is looking.
*/
/mob/living/basic/pet/fox
name = "fox"
desc = "They're a fox."
icon = 'icons/mob/simple/pets.dmi'
icon_state = "fox"
icon_living = "fox"
icon_dead = "fox_dead"
speak_emote = list("geckers", "barks")
butcher_results = list(/obj/item/food/meat/slab = 3)
response_help_continuous = "pets"
response_help_simple = "pet"
response_disarm_continuous = "gently pushes aside"
response_disarm_simple = "gently push aside"
response_harm_continuous = "kicks"
response_harm_simple = "kick"
gold_core_spawnable = FRIENDLY_SPAWN
can_be_held = TRUE
held_state = "fox"
melee_damage_lower = 5
melee_damage_upper = 5
attack_verb_continuous = "bites"
attack_verb_simple = "bite"
attack_sound = 'sound/weapons/bite.ogg'
attack_vis_effect = ATTACK_EFFECT_BITE
ai_controller = /datum/ai_controller/basic_controller/fox
/mob/living/basic/pet/fox/Initialize(mapload)
. = ..()
AddElement(/datum/element/cultist_pet)
AddElement(/datum/element/wears_collar)
AddElement(/datum/element/pet_bonus, "pants and yaps happily!")
AddElement(/datum/element/footstep, footstep_type = FOOTSTEP_MOB_CLAW)
AddElement(/datum/element/tiny_mob_hunter, MOB_SIZE_SMALL)
AddElement(/datum/element/ai_retaliate)
/datum/ai_controller/basic_controller/fox
blackboard = list(
BB_ALWAYS_IGNORE_FACTION = TRUE,
BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic/of_size/ours_or_smaller,
BB_FLEE_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
)
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_random_walk
planning_subtrees = list(
/datum/ai_planning_subtree/target_retaliate/to_flee,
/datum/ai_planning_subtree/flee_target/from_flee_key,
/datum/ai_planning_subtree/simple_find_target/not_while_observed,
/datum/ai_planning_subtree/basic_melee_attack_subtree,
/datum/ai_planning_subtree/random_speech/fox,
)
// An AI controller for more docile foxes.
/datum/ai_controller/basic_controller/fox/docile
planning_subtrees = list(
/datum/ai_planning_subtree/target_retaliate/to_flee,
/datum/ai_planning_subtree/flee_target/from_flee_key,
/datum/ai_planning_subtree/random_speech/fox,
)
// The captain's fox, Renault
/mob/living/basic/pet/fox/renault
name = "Renault"
desc = "Renault, the Captain's trustworthy fox."
gender = FEMALE
gold_core_spawnable = NO_SPAWN
unique_pet = TRUE
// A more docile subtype that won't attack other animals.
/mob/living/basic/pet/fox/docile
ai_controller = /datum/ai_controller/basic_controller/fox/docile
/mob/living/basic/pet/fox/icemoon
name = "icemoon fox"
desc = "A fox, scraping by the icemoon hostile atmosphere."
gold_core_spawnable = NO_SPAWN
habitable_atmos = null
minimum_survivable_temperature = ICEBOX_MIN_TEMPERATURE