Files
Paradise/code/modules/mob/living/basic/friendly/crab.dm
PollardTheDragon e14a43eea1 Basic diona nymphs, spiderbots, and crabs (#30377)
* Basic nymphs, spiderbots, and crabs

* Nutrition fix

* Forgot a line

* Cooldown on eat

---------

Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>
2025-10-01 14:32:00 +00:00

74 lines
2.3 KiB
Plaintext

//Look Sir, free crabs!
/mob/living/basic/crab
name = "crab"
desc = "A hard-shelled crustacean. Seems quite content to lounge around all the time."
icon_state = "crab"
icon_living = "crab"
icon_dead = "crab_dead"
speak_emote = list("clicks")
butcher_results = list(/obj/item/food/meat = 1)
response_help_continuous = "pets"
response_help_simple = "pet"
response_disarm_continuous = "pushes"
response_disarm_simple = "push"
response_harm_continuous = "stomps"
response_harm_simple = "stomp"
friendly_verb_continuous = "pinches"
friendly_verb_simple = "pinch"
ventcrawler = VENTCRAWLER_ALWAYS
can_hide = TRUE
gold_core_spawnable = FRIENDLY_SPAWN
ai_controller = /datum/ai_controller/basic_controller/crab
/mob/living/basic/crab/Initialize(mapload)
. = ..()
AddElement(/datum/element/wears_collar)
AddElement(/datum/element/ai_retaliate)
AddElement(/datum/element/sideways_movement)
/mob/living/basic/crab/valid_respawn_target_for(mob/user)
. = ..()
return TRUE
// COFFEE! SQUEEEEEEEEE!
/mob/living/basic/crab/coffee
name = "Coffee"
real_name = "Coffee"
desc = "It's Coffee, the other pet!"
gold_core_spawnable = NO_SPAWN
/mob/living/basic/crab/evil
name = "Evil Crab"
real_name = "Evil Crab"
desc = "Unnerving, isn't it? It has to be planning something nefarious..."
icon_state = "evilcrab"
icon_living = "evilcrab"
icon_dead = "evilcrab_dead"
response_help_continuous = "pokes"
response_help_simple = "poke"
response_disarm_continuous = "shoves"
response_disarm_simple = "shove"
gold_core_spawnable = HOSTILE_SPAWN
/// Crabs don't do much, but they want to live. They will flee when attacked, but will opportunistically melee attack people who do
/datum/ai_controller/basic_controller/crab
blackboard = list(
BB_TARGETING_STRATEGY = /datum/targeting_strategy/basic,
)
ai_traits = AI_FLAG_STOP_MOVING_WHEN_PULLED | AI_FLAG_PAUSE_DURING_DO_AFTER
ai_movement = /datum/ai_movement/basic_avoidance
idle_behavior = /datum/idle_behavior/idle_random_walk
planning_subtrees = list(
/datum/ai_planning_subtree/find_nearest_thing_which_attacked_me_to_flee,
/datum/ai_planning_subtree/flee_target,
/datum/ai_planning_subtree/basic_melee_attack_subtree/opportunistic,
/datum/ai_planning_subtree/random_speech/crab,
)
/datum/ai_planning_subtree/random_speech/crab
speech_chance = 5
emote_hear = list("clicks")
emote_see = list("clacks")