From 1e9adf9d7bb29841adb2b99626014ec984f92267 Mon Sep 17 00:00:00 2001 From: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com> Date: Fri, 19 Sep 2025 10:21:01 -0400 Subject: [PATCH] Converts Trees and Panthers to basic mobs (#29992) * Converts trees and panthers to basic mobs * Oops * Another oops * Whoops * Update paradise.dme * CI fix --------- Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com> --- code/modules/holiday/christmas.dm | 2 +- code/modules/hydroponics/hydroponics_tray.dm | 2 +- .../hostile/jungle_animals.dm | 25 +++++++++++------ .../{simple_animal => basic}/hostile/tree.dm | 28 ++++++++++++------- paradise.dme | 4 +-- tools/ci/check_simplemob_additions.py | 2 -- 6 files changed, 38 insertions(+), 25 deletions(-) rename code/modules/mob/living/{simple_animal => basic}/hostile/jungle_animals.dm (53%) rename code/modules/mob/living/{simple_animal => basic}/hostile/tree.dm (54%) diff --git a/code/modules/holiday/christmas.dm b/code/modules/holiday/christmas.dm index 4e4386617d5..03e89a6ad7f 100644 --- a/code/modules/holiday/christmas.dm +++ b/code/modules/holiday/christmas.dm @@ -19,7 +19,7 @@ /datum/holiday/xmas/proc/spawnTree() for(var/obj/structure/flora/tree/pine/xmas in world) - var/mob/living/simple_animal/hostile/tree/evil_tree = new /mob/living/simple_animal/hostile/tree(xmas.loc) + var/mob/living/basic/tree/evil_tree = new /mob/living/basic/tree(xmas.loc) evil_tree.icon_state = xmas.icon_state evil_tree.icon_living = evil_tree.icon_state evil_tree.icon_dead = evil_tree.icon_state diff --git a/code/modules/hydroponics/hydroponics_tray.dm b/code/modules/hydroponics/hydroponics_tray.dm index 3f79703791e..a7e559d8bc1 100644 --- a/code/modules/hydroponics/hydroponics_tray.dm +++ b/code/modules/hydroponics/hydroponics_tray.dm @@ -989,7 +989,7 @@ plant_hud_set_weed() /obj/machinery/hydroponics/proc/spawnplant() // why would you put Lazarus Reagent in a hydro tray you monster I bet you also feed them blood - var/list/livingplants = list(/mob/living/simple_animal/hostile/tree, /mob/living/basic/killertomato) + var/list/livingplants = list(/mob/living/basic/tree, /mob/living/basic/killertomato) var/chosen = pick(livingplants) var/mob/living/simple_animal/hostile/C = new chosen(get_turf(src)) C.faction = list("plants") diff --git a/code/modules/mob/living/simple_animal/hostile/jungle_animals.dm b/code/modules/mob/living/basic/hostile/jungle_animals.dm similarity index 53% rename from code/modules/mob/living/simple_animal/hostile/jungle_animals.dm rename to code/modules/mob/living/basic/hostile/jungle_animals.dm index 29ba49a8956..f6d97aad4fc 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle_animals.dm +++ b/code/modules/mob/living/basic/hostile/jungle_animals.dm @@ -2,7 +2,7 @@ // Panther // //*********// -/mob/living/simple_animal/hostile/panther +/mob/living/basic/panther name = "panther" desc = "A long sleek, black cat with sharp teeth and claws." icon = 'icons/mob/alienqueen.dmi' @@ -12,26 +12,33 @@ icon_resting = "panther_rest" icon_gib = "panther_dead" mob_biotypes = MOB_ORGANIC | MOB_BEAST - turns_per_move = 3 butcher_results = list(/obj/item/food/meat = 3) faction = list("hostile", "jungle") - response_help = "pets the" - response_disarm = "gently pushes aside the" - response_harm = "hits the" + response_help_continuous = "pets" + response_help_simple = "pet" + response_disarm_continuous = "gently pushes aside" + response_disarm_continuous = "gently push aside" maxHealth = 50 health = 50 pixel_x = -16 see_in_dark = 8 - emote_taunt = list("nashes") - taunt_chance = 20 - harm_intent_damage = 8 melee_damage_lower = 15 melee_damage_upper = 15 - attacktext = "slashes" + melee_attack_cooldown_min = 1.5 SECONDS + melee_attack_cooldown_max = 2.5 SECONDS + environment_smash = ENVIRONMENT_SMASH_STRUCTURES + attack_verb_continuous = "slashes" + attack_verb_simple = "slashes" attack_sound = 'sound/weapons/bite.ogg' layer = 3.1 //so they can stay hidde under the /obj/structure/bush var/stalk_tick_delay = 3 gold_core_spawnable = HOSTILE_SPAWN + + ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile_obstacles + +/mob/living/basic/panther/Initialize(mapload) + . = ..() + AddComponent(/datum/component/aggro_emote, emote_list = list("gnashes"), emote_chance = 20) diff --git a/code/modules/mob/living/simple_animal/hostile/tree.dm b/code/modules/mob/living/basic/hostile/tree.dm similarity index 54% rename from code/modules/mob/living/simple_animal/hostile/tree.dm rename to code/modules/mob/living/basic/hostile/tree.dm index 73a41e366a5..4c50bfc0fdc 100644 --- a/code/modules/mob/living/simple_animal/hostile/tree.dm +++ b/code/modules/mob/living/basic/hostile/tree.dm @@ -1,4 +1,4 @@ -/mob/living/simple_animal/hostile/tree +/mob/living/basic/tree name = "pine tree" desc = "A pissed off tree-like alien. It seems annoyed with the festivities..." icon = 'icons/obj/flora/pinetrees.dmi' @@ -7,10 +7,10 @@ icon_dead = "pine_1" icon_gib = "pine_1" mob_biotypes = MOB_ORGANIC | MOB_PLANT - turns_per_move = 5 - response_help = "brushes the" - response_disarm = "pushes the" - response_harm = "hits the" + response_help_continuous = "brushes" + response_help_simple = "brush" + response_disarm_continuous = "pushes" + response_disarm_simple = "push" maxHealth = 250 health = 250 mob_size = MOB_SIZE_LARGE @@ -20,17 +20,25 @@ harm_intent_damage = 5 melee_damage_lower = 8 melee_damage_upper = 12 - attacktext = "bites" + melee_attack_cooldown_min = 1.5 SECONDS + melee_attack_cooldown_max = 2.5 SECONDS + environment_smash = ENVIRONMENT_SMASH_STRUCTURES + attack_verb_continuous = "bites" + attack_verb_simple = "bites" attack_sound = 'sound/weapons/bite.ogg' speak_emote = list("pines") - emote_taunt = list("growls") - taunt_chance = 20 atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 0 + minimum_survivable_temperature = 0 faction = list("hostile", "winter") loot = list(/obj/item/stack/sheet/wood) gold_core_spawnable = HOSTILE_SPAWN deathmessage = "is hacked into pieces!" - del_on_death = TRUE + basic_mob_flags = DEL_ON_DEATH + + ai_controller = /datum/ai_controller/basic_controller/simple/simple_hostile_obstacles + +/mob/living/basic/tree/Initialize(mapload) + . = ..() + AddComponent(/datum/component/aggro_emote, emote_list = list("growls"), emote_chance = 20) diff --git a/paradise.dme b/paradise.dme index 10ac1fbc028..013d2aa35dc 100644 --- a/paradise.dme +++ b/paradise.dme @@ -2470,9 +2470,11 @@ #include "code\modules\mob\living\basic\hostile\hellhound_ai.dm" #include "code\modules\mob\living\basic\hostile\hivebot.dm" #include "code\modules\mob\living\basic\hostile\hivebot_ai.dm" +#include "code\modules\mob\living\basic\hostile\jungle_animals.dm" #include "code\modules\mob\living\basic\hostile\killertomato.dm" #include "code\modules\mob\living\basic\hostile\pirate.dm" #include "code\modules\mob\living\basic\hostile\skeleton_mob.dm" +#include "code\modules\mob\living\basic\hostile\tree.dm" #include "code\modules\mob\living\basic\hostile\viscerator.dm" #include "code\modules\mob\living\basic\hostile\soviet.dm" #include "code\modules\mob\living\basic\hostile\alien\alien_mob_ai.dm" @@ -2698,12 +2700,10 @@ #include "code\modules\mob\living\simple_animal\hostile\headslug.dm" #include "code\modules\mob\living\simple_animal\hostile\hostile.dm" #include "code\modules\mob\living\simple_animal\hostile\illusion.dm" -#include "code\modules\mob\living\simple_animal\hostile\jungle_animals.dm" #include "code\modules\mob\living\simple_animal\hostile\mimic_mobs.dm" #include "code\modules\mob\living\simple_animal\hostile\mushroom.dm" #include "code\modules\mob\living\simple_animal\hostile\netherworld.dm" #include "code\modules\mob\living\simple_animal\hostile\syndicate_mobs.dm" -#include "code\modules\mob\living\simple_animal\hostile\tree.dm" #include "code\modules\mob\living\simple_animal\hostile\venus_human_trap.dm" #include "code\modules\mob\living\simple_animal\hostile\winter_mobs.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\ancient_robot.dm" diff --git a/tools/ci/check_simplemob_additions.py b/tools/ci/check_simplemob_additions.py index ec2dacaf23d..582f3d8e15d 100644 --- a/tools/ci/check_simplemob_additions.py +++ b/tools/ci/check_simplemob_additions.py @@ -149,7 +149,6 @@ BURNDOWN_LIST = { "/mob/living/simple_animal/hostile/morph", "/mob/living/simple_animal/hostile/morph/wizard", "/mob/living/simple_animal/hostile/mushroom", - "/mob/living/simple_animal/hostile/panther", "/mob/living/simple_animal/hostile/poison", "/mob/living/simple_animal/hostile/poison/bees", "/mob/living/simple_animal/hostile/poison/bees/queen", @@ -190,7 +189,6 @@ BURNDOWN_LIST = { "/mob/living/simple_animal/hostile/syndicate/ranged", "/mob/living/simple_animal/hostile/syndicate/ranged/orion", "/mob/living/simple_animal/hostile/syndicate/shield", - "/mob/living/simple_animal/hostile/tree", "/mob/living/simple_animal/hostile/venus_human_trap", "/mob/living/simple_animal/hostile/winter", "/mob/living/simple_animal/hostile/winter/reindeer",