Skip to content

Commit

Permalink
fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
johndoe2013 committed Jul 18, 2024
1 parent 5c4a8c9 commit b572e05
Show file tree
Hide file tree
Showing 8 changed files with 68 additions and 24 deletions.
5 changes: 5 additions & 0 deletions code/_onclick/hud/fullscreen.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
var/list/fullscreens = list()

/mob/proc/overlay_fullscreen(category, type, severity)
if(ishuman(src))
var/mob/living/carbon/human/human_mob = src
if(human_mob.in_cutscene && (category != "simulacrum_ko"))
return

var/atom/movable/screen/fullscreen/screen = fullscreens[category]
if (!screen || screen.type != type)
// needs to be recreated
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -246,11 +246,11 @@
list("Marine Radio Headset", round(scale * 15), /obj/item/device/radio/headset/almayer/sof/survivor_forecon, VENDOR_ITEM_REGULAR),

list("WEBBINGS", -1, null, null),
list("Brown Webbing Vest", round(scale * 1.25), /obj/item/clothing/accessory/storage/black_vest/brown_vest, VENDOR_ITEM_REGULAR),
list("Black Webbing Vest", round(max(1,(scale * 0.5))), /obj/item/clothing/accessory/storage/black_vest, VENDOR_ITEM_REGULAR),
list("Webbing", round(scale * 2), /obj/item/clothing/accessory/storage/webbing, VENDOR_ITEM_REGULAR),
list("Drop Pouch", round(max(1,(scale * 0.5))), /obj/item/clothing/accessory/storage/droppouch, VENDOR_ITEM_REGULAR),
list("Shoulder Holster", round(max(1,(scale * 0.5))), /obj/item/clothing/accessory/storage/holster, VENDOR_ITEM_REGULAR),
list("Brown Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest/brown_vest, VENDOR_ITEM_REGULAR),
list("Black Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest, VENDOR_ITEM_REGULAR),
list("Webbing", 0, /obj/item/clothing/accessory/storage/webbing, VENDOR_ITEM_REGULAR),
list("Drop Pouch", 0, /obj/item/clothing/accessory/storage/droppouch, VENDOR_ITEM_REGULAR),
list("Shoulder Holster", 0, /obj/item/clothing/accessory/storage/holster, VENDOR_ITEM_REGULAR),

list("ARMOR", -1, null, null),
list("M3-R Pattern Recon Armor", round(scale * 10), /obj/item/clothing/suit/storage/marine/rto/forecon, VENDOR_ITEM_REGULAR),
Expand Down
3 changes: 1 addition & 2 deletions code/modules/clothing/suits/marine_armor.dm
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@
/obj/item/tool/lighter,
/obj/item/storage/bible,
/obj/item/attachable/bayonet,
/obj/item/storage/backpack/general_belt,
/obj/item/storage/large_holster/machete,
/obj/item/storage/belt/gun/type47,
/obj/item/storage/belt/gun/m4a3,
Expand Down Expand Up @@ -427,7 +426,7 @@

if(is_type_in_list(equipping_item, smartgun_back))
return

. = COMPONENT_HUMAN_CANCEL_ATTEMPT_EQUIP

if(equipping_item.flags_equip_slot == SLOT_BACK)
Expand Down
18 changes: 18 additions & 0 deletions code/modules/simulacrum/simulacrumcutscenes.dm
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
/mob/living/carbon/human
var/in_cutscene = FALSE

/proc/simulacrum_text_1(mob/living/carbon/human/human)
human.in_cutscene = TRUE
var/atom/movable/screen/text/screen_text/text_box = new /atom/movable/screen/text/screen_text/simulacrum_message()
text_box.text_to_play = "Somewhere..."
text_box.player = human.client
Expand All @@ -24,8 +28,10 @@
body.after_play()
body2.after_play()
teleport_to_simulation(human, TRUE, TRUE)
human.in_cutscene = FALSE

/proc/simulacrum_text_2(mob/living/carbon/human/human, should_roar)
human.in_cutscene = TRUE
var/atom/movable/screen/text/screen_text/text_box = new /atom/movable/screen/text/screen_text/simulacrum_message()
text_box.text_to_play = "Back here again."
text_box.player = human.client
Expand All @@ -51,8 +57,10 @@
body.after_play()
body2.after_play()
teleport_to_simulation(human, should_roar, FALSE)
human.in_cutscene = FALSE

/proc/simulacrum_text_3(mob/living/carbon/human/human, should_roar)
human.in_cutscene = TRUE
var/atom/movable/screen/text/screen_text/text_box = new /atom/movable/screen/text/screen_text/simulacrum_message()
text_box.text_to_play = "Pain unending."
text_box.player = human.client
Expand All @@ -70,8 +78,10 @@
text_box.after_play()
body.after_play()
teleport_to_simulation(human, should_roar, FALSE)
human.in_cutscene = FALSE

/proc/simulacrum_text_4(mob/living/carbon/human/human, should_roar)
human.in_cutscene = TRUE
var/atom/movable/screen/text/screen_text/text_box = new /atom/movable/screen/text/screen_text/simulacrum_message()
text_box.text_to_play = "6 Simulations Later..."
text_box.player = human.client
Expand All @@ -81,8 +91,10 @@
sleep(2.5 SECONDS)
text_box.after_play()
teleport_to_simulation(human, should_roar, FALSE)
human.in_cutscene = FALSE

/proc/simulacrum_text_5(mob/living/carbon/human/human, should_roar)
human.in_cutscene = TRUE
var/atom/movable/screen/text/screen_text/text_box = new /atom/movable/screen/text/screen_text/simulacrum_message()
text_box.text_to_play = "19 Simulations Later..."
text_box.player = human.client
Expand All @@ -92,8 +104,10 @@
sleep(2.5 SECONDS)
text_box.after_play()
teleport_to_simulation(human, should_roar, FALSE)
human.in_cutscene = FALSE

/proc/simulacrum_text_6(mob/living/carbon/human/human, should_roar)
human.in_cutscene = TRUE
var/atom/movable/screen/text/screen_text/text_box = new /atom/movable/screen/text/screen_text/simulacrum_message()
text_box.text_to_play = "321 Simulations Later..."
text_box.player = human.client
Expand All @@ -103,8 +117,10 @@
sleep(2.5 SECONDS)
text_box.after_play()
teleport_to_simulation(human, should_roar, FALSE)
human.in_cutscene = FALSE

/proc/simulacrum_text_ending_good(mob/living/carbon/human/human)
human.in_cutscene = TRUE
var/atom/movable/screen/text/screen_text/text_box = new /atom/movable/screen/text/screen_text/simulacrum_message()
text_box.text_to_play = "It's finally over."
text_box.player = human.client
Expand Down Expand Up @@ -162,8 +178,10 @@
body.after_play()
teleport_to_simulation(human, FALSE, FALSE)
message_admins("END THE ROUND IN A LITTLE TINY BIT")
human.in_cutscene = FALSE

/proc/simulacrum_text_ending_bad(mob/living/carbon/human/human, should_roar)
human.in_cutscene = TRUE
var/atom/movable/screen/text/screen_text/text_box = new /atom/movable/screen/text/screen_text/simulacrum_message()
text_box.text_to_play = "That was our chance."
text_box.player = human.client
Expand Down
3 changes: 2 additions & 1 deletion code/modules/simulacrum/simulacrummisc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
screen_loc = "LEFT,TOP-5"

/atom/movable/screen/text/screen_text/simulacrum_message/body/fatelist
screen_loc = "LEFT,TOP-6.5"
maptext_height = 256
screen_loc = "LEFT,TOP-12"


/atom/movable/screen/text/screen_text/simulacrum_message/play_to_client()
Expand Down
27 changes: 20 additions & 7 deletions code/modules/simulacrum/simulacrumprocs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@

/proc/ko_single_mob(mob/living/carbon/human/human)
to_chat(human, SPAN_WARNING("A low whirring fills your mind."))
human.clear_fullscreens()
var/atom/movable/screen/fullscreen/overlay_screen = human.overlay_fullscreen("simulacrum_ko", /atom/movable/screen/fullscreen/impaired)
overlay_screen.icon_state = "impairedoverlay1"
sleep(5 SECONDS)
Expand Down Expand Up @@ -157,6 +158,9 @@ GLOBAL_DATUM_INIT(simulation_controller, /datum/simulation_controller, new)
var/list/new_simlist = list(
"desert_dam" = list(),
"varadero" = list(),
"ice_colony" = list(),
"chances_claim" = list(),
"final" = list()
)
for(var/entry in GLOB.simulation_controller.non_completed_simulations)
for(var/list/coordset as anything in GLOB.simulation_controller.non_completed_simulations[entry])
Expand Down Expand Up @@ -204,6 +208,9 @@ GLOBAL_DATUM_INIT(simulation_controller, /datum/simulation_controller, new)
return

to_chat(src, SPAN_NOTICE("Advancing simulation. Cutscene [GLOB.simulation_controller.next_cutscene ? "will" : "will not"] play."))
var/do_roar = TRUE
if(GLOB.simulation_controller.next_simulation[1] == 19 && GLOB.simulation_controller.next_simulation[2] == 54)
do_roar = FALSE

for(var/savename in GLOB.simulacrum_playersaves)
var/datum/simulacrum_humansave/save = GLOB.simulacrum_playersaves[savename]
Expand All @@ -212,6 +219,7 @@ GLOBAL_DATUM_INIT(simulation_controller, /datum/simulation_controller, new)
continue

save.tied_human.rejuvenate()
save.tied_human.clear_fullscreens()
var/atom/movable/screen/fullscreen/overlay_screen = save.tied_human.overlay_fullscreen("simulacrum_ko", /atom/movable/screen/fullscreen/impaired)
overlay_screen.icon_state = "impairedoverlay7"
save.tied_human.Stun(100000000)
Expand All @@ -226,18 +234,18 @@ GLOBAL_DATUM_INIT(simulation_controller, /datum/simulation_controller, new)
winset(save.tied_human, "outputwindow", "is-visible=false")
switch(GLOB.simulation_controller.next_cutscene)
if("2")
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(simulacrum_text_2), save.tied_human, TRUE)
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(simulacrum_text_2), save.tied_human, do_roar)
if("3")
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(simulacrum_text_3), save.tied_human, TRUE)
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(simulacrum_text_3), save.tied_human, do_roar)
if("4")
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(simulacrum_text_4), save.tied_human, TRUE)
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(simulacrum_text_4), save.tied_human, do_roar)
if("5")
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(simulacrum_text_5), save.tied_human, TRUE)
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(simulacrum_text_5), save.tied_human, do_roar)
if("6")
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(simulacrum_text_6), save.tied_human, FALSE)
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(simulacrum_text_6), save.tied_human, do_roar)

else
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(teleport_to_simulation), save.tied_human, TRUE, FALSE)
INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(teleport_to_simulation), save.tied_human, do_roar, FALSE)

/client/proc/boss_roar_verb()
set name = "Boss Roar"
Expand Down Expand Up @@ -326,7 +334,10 @@ GLOBAL_DATUM_INIT(simulation_controller, /datum/simulation_controller, new)
"Following their harrowing experience, %NAME% quietly left the USCM at the first opportunity. %NAME% retired to the backwater colony of LV-325, living out their days peacefully. They died on August 9th, 2238 of natural causes.",
"%NAME% continued their enlistment in the USCM following the incident. They were killed in a USCM raid on a CLF cell on June 14th, 2185.",
"%NAME% became far more withdrawn after the incident. Once discharged from the USCM, they moved to Station 949, becoming a private security officer. They passed away from a rapidly-expanding brain tumor on Febuary 14th, 2199.",
// Add more later
"After retiring from the USCM %NAME% was employed as a shift manager at LockMart's Leo plant on Mars. Alongside 200 others, %NAME% was killed in the Leo explosion of 2187 on May 1st.",
"%NAME% retired to colonial life on LV-522, Chance's Claim. A xenomorph outbreak would see %NAME% meet their fate in the xenomorph hive on August 23rd, 2192.",
"Quiet and reserved after the incident, %NAME% retired from the USCM and served as the Chief Engineer on a LockMart & Welsun 3300B colony carrier, ferrying atmospheric processors to budding worlds. They passed on December 1st, 2210 in a vehicular accident.",
"%NAME% never fully recovered from the stress experienced during the incident. %NAME% died on July 29th, 2182 of a heart attack.",
)
var/list/final_fates = list()
for(var/savename in GLOB.simulacrum_playersaves)
Expand All @@ -337,5 +348,7 @@ GLOBAL_DATUM_INIT(simulation_controller, /datum/simulation_controller, new)
var/fate_string = pick(fate_list_pre)
fate_list_pre -= fate_string
final_fates += replacetext(fate_string, "%NAME%", name)
//for(var/fate in fate_list_pre)
// final_fates += replacetext(fate, "%NAME%", human_names[1])

GLOB.simulation_controller.fate_list = final_fates
17 changes: 17 additions & 0 deletions code/modules/simulacrum/simulacrumsavedata.dm
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,15 @@ GLOBAL_LIST_EMPTY(simulacrum_playersaves)
var/obj/item/righthand
var/obj/item/pocket1
var/obj/item/pocket2
var/obj/item/back

var/list/suit_contents = list()
var/list/helmet_contents = list()
var/list/suitstorage_contents = list()
var/list/belt_contents = list()
var/list/pocket1_contents = list()
var/list/pocket2_contents = list()
var/list/back_contents = list()

var/tied_ckey
var/mob/living/carbon/human/tied_human
Expand Down Expand Up @@ -51,6 +53,7 @@ GLOBAL_LIST_EMPTY(simulacrum_playersaves)
save.righthand = DuplicateObject(human.r_hand, perfectcopy = TRUE, sameloc = FALSE, newloc = null)
save.pocket1 = DuplicateObject(human.l_store, perfectcopy = TRUE, sameloc = FALSE, newloc = null)
save.pocket2 = DuplicateObject(human.r_store, perfectcopy = TRUE, sameloc = FALSE, newloc = null)
save.back = DuplicateObject(human.back, perfectcopy = TRUE, sameloc = FALSE, newloc = null)

if(istype(human.wear_suit, /obj/item/clothing/suit/storage))
var/obj/item/clothing/suit/storage/storage_suit = human.wear_suit
Expand Down Expand Up @@ -82,6 +85,11 @@ GLOBAL_LIST_EMPTY(simulacrum_playersaves)
for(var/obj/item/I in pouch.contents)
save.pocket2_contents += DuplicateObject(I, perfectcopy = TRUE, sameloc = FALSE, newloc = null)

if(isstorage(human.back))
var/obj/item/storage/pouch = human.back
for(var/obj/item/I in pouch.contents)
save.back_contents += DuplicateObject(I, perfectcopy = TRUE, sameloc = FALSE, newloc = null)

save.tied_ckey = human.ckey || human.persistent_ckey || ""
save.tied_human = human
GLOB.simulacrum_playersaves[save.tied_ckey] = save
Expand Down Expand Up @@ -114,6 +122,7 @@ GLOBAL_LIST_EMPTY(simulacrum_playersaves)
human.equip_to_slot(DuplicateObject(save.righthand, perfectcopy = TRUE, sameloc = FALSE, newloc = null), WEAR_R_HAND)
human.equip_to_slot(DuplicateObject(save.pocket1, perfectcopy = TRUE, sameloc = FALSE, newloc = null), WEAR_L_STORE)
human.equip_to_slot(DuplicateObject(save.pocket2, perfectcopy = TRUE, sameloc = FALSE, newloc = null), WEAR_R_STORE)
human.equip_to_slot(DuplicateObject(save.back, perfectcopy = TRUE, sameloc = FALSE, newloc = null), WEAR_BACK)

if(istype(human.wear_suit, /obj/item/clothing/suit/storage))
var/obj/item/clothing/suit/storage/storage_suit = human.wear_suit
Expand All @@ -131,6 +140,7 @@ GLOBAL_LIST_EMPTY(simulacrum_playersaves)
qdel(I2)
for(var/obj/item/I as anything in save.suitstorage_contents)
pouch.handle_item_insertion(DuplicateObject(I, perfectcopy = TRUE, sameloc = FALSE, newloc = null), TRUE, human)
human.s_store.icon_state = replacetext(human.s_store.icon_state, "_g_g", "_g")

if(isstorage(human.belt))
var/obj/item/storage/pouch = human.belt
Expand All @@ -153,3 +163,10 @@ GLOBAL_LIST_EMPTY(simulacrum_playersaves)
qdel(I2)
for(var/obj/item/I as anything in save.pocket2_contents)
pouch.handle_item_insertion(DuplicateObject(I, perfectcopy = TRUE, sameloc = FALSE, newloc = null), TRUE, human)

if(isstorage(human.back))
var/obj/item/storage/pouch = human.back
for(var/obj/item/I2 in pouch.contents)
qdel(I2)
for(var/obj/item/I as anything in save.back_contents)
pouch.handle_item_insertion(DuplicateObject(I, perfectcopy = TRUE, sameloc = FALSE, newloc = null), TRUE, human)
9 changes: 0 additions & 9 deletions maps/map_files/simulacrum/simulacrum.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -721,10 +721,6 @@
/turf/open/floor/interior/wood/alt,
/area/simulacrum/interior)
"iD" = (
/obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{
name = "\improper Aurora Medical Clinic Treatment";
req_access_txt = null
},
/turf/open/floor{
dir = 8;
icon_state = "whitered"
Expand Down Expand Up @@ -4042,11 +4038,6 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
/obj/structure/machinery/door/airlock/multi_tile/almayer/medidoor/colony{
dir = 1;
name = "\improper Aurora Medical Clinic";
req_access_txt = null
},
/turf/open/floor{
icon_state = "whiteredfull"
},
Expand Down

0 comments on commit b572e05

Please sign in to comment.