From ea909ca11f400beeaacb2f8699444ce933e76e49 Mon Sep 17 00:00:00 2001 From: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com> Date: Mon, 5 Aug 2024 03:04:19 -0600 Subject: [PATCH] Adds Void Walker to Storyteller (#1838) ## About The Pull Request Adds voidwalker to storyteller. TG didn't cook it with its own ``/datum/round_event_control`` so I had to make my own. I've also moved _events.dm higher up the compile order. It has a 30 minute minimum spawn timer and 40 minimum population (which is what TG set it as) ## Why It's Good For The Game The new antag needs to roll. ## Proof Of Testing ![image](https://github.com/user-attachments/assets/cd1e70ad-c844-4f45-ac51-8ca9fee6c724) ## Changelog Nothing player facing. --------- Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com> --- .../{event_defines => _events}/_event.dm | 0 .../modules/storyteller/_events/voidwalker.dm | 39 +++++++++++++++++++ .../event_defines/major/major_overrides.dm | 4 ++ tgstation.dme | 3 +- 4 files changed, 45 insertions(+), 1 deletion(-) rename modular_zubbers/code/modules/storyteller/{event_defines => _events}/_event.dm (100%) create mode 100644 modular_zubbers/code/modules/storyteller/_events/voidwalker.dm diff --git a/modular_zubbers/code/modules/storyteller/event_defines/_event.dm b/modular_zubbers/code/modules/storyteller/_events/_event.dm similarity index 100% rename from modular_zubbers/code/modules/storyteller/event_defines/_event.dm rename to modular_zubbers/code/modules/storyteller/_events/_event.dm diff --git a/modular_zubbers/code/modules/storyteller/_events/voidwalker.dm b/modular_zubbers/code/modules/storyteller/_events/voidwalker.dm new file mode 100644 index 0000000000000..985c44e4cee18 --- /dev/null +++ b/modular_zubbers/code/modules/storyteller/_events/voidwalker.dm @@ -0,0 +1,39 @@ +// TG did not cook this antag into the event system. So I had to make my own + +/datum/round_event_control/voidwalker + name = "Spawn Void Walker" + typepath = /datum/round_event/ghost_role/void_walker + max_occurrences = 1 + weight = 3 + earliest_start = 20 MINUTES + min_players = 30 + dynamic_should_hijack = TRUE + category = EVENT_CATEGORY_ENTITIES + description = "A Void Walker that drags people out of the station and into the abyss" + +/datum/round_event/ghost_role/void_walker + minimum_required = 30 + fakeable = FALSE + role_name = "Void Walker" + +/datum/round_event/ghost_role/void_walker/spawn_role() + var/spawn_location = find_space_spawn() + if(isnull(spawn_location)) + return MAP_ERROR + + var/mob/chosen_one = SSpolling.poll_ghost_candidates(check_jobban = ROLE_VOIDWALKER, role = ROLE_VOIDWALKER, alert_pic = /obj/item/cosmic_skull, jump_target = spawn_location, role_name_text = "Void Walker", amount_to_pick = 1) + if(isnull(chosen_one)) + return NOT_ENOUGH_PLAYERS + var/datum/mind/player_mind = new /datum/mind(chosen_one.key) + player_mind.active = TRUE + + var/mob/living/carbon/human/walker = new (spawn_location) + player_mind.transfer_to(walker) + player_mind.set_assigned_role(SSjob.GetJobType(/datum/job/voidwalker)) + player_mind.add_antag_datum(/datum/antagonist/voidwalker) + walker.set_species(/datum/species/voidwalker) + playsound(walker, 'sound/magic/ethereal_exit.ogg', 50, TRUE, -1) + message_admins("[ADMIN_LOOKUPFLW(walker)] has been made into a Voidwalker by the midround event.") + walker.log_message("[key_name(walker)] was spawned as a Voidwalker by an event.", LOG_GAME) + spawned_mobs += walker + return SUCCESSFUL_SPAWN diff --git a/modular_zubbers/code/modules/storyteller/event_defines/major/major_overrides.dm b/modular_zubbers/code/modules/storyteller/event_defines/major/major_overrides.dm index 0812b43047b22..c5a8d0ad93f8c 100644 --- a/modular_zubbers/code/modules/storyteller/event_defines/major/major_overrides.dm +++ b/modular_zubbers/code/modules/storyteller/event_defines/major/major_overrides.dm @@ -61,3 +61,7 @@ /datum/round_event_control/fugitives track = EVENT_TRACK_MAJOR tags = list(TAG_COMBAT) + +/datum/round_event_control/voidwalker + track = EVENT_TRACK_MAJOR + tags = list(TAG_COMBAT, TAG_SPOOKY, TAG_SPACE) diff --git a/tgstation.dme b/tgstation.dme index db7a7596a6426..49284ec3e72fc 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -9088,7 +9088,8 @@ #include "modular_zubbers\code\modules\storyteller\gamemode.dm" #include "modular_zubbers\code\modules\storyteller\scheduled_event.dm" #include "modular_zubbers\code\modules\storyteller\storyteller_vote.dm" -#include "modular_zubbers\code\modules\storyteller\event_defines\_event.dm" +#include "modular_zubbers\code\modules\storyteller\_events\_event.dm" +#include "modular_zubbers\code\modules\storyteller\_events\voidwalker.dm" #include "modular_zubbers\code\modules\storyteller\event_defines\disabled_event_overrides.dm" #include "modular_zubbers\code\modules\storyteller\event_defines\major\major_overrides.dm" #include "modular_zubbers\code\modules\storyteller\event_defines\moderate\moderate_overrides.dm"