Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion code/__DEFINES/role_preferences.dm
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
#define ROLE_GANG "gangster" // Yogs
#define ROLE_DARKSPAWN "darkspawn" //Yogs
#define ROLE_HOLOPARASITE "Holoparasite" // Yogs
#define ROLE_ZOMBIE "Zombie" //Yogs

//Missing assignment means it's not a gamemode specific role, IT'S NOT A BUG OR ERROR.
//The gamemode specific ones are just so the gamemodes can query whether a player is old enough
Expand Down Expand Up @@ -73,7 +74,8 @@ GLOBAL_LIST_INIT(special_roles, list(
ROLE_HIVE = /datum/game_mode/hivemind,
ROLE_INTERNAL_AFFAIRS = /datum/game_mode/traitor/internal_affairs,
ROLE_DARKSPAWN = /datum/game_mode/darkspawn,
ROLE_SENTIENCE
ROLE_SENTIENCE,
ROLE_ZOMBIE
))

//Job defines for what happens when you fail to qualify for any job during job selection
Expand Down
21 changes: 11 additions & 10 deletions code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
Original file line number Diff line number Diff line change
Expand Up @@ -515,7 +515,7 @@
var/datum/antagonist/vampire/newVampire = new
M.mind.add_antag_datum(newVampire)
return TRUE

//////////////////////////////////////////////
// //
// ZOMBIE (GHOST) //
Expand All @@ -524,8 +524,9 @@

/datum/dynamic_ruleset/midround/from_ghosts/zombie
name = "Zombie"
antag_flag = "ROLE_ZOMBIE"
enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain", "Chief Medical Officer")
required_enemies = list(2,2,1,1,1,1,0,0,0,0,)
required_enemies = list(2,2,1,1,1,1,0,0,0,0)
required_candidates = 1
weight = 1
cost = 20
Expand All @@ -534,7 +535,7 @@
var/list/spawn_locs = list()

/datum/round_event/ghost_role/zombie/spawn_role()
var/list/candidates = get_candidates(ROLE_ALIEN, null, ROLE_ALIEN)
var/list/candidates = get_candidates(ROLE_ZOMBIE, null, ROLE_ZOMBIE)
if(!candidates.len)
return NOT_ENOUGH_PLAYERS

Expand All @@ -554,14 +555,14 @@
message_admins("No valid spawn locations found, aborting...")
return MAP_ERROR

var/mob/living/carbon/human/S = new ((pick(spawn_locs)))
player_mind.transfer_to(S)
var/mob/living/carbon/human/M = new ((pick(spawn_locs)))
player_mind.transfer_to(M)
player_mind.assigned_role = "Zombie"
player_mind.special_role = "Zombie"
S.set_species(/datum/species/zombie/infectious)
playsound(S, 'sound/hallucinations/growl1.ogg', 50, 1, -1)
message_admins("[ADMIN_LOOKUPFLW(S)] has been made into a Zombie by an event.")
log_game("[key_name(S)] was spawned as a Zombie by an event.")
spawned_mobs += S
M.set_species(/datum/species/zombie/infectious)
playsound(M, 'sound/hallucinations/growl1.ogg', 50, 1, -1)
message_admins("[ADMIN_LOOKUPFLW(M)] has been made into a Zombie by an event.")
log_game("[key_name(M)] was spawned as a Zombie by an event.")
spawned_mobs += M
return SUCCESSFUL_SPAWN

2 changes: 1 addition & 1 deletion code/modules/admin/sql_ban_system.dm
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,7 @@
ROLE_OVERTHROW, ROLE_REV, ROLE_REVENANT,
ROLE_REV_HEAD, ROLE_SERVANT_OF_RATVAR, ROLE_SYNDICATE,
ROLE_TRAITOR, ROLE_WIZARD, ROLE_GANG, ROLE_VAMPIRE,
ROLE_SHADOWLING, ROLE_DARKSPAWN)) //ROLE_REV_HEAD is excluded from this because rev jobbans are handled by ROLE_REV
ROLE_SHADOWLING, ROLE_DARKSPAWN, ROLE_ZOMBIE)) //ROLE_REV_HEAD is excluded from this because rev jobbans are handled by ROLE_REV
for(var/department in long_job_lists)
output += "<div class='column'><label class='rolegroup long [ckey(department)]'><input type='checkbox' name='[department]' class='hidden' [usr.client.prefs.tgui_fancy ? " onClick='toggle_checkboxes(this, \"_com\")'" : ""]>[department]</label><div class='content'>"
break_counter = 0
Expand Down