diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index c5c2dfd792..a45b9ec1d6 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -1001,7 +1001,6 @@ var/new_minute = input(usr, "What minute do you want to change to?", "Change Time", text2num(current_time_datum.show_time("mm")) ) as null|num if(!isnull(new_minute)) var/type_needed = current_time_datum.type - world << "Type is [type_needed]." var/datum/time/new_time = new type_needed() new_time = new_time.add_hours(new_hour) new_time = new_time.add_minutes(new_minute) diff --git a/code/modules/mob/living/lobby/lobby.dm b/code/modules/mob/living/lobby/lobby.dm deleted file mode 100644 index f9dec30f84..0000000000 --- a/code/modules/mob/living/lobby/lobby.dm +++ /dev/null @@ -1,381 +0,0 @@ -//This is a mob that's used for the new lobby. For the old lobby mob, check code/modules/mob/new_player.dm -/mob/living/lobby - name = "You" - desc = "Who else would it be?" - icon = 'icons/mob/mob.dmi' - icon_state = "ghost" - var/ready = 0 - var/spawning = 0//Referenced when you want to delete the new_player later on in the code. - var/totalPlayers = 0 //Player counts for the Lobby tab - var/totalPlayersReady = 0 - var/isolated = 1 //Used to check if we should maintain the illusion of being alone. - var/do_adjacency_check = 1 - universal_speak = 1 - var/list/visisble_players = list() - var/list/furnature = list() - var/list/shown_furnature = list() - -// invisibility = 101 - - density = 0 - - -/mob/living/lobby/New() - mob_list += src - go_to_lobby() - -//Gratutious copypasta -/mob/living/lobby/Stat() - ..() - - if(statpanel("Lobby") && ticker) - if(ticker.hide_mode) - stat("Game Mode:", "Secret") - else - if(ticker.hide_mode == 0) - stat("Game Mode:", "[master_mode]") // Old setting for showing the game mode - - if(ticker.current_state == GAME_STATE_PREGAME) - stat("Time To Start:", "[ticker.pregame_timeleft][round_progressing ? "" : " (DELAYED)"]") - stat("Players: [totalPlayers]", "Players Ready: [totalPlayersReady]") - totalPlayers = 0 - totalPlayersReady = 0 - for(var/mob/new_player/player in player_list) - stat("[player.key]", (player.ready) ? ("(Playing)"):(null)) - totalPlayers++ - if(player.ready) - totalPlayersReady++ - for(var/mob/living/lobby/player in player_list) - stat("[player.key]", (player.ready) ? ("(Playing)"):(null)) - totalPlayers++ - if(player.ready) - totalPlayersReady++ - -/mob/living/lobby/proc/update_details() - name = client.prefs.real_name - update_icon() - - -/mob/living/lobby/update_icon() - ..() - client.prefs.update_preview_icon() - icon = client.prefs.preview_icon - - -/mob/living/lobby/proc/go_to_lobby() - var/obj/O = locate("landmark*Lobby-Start") - if(istype(O)) - loc = O.loc - else - src << "Unfortunately, the game wasn't able to find you a suitable location for your lobby mob to spawn. \ - Please report this as a bug." - -/* -/mob/living/lobby/proc/IsJobAvailable(rank) - var/datum/job/job = job_master.GetJob(rank) - if(!job) - return 0 - if(!job.is_position_available()) - return 0 - if(jobban_isbanned(src,rank)) - return 0 - if(!job.player_old_enough(src.client)) - return 0 - return 1 - -/mob/living/lobby/proc/close_spawn_windows() - src << browse(null, "window=latechoices") //closes late choices window - src << browse(null, "window=playersetup") //closes the player setup window - -/mob/living/lobby/proc/LateChoices() - var/name = client.prefs.be_random_name ? "friend" : client.prefs.real_name - - var/dat = "
" - dat += "Welcome, [name].
" - dat += "Round Duration: [round_duration()]
" - - if(emergency_shuttle) //In case Nanotrasen decides reposess CentComm's shuttles. - if(emergency_shuttle.going_to_centcom()) //Shuttle is going to centcomm, not recalled - dat += "The station has been evacuated.
" - if(emergency_shuttle.online()) - if (emergency_shuttle.evac) // Emergency shuttle is past the point of no recall - dat += "The station is currently undergoing evacuation procedures.
" - else // Crew transfer initiated - dat += "The station is currently undergoing crew transfer procedures.
" - - dat += "Choose from the following open positions:
" - for(var/datum/job/job in job_master.occupations) - if(job && IsJobAvailable(job.title)) - var/active = 0 - // Only players with the job assigned and AFK for less than 10 minutes count as active - for(var/mob/M in player_list) if(M.mind && M.client && M.mind.assigned_role == job.title && M.client.inactivity <= 10 * 60 * 10) - active++ - dat += "[job.title] ([job.current_positions]) (Active: [active])
" - - dat += "
" - src << browse(dat, "window=latechoices;size=300x640;can_close=1") - -/mob/living/lobby/proc/AttemptLateSpawn(rank,var/spawning_at) - world << "AttemptLateSpawn() was called." - if (src != usr) - return 0 - if(!ticker || ticker.current_state != GAME_STATE_PLAYING) - usr << "\red The round is either not ready, or has already finished..." - return 0 - if(!config.enter_allowed) - usr << "There is an administrative lock on entering the game!" - return 0 - if(!IsJobAvailable(rank)) - src << alert("[rank] is not available. Please try another.") - return 0 - - spawning = 1 - close_spawn_windows() - - job_master.AssignRole(src, rank, 1) - - var/mob/living/character = create_character() //creates the human and transfers vars and mind - character = job_master.EquipRank(character, rank, 1) //equips the human - UpdateFactionList(character) - equip_custom_items(character) - - // AIs don't need a spawnpoint, they must spawn at an empty core - if(character.mind.assigned_role == "AI") - - character = character.AIize(move=0) // AIize the character, but don't move them yet - - // IsJobAvailable for AI checks that there is an empty core available in this list - var/obj/structure/AIcore/deactivated/C = empty_playable_ai_cores[1] - empty_playable_ai_cores -= C - - character.loc = C.loc - -// AnnounceCyborg(character, rank, "has been downloaded to the empty core in \the [character.loc.loc]") - ticker.mode.latespawn(character) - - qdel(C) - qdel(src) - return - - //Find our spawning point. - var/join_message = job_master.LateSpawn(character, rank) - - character.lastarea = get_area(loc) - // Moving wheelchair if they have one - if(character.buckled && istype(character.buckled, /obj/structure/bed/chair/wheelchair)) - character.buckled.loc = character.loc - character.buckled.set_dir(character.dir) - - ticker.mode.latespawn(character) - - if(character.mind.assigned_role != "Cyborg") - data_core.manifest_inject(character) - ticker.minds += character.mind//Cyborgs and AIs handle this in the transform proc. //TODO!!!!! ~Carn - - //Grab some data from the character prefs for use in random news procs. - - AnnounceArrival(character, rank, join_message) -// else -// AnnounceCyborg(character, rank, join_message) - - qdel(src) - -/mob/living/lobby/proc/has_admin_rights() - return check_rights(R_ADMIN, 0, src) - -/mob/living/lobby/proc/is_species_whitelisted(datum/species/S) - if(!S) - return 1 - return is_alien_whitelisted(src, S.name) || !config.usealienwhitelist || !(S.spawn_flags & IS_WHITELISTED) - -/mob/living/lobby/proc/create_character() - spawning = 1 - close_spawn_windows() - - var/mob/living/carbon/human/new_character - - var/use_species_name - var/datum/species/chosen_species - if(client.prefs.species) - chosen_species = all_species[client.prefs.species] - use_species_name = chosen_species.get_station_variant() //Only used by pariahs atm. - - if(chosen_species && use_species_name) - // Have to recheck admin due to no usr at roundstart. Latejoins are fine though. - if(is_species_whitelisted(chosen_species) || has_admin_rights()) - new_character = new(loc, use_species_name) - - if(!new_character) - new_character = new(loc) - - new_character.lastarea = get_area(loc) - - for(var/lang in client.prefs.alternate_languages) - var/datum/language/chosen_language = all_languages[lang] - if(chosen_language) - if(!config.usealienwhitelist || !(chosen_language.flags & WHITELISTED) || is_alien_whitelisted(src, lang) || has_admin_rights() \ - || (new_character.species && (chosen_language.name in new_character.species.secondary_langs))) - new_character.add_language(lang) - - if(ticker.random_players) - new_character.gender = pick(MALE, FEMALE) - client.prefs.real_name = random_name(new_character.gender) - client.prefs.randomize_appearance_for(new_character) - else - client.prefs.copy_to(new_character) - - src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // MAD JAMS cant last forever yo - - if(mind) - mind.active = 0 //we wish to transfer the key manually - mind.original = new_character - mind.transfer_to(new_character) //won't transfer key since the mind is not active - - new_character.name = real_name - new_character.dna.ready_dna(new_character) - new_character.dna.b_type = client.prefs.b_type - new_character.sync_organ_dna() - if(client.prefs.disabilities) - // Set defer to 1 if you add more crap here so it only recalculates struc_enzymes once. - N3X - new_character.dna.SetSEState(GLASSESBLOCK,1,0) - new_character.disabilities |= NEARSIGHTED - - // And uncomment this, too. - //new_character.dna.UpdateSE() - - // Do the initial caching of the player's body icons. - new_character.force_update_limbs() - new_character.update_eyes() - new_character.regenerate_icons() - - new_character.key = key //Manually transfer the key to log them in - - return new_character - -/mob/living/lobby/proc/late_join() - if(!ticker || ticker.current_state != GAME_STATE_PLAYING) - usr << "The round is either not ready, or has already finished..." - return - - if(client.prefs.species != "Human" && !check_rights(R_ADMIN, 0)) - if(!is_alien_whitelisted(src, client.prefs.species) && config.usealienwhitelist) - src << alert("You are currently not whitelisted to play [client.prefs.species].") - return 0 - - var/datum/species/S = all_species[client.prefs.species] - if(!(S.spawn_flags & IS_WHITELISTED)) - src << alert("Your current species,[client.prefs.species], is not available for play on the station.") - return 0 - - LateChoices() - -/mob/living/lobby/verb/late_join_verb() - set name = "Late join" - set desc = "Late join manually." - set category = "Lobby Verbs" - late_join() - -/mob/living/lobby/proc/become_observer() - if(alert(src,"Are you sure you wish to observe? You will have to wait 30 minutes before being able to respawn!","Player Setup","Yes","No") == "Yes") - if(!client) - return 1 - var/mob/dead/observer/observer = new() - - spawning = 1 - src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // MAD JAMS cant last forever yo - - - observer.started_as_observer = 1 - close_spawn_windows() - var/obj/O = locate("landmark*Observer-Start") - if(istype(O)) - src << "Now teleporting." - observer.loc = O.loc - else - src << "Could not locate an observer spawn point. Use the Teleport verb to jump to the station map." - observer.timeofdeath = world.time // Set the time of death so that the respawn timer works correctly. - - announce_ghost_joinleave(src) - client.prefs.update_preview_icon() - observer.icon = client.prefs.preview_icon - observer.alpha = 127 - - if(client.prefs.be_random_name) - client.prefs.real_name = random_name(client.prefs.gender) - observer.real_name = client.prefs.real_name - observer.name = observer.real_name - if(!client.holder && !config.antag_hud_allowed) // For new ghosts we remove the verb from even showing up if it's not allowed. - observer.verbs -= /mob/dead/observer/verb/toggle_antagHUD // Poor guys, don't know what they are missing! - observer.key = key - qdel(src) - - return 1 - -/mob/living/lobby/verb/observe_verb() - set name = "Observe" - set desc = "Lets you observe the round. Remember, you won't be able to join the game for another 30 minutes!" - set category = "Lobby Verbs" - become_observer() - -/mob/living/lobby/proc/ViewManifest() - var/dat = "" - dat += "

Northern Star Manifest

" - dat += data_core.get_manifest(OOC = 1) - - src << browse(dat, "window=manifest;size=370x420;can_close=1") - -/mob/living/lobby/verb/show_manifest() - set name = "Show Manifest" - set desc = "Views a copy of the Northern Star's manifest." - set category = "Lobby Verbs" - ViewManifest() - -/mob/living/lobby/MayRespawn() - return 1 - -/mob/living/lobby/verb/return_to_lobby() - set name = "Return to Lobby" - set desc = "For testing only!" - set category = "Lobby Verbs" - - var/obj/O = locate("landmark*Lobby-Start") - if(istype(O)) - src << "Now teleporting." - loc = O.loc - -/mob/living/lobby/Topic(href, href_list[]) - if(!client) - return 0 - if(href_list["SelectedJob"]) - - if(!config.enter_allowed) - usr << "There is an administrative lock on entering the game!" - return - else if(ticker && ticker.mode && ticker.mode.explosion_in_progress) - usr << "The station is currently exploding. Joining would go poorly." - return - - if(client.prefs.species != "Human") - if(!is_alien_whitelisted(src, client.prefs.species) && config.usealienwhitelist) - src << alert("You are currently not whitelisted to play [client.prefs.species].") - return 0 - - var/datum/species/S = all_species[client.prefs.species] - if(!(S.spawn_flags & CAN_JOIN)) - src << alert("Your current species, [client.prefs.species], is not available for play on the station.") - return 0 - - AttemptLateSpawn(href_list["SelectedJob"],client.prefs.spawnpoint) - return -*/ -/mob/proc/make_into_lobby_mob() - var/mob/new_player/M = new /mob/living/lobby() - if(!client) - log_game("[usr.key] AM failed due to disconnect.") - qdel(M) - return - - M.key = key - if(M.mind) - M.mind.reset() - return \ No newline at end of file diff --git a/code/modules/mob/living/lobby/login.dm b/code/modules/mob/living/lobby/login.dm deleted file mode 100644 index b51b74c83e..0000000000 --- a/code/modules/mob/living/lobby/login.dm +++ /dev/null @@ -1,24 +0,0 @@ -/mob/living/lobby - var/client/my_client // Need to keep track of this ourselves, since by the time Logout() is called the client has already been nulled - -/mob/living/lobby/Login() - update_details() - if(join_motd) - src << "
[join_motd]
" - - if(!mind) - mind = new /datum/mind(key) - mind.active = 1 - mind.current = src - - my_client = client - - player_list |= src - - client.playtitlemusic() - - src << "You are currently inside your residence. Have a look around, if you want.
\ - The wardrobe is used to customize how you look, as well as select the job you plan to go to the Northern Star as (character setup).
\ - Your laptop will show you a copy of the Northern Star's manifest.
\ - Your HV (Holovision) is also there, assuming you're not busy right now (click it to observe the round as a ghost).
\ - When you're ready to leave for the Northern Star (join the round), click the airlock.
" \ No newline at end of file diff --git a/code/modules/mob/living/lobby/say.dm b/code/modules/mob/living/lobby/say.dm deleted file mode 100644 index b5c19b5acf..0000000000 --- a/code/modules/mob/living/lobby/say.dm +++ /dev/null @@ -1,23 +0,0 @@ -/mob/living/lobby/say(var/message) - message = sanitize(message) - - if (!message) - return - - log_say("Lobby/[src.key] : [message]") - - src << "[src] says, \"[message]\"" // Since lobby mobs are "isolated", only they hear themselves. - - -/mob/living/lobby/emote(var/act, var/type, var/message) - //message = sanitize(message) - already sanitized in verb/me_verb() - - if(!message) - return - - if(act != "me") - return - - log_emote("Lobby/[src.key] : [message]") - - src << "[src] [message]" \ No newline at end of file