mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 08:37:43 +01:00
Is this even working Oooough ok I'll crack at this couple more fixes Probably the worst of all my commits so far Seriously, someone needs to check this. It compiles update atmos stuff update paths snakes linters 1 linters again more CI whoops Update map_previews.dmi Kills loose limbs The component it used no longer exists. podperson CI Fixes(?) Linters
107 lines
3.2 KiB
Plaintext
107 lines
3.2 KiB
Plaintext
/mob/living/basic/pet/chinchilla
|
|
name = "chinchilla"
|
|
desc = "They're like a mouse, but Australian."
|
|
|
|
icon = 'modular_skyrat/master_files/icons/mob/newmobs.dmi'
|
|
held_lh = 'modular_skyrat/master_files/icons/mob/inhands/pets_held_lh.dmi'
|
|
held_rh = 'modular_skyrat/master_files/icons/mob/inhands/pets_held_rh.dmi'
|
|
icon_state = "chinchilla_white"
|
|
icon_living = "chinchilla_white"
|
|
icon_dead = "chinchilla_white_dead"
|
|
|
|
maxHealth = 10
|
|
health = 10
|
|
mob_size = MOB_SIZE_TINY
|
|
|
|
speed = 1.25 //speedy little fuckers
|
|
see_in_dark = 6
|
|
|
|
butcher_results = list(/obj/item/food/meat/slab = 1)
|
|
|
|
response_help_continuous = "pets"
|
|
response_help_simple = "pet"
|
|
response_disarm_continuous = "gently pushes aside"
|
|
response_disarm_simple = "gently push aside"
|
|
response_harm_continuous = "kick"
|
|
response_harm_simple = "kicks"
|
|
|
|
gold_core_spawnable = FRIENDLY_SPAWN
|
|
|
|
held_w_class = WEIGHT_CLASS_TINY
|
|
held_state = "chinchilla_white"
|
|
|
|
///In the case 'melee_damage_upper' is somehow raised above 0
|
|
attack_verb_continuous = "bites"
|
|
attack_verb_simple = "bite"
|
|
attack_sound = 'sound/items/weapons/bite.ogg'
|
|
attack_vis_effect = ATTACK_EFFECT_BITE
|
|
|
|
ai_controller = /datum/ai_controller/basic_controller/chinchilla
|
|
|
|
/// The color (i.e. "black" or "white") of this chinchilla, to determine the `icon_state`s to use for
|
|
/// this specific instance. `null` by default, which makes it pick a valid value at random in
|
|
/// Initialize()`.
|
|
var/body_color
|
|
|
|
/mob/living/basic/pet/chinchilla/Initialize(mapload)
|
|
. = ..()
|
|
AddElement(/datum/element/pet_bonus, "squeaks happily!")
|
|
|
|
if(isnull(body_color))
|
|
body_color = pick("black", "white")
|
|
|
|
held_state = "chinchilla_[body_color]" // not handled by variety element
|
|
AddElement(/datum/element/animal_variety, "chinchilla", body_color, FALSE)
|
|
|
|
AddElement(/datum/element/can_be_held)
|
|
|
|
//ai behavior
|
|
|
|
/datum/ai_controller/basic_controller/chinchilla
|
|
blackboard = list(
|
|
BB_CURRENT_HUNTING_TARGET = null, // dust to take dust baths
|
|
)
|
|
|
|
ai_traits = STOP_MOVING_WHEN_PULLED
|
|
ai_movement = /datum/ai_movement/basic_avoidance
|
|
idle_behavior = /datum/idle_behavior/idle_random_walk
|
|
planning_subtrees = list(
|
|
// chinchillas will try to look for dust to roll around in
|
|
/datum/ai_planning_subtree/find_and_hunt_target/look_for_dust,
|
|
// randomly squeak and shit
|
|
/datum/ai_planning_subtree/random_speech/chinchilla,
|
|
)
|
|
|
|
/datum/ai_planning_subtree/find_and_hunt_target/look_for_dust
|
|
hunting_behavior = /datum/ai_behavior/hunt_target/dust_roll
|
|
hunt_targets = list(/obj/effect/decal/cleanable/ash, /obj/effect/decal/cleanable/food/flour)
|
|
hunt_range = 0 //need to be on top of anything dusty
|
|
hunt_chance = 50
|
|
|
|
/datum/ai_behavior/hunt_target/dust_roll
|
|
hunt_cooldown = 20 SECONDS
|
|
|
|
/datum/ai_behavior/hunt_target/dust_roll/target_caught(mob/living/basic/pet/hunter, obj/effect/decal/cleanable/dust)
|
|
hunter.visible_message(span_notice("[hunter] starts taking a dust bath in [dust]."))
|
|
hunter.spin(10, 1)
|
|
qdel(dust)
|
|
|
|
/datum/ai_planning_subtree/random_speech/chinchilla
|
|
speech_chance = 5
|
|
emote_hear = list(
|
|
"squeaks.",
|
|
"chirps.",
|
|
)
|
|
emote_see = list(
|
|
"sniffs around.",
|
|
"jumps around.",
|
|
)
|
|
|
|
//subtypes
|
|
|
|
/mob/living/basic/pet/chinchilla/white
|
|
body_color = "white"
|
|
|
|
/mob/living/basic/pet/chinchilla/black
|
|
body_color = "black"
|