Crew Transfer Fix (#15399)

This commit is contained in:
Geeves
2022-12-22 01:23:24 -03:00
committed by GitHub
parent 64c16f13ff
commit 31439b1b6c
3 changed files with 30 additions and 59 deletions
+11 -10
View File
@@ -233,24 +233,25 @@ var/datum/controller/subsystem/ticker/SSticker
if(Player.mind && !isnewplayer(Player))
if(Player.stat != DEAD)
var/turf/playerTurf = get_turf(Player)
var/area/playerArea = get_area(playerTurf)
if(evacuation_controller.round_over() && evacuation_controller.emergency_evacuation)
if(isNotAdminLevel(playerTurf.z))
to_chat(Player, "<span class='notice'><b>You managed to survive, but were marooned on [station_name()] as [Player.real_name]...</b></span>")
if(isStationLevel(playerTurf.z) && is_station_area(playerArea))
to_chat(Player, SPAN_GOOD(SPAN_BOLD("You managed to survive the events on [station_name()] as [Player.real_name].")))
else
to_chat(Player, "<span class='good'><b>You managed to survive the events on [station_name()] as [Player.real_name].</b></span>")
else if(isAdminLevel(playerTurf.z))
to_chat(Player, "<span class='good'><b>You successfully underwent crew transfer after events on [station_name()] as [Player.real_name].</b></span>")
to_chat(Player, SPAN_NOTICE(SPAN_BOLD("You managed to survive, but were marooned as [Player.real_name]...")))
else if(isStationLevel(playerTurf.z) && is_station_area(playerArea))
to_chat(Player, SPAN_GOOD(SPAN_BOLD("You successfully underwent the bluespace jump after the events on [station_name()] as [Player.real_name].")))
else if(issilicon(Player))
to_chat(Player, "<span class='good'><b>You remain operational after the events on [station_name()] as [Player.real_name].</b></span>")
to_chat(Player, SPAN_GOOD(SPAN_BOLD("You remain operational after the events on [station_name()] as [Player.real_name].")))
else
to_chat(Player, "<span class='notice'><b>You missed the crew transfer after the events on [station_name()] as [Player.real_name].</b></span>")
to_chat(Player, SPAN_NOTICE(SPAN_BOLD("You missed the crew transfer after the events on [station_name()] as [Player.real_name].")))
else
if(istype(Player,/mob/abstract/observer))
var/mob/abstract/observer/O = Player
if(!O.started_as_observer)
to_chat(Player, "<span class='warning'><b>You did not survive the events on [station_name()]...</b></span>")
to_chat(Player, SPAN_WARNING(SPAN_BOLD("You did not survive the events on [station_name()]...")))
else
to_chat(Player, "<span class='warning'><b>You did not survive the events on [station_name()]...</b></span>")
to_chat(Player, SPAN_WARNING(SPAN_BOLD("You did not survive the events on [station_name()]...")))
to_world("<br>")
for (var/mob/living/silicon/ai/aiPlayer in mob_list)
@@ -719,4 +720,4 @@ var/datum/controller/subsystem/ticker/SSticker
#undef SETUP_OK
#undef SETUP_REVOTE
#undef SETUP_REATTEMPT
#undef LOBBY_TIME
#undef LOBBY_TIME
+13 -49
View File
@@ -364,57 +364,33 @@ var/global/list/additional_antag_types = list()
discord_text = ""
var/clients = 0
var/surviving_humans = 0
var/surviving_total = 0
var/ghosts = 0
var/escaped_humans = 0
var/escaped_total = 0
var/escaped_on_pod_1 = 0
var/escaped_on_pod_2 = 0
var/escaped_on_pod_3 = 0
var/escaped_on_shuttle = 0
var/list/area/escape_locations = list(/area/shuttle/escape, /area/shuttle/escape_pod/pod1, /area/shuttle/escape_pod/pod2, /area/shuttle/escape_pod/pod3)
var/ghosts = 0
for(var/mob/M in player_list)
if(M.client)
clients++
if(ishuman(M))
if(M.stat != DEAD && isipc(M))
var/mob/living/carbon/human/H = M
if(M.stat != DEAD)
surviving_humans++
if(M.loc && M.loc.loc && (M.loc.loc.type in escape_locations))
escaped_humans++
if (isipc(H))
var/datum/species/machine/machine = H.species
machine.update_tag(H, H.client)
var/datum/species/machine/machine = H.species
machine.update_tag(H, H.client)
if(M.stat != DEAD)
var/turf/playerTurf = get_turf(M)
var/area/playerArea = get_area(playerTurf)
surviving_total++
if(M.loc && M.loc.loc && (M.loc.loc.type in escape_locations))
if(isStationLevel(playerTurf.z) && is_station_area(playerArea))
escaped_total++
if(M.loc && M.loc.loc && M.loc.loc.type == /area/shuttle/escape)
escaped_on_shuttle++
if(M.loc && M.loc.loc && M.loc.loc.type == /area/shuttle/escape_pod/pod1)
escaped_on_pod_1++
if(M.loc && M.loc.loc && M.loc.loc.type == /area/shuttle/escape_pod/pod2)
escaped_on_pod_2++
if(M.loc && M.loc.loc && M.loc.loc.type == /area/shuttle/escape_pod/pod3)
escaped_on_pod_3++
if(isobserver(M))
ghosts++
var/text = ""
if(surviving_total > 0)
text += "<br>There [surviving_total>1 ? "were <b>[surviving_total] survivors</b>" : "was <b>one survivor</b>"]"
text += " (<b>[escaped_total>0 ? escaped_total : "none"] [evacuation_controller.emergency_evacuation ? "escaped" : "transferred"]</b>) and <b>[ghosts] ghosts</b>.<br>"
text += " (<b>[escaped_total>0 ? escaped_total : "none"] [evacuation_controller.emergency_evacuation ? "escaped" : "bluespace jumped"]</b>) and <b>[ghosts] ghosts</b>.<br>"
discord_text += "There [surviving_total>1 ? "were **[surviving_total] survivors**" : "was **one survivor**"]"
discord_text += " ([escaped_total>0 ? escaped_total : "none"] [evacuation_controller.emergency_evacuation ? "escaped" : "transferred"]) and **[ghosts] ghosts**."
discord_text += " ([escaped_total>0 ? escaped_total : "none"] [evacuation_controller.emergency_evacuation ? "escaped" : "bluespace jumped"]) and **[ghosts] ghosts**."
else
text += "There were <b>no survivors</b> (<b>[ghosts] ghosts</b>)."
@@ -425,25 +401,13 @@ var/global/list/additional_antag_types = list()
post_webhook_event(WEBHOOK_ROUNDEND, list("survivours"=surviving_total, "escaped"=escaped_total, "ghosts"=ghosts, "gamemode"=name, "gameid"=game_id, "antags"=antag_text))
if(clients > 0)
feedback_set("round_end_clients",clients)
feedback_set("round_end_clients", clients)
if(ghosts > 0)
feedback_set("round_end_ghosts",ghosts)
if(surviving_humans > 0)
feedback_set("survived_human",surviving_humans)
feedback_set("round_end_ghosts", ghosts)
if(surviving_total > 0)
feedback_set("survived_total",surviving_total)
if(escaped_humans > 0)
feedback_set("escaped_human",escaped_humans)
feedback_set("survived_total", surviving_total)
if(escaped_total > 0)
feedback_set("escaped_total",escaped_total)
if(escaped_on_shuttle > 0)
feedback_set("escaped_on_shuttle",escaped_on_shuttle)
if(escaped_on_pod_1 > 0)
feedback_set("escaped_on_pod_1",escaped_on_pod_1)
if(escaped_on_pod_2 > 0)
feedback_set("escaped_on_pod_2",escaped_on_pod_2)
if(escaped_on_pod_3 > 0)
feedback_set("escaped_on_pod_3",escaped_on_pod_3)
feedback_set("escaped_total", escaped_total)
return 0
@@ -0,0 +1,6 @@
author: Geeves
delete-after: True
changes:
- bugfix: "You now count as successfully transferring at roundend if you're on the ship's Z-level and in a ship area."