mirror of
https://github.com/Skyrat-SS13/Skyrat-tg.git
synced 2026-07-18 11:25:27 +01:00
f9906ea240
* 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>
84 lines
2.8 KiB
Plaintext
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
|