diff --git a/code/controllers/subsystems/initialization/atlas.dm b/code/controllers/subsystems/initialization/atlas.dm index 7bd7be18ce5..951b619f8e8 100644 --- a/code/controllers/subsystems/initialization/atlas.dm +++ b/code/controllers/subsystems/initialization/atlas.dm @@ -134,7 +134,6 @@ var/datum/controller/subsystem/atlas/SSatlas /datum/controller/subsystem/atlas/proc/load_map_meta() // This needs to be done after current_map is set, but before mapload. - lobby_image = new /obj/effect/lobby_image admin_departments = list( "[current_map.boss_name]", diff --git a/code/modules/mob/abstract/new_player/login.dm b/code/modules/mob/abstract/new_player/login.dm index debe62a2448..7f75440b574 100644 --- a/code/modules/mob/abstract/new_player/login.dm +++ b/code/modules/mob/abstract/new_player/login.dm @@ -1,26 +1,3 @@ -/var/obj/effect/lobby_image - -/obj/effect/lobby_image - name = "Aurorastation" - desc = "This shouldn't be read" - icon = 'icons/misc/title.dmi' - screen_loc = "WEST,SOUTH" - -/obj/effect/lobby_image/New() - ..() - if (current_map.lobby_icon) - icon = current_map.lobby_icon - var/list/known_icon_states = icon_states(icon) - for(var/lobby_screen in current_map.lobby_screens) - if(!(lobby_screen in known_icon_states)) - error("Lobby screen '[lobby_screen]' did not exist in the icon set [icon].") - current_map.lobby_screens -= lobby_screen - - if(current_map.lobby_screens.len) - icon_state = pick(current_map.lobby_screens) - else - icon_state = known_icon_states[1] - /mob/abstract/new_player var/client/my_client // Need to keep track of this ourselves, since by the time Logout() is called the client has already been nulled @@ -37,7 +14,6 @@ mind.current = src loc = null - show_title() my_client = client sight |= SEE_TURFS @@ -45,13 +21,4 @@ spawn(40) if(client) - client.playtitlemusic() - -/mob/abstract/new_player/proc/show_title() - set waitfor = FALSE - if (lobby_image) - client.screen += lobby_image - return - - sleep(5) - .() + client.playtitlemusic() \ No newline at end of file diff --git a/code/modules/mob/abstract/new_player/logout.dm b/code/modules/mob/abstract/new_player/logout.dm index b223deb6681..03a9fffde12 100644 --- a/code/modules/mob/abstract/new_player/logout.dm +++ b/code/modules/mob/abstract/new_player/logout.dm @@ -3,7 +3,6 @@ // see login.dm if(my_client) - my_client.screen -= lobby_image my_client = null ..() diff --git a/code/modules/mob/abstract/new_player/menu.dm b/code/modules/mob/abstract/new_player/menu.dm index 392d61b7265..0f912e20021 100644 --- a/code/modules/mob/abstract/new_player/menu.dm +++ b/code/modules/mob/abstract/new_player/menu.dm @@ -51,6 +51,7 @@ /obj/screen/new_player/title name = "Title" screen_loc = "WEST,SOUTH" + var/lobby_index = 1 /obj/screen/new_player/title/Initialize() icon = current_map.lobby_icon @@ -61,12 +62,32 @@ current_map.lobby_screens -= lobby_screen if(length(current_map.lobby_screens)) - icon_state = pick(current_map.lobby_screens) + if(current_map.lobby_transitions && isnum(current_map.lobby_transitions)) + icon_state = current_map.lobby_screens[lobby_index] + if(Master.initializing) + spawn(current_map.lobby_transitions) + Update() + else + addtimer(CALLBACK(src, .proc/Update), current_map.lobby_transitions, TIMER_UNIQUE | TIMER_CLIENT_TIME | TIMER_OVERRIDE) + else + icon_state = pick(current_map.lobby_screens) else - icon_state = known_icon_states[1] + icon_state = LAZYACCESS(known_icon_states, 1) . = ..() +/obj/screen/new_player/title/proc/Update() + lobby_index += 1 + if (lobby_index > length(current_map.lobby_screens)) + lobby_index = 1 + animate(src, alpha = 0, time = 1 SECOND) + animate(alpha = 255, icon_state = current_map.lobby_screens[lobby_index], time = 1 SECOND) + if(Master.initializing) + spawn(current_map.lobby_transitions) + Update() + else + addtimer(CALLBACK(src, .proc/Update), current_map.lobby_transitions, TIMER_UNIQUE | TIMER_CLIENT_TIME | TIMER_OVERRIDE) + /obj/screen/new_player/selection/join_game name = "Join Game" icon_state = "unready" @@ -105,10 +126,14 @@ /obj/screen/new_player/selection/MouseEntered(location,control,params) //Yellow color for the font color = "#ffb200" + var/matrix/M = matrix() + M.Scale(1.1, 1.1) + animate(src, transform = M, time = 1, easing = CUBIC_EASING) return ..() /obj/screen/new_player/selection/MouseExited(location,control,params) color = null + animate(src, transform = null, time = 1, easing = CUBIC_EASING) return ..() /obj/screen/new_player/selection/join_game/New(var/datum/hud/H) diff --git a/html/changelogs/MDP-smoothmoves.yml b/html/changelogs/MDP-smoothmoves.yml new file mode 100644 index 00000000000..d926eaff13e --- /dev/null +++ b/html/changelogs/MDP-smoothmoves.yml @@ -0,0 +1,43 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: MoondancerPony + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Makes the lobby screen fade smoothly." + - rscadd: "Makes the lobby buttons bigger when you mouse over them." + - rscdel: "Removed the old lobby background which was left in by accident." diff --git a/icons/misc/aurora.dmi b/icons/misc/aurora.dmi index 6dff8658133..1e1b5f29e51 100644 Binary files a/icons/misc/aurora.dmi and b/icons/misc/aurora.dmi differ diff --git a/maps/_common/mapsystem/map.dm b/maps/_common/mapsystem/map.dm index 4dde40d85b3..dc916c67040 100644 --- a/maps/_common/mapsystem/map.dm +++ b/maps/_common/mapsystem/map.dm @@ -66,6 +66,7 @@ var/lobby_icon // The icon which contains the lobby image(s) var/list/lobby_screens = list("title") // The list of lobby screen to pick() from. If left unset the first icon state is always selected. + var/lobby_transitions = FALSE // If a number, transition between the lobby screens with this delay instead of picking just one. var/use_overmap = FALSE //If overmap should be used (including overmap space travel override) var/overmap_size = 20 //Dimensions of overmap zlevel if overmap is used. diff --git a/maps/aurora/code/aurora.dm b/maps/aurora/code/aurora.dm index d56c0a62ebc..b1c0e2f9165 100644 --- a/maps/aurora/code/aurora.dm +++ b/maps/aurora/code/aurora.dm @@ -8,7 +8,8 @@ path = "aurora" lobby_icon = 'icons/misc/aurora.dmi' - lobby_screens = list("corp_titles") + lobby_screens = list("nanotrasen", "idris", "hephaestus", "zavodskoi") + lobby_transitions = 10 SECONDS station_levels = list(2, 3, 4, 5, 6, 7) admin_levels = list(1)