Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[s] [TM ONLY] Operation code 2 #330

Draft
wants to merge 10 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion code/__DEFINES/xeno.dm
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@

#define PYLON_COVERAGE_MULT 1.5

#define WEED_BASE_GROW_SPEED (5 SECONDS)
#define WEED_BASE_GROW_SPEED 1 // We gave the weeds plant food
#define WEED_BASE_DECAY_SPEED (10 SECONDS)

/// The time you must be dead to join as a xeno larva
Expand Down
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
6 changes: 6 additions & 0 deletions code/_onclick/hud/hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -264,11 +264,17 @@
/datum/hud/proc/persistent_inventory_update()
return

/mob
var/hudswitch_blocked = FALSE

//Triggered when F12 is pressed (Unless someone changed something in the DMF)
/mob/verb/button_pressed_F12()
set name = "F12"
set hidden = TRUE

if(hudswitch_blocked)
return

if(hud_used && client)
hud_used.show_hud()
to_chat(usr, SPAN_INFO("Switched HUD mode. Press F12 to toggle."))
Expand Down
7 changes: 4 additions & 3 deletions code/datums/helper_datums/getrev.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,10 @@ GLOBAL_DATUM_INIT(revdata, /datum/getrev, new)
set name = "Show Server Revision"
set desc = "Check the current server code revision"

var/list/msg = list("")
//var/list/msg = list("")
// Round ID

msg += "<b>BYOND Version:</b> [world.byond_version].[world.byond_build]"
/*msg += "<b>BYOND Version:</b> [world.byond_version].[world.byond_build]"
if(DM_VERSION != world.byond_version || DM_BUILD != world.byond_build)
msg += "<b>Compiled with BYOND Version:</b> [DM_VERSION].[DM_BUILD]"

Expand All @@ -81,4 +81,5 @@ GLOBAL_DATUM_INIT(revdata, /datum/getrev, new)
msg += "DMAPI version: [api_version.raw_parameter]"

// Game mode odds
to_chat(src, SPAN_INFO(msg.Join("<br>")))
to_chat(src, SPAN_INFO(msg.Join("<br>")))*/
return
2 changes: 1 addition & 1 deletion code/datums/mob_hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ var/list/datum/mob_hud/huds = list(
// makes the client able to 'see' them whenever they're offscreen
// somewhat confusingly
/datum/mob_hud/proc/add_to_single_hud(mob/user, mob/target)
if(!user.client)
if(!user?.client)
return
for(var/i in hud_icons)
if(i in target.hud_list)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

/// Check validity of spawning this
/obj/effect/landmark/structure_spawner/proc/validate()
return (mode_flags & SSticker.mode?.flags_round_type)
return TRUE

/// Return effective location to spawn at
/obj/effect/landmark/structure_spawner/proc/get_spawn_location()
Expand Down
8 changes: 8 additions & 0 deletions code/game/objects/items/stacks/sheets/mineral.dm
Original file line number Diff line number Diff line change
Expand Up @@ -324,3 +324,11 @@ GLOBAL_LIST_INIT(iron_recipes, list ( \
perunit = 2000
stack_id = "chitin"
black_market_value = 35

/obj/item/stack/sheet/mineral/chitin/metal
name = "unknown metal"
desc = "An unknown, dark metal."
singular_name = "unknown metal sheet"
icon_state = "sheet-chitin"
sheettype = "unknownmetal"
stack_id = "unknownmetal"
7 changes: 4 additions & 3 deletions code/game/world.dm
Original file line number Diff line number Diff line change
Expand Up @@ -290,9 +290,10 @@ var/world_topic_spam_protect_time = world.timeofday
join_motd = file2text("config/motd.txt")

/world/proc/load_tm_message()
var/datum/getrev/revdata = GLOB.revdata
if(revdata.testmerge.len)
current_tms = revdata.GetTestMergeInfo()
//var/datum/getrev/revdata = GLOB.revdata
//if(revdata.testmerge.len)
// current_tms = revdata.GetTestMergeInfo()
return

/world/proc/update_status()
//Note: Hub content is limited to 254 characters, including limited HTML/CSS.
Expand Down
14 changes: 13 additions & 1 deletion code/modules/admin/admin_verbs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,19 @@ var/list/admin_verbs_major_event = list(
/client/proc/enable_podlauncher,
/client/proc/change_taskbar_icon,
/client/proc/change_weather,
/client/proc/admin_blurb
/client/proc/admin_blurb,
/client/proc/slow_everyone_verb,
/client/proc/superslow_everyone_verb,
/client/proc/ko_everyone_verb,
/client/proc/pick_simulation_verb,
/client/proc/toggle_cutscene_verb,
/client/proc/decay_old_simulation_cutscene_verb,
/client/proc/go_to_next_simulation_verb,
/client/proc/boss_roar_verb,
/client/proc/boss_finish_verb,
/client/proc/end_game_good,
/client/proc/end_game_bad,
/client/proc/close_all_inventories,
)

var/list/admin_verbs_spawn = list(
Expand Down
2 changes: 1 addition & 1 deletion code/modules/clothing/suits/marine_armor.dm
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,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
5 changes: 3 additions & 2 deletions code/modules/cm_marines/equipment/maps.dm
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ GLOBAL_LIST_INIT_TYPED(map_type_list, /obj/item/map, setup_all_maps())
/obj/item/map/current_map

/obj/item/map/current_map/Initialize(mapload, ...)
. = ..()
/*. = ..()

var/map_name = SSmapping.configs[GROUND_MAP].map_name
var/obj/item/map/map = GLOB.map_type_list[map_name]
Expand All @@ -182,7 +182,8 @@ GLOBAL_LIST_INIT_TYPED(map_type_list, /obj/item/map, setup_all_maps())
name = map.name
desc = map.desc
html_link = map.html_link
color = map.color
color = map.color*/
return ..()

// Landmark - Used for mapping. Will spawn the appropriate map for each gamemode (LV map items will spawn when LV is the gamemode, etc)
/obj/effect/landmark/map_item
Expand Down
213 changes: 213 additions & 0 deletions code/modules/simulacrum/simulacrumcutscenes.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
/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
text_box.color = "#8a2398"
LAZYADD(human.client.screen_texts, text_box)
text_box.play_to_client()
sleep(1.5 SECONDS)
var/atom/movable/screen/text/screen_text/body = new /atom/movable/screen/text/screen_text/simulacrum_message/body()
body.text_to_play = "You exist in a black, impermeable void. Exist, for there is no other word to describe it. You cannot feel any sort of body or other physical attachments, and you cannot see anything but black. Despite all this, you are undeniably conscious. From this sleepless dream of nothingness, will you wake up, you wonder?"
body.player = human.client
body.color = "#9f53a9"
LAZYADD(human.client.screen_texts, body)
body.play_to_client()
sleep(5 SECONDS)
var/atom/movable/screen/text/screen_text/body2 = new /atom/movable/screen/text/screen_text/simulacrum_message/body/secondary()
body2.text_to_play = "After three seconds of eternity pass, you awaken. Perhaps it is over." // "There’s an emperor, and he asks the shepherd’s boy how many seconds in eternity. And the shepherd’s boy says, 'There’s a mountain of pure diamond. It takes an hour to climb it and an hour to go around it, and every hundred years a little bird comes and sharpens its beak on the diamond mountain. And when the entire mountain is chiseled away, the first second of eternity will have passed.'"
body2.player = human.client
body2.color = "#9f53a9"
LAZYADD(human.client.screen_texts, body2)
body2.play_to_client()
sleep(5 SECONDS)
text_box.after_play()
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
text_box.color = "#8a2398"
LAZYADD(human.client.screen_texts, text_box)
text_box.play_to_client()
sleep(1.5 SECONDS)
var/atom/movable/screen/text/screen_text/body = new /atom/movable/screen/text/screen_text/simulacrum_message/body()
body.text_to_play = "You died, you know that for certain. You vividly remember your grisly fate, and you suspect you will for a long time. Now, though, you're in an abyss unending once more. And there is nothing to do but wait."
body.player = human.client
body.color = "#9f53a9"
LAZYADD(human.client.screen_texts, body)
body.play_to_client()
sleep(4 SECONDS)
var/atom/movable/screen/text/screen_text/body2 = new /atom/movable/screen/text/screen_text/simulacrum_message/body/secondary()
body2.text_to_play = "An unknown amount of time passes."
body2.player = human.client
body2.color = "#9f53a9"
LAZYADD(human.client.screen_texts, body2)
body2.play_to_client()
sleep(3 SECONDS)
text_box.after_play()
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
text_box.color = "#8a2398"
LAZYADD(human.client.screen_texts, text_box)
text_box.play_to_client()
sleep(1.5 SECONDS)
var/atom/movable/screen/text/screen_text/body = new /atom/movable/screen/text/screen_text/simulacrum_message/body()
body.text_to_play = "Another very-real death, and another portion of time spent in the void, alone with naught but your thoughts."
body.player = human.client
body.color = "#9f53a9"
LAZYADD(human.client.screen_texts, body)
body.play_to_client()
sleep(4 SECONDS)
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
text_box.color = "#8a2398"
LAZYADD(human.client.screen_texts, text_box)
text_box.play_to_client()
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
text_box.color = "#8a2398"
LAZYADD(human.client.screen_texts, text_box)
text_box.play_to_client()
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
text_box.color = "#8a2398"
LAZYADD(human.client.screen_texts, text_box)
text_box.play_to_client()
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
text_box.color = "#233598"
LAZYADD(human.client.screen_texts, text_box)
text_box.play_to_client()
sleep(2.5 SECONDS)
var/atom/movable/screen/text/screen_text/body = new /atom/movable/screen/text/screen_text/simulacrum_message/body()
body.text_to_play = "As the dropship flies through space, your squad doesn't talk much. There's too much to think about, too many battles seen to process."
body.player = human.client
body.color = "#535ca9"
LAZYADD(human.client.screen_texts, body)
body.play_to_client()
sleep(3 SECONDS)
var/atom/movable/screen/text/screen_text/body2 = new /atom/movable/screen/text/screen_text/simulacrum_message/body/secondary()
body2.text_to_play = "The following week is a blur, with countless interviews and medical screenings being done. But life goes on."
body2.player = human.client
body2.color = "#535ca9"
LAZYADD(human.client.screen_texts, body2)
body2.play_to_client()
sleep(3 SECONDS)
var/assembled_fatestring = ""
for(var/fate in GLOB.simulation_controller.fate_list)
assembled_fatestring += "[fate][fate == GLOB.simulation_controller.fate_list[length(GLOB.simulation_controller.fate_list)] ? "" : "<br>"]"
var/dead_string = english_list(GLOB.simulation_controller.dead_list)
if(length(GLOB.simulation_controller.dead_list))
assembled_fatestring += "<br>[dead_string] perished on the planet."
var/atom/movable/screen/text/screen_text/body3 = new /atom/movable/screen/text/screen_text/simulacrum_message/body/fatelist()
body3.text_to_play = assembled_fatestring
body3.player = human.client
body3.color = "#535ca9"
LAZYADD(human.client.screen_texts, body3)
body3.play_to_client()
sleep(5 SECONDS)
text_box.after_play()
body.after_play()
body2.after_play()
body3.after_play()
sleep(7 SECONDS)
simulacrum_text_ending_good_2(human)

/proc/simulacrum_text_ending_good_2(mob/living/carbon/human/human)
if(!GLOB.simulation_controller.next_simulation)
GLOB.simulation_controller.next_simulation = GLOB.simulation_controller.non_completed_simulations[1][1]
var/atom/movable/screen/text/screen_text/text_box = new /atom/movable/screen/text/screen_text/simulacrum_message()
text_box.text_to_play = "..."
text_box.player = human.client
text_box.color = "#8a2398"
LAZYADD(human.client.screen_texts, text_box)
text_box.play_to_client()
sleep(2.5 SECONDS)
var/atom/movable/screen/text/screen_text/body = new /atom/movable/screen/text/screen_text/simulacrum_message/body()
body.text_to_play = "\"Why am I back here? I'm dead, aren't I?\""
body.player = human.client
body.color = "#9f53a9"
LAZYADD(human.client.screen_texts, body)
body.play_to_client()
sleep(2.5 SECONDS)
text_box.after_play()
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
text_box.color = "#8a2398"
LAZYADD(human.client.screen_texts, text_box)
text_box.play_to_client()
sleep(2.5 SECONDS)
var/atom/movable/screen/text/screen_text/body = new /atom/movable/screen/text/screen_text/simulacrum_message/body()
body.text_to_play = "You know it still watches. It simulates, endlessly. A thousand more deaths you may experience, that is certain."
body.player = human.client
body.color = "#9f53a9"
LAZYADD(human.client.screen_texts, body)
body.play_to_client()
sleep(5 SECONDS)
text_box.after_play()
body.after_play()
message_admins("END THE ROUND NOW")
sleep(15 SECONDS)
if(human.client)
winset(human.client, "infowindow", "is-visible=true")
winset(human.client, "outputwindow", "is-visible=true")
winset(human.client, "mainwindow.split", "splitter=400")
human.client.fit_viewport()
human.client.nuke_chat()
Loading
Loading