mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-19 11:58:39 +01:00
Adds Round Canonicity to the game, and makes Storytellers able to edit round canonicity. (#22775)
To clear up when a round is canon, what type of canonicity it is and what exactly it entails, canonicity information has been added to the game. Through the Canon Panel, players can now see what exactly the current round's rules on character deaths, antags, and character interactions are. Additionally, this lets developers actually know _when_ exactly a round is canon, which will be very useful for persistence. Storytellers and admins can change the canonicity of the round in the panel as well. Some examples: <img width="400" height="600" alt="image" src="https://github.com/user-attachments/assets/e71d2b18-0741-4bc0-aa98-979bb696d8a6" /> <img width="400" height="600" alt="image" src="https://github.com/user-attachments/assets/29486039-7625-4443-af2e-3ac982727e5c" /> <img width="400" height="600" alt="image" src="https://github.com/user-attachments/assets/7522f5f0-4d4e-4bae-906e-2b07067af3a5" /> --------- Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it> Co-authored-by: Matt Atlas <liermattia@gmail.com> Co-authored-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com>
This commit is contained in:
+27
-21
@@ -1302,7 +1302,11 @@ var/global/enabled_spooking = 0
|
||||
|
||||
var/datum/antagonist/antag = GLOB.all_antag_types[antag_type]
|
||||
message_admins("[key_name(usr)] attempting to force latespawn with template [antag.id].")
|
||||
antag.attempt_auto_spawn()
|
||||
if(antag.attempt_auto_spawn())
|
||||
if(SSticker.round_canon.antagonist_actions_canon == ANTAGONIST_ACTIONS_NOT_EXPECTED)
|
||||
var/change_canon = tgui_alert(usr, "You have added antagonists to a gamemode type that does not expect antagonists. Would you like to also change the round canon to Limited?", "Canon Change", list("Yes", "No"))
|
||||
if(change_canon == "Yes")
|
||||
SSticker.set_round_canon(/singleton/canonicity/limited)
|
||||
|
||||
/datum/admins/proc/force_mode_latespawn()
|
||||
set category = "Admin"
|
||||
@@ -1322,6 +1326,28 @@ var/global/enabled_spooking = 0
|
||||
log_and_message_admins("attempting to force mode autospawn.")
|
||||
SSticker.mode.process_autoantag()
|
||||
|
||||
/datum/admins/proc/force_round_canon_pregame()
|
||||
set category = "Admin"
|
||||
set name = "Set Pre-Game Round Canon"
|
||||
|
||||
if (!istype(src,/datum/admins))
|
||||
src = usr.client.holder
|
||||
if (!istype(src,/datum/admins) || !check_rights(R_ADMIN))
|
||||
to_chat(usr, "Error: you are not an admin!")
|
||||
return
|
||||
|
||||
if(SSticker.current_state == GAME_STATE_PLAYING)
|
||||
to_chat(usr, SPAN_WARNING("You cannot use this verb after the round has started! Use the Canon Panel from the Status panel."))
|
||||
return
|
||||
|
||||
var/singleton/canonicity/canon_type = tgui_input_list(usr, "Choose a round canon type.", "Force Round Canon", GET_SINGLETON_SUBTYPE_LIST(/singleton/canonicity))
|
||||
if(!istype(canon_type))
|
||||
return
|
||||
|
||||
SSticker.set_round_canon(canon_type, TRUE, TRUE)
|
||||
SSticker.round_canon_admin_forced = TRUE
|
||||
log_and_message_admins("forced the round canon to [canon_type.name].")
|
||||
|
||||
/datum/admins/proc/paralyze_mob(mob/living/H as mob)
|
||||
set category = "Admin"
|
||||
set name = "Toggle Winded"
|
||||
@@ -1434,26 +1460,6 @@ var/global/enabled_spooking = 0
|
||||
log_and_message_admins("has manually set the Odyssey to [chosen_scenario.name]", usr)
|
||||
feedback_add_details("admin_verb","SEOT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/datum/admins/proc/set_odyssey_canonicity()
|
||||
set name = "Set Odyssey Canonicity"
|
||||
set category = "Special Verbs"
|
||||
|
||||
if(!check_rights(R_ADMIN))
|
||||
return
|
||||
|
||||
if(!SSodyssey.scenario)
|
||||
to_chat(usr, SPAN_WARNING("There needs to be an Odyssey selected first! Use the Set Odyssey Type verb."))
|
||||
return
|
||||
|
||||
var/canonicity = tgui_input_list(usr, "Set the Odyssey canonicity.", "Set Odyssey Canonicity", list(SCENARIO_TYPE_CANON, SCENARIO_TYPE_NONCANON))
|
||||
if(!canonicity)
|
||||
return
|
||||
|
||||
SSodyssey.scenario.scenario_type = canonicity
|
||||
to_world(FONT_LARGE(EXAMINE_BLOCK_ODYSSEY(SPAN_NOTICE("The scenario canonicity has been changed to [SPAN_BOLD(canonicity)] by an administrator."))))
|
||||
log_and_message_admins("has set the Odyssey canonicity to [canonicity]", usr)
|
||||
feedback_add_details("admin_verb","SEOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/datum/admins/proc/open_narrate_panel()
|
||||
set category = "Special Verbs.Narration/Messaging"
|
||||
set name = "Narrate Panel"
|
||||
|
||||
@@ -18,6 +18,7 @@ GLOBAL_LIST_INIT(admin_verbs_admin, list(
|
||||
// /datum/admins/proc/show_traitor_panel, /*interface which shows a mob's mind*/ -Removed due to rare practical use. Moved to debug verbs ~Errorage */
|
||||
/datum/admins/proc/show_game_mode, /*Configuration window for the current game mode.*/
|
||||
/datum/admins/proc/force_mode_latespawn, /*Force the mode to try a latespawn proc*/
|
||||
/datum/admins/proc/force_round_canon_pregame,
|
||||
/datum/admins/proc/force_antag_latespawn, /*Force a specific template to try a latespawn proc*/
|
||||
/datum/admins/proc/toggleenter, /*toggles whether people can join the current game*/
|
||||
/datum/admins/proc/toggleguests, /*toggles whether guests can join the current game*/
|
||||
@@ -149,7 +150,6 @@ GLOBAL_LIST_INIT(admin_verbs_fun, list(
|
||||
/client/proc/apply_sunstate,
|
||||
/datum/admins/proc/ccannoucment,
|
||||
/datum/admins/proc/set_odyssey,
|
||||
/datum/admins/proc/set_odyssey_canonicity,
|
||||
/datum/admins/proc/toggle_persistence
|
||||
))
|
||||
|
||||
@@ -332,6 +332,7 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list(
|
||||
/client/proc/colorooc,
|
||||
/client/proc/add_client_color,
|
||||
/datum/admins/proc/force_mode_latespawn,
|
||||
/datum/admins/proc/force_round_canon_pregame,
|
||||
/datum/admins/proc/toggleenter,
|
||||
/datum/admins/proc/toggleguests,
|
||||
/datum/admins/proc/capture_map_part,
|
||||
@@ -413,7 +414,6 @@ GLOBAL_LIST_INIT(admin_verbs_hideable, list(
|
||||
/client/proc/cmd_display_harddel_log,
|
||||
/datum/admins/proc/ccannoucment,
|
||||
/datum/admins/proc/set_odyssey,
|
||||
/datum/admins/proc/set_odyssey_canonicity,
|
||||
/client/proc/cmd_display_init_log,
|
||||
/client/proc/cmd_generate_lag,
|
||||
/client/proc/toggledebuglogs,
|
||||
|
||||
Reference in New Issue
Block a user