From 2acf4a628c639ef25a66fb533e57fd00784832c9 Mon Sep 17 00:00:00 2001 From: warriorstar-orion Date: Wed, 11 Jun 2025 13:04:30 -0400 Subject: [PATCH] make space goliaths, hivelords, and basilisks spacewalk (#29442) --- .../RandomRuins/SpaceRuins/abandoned_engi_sat.dmm | 12 ++++++------ .../RandomRuins/SpaceRuins/abandonedzoo.dmm | 2 +- .../map_files/RandomRuins/SpaceRuins/asteroid2.dmm | 4 ++-- .../map_files/RandomRuins/SpaceRuins/asteroid3.dmm | 4 ++-- .../map_files/RandomRuins/SpaceRuins/asteroid5.dmm | 6 +++--- .../RandomRuins/SpaceRuins/asteroidmining2.dmm | 4 ++-- .../RandomRuins/SpaceRuins/asteroidmining3.dmm | 6 +++--- .../map_files/RandomRuins/SpaceRuins/derelict4.dmm | 2 +- .../map_files/RandomRuins/SpaceRuins/derelict5.dmm | 4 ++-- .../map_files/RandomRuins/SpaceRuins/emptyshell.dmm | 2 +- .../RandomRuins/SpaceRuins/listeningpost.dmm | 2 +- _maps/map_files/RandomRuins/SpaceRuins/way_home.dmm | 4 ++-- code/game/objects/structures/monster_spawner.dm | 9 +++++++++ .../living/simple_animal/hostile/mining/basilisk.dm | 5 +++++ .../living/simple_animal/hostile/mining/goliath.dm | 5 +++++ .../living/simple_animal/hostile/mining/hivelord.dm | 13 +++++++++++++ 16 files changed, 58 insertions(+), 26 deletions(-) diff --git a/_maps/map_files/RandomRuins/SpaceRuins/abandoned_engi_sat.dmm b/_maps/map_files/RandomRuins/SpaceRuins/abandoned_engi_sat.dmm index e16ffc6786b..68492cc1cfd 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/abandoned_engi_sat.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/abandoned_engi_sat.dmm @@ -199,7 +199,7 @@ /turf/simulated/floor/plating, /area/ruin/space/abandoned_engi_sat) "fs" = ( -/mob/living/simple_animal/hostile/asteroid/hivelord, +/mob/living/simple_animal/hostile/asteroid/hivelord/space, /turf/simulated/floor/wood/airless, /area/ruin/space/abandoned_engi_sat) "fA" = ( @@ -953,7 +953,7 @@ }, /area/ruin/space/abandoned_engi_sat) "FN" = ( -/mob/living/simple_animal/hostile/asteroid/hivelord, +/mob/living/simple_animal/hostile/asteroid/hivelord/space, /turf/simulated/floor/carpet/airless, /area/ruin/space/abandoned_engi_sat) "FQ" = ( @@ -1147,7 +1147,7 @@ }, /area/ruin/space/abandoned_engi_sat) "OW" = ( -/mob/living/simple_animal/hostile/asteroid/hivelord, +/mob/living/simple_animal/hostile/asteroid/hivelord/space, /turf/simulated/floor/plating, /area/ruin/space/abandoned_engi_sat) "OZ" = ( @@ -1261,7 +1261,7 @@ /area/ruin/space/abandoned_engi_sat) "RV" = ( /obj/effect/mapping_helpers/turfs/damage, -/mob/living/simple_animal/hostile/asteroid/hivelord, +/mob/living/simple_animal/hostile/asteroid/hivelord/space, /turf/simulated/floor/plasteel, /area/ruin/space/abandoned_engi_sat) "Sa" = ( @@ -1338,7 +1338,7 @@ /area/ruin/space/abandoned_engi_sat) "Xq" = ( /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/asteroid/hivelord, +/mob/living/simple_animal/hostile/asteroid/hivelord/space, /turf/simulated/floor/plating, /area/ruin/space/abandoned_engi_sat) "XP" = ( @@ -1346,7 +1346,7 @@ /turf/simulated/floor/plating, /area/ruin/space/abandoned_engi_sat) "Ye" = ( -/mob/living/simple_animal/hostile/asteroid/hivelord, +/mob/living/simple_animal/hostile/asteroid/hivelord/space, /turf/simulated/floor/plasteel, /area/ruin/space/abandoned_engi_sat) "Yz" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/abandonedzoo.dmm b/_maps/map_files/RandomRuins/SpaceRuins/abandonedzoo.dmm index 705e97b78e5..1f0efdcffd8 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/abandonedzoo.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/abandonedzoo.dmm @@ -112,7 +112,7 @@ /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) "as" = ( -/mob/living/simple_animal/hostile/asteroid/basilisk, +/mob/living/simple_animal/hostile/asteroid/basilisk/space, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) "at" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/asteroid2.dmm b/_maps/map_files/RandomRuins/SpaceRuins/asteroid2.dmm index 4fe9626edc9..d8ad7512aba 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/asteroid2.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/asteroid2.dmm @@ -12,7 +12,7 @@ /turf/simulated/mineral/random/high_chance/space, /area/ruin/space/unpowered) "t" = ( -/obj/structure/spawner/mining/basilisk, +/obj/structure/spawner/mining/basilisk/space, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) "C" = ( @@ -20,7 +20,7 @@ /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) "R" = ( -/obj/structure/spawner/mining/goliath, +/obj/structure/spawner/mining/goliath/space, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) "V" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/asteroid3.dmm b/_maps/map_files/RandomRuins/SpaceRuins/asteroid3.dmm index cdb8d013d44..52363a3bff3 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/asteroid3.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/asteroid3.dmm @@ -27,11 +27,11 @@ /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) "v" = ( -/obj/structure/spawner/mining/basilisk, +/obj/structure/spawner/mining/basilisk/space, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) "N" = ( -/obj/structure/spawner/mining/hivelord, +/obj/structure/spawner/mining/hivelord/space, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) diff --git a/_maps/map_files/RandomRuins/SpaceRuins/asteroid5.dmm b/_maps/map_files/RandomRuins/SpaceRuins/asteroid5.dmm index cb2dfa9a034..645b750d8d9 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/asteroid5.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/asteroid5.dmm @@ -12,7 +12,7 @@ /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) "f" = ( -/obj/structure/spawner/mining/goliath, +/obj/structure/spawner/mining/goliath/space, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) "o" = ( @@ -27,11 +27,11 @@ /turf/template_noop, /area/template_noop) "U" = ( -/obj/structure/spawner/mining/basilisk, +/obj/structure/spawner/mining/basilisk/space, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) "Y" = ( -/obj/structure/spawner/mining/hivelord, +/obj/structure/spawner/mining/hivelord/space, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) diff --git a/_maps/map_files/RandomRuins/SpaceRuins/asteroidmining2.dmm b/_maps/map_files/RandomRuins/SpaceRuins/asteroidmining2.dmm index f97f8ea74f2..745d071fae9 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/asteroidmining2.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/asteroidmining2.dmm @@ -15,11 +15,11 @@ /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) "A" = ( -/obj/structure/spawner/mining/hivelord, +/obj/structure/spawner/mining/hivelord/space, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) "S" = ( -/obj/structure/spawner/mining/basilisk, +/obj/structure/spawner/mining/basilisk/space, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) "V" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/asteroidmining3.dmm b/_maps/map_files/RandomRuins/SpaceRuins/asteroidmining3.dmm index 8f3dae0f8a3..b38b634dcd0 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/asteroidmining3.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/asteroidmining3.dmm @@ -15,18 +15,18 @@ /turf/space, /area/ruin/space/unpowered) "s" = ( -/obj/structure/spawner/mining/hivelord, +/obj/structure/spawner/mining/hivelord/space, /turf/simulated/floor/plating/asteroid, /area/ruin/space/unpowered) "w" = ( -/mob/living/simple_animal/hostile/asteroid/basilisk, +/mob/living/simple_animal/hostile/asteroid/basilisk/space, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) "y" = ( /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) "E" = ( -/obj/structure/spawner/mining/basilisk, +/obj/structure/spawner/mining/basilisk/space, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) "L" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/derelict4.dmm b/_maps/map_files/RandomRuins/SpaceRuins/derelict4.dmm index f4ea1745f2f..3a397374825 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/derelict4.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/derelict4.dmm @@ -91,7 +91,7 @@ /turf/simulated/floor/plating/airless, /area/ruin/space/unpowered) "K" = ( -/obj/structure/spawner/mining/basilisk, +/obj/structure/spawner/mining/basilisk/space, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) "Z" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm b/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm index 5c9e88add1f..6589aca2c26 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/derelict5.dmm @@ -52,7 +52,7 @@ /turf/simulated/floor/plasteel, /area/ruin/space/unpowered) "gx" = ( -/obj/structure/spawner/mining/basilisk, +/obj/structure/spawner/mining/basilisk/space, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) "hG" = ( @@ -235,7 +235,7 @@ /turf/simulated/floor/plating, /area/ruin/space/unpowered) "KW" = ( -/obj/structure/spawner/mining/hivelord, +/obj/structure/spawner/mining/hivelord/space, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered) "Li" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/emptyshell.dmm b/_maps/map_files/RandomRuins/SpaceRuins/emptyshell.dmm index 9c3702ce9b7..34439bb304b 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/emptyshell.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/emptyshell.dmm @@ -37,7 +37,7 @@ /turf/simulated/floor/plating, /area/ruin/space/unpowered) "p" = ( -/mob/living/simple_animal/hostile/asteroid/hivelord, +/mob/living/simple_animal/hostile/asteroid/hivelord/space, /turf/simulated/floor/plating, /area/ruin/space/unpowered) "t" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/listeningpost.dmm b/_maps/map_files/RandomRuins/SpaceRuins/listeningpost.dmm index 42324cac85c..4f8e4b6a6fd 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/listeningpost.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/listeningpost.dmm @@ -463,7 +463,7 @@ /turf/simulated/floor/plating/airless, /area/ruin/space/syndicate_listening_station/asteroid) "Ie" = ( -/obj/structure/spawner/mining/basilisk, +/obj/structure/spawner/mining/basilisk/space, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/syndicate_listening_station/asteroid) "Il" = ( diff --git a/_maps/map_files/RandomRuins/SpaceRuins/way_home.dmm b/_maps/map_files/RandomRuins/SpaceRuins/way_home.dmm index 204ece3d351..99cd51cce96 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/way_home.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/way_home.dmm @@ -15,7 +15,7 @@ /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered/no_grav/way_home) "g" = ( -/obj/structure/spawner/mining/hivelord, +/obj/structure/spawner/mining/hivelord/space, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered/no_grav/way_home) "n" = ( @@ -26,7 +26,7 @@ /turf/template_noop, /area/template_noop) "z" = ( -/obj/structure/spawner/mining/basilisk, +/obj/structure/spawner/mining/basilisk/space, /turf/simulated/floor/plating/asteroid/airless, /area/ruin/space/unpowered/no_grav/way_home) "O" = ( diff --git a/code/game/objects/structures/monster_spawner.dm b/code/game/objects/structures/monster_spawner.dm index 67b5d6694c1..d5d69be47e9 100644 --- a/code/game/objects/structures/monster_spawner.dm +++ b/code/game/objects/structures/monster_spawner.dm @@ -66,16 +66,25 @@ desc = "A den housing a nest of goliaths, oh god why?" mob_types = list(/mob/living/simple_animal/hostile/asteroid/goliath) +/obj/structure/spawner/mining/goliath/space + mob_types = list(/mob/living/simple_animal/hostile/asteroid/goliath/space) + /obj/structure/spawner/mining/hivelord name = "hivelord den" desc = "A den housing a nest of hivelords." mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord) +/obj/structure/spawner/mining/hivelord/space + mob_types = list(/mob/living/simple_animal/hostile/asteroid/hivelord/space) + /obj/structure/spawner/mining/basilisk name = "basilisk den" desc = "A den housing a nest of basilisks, bring a coat." mob_types = list(/mob/living/simple_animal/hostile/asteroid/basilisk) +/obj/structure/spawner/mining/basilisk/space + mob_types = list(/mob/living/simple_animal/hostile/asteroid/basilisk/space) + /obj/structure/spawner/sentient var/role_name = "A sentient mob" var/assumed_control_message = "You are a sentient mob from a badly coded spawner" diff --git a/code/modules/mob/living/simple_animal/hostile/mining/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining/basilisk.dm index 2b9651ec57d..4bef86ed488 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/basilisk.dm @@ -66,6 +66,11 @@ if(3) adjustBruteLoss(110) +/mob/living/simple_animal/hostile/asteroid/basilisk/space + +/mob/living/simple_animal/hostile/asteroid/basilisk/space/Process_Spacemove(movement_dir, continuous_move) + return TRUE + //Watcher /mob/living/simple_animal/hostile/asteroid/basilisk/watcher name = "watcher" diff --git a/code/modules/mob/living/simple_animal/hostile/mining/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining/goliath.dm index 3b168e022b2..c755127a9ab 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/goliath.dm @@ -194,3 +194,8 @@ icon_state = "Goliath_tentacle_retract" deltimer(timerid) timerid = QDEL_IN(src, 7) + +/mob/living/simple_animal/hostile/asteroid/goliath/space + +/mob/living/simple_animal/hostile/asteroid/goliath/space/Process_Spacemove(movement_dir, continuous_move) + return TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm index 551a4b07478..c19182399ac 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/hivelord.dm @@ -59,6 +59,12 @@ return FALSE mouse_opacity = MOUSE_OPACITY_ICON +/mob/living/simple_animal/hostile/asteroid/hivelord/space + brood_type = /mob/living/simple_animal/hostile/asteroid/hivelordbrood/space + +/mob/living/simple_animal/hostile/asteroid/hivelord/space/Process_Spacemove(movement_dir, continuous_move) + return TRUE + //A fragile but rapidly produced creature /mob/living/simple_animal/hostile/asteroid/hivelordbrood name = "hivelord brood" @@ -95,6 +101,11 @@ addtimer(CALLBACK(src, PROC_REF(death)), 100) AddComponent(/datum/component/swarming) +/mob/living/simple_animal/hostile/asteroid/hivelordbrood/space + +/mob/living/simple_animal/hostile/asteroid/hivelordbrood/space/Process_Spacemove(movement_dir, continuous_move) + return TRUE + /mob/living/simple_animal/hostile/asteroid/hivelordbrood/blood name = "blood brood" desc = "A living string of blood and alien materials." @@ -181,6 +192,8 @@ var/dwarf_mob = FALSE var/mob/living/carbon/human/stored_mob +/mob/living/simple_animal/hostile/asteroid/hivelord/legion/Process_Spacemove(movement_dir, continuous_move) + return FALSE /mob/living/simple_animal/hostile/asteroid/hivelord/legion/dwarf name = "dwarf legion"