From 57d9b22675d017cd4ad93216a7b37a4f1448a3c4 Mon Sep 17 00:00:00 2001 From: Kyep Date: Fri, 8 Mar 2019 02:08:24 -0800 Subject: [PATCH] Eventmob/specialrole v1.0 --- code/__DEFINES/gamemode.dm | 1 + code/__DEFINES/hud.dm | 1 + code/__DEFINES/role_preferences.dm | 1 + code/datums/hud.dm | 3 ++- code/datums/mind.dm | 25 ++++++++++++++++++++++++- code/game/gamemodes/game_mode.dm | 27 ++++++++++++++++++++++++++- code/game/gamemodes/gameticker.dm | 10 ++++++++++ code/modules/admin/player_panel.dm | 5 ++++- icons/mob/hud.dmi | Bin 14802 -> 14764 bytes 9 files changed, 69 insertions(+), 4 deletions(-) diff --git a/code/__DEFINES/gamemode.dm b/code/__DEFINES/gamemode.dm index 83e7be22e84..617cdf3cb21 100644 --- a/code/__DEFINES/gamemode.dm +++ b/code/__DEFINES/gamemode.dm @@ -53,3 +53,4 @@ #define SPECIAL_ROLE_XENOMORPH_DRONE "Xenomorph Drone" #define SPECIAL_ROLE_XENOMORPH_SENTINEL "Xenomorph Sentinel" #define SPECIAL_ROLE_XENOMORPH_LARVA "Xenomorph Larva" +#define SPECIAL_ROLE_EVENTMISC "Event Role" \ No newline at end of file diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index d988fe3a011..59cf95a72d7 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -57,6 +57,7 @@ #define ANTAG_HUD_ABDUCTOR 18 #define DATA_HUD_ABDUCTOR 19 #define ANTAG_HUD_DEVIL 20 +#define ANTAG_HUD_EVENTMISC 21 // Notification action types #define NOTIFY_JUMP "jump" diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index 3b2ce8aadc1..7eaf300277a 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -42,6 +42,7 @@ #define ROLE_GSPIDER "giant spider" #define ROLE_DRONE "drone" #define ROLE_DEATHSQUAD "deathsquad" +#define ROLE_EVENTMISC "eventmisc" //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 diff --git a/code/datums/hud.dm b/code/datums/hud.dm index 9da1581ee1f..ac3249f9c5f 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -22,7 +22,8 @@ var/datum/atom_hud/huds = list( \ ANTAG_HUD_VAMPIRE = new/datum/atom_hud/antag/hidden(),\ ANTAG_HUD_ABDUCTOR = new/datum/atom_hud/antag/hidden(),\ DATA_HUD_ABDUCTOR = new/datum/atom_hud/abductor(),\ - ANTAG_HUD_DEVIL = new/datum/atom_hud/antag/hidden()\ + ANTAG_HUD_DEVIL = new/datum/atom_hud/antag/hidden(),\ + ANTAG_HUD_EVENTMISC = new/datum/atom_hud/antag/hidden()\ ) /datum/atom_hud diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 9774d56e23e..0658c81d90f 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -315,6 +315,13 @@ . += _memory_edit_role_enabled(ROLE_DEVIL) +/datum/mind/proc/memory_edit_eventmisc(mob/living/H) + . = _memory_edit_header("event", list()) + if(src in ticker.mode.eventmiscs) + . += "YES|no" + else + . += "Event Role|NO" + /datum/mind/proc/memory_edit_traitor() . = _memory_edit_header("traitor", list("traitorchan", "traitorvamp")) if(src in ticker.mode.traitors) @@ -402,6 +409,7 @@ var/static/list/devils_typecache = typecacheof(list(/mob/living/carbon/human, /mob/living/carbon/true_devil, /mob/living/silicon/robot)) if(is_type_in_typecache(current, devils_typecache)) sections["devil"] = memory_edit_devil(H) + sections["eventmisc"] = memory_edit_eventmisc(H) /** TRAITOR ***/ sections["traitor"] = memory_edit_traitor() /** SILICON ***/ @@ -448,7 +456,7 @@ out += gen_objective_text(admin = TRUE) out += "Add objective

" out += "Announce objectives

" - usr << browse(out, "window=edit_memory[src];size=400x500") + usr << browse(out, "window=edit_memory[src];size=500x500") /datum/mind/Topic(href, href_list) if(!check_rights(R_ADMIN)) @@ -1031,6 +1039,21 @@ else to_chat(usr, "No valid nuke found!") + else if(href_list["eventmisc"]) + switch(href_list["eventmisc"]) + if("clear") + if(src in ticker.mode.eventmiscs) + ticker.mode.eventmiscs -= src + ticker.mode.update_eventmisc_icons_removed(src) + special_role = null + message_admins("[key_name_admin(usr)] has de-eventantag'ed [current].") + log_admin("[key_name(usr)] has de-eventantag'ed [current].") + if("eventmisc") + ticker.mode.eventmiscs += src + special_role = SPECIAL_ROLE_EVENTMISC + ticker.mode.update_eventmisc_icons_added(src) + message_admins("[key_name_admin(usr)] has eventantag'ed [current].") + log_admin("[key_name(usr)] has eventantag'ed [current].") else if(href_list["devil"]) switch(href_list["devil"]) if("clear") diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 76074c254bb..8be8d68b0e3 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -35,6 +35,7 @@ var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) var/list/player_draft_log = list() var/list/datum/mind/xenos = list() + var/list/datum/mind/eventmiscs = list() var/list/datum/station_goal/station_goals = list() // A list of all station goals for this game mode @@ -454,6 +455,20 @@ proc/display_roundstart_logout_report() text += " had [ply.p_their()] body destroyed" return text +/proc/printeventplayer(datum/mind/ply) + var/text = "[ply.key] was [ply.name]" + if(ply.special_role != SPECIAL_ROLE_EVENTMISC) + text += " the [ply.special_role]" + text += " and" + if(ply.current) + if(ply.current.stat == DEAD) + text += " died" + else + text += " survived" + else + text += " had [ply.p_their()] body destroyed" + return text + /proc/printobjectives(datum/mind/ply) var/list/objective_parts = list() var/count = 1 @@ -502,4 +517,14 @@ proc/display_roundstart_logout_report() if((config.unrestricted_free_golems || !free_golems_disabled) && prob(config.prob_free_golems)) for(var/obj/effect/landmark/free_golem_spawn/L in GLOB.landmarks_list) if(isturf(L.loc)) - new /obj/effect/mob_spawn/human/golem/adamantine(L.loc) \ No newline at end of file + new /obj/effect/mob_spawn/human/golem/adamantine(L.loc) + +/datum/game_mode/proc/update_eventmisc_icons_added(datum/mind/mob_mind) + var/datum/atom_hud/antag/antaghud = huds[ANTAG_HUD_EVENTMISC] + antaghud.join_hud(mob_mind.current) + set_antag_hud(mob_mind.current, "hudunknown1") + +/datum/game_mode/proc/update_eventmisc_icons_removed(datum/mind/mob_mind) + var/datum/atom_hud/antag/antaghud = huds[ANTAG_HUD_EVENTMISC] + antaghud.leave_hud(mob_mind.current) + set_antag_hud(mob_mind.current, null) \ No newline at end of file diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index beb52ee4d60..376668c16c4 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -460,6 +460,16 @@ var/round_start_time = 0 if(dronecount) to_chat(world, "There [dronecount>1 ? "were" : "was"] [dronecount] industrious maintenance [dronecount>1 ? "drones" : "drone"] this round.") + if(ticker.mode.eventmiscs.len) + var/emobtext = "" + for(var/datum/mind/eventmind in ticker.mode.eventmiscs) + emobtext += printeventplayer(eventmind) + emobtext += "
" + emobtext += printobjectives(eventmind) + emobtext += "
" + emobtext += "
" + to_chat(world, emobtext) + mode.declare_completion()//To declare normal completion. //calls auto_declare_completion_* for all modes diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index 4f06e53f7b4..0a943e6a170 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -518,7 +518,7 @@ if(ticker.mode.vampire_enthralled.len) dat += check_role_table("Vampire Thralls", ticker.mode.vampire_enthralled) - + if(ticker.mode.devils.len) dat += check_role_table("Devils", ticker.mode.devils) @@ -534,6 +534,9 @@ if(ticker.mode.greyshirts.len) dat += check_role_table("Greyshirts", ticker.mode.greyshirts) + if(ticker.mode.eventmiscs.len) + dat += check_role_table("Event Roles", ticker.mode.eventmiscs) + if(ts_spiderlist.len) var/list/spider_minds = list() for(var/mob/living/simple_animal/hostile/poison/terror_spider/S in ts_spiderlist) diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index 1e6992c86a6a75e558d8057e23c840bf43b5a3cd..5f1867b37d5136ff893830332b9580a47c5c75ef 100644 GIT binary patch delta 12555 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 delta 12460 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