mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-25 04:57:12 +01:00
"Dynamic" Gamemode using rulesets (#27600)
* yeah * yeah * lock tf in * aaaa * fix * im going to have a fucking stroke i hate mindflayers * dynamic is ready * fucking hell * yes * warrior review * blah blah * updates based on #27811 * ok fix * makes the menu usable during secret * ok RANDOM BULLSHIT GO! * Dynamic final changes * fixes some missing budget
This commit is contained in:
@@ -1041,6 +1041,20 @@
|
||||
dat += {"Now: [GLOB.secret_force_mode]"}
|
||||
usr << browse(dat, "window=f_secret")
|
||||
|
||||
else if(href_list["f_dynamic"])
|
||||
if(!check_rights(R_ADMIN)) return
|
||||
|
||||
if(SSticker && SSticker.mode)
|
||||
return alert(usr, "The game has already started.", null, null, null, null)
|
||||
if(GLOB.master_mode != "dynamic" && !(GLOB.master_mode == "secret" && GLOB.secret_force_mode == "dynamic"))
|
||||
return alert(usr, "The game mode has to be dynamic!", null, null, null, null)
|
||||
var/dat = {"<!DOCTYPE html><b>Possible Rulesets:</b><hr>"}
|
||||
var/list/rulesets = subtypesof(/datum/ruleset) - typesof(/datum/ruleset/implied)
|
||||
dat += {"Budget: <a href='byond://?src=[UID()];f_dynamic2=budget'>[isnull(GLOB.dynamic_forced_rulesets["budget"]) ? "Random" : GLOB.dynamic_forced_rulesets["budget"]]</a><hr>"}
|
||||
for(var/datum/ruleset/ruleset as anything in rulesets)
|
||||
dat += {"[ruleset.name]: <a href='byond://?src=[UID()];f_dynamic2=[ruleset.type]'>[GLOB.dynamic_forced_rulesets[ruleset] || DYNAMIC_RULESET_NORMAL]</a><br>"}
|
||||
usr << browse(dat, "window=f_dynamic")
|
||||
|
||||
else if(href_list["c_mode2"])
|
||||
if(!check_rights(R_ADMIN|R_SERVER)) return
|
||||
|
||||
@@ -1067,6 +1081,44 @@
|
||||
Game() // updates the main game menu
|
||||
.(href, list("f_secret"=1))
|
||||
|
||||
else if(href_list["f_dynamic2"])
|
||||
if(!check_rights(R_ADMIN|R_SERVER)) return
|
||||
|
||||
if(SSticker && SSticker.mode)
|
||||
return alert(usr, "The game has already started.", null, null, null, null)
|
||||
if(GLOB.master_mode != "dynamic" && !(GLOB.master_mode == "secret" && GLOB.secret_force_mode == "dynamic"))
|
||||
return alert(usr, "The game mode has to be dynamic!", null, null, null, null)
|
||||
if(href_list["f_dynamic2"] == "budget")
|
||||
var/budget = input(usr, "Pick a budget for the dynamic gamemode (-1 to randomize)", "Gamemode Budget") as num|null
|
||||
if(isnull(budget))
|
||||
return
|
||||
if(budget < 0)
|
||||
GLOB.dynamic_forced_rulesets -= "budget"
|
||||
log_admin("[key_name(usr)] set the ruleset budget to random.")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] set the ruleset budget to random.</span>")
|
||||
else
|
||||
GLOB.dynamic_forced_rulesets["budget"] = budget
|
||||
log_admin("[key_name(usr)] set the ruleset budget to [budget]")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] set the ruleset budget to [budget].</span>")
|
||||
.(href, list("f_dynamic"=1))
|
||||
return
|
||||
|
||||
var/datum/ruleset/ruleset = text2path(href_list["f_dynamic2"])
|
||||
switch(GLOB.dynamic_forced_rulesets[ruleset])
|
||||
if(DYNAMIC_RULESET_FORCED)
|
||||
log_admin("[key_name(usr)] banned the [ruleset] ruleset.")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] banned the [ruleset.name] ([ruleset.type]) ruleset.</span>")
|
||||
GLOB.dynamic_forced_rulesets[ruleset] = DYNAMIC_RULESET_BANNED
|
||||
if(DYNAMIC_RULESET_BANNED)
|
||||
log_admin("[key_name(usr)] set the [ruleset] ruleset to normal.")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] set the [ruleset.name] ([ruleset.type]) ruleset to normal.</span>")
|
||||
GLOB.dynamic_forced_rulesets[ruleset] = DYNAMIC_RULESET_NORMAL
|
||||
else // not set, and already at normal
|
||||
log_admin("[key_name(usr)] forced the [ruleset] ruleset.")
|
||||
message_admins("<span class='notice'>[key_name_admin(usr)] forced the [ruleset.name] ([ruleset.type]) ruleset.</span>")
|
||||
GLOB.dynamic_forced_rulesets[ruleset] = DYNAMIC_RULESET_FORCED
|
||||
.(href, list("f_dynamic"=1))
|
||||
|
||||
else if(href_list["monkeyone"])
|
||||
if(!check_rights(R_SPAWN)) return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user