diff --git a/_maps/RandomRuins/SpaceRuins/interdyne.dmm b/_maps/RandomRuins/SpaceRuins/interdyne.dmm index 46e22d19fb6..b115c323a35 100644 --- a/_maps/RandomRuins/SpaceRuins/interdyne.dmm +++ b/_maps/RandomRuins/SpaceRuins/interdyne.dmm @@ -104,7 +104,7 @@ /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/interdyne) "eJ" = ( -/mob/living/simple_animal/hostile/zombie, +/mob/living/basic/zombie, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -496,7 +496,7 @@ /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/interdyne) "uy" = ( -/mob/living/simple_animal/hostile/zombie, +/mob/living/basic/zombie, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/interdyne) "vd" = ( @@ -656,7 +656,7 @@ /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/interdyne) "By" = ( -/mob/living/simple_animal/hostile/zombie, +/mob/living/basic/zombie, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/interdyne) @@ -672,7 +672,7 @@ /turf/open/floor/iron/smooth, /area/ruin/space/has_grav/interdyne) "DA" = ( -/mob/living/simple_animal/hostile/zombie, +/mob/living/basic/zombie, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/interdyne) @@ -719,7 +719,7 @@ /area/ruin/space/has_grav/interdyne) "Ft" = ( /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/zombie, +/mob/living/basic/zombie, /obj/structure/cable, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/interdyne) @@ -732,7 +732,7 @@ /turf/open/floor/mineral/plastitanium/red, /area/ruin/space/has_grav/interdyne) "FC" = ( -/mob/living/simple_animal/hostile/zombie, +/mob/living/basic/zombie, /obj/structure/cable, /turf/open/floor/mineral/plastitanium, /area/ruin/space/has_grav/interdyne) diff --git a/_maps/RandomRuins/SpaceRuins/meatderelict.dmm b/_maps/RandomRuins/SpaceRuins/meatderelict.dmm index 96959954e26..e3cdb52cad3 100644 --- a/_maps/RandomRuins/SpaceRuins/meatderelict.dmm +++ b/_maps/RandomRuins/SpaceRuins/meatderelict.dmm @@ -1008,7 +1008,7 @@ /area/ruin/space/has_grav/powered/biooutpost) "tv" = ( /obj/effect/decal/cleanable/blood/tracks, -/mob/living/simple_animal/hostile/zombie, +/mob/living/basic/zombie, /turf/open/indestructible/white{ icon_state = "showroomfloor" }, diff --git a/_maps/map_files/NebulaStation/NebulaStation.dmm b/_maps/map_files/NebulaStation/NebulaStation.dmm index a0a228bf5fe..a386fe33b1a 100644 --- a/_maps/map_files/NebulaStation/NebulaStation.dmm +++ b/_maps/map_files/NebulaStation/NebulaStation.dmm @@ -81457,12 +81457,6 @@ /obj/item/reagent_containers/cup/rag, /turf/open/floor/iron/white/textured_large, /area/station/maintenance/department/medical) -"mdT" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/closed/wall, -/area/station/maintenance/fore/lesser) "mec" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -118778,10 +118772,6 @@ /obj/effect/turf_decal/siding/thinplating_new/dark/corner, /turf/open/floor/iron/dark/herringbone, /area/station/service/chapel/funeral) -"rDY" = ( -/obj/structure/disposalpipe/segment, -/turf/closed/wall, -/area/station/maintenance/fore/greater) "rEc" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -196595,7 +196585,7 @@ fQE cUZ xGl pjP -mdT +iEt xnA pQW hAK @@ -266242,7 +266232,7 @@ bzt jkE nLg cij -rDY +bYy loK kCi nKp @@ -294174,4 +294164,4 @@ txW txW txW txW -"} \ No newline at end of file +"} diff --git a/_maps/shuttles/whiteship_box.dmm b/_maps/shuttles/whiteship_box.dmm index 9a20e38ebcd..c8002432469 100644 --- a/_maps/shuttles/whiteship_box.dmm +++ b/_maps/shuttles/whiteship_box.dmm @@ -273,15 +273,7 @@ dir = 9 }, /obj/structure/cable, -/mob/living/simple_animal/hostile/zombie{ - desc = "This undead fiend looks to be badly decomposed."; - environment_smash = 0; - health = 60; - melee_damage_lower = 11; - melee_damage_upper = 11; - name = "Rotting Carcass"; - outfit = /datum/outfit/corpse_assistant - }, +/mob/living/basic/zombie/rotten/assistant, /turf/open/floor/iron/white/corner{ dir = 1 }, @@ -360,14 +352,7 @@ /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/dirt, /obj/structure/cable, -/mob/living/simple_animal/hostile/zombie{ - desc = "This undead fiend looks to be badly decomposed."; - environment_smash = 0; - health = 60; - melee_damage_lower = 11; - melee_damage_upper = 11; - name = "Rotting Carcass" - }, +/mob/living/basic/zombie/rotten, /turf/open/floor/iron, /area/shuttle/abandoned/crew) "aQ" = ( @@ -841,14 +826,7 @@ }, /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/zombie{ - desc = "This undead fiend looks to be badly decomposed."; - environment_smash = 0; - health = 60; - melee_damage_lower = 11; - melee_damage_upper = 11; - name = "Rotting Carcass" - }, +/mob/living/basic/zombie/rotten, /turf/open/floor/iron, /area/shuttle/abandoned/medbay) "bT" = ( @@ -1449,15 +1427,7 @@ }, /obj/effect/decal/cleanable/blood/gibs/old, /obj/structure/cable, -/mob/living/simple_animal/hostile/zombie{ - desc = "This undead fiend looks to be badly decomposed."; - environment_smash = 0; - health = 60; - melee_damage_lower = 11; - melee_damage_upper = 11; - name = "Rotting Carcass"; - outfit = /datum/outfit/corpse_assistant - }, +/mob/living/basic/zombie/rotten/assistant, /turf/open/floor/iron, /area/shuttle/abandoned/medbay) "dc" = ( diff --git a/_maps/shuttles/whiteship_personalshuttle.dmm b/_maps/shuttles/whiteship_personalshuttle.dmm index 7666f6c63ad..0316e7f3aea 100644 --- a/_maps/shuttles/whiteship_personalshuttle.dmm +++ b/_maps/shuttles/whiteship_personalshuttle.dmm @@ -162,15 +162,7 @@ /obj/structure/cable, /obj/effect/decal/cleanable/blood/splatter, /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/zombie{ - desc = "This undead fiend looks to be badly decomposed."; - environment_smash = 0; - health = 60; - melee_damage_lower = 11; - melee_damage_upper = 11; - name = "Rotting Carcass"; - outfit = /datum/outfit/corpse_assistant - }, +/mob/living/basic/zombie/rotten/assistant, /turf/open/floor/mineral/titanium, /area/shuttle/abandoned/engine) "gG" = ( @@ -195,15 +187,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /obj/effect/decal/cleanable/blood/splatter, -/mob/living/simple_animal/hostile/zombie{ - desc = "This undead fiend looks to be badly decomposed."; - environment_smash = 0; - health = 60; - melee_damage_lower = 11; - melee_damage_upper = 11; - name = "Rotting Carcass"; - outfit = /datum/outfit/corpse_assistant - }, +/mob/living/basic/zombie/rotten/assistant, /turf/open/floor/plating, /area/shuttle/abandoned/engine) "nI" = ( @@ -260,15 +244,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/splatter, /obj/structure/chair/comfy/shuttle, -/mob/living/simple_animal/hostile/zombie{ - desc = "This undead fiend looks to be badly decomposed."; - environment_smash = 0; - health = 60; - melee_damage_lower = 11; - melee_damage_upper = 11; - name = "Rotting Carcass"; - outfit = /datum/outfit/corpse_assistant - }, +/mob/living/basic/zombie/rotten/assistant, /turf/open/floor/mineral/plastitanium, /area/shuttle/abandoned/bridge) "pS" = ( diff --git a/_maps/virtual_domains/psyker_zombies.dmm b/_maps/virtual_domains/psyker_zombies.dmm index 4ca97f8ef63..c532e87189f 100644 --- a/_maps/virtual_domains/psyker_zombies.dmm +++ b/_maps/virtual_domains/psyker_zombies.dmm @@ -114,7 +114,7 @@ /turf/open/indestructible/dark, /area/virtual_domain) "X" = ( -/mob/living/simple_animal/hostile/zombie, +/mob/living/basic/zombie, /turf/open/indestructible/dark, /area/virtual_domain) "Y" = ( diff --git a/code/_globalvars/phobias.dm b/code/_globalvars/phobias.dm index d6677a213a4..6c93c07bbb8 100644 --- a/code/_globalvars/phobias.dm +++ b/code/_globalvars/phobias.dm @@ -107,9 +107,9 @@ GLOBAL_LIST_INIT(phobia_mobs, list( /mob/living/basic/shade, /mob/living/basic/skeleton, /mob/living/basic/wizard, + /mob/living/basic/zombie, /mob/living/simple_animal/bot/mulebot/paranormal, /mob/living/simple_animal/hostile/dark_wizard, - /mob/living/simple_animal/hostile/zombie, )), )) diff --git a/code/modules/mob/living/basic/ruin_defender/zombie.dm b/code/modules/mob/living/basic/ruin_defender/zombie.dm new file mode 100644 index 00000000000..b77920af8d1 --- /dev/null +++ b/code/modules/mob/living/basic/ruin_defender/zombie.dm @@ -0,0 +1,93 @@ +/// Everyone knows what a zombie is +/mob/living/basic/zombie + name = "Shambling Corpse" + desc = "When there is no more room in hell, the dead will walk in outer space." + icon = 'icons/mob/simple/simple_human.dmi' + mob_biotypes = MOB_ORGANIC|MOB_HUMANOID + sentience_type = SENTIENCE_HUMANOID + maxHealth = 100 + health = 100 + melee_damage_lower = 21 + melee_damage_upper = 21 + attack_verb_continuous = "bites" + attack_verb_simple = "bite" + attack_sound = 'sound/effects/hallucinations/growl1.ogg' + attack_vis_effect = ATTACK_EFFECT_BITE + combat_mode = TRUE + speed = 4 + status_flags = CANPUSH + death_message = "rapidly decays into a pile of bones!" + unsuitable_atmos_damage = 0 + unsuitable_cold_damage = 0 + faction = list(FACTION_HOSTILE) + basic_mob_flags = DEL_ON_DEATH + ai_controller = /datum/ai_controller/basic_controller/zombie + /// Outfit the zombie spawns with for visuals. + var/outfit = /datum/outfit/corpse_doctor + /// Chance to spread zombieism on hit + /// Only for admins because we don't actually want romerol to get into the round from space ruins generally speaking + var/infection_chance = 0 + +/mob/living/basic/zombie/Initialize(mapload) + . = ..() + apply_dynamic_human_appearance(src, outfit, /datum/species/zombie, bloody_slots = ITEM_SLOT_OCLOTHING) + AddElement(/datum/element/death_drops, string_list(list(/obj/effect/decal/remains/human))) + +/mob/living/basic/zombie/melee_attack(atom/target, list/modifiers, ignore_cooldown) + . = ..() + if (!. || !infection_chance || !ishuman(target) || !prob(infection_chance)) + return + try_to_zombie_infect(target) + +/// Weaker variant used if you want to put more of them in one place, won't attack obstacles +/mob/living/basic/zombie/rotten + name = "Rotting Carcass" + desc = "This undead fiend looks to be badly decomposed." + health = 60 + melee_damage_lower = 11 + melee_damage_upper = 11 + ai_controller = /datum/ai_controller/basic_controller/zombie/stupid + +/mob/living/basic/zombie/rotten/assistant + outfit = /datum/outfit/corpse_assistant + +/datum/outfit/corpse_doctor + name = "Corpse Doctor" + suit = /obj/item/clothing/suit/toggle/labcoat + uniform = /obj/item/clothing/under/rank/medical/doctor + shoes = /obj/item/clothing/shoes/sneakers/white + back = /obj/item/storage/backpack/medic + +/datum/outfit/corpse_assistant + name = "Corpse Assistant" + mask = /obj/item/clothing/mask/gas + uniform = /obj/item/clothing/under/color/grey + shoes = /obj/item/clothing/shoes/sneakers/black + back = /obj/item/storage/backpack + +/datum/ai_planning_subtree/random_speech/zombie + speech_chance = 1 + emote_hear = list("groans.", "moans.", "grunts.") + emote_see = list("twitches.", "shudders.") + +/datum/ai_controller/basic_controller/zombie + blackboard = list( + BB_TARGET_MINIMUM_STAT = HARD_CRIT, + BB_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/random_speech/zombie, + /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_controller/basic_controller/zombie/stupid + planning_subtrees = list( + /datum/ai_planning_subtree/random_speech/zombie, + /datum/ai_planning_subtree/simple_find_target, + /datum/ai_planning_subtree/basic_melee_attack_subtree, + ) diff --git a/code/modules/mob/living/simple_animal/hostile/zombie.dm b/code/modules/mob/living/simple_animal/hostile/zombie.dm deleted file mode 100644 index 45bcf6cd3ac..00000000000 --- a/code/modules/mob/living/simple_animal/hostile/zombie.dm +++ /dev/null @@ -1,51 +0,0 @@ -/mob/living/simple_animal/hostile/zombie - name = "Shambling Corpse" - desc = "When there is no more room in hell, the dead will walk in outer space." - icon = 'icons/mob/simple/simple_human.dmi' - mob_biotypes = MOB_ORGANIC|MOB_HUMANOID - sentience_type = SENTIENCE_HUMANOID - speak_chance = 0 - stat_attack = HARD_CRIT //braains - maxHealth = 100 - health = 100 - harm_intent_damage = 5 - melee_damage_lower = 21 - melee_damage_upper = 21 - attack_verb_continuous = "bites" - attack_verb_simple = "bite" - attack_sound = 'sound/effects/hallucinations/growl1.ogg' - attack_vis_effect = ATTACK_EFFECT_BITE - combat_mode = TRUE - atmos_requirements = null - minbodytemp = 0 - status_flags = CANPUSH - death_message = "collapses, flesh gone in a pile of bones!" - del_on_death = TRUE - loot = list(/obj/effect/decal/remains/human) - /// The probability that we give people real zombie infections on hit. - var/infection_chance = 0 - /// Outfit the zombie spawns with for visuals. - var/outfit = /datum/outfit/corpse_doctor - -/mob/living/simple_animal/hostile/zombie/Initialize(mapload) - . = ..() - apply_dynamic_human_appearance(src, outfit, /datum/species/zombie, bloody_slots = ITEM_SLOT_OCLOTHING) - -/mob/living/simple_animal/hostile/zombie/AttackingTarget(atom/attacked_target) - . = ..() - if(. && ishuman(target) && prob(infection_chance)) - try_to_zombie_infect(target) - -/datum/outfit/corpse_doctor - name = "Corpse Doctor" - suit = /obj/item/clothing/suit/toggle/labcoat - uniform = /obj/item/clothing/under/rank/medical/doctor - shoes = /obj/item/clothing/shoes/sneakers/white - back = /obj/item/storage/backpack/medic - -/datum/outfit/corpse_assistant - name = "Corpse Assistant" - mask = /obj/item/clothing/mask/gas - uniform = /obj/item/clothing/under/color/grey - shoes = /obj/item/clothing/shoes/sneakers/black - back = /obj/item/storage/backpack diff --git a/code/modules/unit_tests/simple_animal_freeze.dm b/code/modules/unit_tests/simple_animal_freeze.dm index e82a607a9bf..ac4f911b26b 100644 --- a/code/modules/unit_tests/simple_animal_freeze.dm +++ b/code/modules/unit_tests/simple_animal_freeze.dm @@ -64,7 +64,6 @@ /mob/living/simple_animal/hostile/retaliate/goose, /mob/living/simple_animal/hostile/retaliate/goose/vomit, /mob/living/simple_animal/hostile/vatbeast, - /mob/living/simple_animal/hostile/zombie, /mob/living/simple_animal/soulscythe, // DO NOT ADD NEW ENTRIES TO THIS LIST // READ THE COMMENT ABOVE diff --git a/tgstation.dme b/tgstation.dme index b7f67bf487d..1d960899cae 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -5072,6 +5072,7 @@ #include "code\modules\mob\living\basic\ruin_defender\mad_piano.dm" #include "code\modules\mob\living\basic\ruin_defender\skeleton.dm" #include "code\modules\mob\living\basic\ruin_defender\stickman.dm" +#include "code\modules\mob\living\basic\ruin_defender\zombie.dm" #include "code\modules\mob\living\basic\ruin_defender\mimic\mimic.dm" #include "code\modules\mob\living\basic\ruin_defender\mimic\mimic_ai.dm" #include "code\modules\mob\living\basic\ruin_defender\wizard\wizard.dm" @@ -5352,7 +5353,6 @@ #include "code\modules\mob\living\simple_animal\hostile\illusion.dm" #include "code\modules\mob\living\simple_animal\hostile\ooze.dm" #include "code\modules\mob\living\simple_animal\hostile\vatbeast.dm" -#include "code\modules\mob\living\simple_animal\hostile\zombie.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\_megafauna.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\blood_drunk_miner.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\bubblegum.dm" diff --git a/tools/UpdatePaths/Scripts/89153_simple_to_basic_zombies.txt b/tools/UpdatePaths/Scripts/89153_simple_to_basic_zombies.txt new file mode 100644 index 00000000000..dbb408b60cd --- /dev/null +++ b/tools/UpdatePaths/Scripts/89153_simple_to_basic_zombies.txt @@ -0,0 +1,3 @@ +/mob/living/simple_animal/hostile/zombie{health=60;name="Rotting Carcass";outfit=/datum/outfit/corpse_assistant} : /mob/living/basic/zombie/rotten/assistant +/mob/living/simple_animal/hostile/zombie{health=60;name="Rotting Carcass"} : /mob/living/basic/zombie/rotten +/mob/living/simple_animal/hostile/zombie : /mob/living/basic/zombie{@OLD}