From fd9bc8c35e66e59cdf66f6bedc601b5020d6c6d6 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Thu, 4 Jan 2018 00:59:07 -0500 Subject: [PATCH] mob folder - camera to dead --- code/modules/mob/dead/dead.dm | 58 +++++++++++++------ .../modules/mob/dead/new_player/new_player.dm | 24 +------- .../mob/dead/new_player/preferences_setup.dm | 5 +- code/modules/mob/dead/observer/observer.dm | 7 +-- code/modules/mob/dead/observer/say.dm | 51 ++++++++-------- 5 files changed, 75 insertions(+), 70 deletions(-) diff --git a/code/modules/mob/dead/dead.dm b/code/modules/mob/dead/dead.dm index 1142d2d6cb..59e8911659 100644 --- a/code/modules/mob/dead/dead.dm +++ b/code/modules/mob/dead/dead.dm @@ -2,6 +2,9 @@ INITIALIZE_IMMEDIATE(/mob/dead) +/mob/dead + sight = SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF + /mob/dead/Initialize() if(initialized) stack_trace("Warning: [src]([type]) initialized multiple times!") @@ -11,8 +14,9 @@ INITIALIZE_IMMEDIATE(/mob/dead) prepare_huds() - if(CONFIG_GET(string/cross_server_address)) + if(length(CONFIG_GET(keyed_string_list/cross_server))) verbs += /mob/dead/proc/server_hop + set_focus(src) return INITIALIZE_HINT_NORMAL /mob/dead/dust() //ghosts can't be vaporised. @@ -45,26 +49,46 @@ INITIALIZE_IMMEDIATE(/mob/dead) else stat(null, "Time To Start: SOON") + stat(null, "Players: [SSticker.totalPlayers]") + if(client.holder) + stat(null, "Players Ready: [SSticker.totalPlayersReady]") + /mob/dead/proc/server_hop() set category = "OOC" set name = "Server Hop!" set desc= "Jump to the other server" if(notransform) return - var/csa = CONFIG_GET(string/cross_server_address) - if(csa) - verbs -= /mob/dead/proc/server_hop - to_chat(src, "Server Hop has been disabled.") + var/list/csa = CONFIG_GET(keyed_string_list/cross_server) + var/pick + switch(csa.len) + if(0) + verbs -= /mob/dead/proc/server_hop + to_chat(src, "Server Hop has been disabled.") + if(1) + pick = csa[0] + else + pick = input(src, "Pick a server to jump to", "Server Hop") as null|anything in csa + + if(!pick) return - if (alert(src, "Jump to server running at [csa]?", "Server Hop", "Yes", "No") != "Yes") - return 0 - if (client && csa) - to_chat(src, "Sending you to [csa].") - new /obj/screen/splash(client) - notransform = TRUE - sleep(29) //let the animation play - notransform = FALSE - winset(src, null, "command=.options") //other wise the user never knows if byond is downloading resources - client << link(csa + "?server_hop=[key]") - else - to_chat(src, "There is no other server configured!") + + var/addr = csa[pick] + + if(alert(src, "Jump to server [pick] ([addr])?", "Server Hop", "Yes", "No") != "Yes") + return + + var/client/C = client + to_chat(C, "Sending you to [pick].") + new /obj/screen/splash(C) + + notransform = TRUE + sleep(29) //let the animation play + notransform = FALSE + + if(!C) + return + + winset(src, null, "command=.options") //other wise the user never knows if byond is downloading resources + + C << link("[addr]?server_hop=[key]") diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 573183df96..0ee1e91d3a 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -73,26 +73,6 @@ popup.open(0) return -/mob/dead/new_player/Stat() - ..() - - if(statpanel("Lobby")) - stat("Game Mode:", (SSticker.hide_mode) ? "Secret" : "[GLOB.master_mode]") - stat("Map:", SSmapping.config.map_name) - - if(SSticker.current_state == GAME_STATE_PREGAME) - var/time_remaining = SSticker.GetTimeLeft() - if(time_remaining > 0) - stat("Time To Start:", "[round(time_remaining/10)]s") - else if(time_remaining == -10) - stat("Time To Start:", "DELAYED") - else - stat("Time To Start:", "SOON") - - stat("Players:", "[SSticker.totalPlayers]") - if(client.holder) - stat("Players Ready:", "[SSticker.totalPlayersReady]") - /mob/dead/new_player/Topic(href, href_list[]) if(src != usr) @@ -317,15 +297,13 @@ return 0 if(job.required_playtime_remaining(client)) return 0 - if(CONFIG_GET(flag/enforce_human_authority) && !client.prefs.pref_species.qualifies_for_rank(rank, client.prefs.features)) - return 0 return 1 /mob/dead/new_player/proc/AttemptLateSpawn(rank) if(!IsJobAvailable(rank)) alert(src, "[rank] is not available. Please try another.") - return 0 + return FALSE if(SSticker.late_join_disabled) alert(src, "An administrator has disabled late join spawning.") diff --git a/code/modules/mob/dead/new_player/preferences_setup.dm b/code/modules/mob/dead/new_player/preferences_setup.dm index f362f09a65..c9710a5457 100644 --- a/code/modules/mob/dead/new_player/preferences_setup.dm +++ b/code/modules/mob/dead/new_player/preferences_setup.dm @@ -1,4 +1,5 @@ -//The mob should have a gender you want before running this proc. Will run fine without H + + //The mob should have a gender you want before running this proc. Will run fine without H /datum/preferences/proc/random_character(gender_override) if(gender_override) gender = gender_override @@ -19,7 +20,7 @@ features = random_features() age = rand(AGE_MIN,AGE_MAX) -/datum/preferences/proc/update_preview_icon(nude = 0) +/datum/preferences/proc/update_preview_icon(nude = FALSE) // Silicons only need a very basic preview since there is no customization for them. if(job_engsec_high) switch(job_engsec_high) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 8bf80eccb8..cc05486895 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -13,7 +13,6 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) density = FALSE canmove = 0 anchored = TRUE // don't get pushed around - sight = SEE_TURFS | SEE_MOBS | SEE_OBJS | SEE_SELF see_invisible = SEE_INVISIBLE_OBSERVER see_in_dark = 100 invisibility = INVISIBILITY_OBSERVER @@ -136,13 +135,13 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) /mob/dead/observer/narsie_act() var/old_color = color color = "#960000" - animate(src, color = old_color, time = 10, flags_1 = ANIMATION_PARALLEL) + animate(src, color = old_color, time = 10, flags = ANIMATION_PARALLEL) addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 10) /mob/dead/observer/ratvar_act() var/old_color = color color = "#FAE48C" - animate(src, color = old_color, time = 10, flags_1 = ANIMATION_PARALLEL) + animate(src, color = old_color, time = 10, flags = ANIMATION_PARALLEL) addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 10) /mob/dead/observer/Destroy() @@ -767,8 +766,8 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp //Istype so we filter out points of interest that are not mobs if(client && mob_eye && istype(mob_eye)) client.eye = mob_eye - client.screen = list() if(mob_eye.hud_used) + client.screen = list() LAZYINITLIST(mob_eye.observers) mob_eye.observers |= src mob_eye.hud_used.show_hud(mob_eye.hud_used.hud_version, src) diff --git a/code/modules/mob/dead/observer/say.dm b/code/modules/mob/dead/observer/say.dm index ad64c53fc7..c8cf1a5f1b 100644 --- a/code/modules/mob/dead/observer/say.dm +++ b/code/modules/mob/dead/observer/say.dm @@ -1,25 +1,28 @@ -/mob/dead/observer/say(message) - message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) - - if (!message) - return - +/mob/dead/observer/say(message) + message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) + + if (!message) + return + log_talk(src,"Ghost/[src.key] : [message]", LOGSAY) - - . = src.say_dead(message) - -/mob/dead/observer/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode) - var/atom/movable/to_follow = speaker - if(radio_freq) - var/atom/movable/virtualspeaker/V = speaker - - if(isAI(V.source)) - var/mob/living/silicon/ai/S = V.source - to_follow = S.eyeobj - else - to_follow = V.source - var/link = FOLLOW_LINK(src, to_follow) - // Recompose the message, because it's scrambled by default - message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode) - to_chat(src, "[link] [message]") - + + if(check_emote(message)) + return + + . = say_dead(message) + +/mob/dead/observer/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode) + var/atom/movable/to_follow = speaker + if(radio_freq) + var/atom/movable/virtualspeaker/V = speaker + + if(isAI(V.source)) + var/mob/living/silicon/ai/S = V.source + to_follow = S.eyeobj + else + to_follow = V.source + var/link = FOLLOW_LINK(src, to_follow) + // Recompose the message, because it's scrambled by default + message = compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode) + to_chat(src, "[link] [message]") +