Converts Feral Cats, Killer Tomatos, and Non-Demon Creatures to Basic Mobs (#29785)

* Converts Feral Cats, Killer Tomatos, and Non-Demon Creatures to Basic Mobs

* Updatepaths

* Adds ventcrawling target finding behavior.

* returnPipenet()

* Apply suggestions from code review

Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* New Linters

* Fixed DME

---------

Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>
Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
This commit is contained in:
PollardTheDragon
2025-07-31 06:00:51 +00:00
committed by GitHub
co-authored by Contrabang
parent b4790e057e
commit 97d72d6e22
19 changed files with 158 additions and 68 deletions
@@ -0,0 +1,20 @@
/mob/living/basic/creature
name = "creature"
desc = "A sanity-destroying otherthing."
speak_emote = list("gibbers")
icon_state = "otherthing"
icon_living = "otherthing"
icon_dead = "otherthing-dead"
health = 80
maxHealth = 80
obj_damage = 100
melee_damage_lower = 25
melee_damage_upper = 50
melee_attack_cooldown_min = 1.5 SECONDS
melee_attack_cooldown_max = 2.5 SECONDS
attack_verb_simple = "chomp"
attack_verb_continuous = "chomps"
attack_sound = 'sound/weapons/bite.ogg'
faction = list("creature")
ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile_obstacles
gold_core_spawnable = HOSTILE_SPAWN
@@ -0,0 +1,47 @@
/mob/living/basic/feral_cat
name = "feral cat"
desc = "Kitty!! Wait..."
icon = 'icons/mob/pets.dmi'
icon_state = "cat2"
icon_living = "cat2"
icon_dead = "cat2_dead"
gender = MALE
mob_biotypes = MOB_ORGANIC | MOB_BEAST
maxHealth = 20
health = 20
melee_damage_lower = 5
melee_damage_upper = 10
attack_sound = 'sound/weapons/slash.ogg'
melee_attack_cooldown_min = 0.5 SECONDS
melee_attack_cooldown_max = 1.5 SECONDS
attack_verb_simple = "claw"
attack_verb_continuous = "claws"
see_in_dark = 6
butcher_results = list(/obj/item/food/meat/slab = 2)
response_help_simple = "pet"
response_help_continuous = "pets"
response_disarm_simple = "gently push aside"
response_disarm_continuous = "gently pushes aside"
response_harm_simple = "kick"
response_harm_continuous = "kicks"
gold_core_spawnable = HOSTILE_SPAWN
faction = list("cat")
atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 1, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0)
unsuitable_atmos_damage = 5
pass_flags = PASSTABLE
step_type = FOOTSTEP_MOB_CLAW
ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile_obstacles/feral_cat
/datum/ai_controller/basic_controller/simple/simple_hostile_obstacles/feral_cat
planning_subtrees = list(
/datum/ai_planning_subtree/simple_find_target,
/datum/ai_planning_subtree/attack_obstacle_in_path,
/datum/ai_planning_subtree/basic_melee_attack_subtree,
/datum/ai_planning_subtree/random_speech/cat,
)
/datum/ai_planning_subtree/random_speech/cat
speech_chance = 2
speak = list("Meow!", "Esp!", "Purr!", "HSSSSS")
emote_hear = list("purrs", "meows")
emote_see = list("meows", "mews")
@@ -0,0 +1,33 @@
/mob/living/basic/killertomato
name = "Killer Tomato"
desc = "It's a horrifyingly enormous beef tomato, and it's packing extra beef!"
icon_state = "tomato"
icon_living = "tomato"
icon_dead = "tomato_dead"
mob_biotypes = MOB_ORGANIC | MOB_PLANT
maxHealth = 30
health = 30
see_in_dark = 3
butcher_results = list(/obj/item/food/meat/tomatomeat = 2)
response_help_simple = "prod"
response_help_continuous = "prods"
response_disarm_simple = "push aside"
response_disarm_continuous = "pushes aside"
response_harm_simple = "smack"
response_harm_continuous = "smacks"
melee_damage_lower = 8
melee_damage_upper = 12
melee_attack_cooldown_min = 1.5 SECONDS
melee_attack_cooldown_max = 2.5 SECONDS
attack_verb_simple = "slam"
attack_verb_continuous = "slams"
faction = list("plants", "jungle")
ventcrawler = VENTCRAWLER_ALWAYS
atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minimum_survivable_temperature = 150
maximum_survivable_temperature = 500
gold_core_spawnable = HOSTILE_SPAWN
ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile_obstacles/ventcrawler
contains_xeno_organ = TRUE
surgery_container = /datum/xenobiology_surgery_container/tomato