mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 02:09:41 +00:00
Merge branch 'master' into upstream-merge-13122
This commit is contained in:
11
.github/CODEOWNERS
vendored
11
.github/CODEOWNERS
vendored
@@ -4,8 +4,9 @@
|
||||
# In the event that multiple org members are to be informed of changes
|
||||
# to the same file or dir, add them to the end under Multiple Owners
|
||||
|
||||
# ShadowLarkens
|
||||
/code/__DEFINES/tgui.dm @ShadowLarkens
|
||||
/code/controllers/subsystem/tgui.dm @ShadowLarkens
|
||||
/code/modules/tgui @ShadowLarkens
|
||||
/tgui @ShadowLarkens
|
||||
# ItsSelis
|
||||
|
||||
/code/__DEFINES/tgui.dm @ItsSelis
|
||||
/code/controllers/subsystem/tgui.dm @ItsSelis
|
||||
/code/modules/tgui @ItsSelis
|
||||
/tgui @ItsSelis
|
||||
|
||||
@@ -261,7 +261,7 @@
|
||||
if("max")
|
||||
target_pressure = max_pressure_setting
|
||||
if("set")
|
||||
var/new_pressure = input(usr,"Enter new output pressure (0-[max_pressure_setting]kPa)","Pressure Control",src.target_pressure) as num
|
||||
var/new_pressure = tgui_input_number(usr,"Enter new output pressure (0-[max_pressure_setting]kPa)","Pressure Control",src.target_pressure,max_pressure_setting,0)
|
||||
src.target_pressure = between(0, new_pressure, max_pressure_setting)
|
||||
|
||||
if("set_flow_rate")
|
||||
@@ -272,7 +272,7 @@
|
||||
if("max")
|
||||
set_flow_rate = air1.volume
|
||||
if("set")
|
||||
var/new_flow_rate = input(usr,"Enter new flow rate limit (0-[air1.volume]L/s)","Flow Rate Control",src.set_flow_rate) as num
|
||||
var/new_flow_rate = tgui_input_number(usr,"Enter new flow rate limit (0-[air1.volume]L/s)","Flow Rate Control",src.set_flow_rate,air1.volume,0)
|
||||
src.set_flow_rate = between(0, new_flow_rate, air1.volume)
|
||||
|
||||
update_icon()
|
||||
|
||||
@@ -225,7 +225,7 @@ Thus, the two variables affect pump operation are set in New():
|
||||
if("max")
|
||||
target_pressure = max_pressure_setting
|
||||
if("set")
|
||||
var/new_pressure = input(usr,"Enter new output pressure (0-[max_pressure_setting]kPa)","Pressure control",src.target_pressure) as num
|
||||
var/new_pressure = tgui_input_number(usr,"Enter new output pressure (0-[max_pressure_setting]kPa)","Pressure control",src.target_pressure,max_pressure_setting,0)
|
||||
src.target_pressure = between(0, new_pressure, max_pressure_setting)
|
||||
. = TRUE
|
||||
|
||||
|
||||
@@ -170,7 +170,7 @@
|
||||
if("set_flow_rate")
|
||||
if(!configuring || use_power)
|
||||
return
|
||||
var/new_flow_rate = input(usr,"Enter new flow rate limit (0-[max_flow_rate]L/s)","Flow Rate Control",set_flow_rate) as num
|
||||
var/new_flow_rate = tgui_input_number(usr,"Enter new flow rate limit (0-[max_flow_rate]L/s)","Flow Rate Control",set_flow_rate,max_flow_rate,0)
|
||||
set_flow_rate = between(0, new_flow_rate, max_flow_rate)
|
||||
. = TRUE
|
||||
if("switch_mode")
|
||||
|
||||
@@ -183,7 +183,7 @@
|
||||
. = TRUE
|
||||
if(!configuring || use_power)
|
||||
return
|
||||
var/new_flow_rate = input(usr,"Enter new flow rate limit (0-[max_flow_rate]L/s)","Flow Rate Control",set_flow_rate) as num
|
||||
var/new_flow_rate = tgui_input_number(usr,"Enter new flow rate limit (0-[max_flow_rate]L/s)","Flow Rate Control",set_flow_rate,max_flow_rate,0)
|
||||
set_flow_rate = between(0, new_flow_rate, max_flow_rate)
|
||||
if("switch_mode")
|
||||
. = TRUE
|
||||
@@ -265,7 +265,7 @@
|
||||
if(non_locked < 1)
|
||||
return
|
||||
|
||||
var/new_con = (input(usr,"Enter a new concentration (0-[round(remain_con * 100, 0.5)])%","Concentration control", min(remain_con, old_con)*100) as num) / 100
|
||||
var/new_con = (tgui_input_number(usr,"Enter a new concentration (0-[round(remain_con * 100, 0.5)])%","Concentration control", min(remain_con, old_con)*100, round(remain_con * 100, 0.5), 0)) / 100
|
||||
|
||||
//cap it between 0 and the max remaining concentration
|
||||
new_con = between(0, new_con, remain_con)
|
||||
|
||||
@@ -147,7 +147,7 @@ var/global/vs_control/vsc = new
|
||||
var/newvar = vw
|
||||
switch(how)
|
||||
if("Numeric")
|
||||
newvar = input(user,"Enter a number:","Settings",newvar) as num
|
||||
newvar = tgui_input_number(user,"Enter a number:","Settings",newvar)
|
||||
if("Bit Flag")
|
||||
var/flag = tgui_input_list(user,"Toggle which bit?","Settings", bitflags)
|
||||
flag = text2num(flag)
|
||||
@@ -158,9 +158,9 @@ var/global/vs_control/vsc = new
|
||||
if("Toggle")
|
||||
newvar = !newvar
|
||||
if("Text")
|
||||
newvar = input(user,"Enter a string:","Settings",newvar) as text
|
||||
newvar = tgui_input_text(user,"Enter a string:","Settings",newvar)
|
||||
if("Long Text")
|
||||
newvar = input(user,"Enter text:","Settings",newvar) as message
|
||||
newvar = tgui_input_text(user,"Enter text:","Settings",newvar, multiline = TRUE)
|
||||
vw = newvar
|
||||
if(ch in plc.settings)
|
||||
plc.vars[ch] = vw
|
||||
|
||||
15
code/__defines/cooldowns.dm
Normal file
15
code/__defines/cooldowns.dm
Normal file
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Cooldown system based on storing world.time on a variable, plus the cooldown time.
|
||||
* Better performance over timer cooldowns, lower control. Same functionality.
|
||||
*/
|
||||
|
||||
#define COOLDOWN_DECLARE(cd_index) var/##cd_index = 0
|
||||
|
||||
#define COOLDOWN_START(cd_source, cd_index, cd_time) (cd_source.cd_index = world.time + (cd_time))
|
||||
|
||||
//Returns true if the cooldown has run its course, false otherwise
|
||||
#define COOLDOWN_FINISHED(cd_source, cd_index) (cd_source.cd_index < world.time)
|
||||
|
||||
#define COOLDOWN_RESET(cd_source, cd_index) cd_source.cd_index = 0
|
||||
|
||||
#define COOLDOWN_TIMELEFT(cd_source, cd_index) (max(0, cd_source.cd_index - world.time))
|
||||
@@ -447,3 +447,7 @@
|
||||
#define DEATHGASP_NO_MESSAGE "no message"
|
||||
|
||||
#define RESIST_COOLDOWN 2 SECONDS
|
||||
|
||||
#define VISIBLE_GENDER_FORCE_PLURAL 1 // Used by get_visible_gender to return PLURAL
|
||||
#define VISIBLE_GENDER_FORCE_IDENTIFYING 2 // Used by get_visible_gender to return the mob's identifying gender
|
||||
#define VISIBLE_GENDER_FORCE_BIOLOGICAL 3 // Used by get_visible_gender to return the mob's biological gender
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
|
||||
/// Maximum ping timeout allowed to detect zombie windows
|
||||
#define TGUI_PING_TIMEOUT 4 SECONDS
|
||||
/// Used for rate-limiting to prevent DoS by excessively refreshing a TGUI window
|
||||
#define TGUI_REFRESH_FULL_UPDATE_COOLDOWN 5 SECONDS
|
||||
|
||||
/// Window does not exist
|
||||
#define TGUI_WINDOW_CLOSED 0
|
||||
|
||||
@@ -344,7 +344,7 @@ Turf and target are seperate in case you want to teleport some distance from a t
|
||||
var/newname
|
||||
|
||||
for(var/i=1,i<=3,i++) //we get 3 attempts to pick a suitable name.
|
||||
newname = input(src,"You are \a [role]. Would you like to change your name to something else?", "Name change",oldname) as text
|
||||
newname = tgui_input_text(src,"You are \a [role]. Would you like to change your name to something else?", "Name change",oldname)
|
||||
if((world.time-time_passed)>3000)
|
||||
return //took too long
|
||||
newname = sanitizeName(newname, ,allow_numbers) //returns null if the name doesn't meet some basic requirements. Tidies up a few other things like bad-characters.
|
||||
@@ -1357,7 +1357,7 @@ var/mob/dview/dview_mob = new
|
||||
|
||||
/proc/pick_closest_path(value, list/matches = get_fancy_list_of_atom_types())
|
||||
if (value == FALSE) //nothing should be calling us with a number, so this is safe
|
||||
value = input(usr, "Enter type to find (blank for all, cancel to cancel)", "Search for type") as null|text
|
||||
value = tgui_input_text(usr, "Enter type to find (blank for all, cancel to cancel)", "Search for type")
|
||||
if (isnull(value))
|
||||
return
|
||||
value = trim(value)
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
M.maptext = "Movable"
|
||||
M.maptext_width = 64
|
||||
|
||||
var/screen_l = input(usr,"Where on the screen? (Formatted as 'X,Y' e.g: '1,1' for bottom left)","Spawn Movable UI Object") as text
|
||||
var/screen_l = tgui_input_text(usr,"Where on the screen? (Formatted as 'X,Y' e.g: '1,1' for bottom left)","Spawn Movable UI Object")
|
||||
if(!screen_l)
|
||||
return
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
S.maptext = "Snap"
|
||||
S.maptext_width = 64
|
||||
|
||||
var/screen_l = input(usr,"Where on the screen? (Formatted as 'X,Y' e.g: '1,1' for bottom left)","Spawn Snap UI Object") as text
|
||||
var/screen_l = tgui_input_text(usr,"Where on the screen? (Formatted as 'X,Y' e.g: '1,1' for bottom left)","Spawn Snap UI Object")
|
||||
if(!screen_l)
|
||||
return
|
||||
|
||||
|
||||
@@ -352,13 +352,13 @@ SUBSYSTEM_DEF(game_master)
|
||||
choose_game_master(usr)
|
||||
|
||||
if(href_list["set_staleness"])
|
||||
var/amount = input(usr, "How much staleness should there be?", "Game Master") as null|num
|
||||
var/amount = tgui_input_number(usr, "How much staleness should there be?", "Game Master")
|
||||
if(!isnull(amount))
|
||||
staleness = amount
|
||||
message_admins("GM staleness was set to [amount] by [usr.key].")
|
||||
|
||||
if(href_list["set_danger"])
|
||||
var/amount = input(usr, "How much danger should there be?", "Game Master") as null|num
|
||||
var/amount = tgui_input_number(usr, "How much danger should there be?", "Game Master")
|
||||
if(!isnull(amount))
|
||||
danger = amount
|
||||
message_admins("GM danger was set to [amount] by [usr.key].")
|
||||
|
||||
@@ -88,7 +88,7 @@ SUBSYSTEM_DEF(media_tracks)
|
||||
return
|
||||
|
||||
// Required
|
||||
var/url = input(C, "REQUIRED: Provide URL for track, or paste JSON if you know what you're doing. See code comments.", "Track URL") as message|null
|
||||
var/url = tgui_input_text(C, "REQUIRED: Provide URL for track, or paste JSON if you know what you're doing. See code comments.", "Track URL", multiline = TRUE)
|
||||
if(!url)
|
||||
return
|
||||
|
||||
@@ -127,20 +127,20 @@ SUBSYSTEM_DEF(media_tracks)
|
||||
sort_tracks()
|
||||
return
|
||||
|
||||
var/title = input(C, "REQUIRED: Provide title for track", "Track Title") as text|null
|
||||
var/title = tgui_input_text(C, "REQUIRED: Provide title for track", "Track Title")
|
||||
if(!title)
|
||||
return
|
||||
|
||||
var/duration = input(C, "REQUIRED: Provide duration for track (in deciseconds, aka seconds*10)", "Track Duration") as num|null
|
||||
var/duration = tgui_input_number(C, "REQUIRED: Provide duration for track (in deciseconds, aka seconds*10)", "Track Duration")
|
||||
if(!duration)
|
||||
return
|
||||
|
||||
// Optional
|
||||
var/artist = input(C, "Optional: Provide artist for track", "Track Artist") as text|null
|
||||
var/artist = tgui_input_text(C, "Optional: Provide artist for track", "Track Artist")
|
||||
if(isnull(artist)) // Cancel rather than empty string
|
||||
return
|
||||
|
||||
var/genre = input(C, "Optional: Provide genre for track (try to match an existing one)", "Track Genre") as text|null
|
||||
var/genre = tgui_input_text(C, "Optional: Provide genre for track (try to match an existing one)", "Track Genre")
|
||||
if(isnull(genre)) // Cancel rather than empty string
|
||||
return
|
||||
|
||||
@@ -188,7 +188,7 @@ SUBSYSTEM_DEF(media_tracks)
|
||||
if(!check_rights(R_DEBUG|R_FUN))
|
||||
return
|
||||
|
||||
var/track = input(C, "Input track title or URL to remove (must be exact)", "Remove Track") as text|null
|
||||
var/track = tgui_input_text(C, "Input track title or URL to remove (must be exact)", "Remove Track")
|
||||
if(!track)
|
||||
return
|
||||
|
||||
|
||||
@@ -363,15 +363,15 @@ SUBSYSTEM_DEF(supply)
|
||||
|
||||
// Will add an item entry to the specified export receipt on the user-side list
|
||||
/datum/controller/subsystem/supply/proc/add_export_item(var/datum/exported_crate/E, var/mob/user)
|
||||
var/new_name = input(user, "Name", "Please enter the name of the item.") as null|text
|
||||
var/new_name = tgui_input_text(user, "Name", "Please enter the name of the item.")
|
||||
if(!new_name)
|
||||
return
|
||||
|
||||
var/new_quantity = input(user, "Name", "Please enter the quantity of the item.") as null|num
|
||||
var/new_quantity = tgui_input_number(user, "Name", "Please enter the quantity of the item.")
|
||||
if(!new_quantity)
|
||||
return
|
||||
|
||||
var/new_value = input(user, "Name", "Please enter the value of the item.") as null|num
|
||||
var/new_value = tgui_input_number(user, "Name", "Please enter the value of the item.")
|
||||
if(!new_value)
|
||||
return
|
||||
|
||||
|
||||
@@ -244,11 +244,11 @@ SUBSYSTEM_DEF(vote)
|
||||
choices.Add(antag.role_text)
|
||||
choices.Add("None")
|
||||
if(VOTE_CUSTOM)
|
||||
question = sanitizeSafe(input(usr, "What is the vote for?") as text|null)
|
||||
question = sanitizeSafe(tgui_input_text(usr, "What is the vote for?"))
|
||||
if(!question)
|
||||
return 0
|
||||
for(var/i = 1 to 10)
|
||||
var/option = capitalize(sanitize(input(usr, "Please enter an option or hit cancel to finish") as text|null))
|
||||
var/option = capitalize(sanitize(tgui_input_text(usr, "Please enter an option or hit cancel to finish")))
|
||||
if(!option || mode || !usr.client)
|
||||
break
|
||||
choices.Add(option)
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
names += componentsubtypes
|
||||
names += "---Elements---"
|
||||
names += sortTim(subtypesof(/datum/element), /proc/cmp_typepaths_asc)
|
||||
var/result = input(usr, "Choose a component/element to add:", "Add Component/Element", names)
|
||||
var/result = tgui_input_text(usr, "Choose a component/element to add:", "Add Component/Element", names)
|
||||
if(!usr || !result || result == "---Components---" || result == "---Elements---")
|
||||
return
|
||||
if(QDELETED(src))
|
||||
|
||||
@@ -99,7 +99,7 @@ GENERAL_PROTECT_DATUM(/datum/managed_browser/feedback_form)
|
||||
if(href_list["feedback_edit_body"])
|
||||
// This is deliberately not sanitized here, and is instead checked when hitting the submission button,
|
||||
// as we want to give the user a chance to fix it without needing to rewrite the whole thing.
|
||||
feedback_body = input(my_client, "Please write your feedback here.", "Feedback Body", feedback_body) as null|message
|
||||
feedback_body = tgui_input_text(my_client, "Please write your feedback here.", "Feedback Body", feedback_body, multiline = TRUE)
|
||||
display() // Refresh the window with new information.
|
||||
return
|
||||
|
||||
|
||||
@@ -132,29 +132,29 @@
|
||||
return
|
||||
|
||||
if(href_list["filter_id"])
|
||||
var/id_to_search = input(my_client, "Write feedback ID here.", "Filter by ID", null) as null|num
|
||||
var/id_to_search = tgui_input_number(my_client, "Write feedback ID here.", "Filter by ID", null)
|
||||
if(id_to_search)
|
||||
last_query = feedback_filter(SQLITE_FEEDBACK_COLUMN_ID, id_to_search, TRUE)
|
||||
|
||||
if(href_list["filter_author"])
|
||||
var/author_to_search = input(my_client, "Write desired key or hash here. Partial keys/hashes are allowed.", "Filter by Author", null) as null|text
|
||||
var/author_to_search = tgui_input_text(my_client, "Write desired key or hash here. Partial keys/hashes are allowed.", "Filter by Author", null)
|
||||
if(author_to_search)
|
||||
last_query = feedback_filter(SQLITE_FEEDBACK_COLUMN_AUTHOR, author_to_search)
|
||||
|
||||
if(href_list["filter_topic"])
|
||||
var/topic_to_search = input(my_client, "Write desired topic here. Partial topics are allowed. \
|
||||
\nThe current topics in the config are [english_list(config.sqlite_feedback_topics)].", "Filter by Topic", null) as null|text
|
||||
var/topic_to_search = tgui_input_text(my_client, "Write desired topic here. Partial topics are allowed. \
|
||||
\nThe current topics in the config are [english_list(config.sqlite_feedback_topics)].", "Filter by Topic", null)
|
||||
if(topic_to_search)
|
||||
last_query = feedback_filter(SQLITE_FEEDBACK_COLUMN_TOPIC, topic_to_search)
|
||||
|
||||
if(href_list["filter_content"])
|
||||
var/content_to_search = input(my_client, "Write desired content to find here. Partial matches are allowed.", "Filter by Content", null) as null|message
|
||||
var/content_to_search = tgui_input_text(my_client, "Write desired content to find here. Partial matches are allowed.", "Filter by Content", null, multiline = TRUE)
|
||||
if(content_to_search)
|
||||
last_query = feedback_filter(SQLITE_FEEDBACK_COLUMN_CONTENT, content_to_search)
|
||||
|
||||
if(href_list["filter_datetime"])
|
||||
var/datetime_to_search = input(my_client, "Write desired datetime. Partial matches are allowed.\n\
|
||||
Format is 'YYYY-MM-DD HH:MM:SS'.", "Filter by Datetime", null) as null|text
|
||||
var/datetime_to_search = tgui_input_text(my_client, "Write desired datetime. Partial matches are allowed.\n\
|
||||
Format is 'YYYY-MM-DD HH:MM:SS'.", "Filter by Datetime", null)
|
||||
if(datetime_to_search)
|
||||
last_query = feedback_filter(SQLITE_FEEDBACK_COLUMN_DATETIME, datetime_to_search)
|
||||
|
||||
|
||||
@@ -1,32 +1,22 @@
|
||||
/* Note from Carnie:
|
||||
The way datum/mind stuff works has been changed a lot.
|
||||
Minds now represent IC characters rather than following a client around constantly.
|
||||
|
||||
Guidelines for using minds properly:
|
||||
|
||||
- Never mind.transfer_to(ghost). The var/current and var/original of a mind must always be of type mob/living!
|
||||
ghost.mind is however used as a reference to the ghost's corpse
|
||||
|
||||
- When creating a new mob for an existing IC character (e.g. cloning a dead guy or borging a brain of a human)
|
||||
the existing mind of the old mob should be transfered to the new mob like so:
|
||||
|
||||
mind.transfer_to(new_mob)
|
||||
|
||||
- You must not assign key= or ckey= after transfer_to() since the transfer_to transfers the client for you.
|
||||
By setting key or ckey explicitly after transfering the mind with transfer_to you will cause bugs like DCing
|
||||
the player.
|
||||
|
||||
- IMPORTANT NOTE 2, if you want a player to become a ghost, use mob.ghostize() It does all the hard work for you.
|
||||
|
||||
- When creating a new mob which will be a new IC character (e.g. putting a shade in a construct or randomly selecting
|
||||
a ghost to become a xeno during an event). Simply assign the key or ckey like you've always done.
|
||||
|
||||
new_mob.key = key
|
||||
|
||||
The Login proc will handle making a new mob for that mobtype (including setting up stuff like mind.name). Simple!
|
||||
However if you want that mind to have any special properties like being a traitor etc you will have to do that
|
||||
yourself.
|
||||
|
||||
*/
|
||||
|
||||
/datum/mind
|
||||
@@ -190,11 +180,7 @@
|
||||
assigned_role = new_role
|
||||
|
||||
else if (href_list["memory_edit"])
|
||||
<<<<<<< HEAD
|
||||
var/new_memo = sanitize(input("Write new memory", "Memory", memory) as null|message)
|
||||
=======
|
||||
var/new_memo = sanitize(tgui_input_text(usr, "Write new memory", "Memory", memory, multiline = TRUE))
|
||||
>>>>>>> cab11cf3ea... Merge pull request #13122 from ItsSelis/tgui-input-conversions
|
||||
if (isnull(new_memo)) return
|
||||
memory = new_memo
|
||||
|
||||
@@ -202,11 +188,7 @@
|
||||
var/datum/mind/mind = locate(href_list["amb_edit"])
|
||||
if(!mind)
|
||||
return
|
||||
<<<<<<< HEAD
|
||||
var/new_ambition = input("Enter a new ambition", "Memory", mind.ambitions) as null|message
|
||||
=======
|
||||
var/new_ambition = tgui_input_text(usr, "Enter a new ambition", "Memory", mind.ambitions, multiline = TRUE)
|
||||
>>>>>>> cab11cf3ea... Merge pull request #13122 from ItsSelis/tgui-input-conversions
|
||||
if(isnull(new_ambition))
|
||||
return
|
||||
if(mind)
|
||||
@@ -304,11 +286,7 @@
|
||||
if(objective&&objective.type==text2path("/datum/objective/[new_obj_type]"))
|
||||
def_num = objective.target_amount
|
||||
|
||||
<<<<<<< HEAD
|
||||
var/target_number = input("Input target number:", "Objective", def_num) as num|null
|
||||
=======
|
||||
var/target_number = tgui_input_number(usr, "Input target number:", "Objective", def_num)
|
||||
>>>>>>> cab11cf3ea... Merge pull request #13122 from ItsSelis/tgui-input-conversions
|
||||
if (isnull(target_number))//Ordinarily, you wouldn't need isnull. In this case, the value may already exist.
|
||||
return
|
||||
|
||||
@@ -326,11 +304,7 @@
|
||||
new_objective.target_amount = target_number
|
||||
|
||||
if ("custom")
|
||||
<<<<<<< HEAD
|
||||
var/expl = sanitize(input("Custom objective:", "Objective", objective ? objective.explanation_text : "") as text|null)
|
||||
=======
|
||||
var/expl = sanitize(tgui_input_text(usr, "Custom objective:", "Objective", objective ? objective.explanation_text : ""))
|
||||
>>>>>>> cab11cf3ea... Merge pull request #13122 from ItsSelis/tgui-input-conversions
|
||||
if (!expl) return
|
||||
new_objective = new /datum/objective
|
||||
new_objective.owner = src
|
||||
@@ -426,11 +400,7 @@
|
||||
// var/obj/item/device/uplink/hidden/suplink = find_syndicate_uplink() No longer needed, uses stored in mind
|
||||
var/crystals
|
||||
crystals = tcrystals
|
||||
<<<<<<< HEAD
|
||||
crystals = input("Amount of telecrystals for [key]", crystals) as null|num
|
||||
=======
|
||||
crystals = tgui_input_number(usr, "Amount of telecrystals for [key]", crystals)
|
||||
>>>>>>> cab11cf3ea... Merge pull request #13122 from ItsSelis/tgui-input-conversions
|
||||
if (!isnull(crystals))
|
||||
tcrystals = crystals
|
||||
|
||||
|
||||
@@ -66,17 +66,19 @@
|
||||
/obj/fiftyspawner/tealcarpet
|
||||
)
|
||||
|
||||
/datum/supply_pack/materials/arcade_carpet
|
||||
name = "Retro carpets"
|
||||
/datum/supply_pack/materials/retrocarpet
|
||||
name = "Retro carpet"
|
||||
containertype = /obj/structure/closet/crate/grayson
|
||||
containername = "Retro carpets crate"
|
||||
containername = "Retro carpet crate"
|
||||
cost = 15
|
||||
contains = list(
|
||||
/obj/fiftyspawner/decocarpet,
|
||||
/obj/fiftyspawner/retrocarpet
|
||||
/obj/fiftyspawner/geocarpet,
|
||||
/obj/fiftyspawner/retrocarpet,
|
||||
/obj/fiftyspawner/retrocarpet_red,
|
||||
/obj/fiftyspawner/happycarpet
|
||||
)
|
||||
|
||||
/datum/supply_pack/misc/linoleum
|
||||
/datum/supply_pack/materials/linoleum
|
||||
name = "Linoleum"
|
||||
containertype = /obj/structure/closet/crate/grayson
|
||||
containername = "Linoleum crate"
|
||||
|
||||
@@ -9,18 +9,30 @@
|
||||
/datum/supply_pack/supply/food
|
||||
name = "Kitchen supply crate"
|
||||
contains = list(
|
||||
/obj/item/weapon/reagent_containers/food/condiment/flour = 6,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/carton/flour = 6,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/milk = 3,
|
||||
/obj/item/weapon/reagent_containers/food/drinks/soymilk = 2,
|
||||
/obj/item/weapon/storage/fancy/egg_box = 2,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/tofu = 4,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/meat = 4,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/yeast = 3
|
||||
/obj/item/weapon/reagent_containers/food/condiment/yeast = 3,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/sprinkles = 1
|
||||
)
|
||||
cost = 10
|
||||
containertype = /obj/structure/closet/crate/freezer/centauri
|
||||
containername = "Food crate"
|
||||
|
||||
/datum/supply_pack/supply/fancyfood
|
||||
name = "Artisanal food delivery"
|
||||
contains = list(
|
||||
/obj/item/weapon/reagent_containers/food/condiment/carton/flour/rustic = 6,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/carton/sugar/rustic = 6
|
||||
)
|
||||
cost = 25
|
||||
containertype = /obj/structure/closet/crate/freezer/centauri
|
||||
containername = "Artisanal food crate"
|
||||
|
||||
|
||||
/datum/supply_pack/supply/toner
|
||||
name = "Toner cartridges"
|
||||
contains = list(/obj/item/device/toner = 6)
|
||||
|
||||
@@ -16,10 +16,10 @@
|
||||
item_cost = 20
|
||||
|
||||
/datum/uplink_item/abstract/announcements/fake_centcom/extra_args(var/mob/user)
|
||||
var/title = sanitize(input(usr, "Enter your announcement title.", "Announcement Title") as null|text)
|
||||
var/title = sanitize(tgui_input_text(usr, "Enter your announcement title.", "Announcement Title"))
|
||||
if(!title)
|
||||
return
|
||||
var/message = sanitize(input(usr, "Enter your announcement message.", "Announcement Title") as null|text)
|
||||
var/message = sanitize(tgui_input_text(usr, "Enter your announcement message.", "Announcement Title"))
|
||||
if(!message)
|
||||
return
|
||||
return list("title" = title, "message" = message)
|
||||
|
||||
@@ -41,9 +41,9 @@
|
||||
to_chat(src, "<span class='warning'>While you may perhaps have goals, this verb's meant to only be visible \
|
||||
to antagonists. Please make a bug report!</span>")
|
||||
return
|
||||
var/new_ambitions = input(src, "Write a short sentence of what your character hopes to accomplish \
|
||||
var/new_ambitions = tgui_input_text(src, "Write a short sentence of what your character hopes to accomplish \
|
||||
today as an antagonist. Remember that this is purely optional. It will be shown at the end of the \
|
||||
round for everybody else.", "Ambitions", mind.ambitions) as null|message
|
||||
round for everybody else.", "Ambitions", mind.ambitions, multiline = TRUE)
|
||||
if(isnull(new_ambitions))
|
||||
return
|
||||
new_ambitions = sanitize(new_ambitions)
|
||||
|
||||
@@ -716,7 +716,7 @@
|
||||
. = ..()
|
||||
SEND_SIGNAL(src, COMSIG_ATOM_EXITED, AM, new_loc)
|
||||
|
||||
/atom/proc/get_visible_gender()
|
||||
/atom/proc/get_visible_gender(mob/user, force)
|
||||
return gender
|
||||
|
||||
/atom/proc/interact(mob/user)
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
if(!holder) return
|
||||
|
||||
var/choice = input(usr, "Which Z-level do you wish to set the base turf for?") as num|null
|
||||
var/choice = tgui_input_number(usr, "Which Z-level do you wish to set the base turf for?")
|
||||
if(!choice)
|
||||
return
|
||||
|
||||
|
||||
@@ -214,8 +214,8 @@ var/global/list/Holiday = list() //Holidays are lists now, so we can have more t
|
||||
|
||||
Holiday = list()
|
||||
|
||||
var/H = input(src,"What holiday is it today?","Set Holiday") as text
|
||||
var/B = input(src,"Now explain what the holiday is about","Set Holiday") as message
|
||||
var/H = tgui_input_text(src,"What holiday is it today?","Set Holiday")
|
||||
var/B = tgui_input_text(src,"Now explain what the holiday is about","Set Holiday", multiline = TRUE)
|
||||
|
||||
|
||||
Holiday[H] = B
|
||||
|
||||
@@ -59,23 +59,23 @@ var/global/list/additional_antag_types = list()
|
||||
var/choice = ""
|
||||
switch(href_list["set"])
|
||||
if("shuttle_delay")
|
||||
choice = input(usr, "Enter a new shuttle delay multiplier") as num
|
||||
choice = tgui_input_number(usr, "Enter a new shuttle delay multiplier", null, null, 20, 1)
|
||||
if(!choice || choice < 1 || choice > 20)
|
||||
return
|
||||
shuttle_delay = choice
|
||||
if("antag_scaling")
|
||||
choice = input(usr, "Enter a new antagonist cap scaling coefficient.") as num
|
||||
choice = tgui_input_number(usr, "Enter a new antagonist cap scaling coefficient.", null, null, 100, 0)
|
||||
if(isnull(choice) || choice < 0 || choice > 100)
|
||||
return
|
||||
antag_scaling_coeff = choice
|
||||
if("event_modifier_moderate")
|
||||
choice = input(usr, "Enter a new moderate event time modifier.") as num
|
||||
choice = tgui_input_number(usr, "Enter a new moderate event time modifier.", null, null, 100, 0)
|
||||
if(isnull(choice) || choice < 0 || choice > 100)
|
||||
return
|
||||
event_delay_mod_moderate = choice
|
||||
refresh_event_modifiers()
|
||||
if("event_modifier_severe")
|
||||
choice = input(usr, "Enter a new moderate event time modifier.") as num
|
||||
choice = tgui_input_number(usr, "Enter a new moderate event time modifier.", null, null, 100, 0)
|
||||
if(isnull(choice) || choice < 0 || choice > 100)
|
||||
return
|
||||
event_delay_mod_major = choice
|
||||
|
||||
@@ -93,8 +93,8 @@
|
||||
if(!ability_prechecks(user, price))
|
||||
return
|
||||
|
||||
var/title = input(usr, "Select message title: ")
|
||||
var/text = input(usr, "Select message text: ")
|
||||
var/title = tgui_input_text(usr, "Select message title: ")
|
||||
var/text = tgui_input_text(usr, "Select message text: ")
|
||||
if(!title || !text || !ability_pay(user, price))
|
||||
to_chat(user, "Hack Aborted")
|
||||
return
|
||||
|
||||
@@ -124,10 +124,10 @@
|
||||
if("Location")
|
||||
mode = 1
|
||||
|
||||
var/locationx = input(usr, "Please input the x coordinate to search for.", "Location?" , "") as num
|
||||
var/locationx = tgui_input_number(usr, "Please input the x coordinate to search for.", "Location?" , "")
|
||||
if(!locationx || !(usr in view(1,src)))
|
||||
return
|
||||
var/locationy = input(usr, "Please input the y coordinate to search for.", "Location?" , "") as num
|
||||
var/locationy = tgui_input_number(usr, "Please input the y coordinate to search for.", "Location?" , "")
|
||||
if(!locationy || !(usr in view(1,src)))
|
||||
return
|
||||
|
||||
@@ -160,7 +160,7 @@
|
||||
to_chat(usr, "You set the pinpointer to locate [targetitem]")
|
||||
|
||||
if("DNA")
|
||||
var/DNAstring = input(usr, "Input DNA string to search for." , "Please Enter String." , "")
|
||||
var/DNAstring = tgui_input_text(usr, "Input DNA string to search for." , "Please Enter String." , "")
|
||||
if(!DNAstring)
|
||||
return
|
||||
for(var/mob/living/carbon/M in mob_list)
|
||||
|
||||
@@ -481,7 +481,7 @@ var/global/list/all_objectives = list()
|
||||
var/tmp_obj = new custom_target
|
||||
var/custom_name = tmp_obj:name
|
||||
qdel(tmp_obj)
|
||||
custom_name = sanitize(input(usr, "Enter target name:", "Objective target", custom_name) as text|null)
|
||||
custom_name = sanitize(tgui_input_text(usr, "Enter target name:", "Objective target", custom_name))
|
||||
if (!custom_name) return
|
||||
target_name = custom_name
|
||||
steal_target = custom_target
|
||||
|
||||
@@ -49,12 +49,12 @@
|
||||
if("Cancel")
|
||||
return
|
||||
if("Speak")
|
||||
var/what_to_say = input(user, "What do you want \the [illusion] to say?","Illusion Speak") as null|text
|
||||
var/what_to_say = tgui_input_text(user, "What do you want \the [illusion] to say?","Illusion Speak")
|
||||
//what_to_say = sanitize(what_to_say) //Sanitize occurs inside say() already.
|
||||
if(what_to_say)
|
||||
illusion.say(what_to_say)
|
||||
if("Emote")
|
||||
var/what_to_emote = input(user, "What do you want \the [illusion] to do?","Illusion Emote") as null|text
|
||||
var/what_to_emote = tgui_input_text(user, "What do you want \the [illusion] to do?","Illusion Emote")
|
||||
if(what_to_emote)
|
||||
illusion.emote(what_to_emote)
|
||||
|
||||
|
||||
@@ -675,7 +675,7 @@
|
||||
var/list/selected = TLV["temperature"]
|
||||
var/max_temperature = min(selected[3] - T0C, MAX_TEMPERATURE)
|
||||
var/min_temperature = max(selected[2] - T0C, MIN_TEMPERATURE)
|
||||
var/input_temperature = input(usr, "What temperature would you like the system to mantain? (Capped between [min_temperature] and [max_temperature]C)", "Thermostat Controls", target_temperature - T0C) as num|null
|
||||
var/input_temperature = tgui_input_number(usr, "What temperature would you like the system to mantain? (Capped between [min_temperature] and [max_temperature]C)", "Thermostat Controls", target_temperature - T0C, max_temperature, min_temperature)
|
||||
if(isnum(input_temperature))
|
||||
if(input_temperature > max_temperature || input_temperature < min_temperature)
|
||||
to_chat(usr, "Temperature must be between [min_temperature]C and [max_temperature]C")
|
||||
@@ -729,7 +729,7 @@
|
||||
var/env = params["env"]
|
||||
|
||||
var/name = params["var"]
|
||||
var/value = input(usr, "New [name] for [env]:", name, TLV[env][name]) as num|null
|
||||
var/value = tgui_input_number(usr, "New [name] for [env]:", name, TLV[env][name])
|
||||
if(!isnull(value) && !..())
|
||||
if(value < 0)
|
||||
TLV[env][name] = -1
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
turn_off()
|
||||
return
|
||||
if(istype(I, /obj/item/device/multitool))
|
||||
var/new_temp = input(usr, "Input a new target temperature, in degrees C.","Target Temperature", 20) as num
|
||||
var/new_temp = tgui_input_number(usr, "Input a new target temperature, in degrees C.","Target Temperature", 20)
|
||||
if(!Adjacent(user) || user.incapacitated())
|
||||
return
|
||||
new_temp = convert_c2k(new_temp)
|
||||
|
||||
@@ -332,7 +332,7 @@ update_flag
|
||||
pressure = 10*ONE_ATMOSPHERE
|
||||
. = TRUE
|
||||
else if(pressure == "input")
|
||||
pressure = input(usr, "New release pressure ([ONE_ATMOSPHERE/10]-[10*ONE_ATMOSPHERE] kPa):", name, release_pressure) as num|null
|
||||
pressure = tgui_input_number(usr, "New release pressure ([ONE_ATMOSPHERE/10]-[10*ONE_ATMOSPHERE] kPa):", name, release_pressure, 10*ONE_ATMOSPHERE, ONE_ATMOSPHERE/10)
|
||||
if(!isnull(pressure) && !..())
|
||||
. = TRUE
|
||||
else if(text2num(pressure) != null)
|
||||
|
||||
@@ -176,7 +176,7 @@
|
||||
if(!isnull(materials.get_material_amount(material)) && materials.get_material_amount(material) < round(making.resources[material] * coeff))
|
||||
max_sheets = 0
|
||||
//Build list of multipliers for sheets.
|
||||
multiplier = input(usr, "How many do you want to print? (0-[max_sheets])") as num|null
|
||||
multiplier = tgui_input_number(usr, "How many do you want to print? (0-[max_sheets])", null, null, max_sheets, 0)
|
||||
if(!multiplier || multiplier <= 0 || multiplier > max_sheets || tgui_status(usr, state) != STATUS_INTERACTIVE)
|
||||
return FALSE
|
||||
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
if(W.is_screwdriver())
|
||||
playsound(src, W.usesound, 50, 1)
|
||||
|
||||
var/input = sanitize(input(usr, "Which networks would you like to connect this camera to? Separate networks with a comma. No Spaces!\nFor example: "+using_map.station_short+",Security,Secret ", "Set Network", camera_network ? camera_network : NETWORK_DEFAULT))
|
||||
var/input = sanitize(tgui_input_text(usr, "Which networks would you like to connect this camera to? Separate networks with a comma. No Spaces!\nFor example: "+using_map.station_short+",Security,Secret ", "Set Network", camera_network ? camera_network : NETWORK_DEFAULT))
|
||||
if(!input)
|
||||
to_chat(usr, "No input found please hang up and try your call again.")
|
||||
return
|
||||
@@ -92,7 +92,7 @@
|
||||
|
||||
var/area/camera_area = get_area(src)
|
||||
var/temptag = "[sanitize(camera_area.name)] ([rand(1, 999)])"
|
||||
input = sanitizeSafe(input(usr, "How would you like to name the camera?", "Set Camera Name", camera_name ? camera_name : temptag), MAX_NAME_LEN)
|
||||
input = sanitizeSafe(tgui_input_text(usr, "How would you like to name the camera?", "Set Camera Name", camera_name ? camera_name : temptag), MAX_NAME_LEN)
|
||||
|
||||
state = 4
|
||||
var/obj/machinery/camera/C = new(src.loc)
|
||||
|
||||
@@ -1182,7 +1182,7 @@
|
||||
// Have the customer punch in the PIN before checking if there's enough money. Prevents people from figuring out acct is
|
||||
// empty at high security levels
|
||||
if(customer_account.security_level != 0) //If card requires pin authentication (ie seclevel 1 or 2)
|
||||
var/attempt_pin = input(usr, "Enter pin code", "Vendor transaction") as num
|
||||
var/attempt_pin = tgui_input_number(usr, "Enter pin code", "Vendor transaction")
|
||||
customer_account = attempt_account_access(I.associated_account_number, attempt_pin, 2)
|
||||
|
||||
if(!customer_account)
|
||||
|
||||
@@ -205,7 +205,7 @@
|
||||
if(is_authenticated() && modify)
|
||||
var/t1 = params["assign_target"]
|
||||
if(t1 == "Custom")
|
||||
var/temp_t = sanitize(input(usr, "Enter a custom job assignment.","Assignment"), 45)
|
||||
var/temp_t = sanitize(tgui_input_text(usr, "Enter a custom job assignment.","Assignment"), 45)
|
||||
//let custom jobs function as an impromptu alt title, mainly for sechuds
|
||||
if(temp_t && modify)
|
||||
modify.assignment = temp_t
|
||||
|
||||
@@ -170,15 +170,15 @@
|
||||
mode = params["mode"]
|
||||
|
||||
if("giv_name")
|
||||
var/nam = sanitizeName(input(usr, "Person pass is issued to", "Name", giv_name) as text|null)
|
||||
var/nam = sanitizeName(tgui_input_text(usr, "Person pass is issued to", "Name", giv_name))
|
||||
if(nam)
|
||||
giv_name = nam
|
||||
if("reason")
|
||||
var/reas = sanitize(input(usr, "Reason why pass is issued", "Reason", reason) as text|null)
|
||||
var/reas = sanitize(tgui_input_text(usr, "Reason why pass is issued", "Reason", reason))
|
||||
if(reas)
|
||||
reason = reas
|
||||
if("duration")
|
||||
var/dur = input(usr, "Duration (in minutes) during which pass is valid (up to 360 minutes).", "Duration") as num|null //VOREStation Edit
|
||||
var/dur = tgui_input_number(usr, "Duration (in minutes) during which pass is valid (up to 360 minutes).", "Duration", null, 360, 0)
|
||||
if(dur)
|
||||
if(dur > 0 && dur <= 360) //VOREStation Edit
|
||||
duration = dur
|
||||
|
||||
@@ -243,7 +243,7 @@
|
||||
. = TRUE
|
||||
//Change the password - KEY REQUIRED
|
||||
if("pass")
|
||||
var/dkey = trim(input(usr, "Please enter the current decryption key.") as text|null)
|
||||
var/dkey = trim(tgui_input_text(usr, "Please enter the current decryption key."))
|
||||
if(dkey && dkey != "")
|
||||
if(linkedServer.decryptkey == dkey)
|
||||
var/newkey = trim(tgui_input_text(usr,"Please enter the new key (3 - 16 characters max):",null,null,16))
|
||||
@@ -325,7 +325,7 @@
|
||||
. = TRUE
|
||||
|
||||
if("addtoken")
|
||||
linkedServer.spamfilter += input(usr,"Enter text you want to be filtered out","Token creation") as text|null
|
||||
linkedServer.spamfilter += tgui_input_text(usr,"Enter text you want to be filtered out","Token creation")
|
||||
. = TRUE
|
||||
|
||||
if("deltoken")
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
to_chat(usr, "Unauthorized Access.")
|
||||
. = TRUE
|
||||
if("warn")
|
||||
var/warning = sanitize(input(usr, "Message:", "Enter your message here!", ""))
|
||||
var/warning = sanitize(tgui_input_text(usr, "Message:", "Enter your message here!", ""))
|
||||
if(!warning)
|
||||
return
|
||||
var/obj/item/weapon/implant/I = locate(params["imp"])
|
||||
|
||||
@@ -221,12 +221,12 @@
|
||||
visible_message("<span class='warning'>[src]'s monitor flashes, \"[reqtime - world.time] seconds remaining until another requisition form may be printed.\"</span>")
|
||||
return FALSE
|
||||
|
||||
var/amount = clamp(input(usr, "How many crates? (0 to 20)") as num|null, 0, 20)
|
||||
var/amount = clamp(tgui_input_number(usr, "How many crates? (0 to 20)", null, null, 20, 0), 0, 20)
|
||||
if(!amount)
|
||||
return FALSE
|
||||
|
||||
var/timeout = world.time + 600
|
||||
var/reason = sanitize(input(usr, "Reason:","Why do you require this item?","") as null|text)
|
||||
var/reason = sanitize(tgui_input_text(usr, "Reason:","Why do you require this item?",""))
|
||||
if(world.time > timeout)
|
||||
to_chat(usr, "<span class='warning'>Error. Request timed out.</span>")
|
||||
return FALSE
|
||||
@@ -280,7 +280,7 @@
|
||||
return FALSE
|
||||
|
||||
var/timeout = world.time + 600
|
||||
var/reason = sanitize(input(usr, "Reason:","Why do you require this item?","") as null|text)
|
||||
var/reason = sanitize(tgui_input_text(usr, "Reason:","Why do you require this item?",""))
|
||||
if(world.time > timeout)
|
||||
to_chat(usr, "<span class='warning'>Error. Request timed out.</span>")
|
||||
return FALSE
|
||||
@@ -323,7 +323,7 @@
|
||||
return FALSE
|
||||
if(!(authorization & SUP_ACCEPT_ORDERS))
|
||||
return FALSE
|
||||
var/new_val = sanitize(input(usr, params["edit"], "Enter the new value for this field:", params["default"]) as null|text)
|
||||
var/new_val = sanitize(tgui_input_text(usr, params["edit"], "Enter the new value for this field:", params["default"]))
|
||||
if(!new_val)
|
||||
return FALSE
|
||||
|
||||
@@ -396,7 +396,7 @@
|
||||
var/list/L = E.contents[params["index"]]
|
||||
var/field = tgui_alert(usr, "Select which field to edit", "Field Choice", list("Name", "Quantity", "Value"))
|
||||
|
||||
var/new_val = sanitize(input(usr, field, "Enter the new value for this field:", L[lowertext(field)]) as null|text)
|
||||
var/new_val = sanitize(tgui_input_text(usr, field, "Enter the new value for this field:", L[lowertext(field)]))
|
||||
if(!new_val)
|
||||
return
|
||||
|
||||
@@ -439,7 +439,7 @@
|
||||
return FALSE
|
||||
if(!(authorization & SUP_ACCEPT_ORDERS))
|
||||
return FALSE
|
||||
var/new_val = sanitize(input(usr, params["edit"], "Enter the new value for this field:", params["default"]) as null|text)
|
||||
var/new_val = sanitize(tgui_input_text(usr, params["edit"], "Enter the new value for this field:", params["default"]))
|
||||
if(!new_val)
|
||||
return
|
||||
|
||||
|
||||
@@ -305,7 +305,7 @@
|
||||
if(auth)
|
||||
var/t1 = href_list["assign"]
|
||||
if(t1 == "Custom")
|
||||
var/temp_t = sanitize(input(usr, "Enter a custom job assignment.","Assignment"))
|
||||
var/temp_t = sanitize(tgui_input_text(usr, "Enter a custom job assignment.","Assignment"))
|
||||
if(temp_t)
|
||||
t1 = temp_t
|
||||
set_default_access(t1)
|
||||
|
||||
@@ -693,7 +693,7 @@ var/list/dispenser_presets = list()
|
||||
* "gearlist" = array of types (yes the types are not valid json, byond parses them into real types.)
|
||||
* "req_one_access" = array of numbers (accesses)
|
||||
*/
|
||||
var/input = input(usr, "Paste new gear pack JSON below. See example/code comments.", "Admin-load Dispenser", example) as null|message
|
||||
var/input = tgui_input_text(usr, "Paste new gear pack JSON below. See example/code comments.", "Admin-load Dispenser", example, multiline = TRUE)
|
||||
if(!input)
|
||||
return
|
||||
|
||||
|
||||
@@ -401,20 +401,20 @@
|
||||
return
|
||||
|
||||
// Required
|
||||
var/url = input(C, "REQUIRED: Provide URL for track", "Track URL") as text|null
|
||||
var/url = tgui_input_text(C, "REQUIRED: Provide URL for track", "Track URL")
|
||||
if(!url)
|
||||
return
|
||||
|
||||
var/title = input(C, "REQUIRED: Provide title for track", "Track Title") as text|null
|
||||
var/title = tgui_input_text(C, "REQUIRED: Provide title for track", "Track Title")
|
||||
if(!title)
|
||||
return
|
||||
|
||||
var/duration = input(C, "REQUIRED: Provide duration for track (in deciseconds, aka seconds*10)", "Track Duration") as num|null
|
||||
var/duration = tgui_input_number(C, "REQUIRED: Provide duration for track (in deciseconds, aka seconds*10)", "Track Duration")
|
||||
if(!duration)
|
||||
return
|
||||
|
||||
// Optional
|
||||
var/artist = input(C, "Optional: Provide artist for track", "Track Artist") as text|null
|
||||
var/artist = tgui_input_text(C, "Optional: Provide artist for track", "Track Artist")
|
||||
if(isnull(artist)) // Cancel rather than empty string
|
||||
return
|
||||
|
||||
@@ -428,7 +428,7 @@
|
||||
if(!check_rights(R_FUN|R_ADMIN))
|
||||
return
|
||||
|
||||
var/track = input(C, "Input track title or URL to remove (must be exact)", "Remove Track") as text|null
|
||||
var/track = tgui_input_text(C, "Input track title or URL to remove (must be exact)", "Remove Track")
|
||||
if(!track)
|
||||
return
|
||||
|
||||
|
||||
@@ -314,7 +314,7 @@
|
||||
if(speed <= 0)
|
||||
speed = 1
|
||||
if("setpath")
|
||||
var/newpath = sanitize(input(usr, "Please define a new path!",,path) as text|null)
|
||||
var/newpath = sanitize(tgui_input_text(usr, "Please define a new path!",,path))
|
||||
if(newpath && newpath != "")
|
||||
moving = 0 // stop moving
|
||||
path = newpath
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
if(istype(I, /obj/item/device/multitool))
|
||||
if(panel_open)
|
||||
var/input = sanitize(input(usr, "What id would you like to give this conveyor?", "Multitool-Conveyor interface", id))
|
||||
var/input = sanitize(tgui_input_text(usr, "What id would you like to give this conveyor?", "Multitool-Conveyor interface", id))
|
||||
if(!input)
|
||||
to_chat(usr, "No input found please hang up and try your call again.")
|
||||
return
|
||||
|
||||
@@ -150,7 +150,7 @@ Transponder Codes:<UL>"}
|
||||
usr.set_machine(src)
|
||||
|
||||
if(href_list["locedit"])
|
||||
var/newloc = sanitize(input(usr, "Enter New Location", "Navigation Beacon", location) as text|null)
|
||||
var/newloc = sanitize(tgui_input_text(usr, "Enter New Location", "Navigation Beacon", location))
|
||||
if(newloc)
|
||||
location = newloc
|
||||
updateDialog()
|
||||
@@ -158,12 +158,12 @@ Transponder Codes:<UL>"}
|
||||
else if(href_list["edit"])
|
||||
var/codekey = href_list["code"]
|
||||
|
||||
var/newkey = input(usr, "Enter Transponder Code Key", "Navigation Beacon", codekey) as text|null
|
||||
var/newkey = tgui_input_text(usr, "Enter Transponder Code Key", "Navigation Beacon", codekey)
|
||||
if(!newkey)
|
||||
return
|
||||
|
||||
var/codeval = codes[codekey]
|
||||
var/newval = input(usr, "Enter Transponder Code Value", "Navigation Beacon", codeval) as text|null
|
||||
var/newval = tgui_input_text(usr, "Enter Transponder Code Value", "Navigation Beacon", codeval)
|
||||
if(!newval)
|
||||
newval = codekey
|
||||
return
|
||||
@@ -180,11 +180,11 @@ Transponder Codes:<UL>"}
|
||||
|
||||
else if(href_list["add"])
|
||||
|
||||
var/newkey = input(usr, "Enter New Transponder Code Key", "Navigation Beacon") as text|null
|
||||
var/newkey = tgui_input_text(usr, "Enter New Transponder Code Key", "Navigation Beacon")
|
||||
if(!newkey)
|
||||
return
|
||||
|
||||
var/newval = input(usr, "Enter New Transponder Code Value", "Navigation Beacon") as text|null
|
||||
var/newval = tgui_input_text(usr, "Enter New Transponder Code Value", "Navigation Beacon")
|
||||
if(!newval)
|
||||
newval = "1"
|
||||
return
|
||||
|
||||
@@ -447,7 +447,7 @@ GLOBAL_LIST_BOILERPLATE(allCasters, /obj/machinery/newscaster)
|
||||
return TRUE
|
||||
|
||||
if("set_new_message")
|
||||
msg = sanitize(tgui_input_message(usr, "Write your Feed story", "Network Channel Handler"))
|
||||
msg = sanitize(tgui_input_text(usr, "Write your Feed story", "Network Channel Handler", multiline = TRUE))
|
||||
return TRUE
|
||||
|
||||
if("set_new_title")
|
||||
|
||||
@@ -97,7 +97,7 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/pointdefense)
|
||||
|
||||
/obj/machinery/pointdefense_control/attackby(var/obj/item/W, var/mob/user)
|
||||
if(W?.is_multitool())
|
||||
var/new_ident = input(user, "Enter a new ident tag.", "[src]", id_tag) as null|text
|
||||
var/new_ident = tgui_input_text(user, "Enter a new ident tag.", "[src]", id_tag)
|
||||
if(new_ident && new_ident != id_tag && user.Adjacent(src) && CanInteract(user, GLOB.tgui_physical_state))
|
||||
// Check for duplicate controllers with this ID
|
||||
for(var/obj/machinery/pointdefense_control/PC as anything in GLOB.pointdefense_controllers)
|
||||
@@ -212,7 +212,7 @@ GLOBAL_LIST_BOILERPLATE(pointdefense_turrets, /obj/machinery/pointdefense)
|
||||
|
||||
/obj/machinery/pointdefense/attackby(var/obj/item/W, var/mob/user)
|
||||
if(W?.is_multitool())
|
||||
var/new_ident = input(user, "Enter a new ident tag.", "[src]", id_tag) as null|text
|
||||
var/new_ident = tgui_input_text(user, "Enter a new ident tag.", "[src]", id_tag)
|
||||
if(new_ident && new_ident != id_tag && user.Adjacent(src) && CanInteract(user, GLOB.tgui_physical_state))
|
||||
to_chat(user, "<span class='notice'>You register [src] with the [new_ident] network.</span>")
|
||||
id_tag = new_ident
|
||||
|
||||
@@ -153,7 +153,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
|
||||
if(reject_bad_text(params["write"]))
|
||||
recipient = params["write"] //write contains the string of the receiving department's name
|
||||
|
||||
var/new_message = sanitize(input(usr, "Write your message:", "Awaiting Input", ""))
|
||||
var/new_message = sanitize(tgui_input_text(usr, "Write your message:", "Awaiting Input", ""))
|
||||
if(new_message)
|
||||
message = new_message
|
||||
screen = RCS_MESSAUTH
|
||||
@@ -169,7 +169,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
|
||||
. = TRUE
|
||||
|
||||
if("writeAnnouncement")
|
||||
var/new_message = sanitize(input(usr, "Write your message:", "Awaiting Input", ""))
|
||||
var/new_message = sanitize(tgui_input_text(usr, "Write your message:", "Awaiting Input", ""))
|
||||
if(new_message)
|
||||
message = new_message
|
||||
else
|
||||
@@ -238,7 +238,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
|
||||
if(computer_deconstruction_screwdriver(user, O))
|
||||
return
|
||||
if(istype(O, /obj/item/device/multitool))
|
||||
var/input = sanitize(input(usr, "What Department ID would you like to give this request console?", "Multitool-Request Console Interface", department))
|
||||
var/input = sanitize(tgui_input_text(usr, "What Department ID would you like to give this request console?", "Multitool-Request Console Interface", department))
|
||||
if(!input)
|
||||
to_chat(usr, "No input found. Please hang up and try your call again.")
|
||||
return
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
. = TRUE
|
||||
|
||||
if("network")
|
||||
var/newnet = input(usr, "Which network do you want to view?", "Comm Monitor", network) as null|text
|
||||
var/newnet = tgui_input_text(usr, "Which network do you want to view?", "Comm Monitor", network)
|
||||
|
||||
if(newnet && ((usr in range(1, src) || issilicon(usr))))
|
||||
if(length(newnet) > 15)
|
||||
|
||||
@@ -295,7 +295,7 @@
|
||||
. = TRUE
|
||||
|
||||
if("network")
|
||||
var/newnet = input(usr, "Specify the new network for this machine. This will break all current links.", src, network) as null|text
|
||||
var/newnet = tgui_input_text(usr, "Specify the new network for this machine. This will break all current links.", src, network)
|
||||
if(newnet && canAccess(usr))
|
||||
|
||||
if(length(newnet) > 15)
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
. = TRUE
|
||||
|
||||
if("network")
|
||||
var/newnet = input(usr, "Which network do you want to view?", "Comm Monitor", network) as null|text
|
||||
var/newnet = tgui_input_text(usr, "Which network do you want to view?", "Comm Monitor", network)
|
||||
if(newnet && ((usr in range(1, src) || issilicon(usr))))
|
||||
if(length(newnet) > 15)
|
||||
set_temp("FAILED: NETWORK TAG STRING TOO LENGTHY", "bad")
|
||||
|
||||
@@ -192,7 +192,7 @@
|
||||
|
||||
if(href_list["network"])
|
||||
|
||||
var/newnet = input(usr, "Which network do you want to view?", "Comm Monitor", network) as null|text
|
||||
var/newnet = tgui_input_text(usr, "Which network do you want to view?", "Comm Monitor", network)
|
||||
|
||||
if(newnet && ((usr in range(1, src) || issilicon(usr))))
|
||||
if(length(newnet) > 15)
|
||||
|
||||
@@ -40,7 +40,7 @@ var/global/datum/book_manager/book_mgr = new()
|
||||
to_chat(src, "Only administrators may use this command.")
|
||||
return
|
||||
|
||||
var/isbn = input(usr, "ISBN number?", "Delete Book") as num | null
|
||||
var/isbn = tgui_input_number(usr, "ISBN number?", "Delete Book")
|
||||
if(!isbn)
|
||||
return
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
if("send_message")
|
||||
var/obj/item/mecha_parts/mecha_tracking/MT = locate(params["mt"])
|
||||
if(istype(MT))
|
||||
var/message = sanitize(input(usr, "Input message", "Transmit message") as text)
|
||||
var/message = sanitize(tgui_input_text(usr, "Input message", "Transmit message"))
|
||||
var/obj/mecha/M = MT.in_mecha()
|
||||
if(message && M)
|
||||
M.occupant_message(message)
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
var/obj/effect/spawner/newbomb/proto = /obj/effect/spawner/newbomb/radio/custom
|
||||
|
||||
var/p = input(usr, "Enter phoron amount (mol):","Phoron", initial(proto.phoron_amt)) as num|null
|
||||
var/p = tgui_input_number(usr, "Enter phoron amount (mol):","Phoron", initial(proto.phoron_amt))
|
||||
if(p == null) return
|
||||
|
||||
var/o = input(usr, "Enter oxygen amount (mol):","Oxygen", initial(proto.oxygen_amt)) as num|null
|
||||
var/o = tgui_input_number(usr, "Enter oxygen amount (mol):","Oxygen", initial(proto.oxygen_amt))
|
||||
if(o == null) return
|
||||
|
||||
var/c = input(usr, "Enter carbon dioxide amount (mol):","Carbon Dioxide", initial(proto.carbon_amt)) as num|null
|
||||
var/c = tgui_input_number(usr, "Enter carbon dioxide amount (mol):","Carbon Dioxide", initial(proto.carbon_amt))
|
||||
if(c == null) return
|
||||
|
||||
new /obj/effect/spawner/newbomb/radio/custom(get_turf(mob), p, o, c)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/client/proc/kaboom()
|
||||
var/power = input(src, "power?", "power?") as num
|
||||
var/power = tgui_input_number(src, "power?", "power?")
|
||||
var/turf/T = get_turf(src.mob)
|
||||
explosion_rec(T, power)
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
|
||||
/obj/structure/closet/body_bag/attackby(var/obj/item/W as obj, mob/user as mob)
|
||||
if (istype(W, /obj/item/weapon/pen))
|
||||
var/t = input(user, "What would you like the label to be?", text("[]", src.name), null) as text
|
||||
var/t = tgui_input_text(user, "What would you like the label to be?", text("[]", src.name), null)
|
||||
if (user.get_active_hand() != W)
|
||||
return
|
||||
if (!in_range(src, user) && src.loc != user)
|
||||
|
||||
@@ -322,7 +322,7 @@
|
||||
. = TRUE
|
||||
switch(action)
|
||||
if("rename")
|
||||
var/new_name = sanitizeSafe(input(usr,"Please enter your name.","Communicator",usr.name) )
|
||||
var/new_name = sanitizeSafe(tgui_input_text(usr,"Please enter your name.","Communicator",usr.name) )
|
||||
if(new_name)
|
||||
register_device(new_name)
|
||||
|
||||
@@ -376,7 +376,7 @@
|
||||
to_chat(usr, "<span class='danger'>Error: Cannot connect to Exonet node.</span>")
|
||||
return FALSE
|
||||
var/their_address = params["message"]
|
||||
var/text = sanitizeSafe(input(usr,"Enter your message.","Text Message"))
|
||||
var/text = sanitizeSafe(tgui_input_text(usr,"Enter your message.","Text Message"))
|
||||
if(text)
|
||||
exonet.send_message(their_address, "text", text)
|
||||
im_list += list(list("address" = exonet.address, "to_address" = their_address, "im" = text))
|
||||
@@ -424,7 +424,7 @@
|
||||
selected_tab = params["switch_tab"]
|
||||
|
||||
if("edit")
|
||||
var/n = input(usr, "Please enter message", name, notehtml) as message|null
|
||||
var/n = tgui_input_text(usr, "Please enter message", name, notehtml, multiline = TRUE)
|
||||
n = sanitizeSafe(n, extra = 0)
|
||||
if(n)
|
||||
note = html_decode(n)
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
switch(href_list["action"])
|
||||
if("Reply")
|
||||
var/obj/item/device/communicator/comm = locate(href_list["target"])
|
||||
var/message = input(usr, "Enter your message below.", "Reply")
|
||||
var/message = tgui_input_text(usr, "Enter your message below.", "Reply")
|
||||
|
||||
if(message)
|
||||
exonet.send_message(comm.exonet.address, "text", message)
|
||||
@@ -153,7 +153,7 @@
|
||||
if(choice)
|
||||
var/obj/item/device/communicator/chosen_communicator = choice
|
||||
var/mob/observer/dead/O = src
|
||||
var/text_message = sanitize(input(src, "What do you want the message to say?") as message)
|
||||
var/text_message = sanitize(tgui_input_text(src, "What do you want the message to say?", multiline = TRUE))
|
||||
if(text_message && O.exonet)
|
||||
O.exonet.send_message(chosen_communicator.exonet.address, "text", text_message)
|
||||
|
||||
|
||||
@@ -323,7 +323,7 @@ var/list/GPS_list = list()
|
||||
. = TRUE
|
||||
|
||||
if(href_list["tag"])
|
||||
var/a = input(usr, "Please enter desired tag.", name, gps_tag) as text
|
||||
var/a = tgui_input_text(usr, "Please enter desired tag.", name, gps_tag)
|
||||
a = uppertext(copytext(sanitize(a), 1, 11))
|
||||
if(in_range(src, usr))
|
||||
gps_tag = a
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
user.audible_message("<B>[user.GetVoice()]</B>[user.GetAltName()] broadcasts, <FONT size=3>\"[message]\"</FONT>", runemessage = message)
|
||||
|
||||
/obj/item/device/megaphone/attack_self(var/mob/living/user)
|
||||
var/message = sanitize(input(user, "Shout a message?", "Megaphone", null) as text)
|
||||
var/message = sanitize(tgui_input_text(user, "Shout a message?", "Megaphone", null))
|
||||
if(!message)
|
||||
return
|
||||
message = capitalize(message)
|
||||
|
||||
@@ -49,7 +49,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard)
|
||||
var/actual_pai_name
|
||||
var/turf/location = get_turf(src)
|
||||
if(choice == "No")
|
||||
var/pai_name = input(user, "Choose your character's name", "Character Name") as text
|
||||
var/pai_name = tgui_input_text(user, "Choose your character's name", "Character Name")
|
||||
actual_pai_name = sanitize_name(pai_name, ,1)
|
||||
if(isnull(actual_pai_name))
|
||||
return ..()
|
||||
@@ -73,7 +73,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard)
|
||||
new_pai.key = user.key
|
||||
card.setPersonality(new_pai)
|
||||
if(!new_pai.savefile_load(new_pai))
|
||||
var/pai_name = input(new_pai, "Choose your character's name", "Character Name") as text
|
||||
var/pai_name = tgui_input_text(new_pai, "Choose your character's name", "Character Name")
|
||||
actual_pai_name = sanitize_name(pai_name, ,1)
|
||||
if(isnull(actual_pai_name))
|
||||
return ..()
|
||||
@@ -83,7 +83,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard)
|
||||
new_pai.key = user.key
|
||||
card.setPersonality(new_pai)
|
||||
if(!new_pai.savefile_load(new_pai))
|
||||
var/pai_name = input(new_pai, "Choose your character's name", "Character Name") as text
|
||||
var/pai_name = tgui_input_text(new_pai, "Choose your character's name", "Character Name")
|
||||
actual_pai_name = sanitize_name(pai_name, ,1)
|
||||
if(isnull(actual_pai_name))
|
||||
return ..()
|
||||
@@ -328,7 +328,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/device/paicard)
|
||||
if(2)
|
||||
radio.ToggleReception()
|
||||
if(href_list["setlaws"])
|
||||
var/newlaws = sanitize(input(usr, "Enter any additional directives you would like your pAI personality to follow. Note that these directives will not override the personality's allegiance to its imprinted master. Conflicting directives will be ignored.", "pAI Directive Configuration", pai.pai_laws) as message)
|
||||
var/newlaws = sanitize(tgui_input_text(usr, "Enter any additional directives you would like your pAI personality to follow. Note that these directives will not override the personality's allegiance to its imprinted master. Conflicting directives will be ignored.", "pAI Directive Configuration", pai.pai_laws, multiline = TRUE))
|
||||
if(newlaws)
|
||||
pai.pai_laws = newlaws
|
||||
to_chat(pai, "Your supplemental directives have been updated. Your new directives are:")
|
||||
|
||||
@@ -417,7 +417,7 @@
|
||||
return
|
||||
else if(istype(I, /obj/item/weapon/pen))
|
||||
if(loc == user && !user.incapacitated())
|
||||
var/new_name = input(user, "What would you like to label the tape?", "Tape labeling") as null|text
|
||||
var/new_name = tgui_input_text(user, "What would you like to label the tape?", "Tape labeling")
|
||||
if(isnull(new_name)) return
|
||||
new_name = sanitizeSafe(new_name)
|
||||
if(new_name)
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
named = 1
|
||||
*/
|
||||
|
||||
var/message = sanitize(input(user,"Choose a message to relay to those around you.") as text|null)
|
||||
var/message = sanitize(tgui_input_text(user,"Choose a message to relay to those around you."))
|
||||
if(message)
|
||||
audible_message("[bicon(src)] \The [src.name] states, \"[message]\"", runemessage = "synthesized speech")
|
||||
if(ismob(loc))
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
if(..())
|
||||
return 1
|
||||
if(href_list["channel"])
|
||||
var/nc = input(usr, "Channel name", "Select new channel name", channel) as text|null
|
||||
var/nc = tgui_input_text(usr, "Channel name", "Select new channel name", channel)
|
||||
if(nc)
|
||||
channel = nc
|
||||
camera.c_tag = channel
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
to_chat(usr, "The hailer is fried. The tiny input screen just shows a waving ASCII penis.")
|
||||
return
|
||||
|
||||
var/new_message = input(usr, "Please enter new message (leave blank to reset).") as text
|
||||
var/new_message = tgui_input_text(usr, "Please enter new message (leave blank to reset).")
|
||||
if(!new_message || new_message == "")
|
||||
use_message = "Halt! Security!"
|
||||
else
|
||||
|
||||
@@ -229,7 +229,7 @@
|
||||
to_chat(user, "<span class='warning'>The MMI must go in after everything else!</span>")
|
||||
|
||||
if (istype(W, /obj/item/weapon/pen))
|
||||
var/t = sanitizeSafe(input(user, "Enter new robot name", src.name, src.created_name), MAX_NAME_LEN)
|
||||
var/t = sanitizeSafe(tgui_input_text(user, "Enter new robot name", src.name, src.created_name), MAX_NAME_LEN)
|
||||
if (!t)
|
||||
return
|
||||
if (!in_range(src, usr) && src.loc != usr)
|
||||
|
||||
@@ -399,7 +399,7 @@
|
||||
|
||||
/obj/item/stack/attack_hand(mob/user as mob)
|
||||
if (user.get_inactive_hand() == src)
|
||||
var/N = input(usr, "How many stacks of [src] would you like to split off? There are currently [amount].", "Split stacks", 1) as num|null
|
||||
var/N = tgui_input_number(usr, "How many stacks of [src] would you like to split off? There are currently [amount].", "Split stacks", 1, amount, 1)
|
||||
if(N)
|
||||
var/obj/item/stack/F = src.split(N)
|
||||
if (F)
|
||||
|
||||
@@ -28,14 +28,22 @@
|
||||
name = "stack of teal carpet"
|
||||
type_to_spawn = /obj/item/stack/tile/carpet/teal
|
||||
|
||||
/obj/fiftyspawner/decocarpet
|
||||
name = "stack of deco carpet"
|
||||
type_to_spawn = /obj/item/stack/tile/carpet/deco
|
||||
/obj/fiftyspawner/geocarpet
|
||||
name = "stack of geometric carpet"
|
||||
type_to_spawn = /obj/item/stack/tile/carpet/geo
|
||||
|
||||
/obj/fiftyspawner/retrocarpet
|
||||
name = "stack of retro carpet"
|
||||
name = "stack of blue retro carpet"
|
||||
type_to_spawn = /obj/item/stack/tile/carpet/retro
|
||||
|
||||
/obj/fiftyspawner/retrocarpet_red
|
||||
name = "stack of red retro carpet"
|
||||
type_to_spawn = /obj/item/stack/tile/carpet/retro_red
|
||||
|
||||
/obj/fiftyspawner/happycarpet
|
||||
name = "stack of happy carpet"
|
||||
type_to_spawn = /obj/item/stack/tile/carpet/happy
|
||||
|
||||
/obj/fiftyspawner/floor
|
||||
name = "stack of floor tiles"
|
||||
type_to_spawn = /obj/item/stack/tile/floor
|
||||
|
||||
@@ -85,6 +85,26 @@
|
||||
desc = "An easy to fit wooden floor tile. It's blue!"
|
||||
icon_state = "tile-sifwood"
|
||||
|
||||
/obj/item/stack/tile/wood/alt
|
||||
name = "wood floor tile"
|
||||
singular_name = "wood floor tile"
|
||||
icon_state = "tile-wood_tile"
|
||||
|
||||
/obj/item/stack/tile/wood/parquet
|
||||
name = "parquet wood floor tile"
|
||||
singular_name = "parquet wood floor tile"
|
||||
icon_state = "tile-wood_parquet"
|
||||
|
||||
/obj/item/stack/tile/wood/panel
|
||||
name = "large wood floor tile"
|
||||
singular_name = "large wood floor tile"
|
||||
icon_state = "tile-wood_large"
|
||||
|
||||
/obj/item/stack/tile/wood/tile
|
||||
name = "tiled wood floor tile"
|
||||
singular_name = "tiled wood floor tile"
|
||||
icon_state = "tile-wood_tile"
|
||||
|
||||
/obj/item/stack/tile/wood/cyborg
|
||||
name = "wood floor tile synthesizer"
|
||||
desc = "A device that makes wood floor tiles."
|
||||
@@ -117,8 +137,23 @@
|
||||
icon_state = "tile-tealcarpet"
|
||||
no_variants = FALSE
|
||||
|
||||
/obj/item/stack/tile/carpet/bcarpet //YW EDIT: Commented out to help with upstream merging. Get on this you fucking virgo bois. -yw //CHOMP Comment: Yawn commented out this block, but CHOMP already commented out this stuff so I just removed theirs.
|
||||
/obj/item/stack/tile/carpet/geo
|
||||
icon_state = "tile-carpet-deco"
|
||||
desc = "A piece of carpet with a gnarly geometric design. It is the same size as a normal floor tile!"
|
||||
|
||||
/obj/item/stack/tile/carpet/retro
|
||||
icon_state = "tile-carpet-retro"
|
||||
desc = "A piece of carpet with totally wicked blue space patterns. It is the same size as a normal floor tile!"
|
||||
|
||||
/obj/item/stack/tile/carpet/retro_red
|
||||
icon_state = "tile-carpet-retro-red"
|
||||
desc = "A piece of carpet with red-ical space patterns. It is the same size as a normal floor tile!"
|
||||
|
||||
/obj/item/stack/tile/carpet/happy
|
||||
icon_state = "tile-carpet-happy"
|
||||
desc = "A piece of carpet with happy patterns. It is the same size as a normal floor tile!"
|
||||
|
||||
/obj/item/stack/tile/carpet/bcarpet //YW EDIT: Commented out to help with upstream merging. Get on this you fucking virgo bois. -yw //CHOMP Comment: Yawn commented out this block, but CHOMP already commented out this stuff so I just removed theirs.
|
||||
icon_state = "tile-carpet"
|
||||
/obj/item/stack/tile/carpet/blucarpet
|
||||
icon_state = "tile-carpet"
|
||||
@@ -133,10 +168,6 @@
|
||||
/obj/item/stack/tile/carpet/oracarpet
|
||||
icon_state = "tile-carpet"
|
||||
*/
|
||||
/obj/item/stack/tile/carpet/deco
|
||||
icon_state = "tile-carpet-deco"
|
||||
/obj/item/stack/tile/carpet/retro
|
||||
icon_state = "tile-carpet-retro"
|
||||
|
||||
/obj/item/stack/tile/floor
|
||||
name = "floor tile"
|
||||
|
||||
@@ -102,3 +102,19 @@
|
||||
desc = "A piece of orange carpet. It is the same size as a normal floor tile!"
|
||||
icon_state = "tile-carpet"
|
||||
default_type = MAT_CARPET_ORANGE
|
||||
|
||||
/obj/item/stack/tile/carpet/geo
|
||||
icon_state = "tile-carpet-deco"
|
||||
desc = "A piece of carpet with a gnarly geometric design. It is the same size as a normal floor tile!"
|
||||
|
||||
/obj/item/stack/tile/carpet/retro
|
||||
icon_state = "tile-carpet-retro"
|
||||
desc = "A piece of carpet with totally wicked blue space patterns. It is the same size as a normal floor tile!"
|
||||
|
||||
/obj/item/stack/tile/carpet/retro_red
|
||||
icon_state = "tile-carpet-retro-red"
|
||||
desc = "A piece of carpet with red-ical space patterns. It is the same size as a normal floor tile!"
|
||||
|
||||
/obj/item/stack/tile/carpet/happy
|
||||
icon_state = "tile-carpet-happy"
|
||||
desc = "A piece of carpet with happy patterns. It is the same size as a normal floor tile!"
|
||||
|
||||
@@ -161,7 +161,7 @@
|
||||
|
||||
/obj/item/surplus_voucher/ser/proc/spawn_item(var/turf/T)
|
||||
var/path = pick(prob(4);/obj/item/weapon/reagent_containers/food/drinks/milk,
|
||||
prob(4);/obj/item/weapon/reagent_containers/food/condiment/flour,
|
||||
prob(4);/obj/item/weapon/reagent_containers/food/condiment/carton/flour,
|
||||
prob(4);/obj/item/weapon/reagent_containers/food/drinks/soymilk,
|
||||
prob(4);/obj/item/weapon/storage/fancy/egg_box,
|
||||
prob(3);/obj/item/weapon/reagent_containers/food/snacks/meat,
|
||||
|
||||
@@ -843,7 +843,7 @@
|
||||
if(!M.mind)
|
||||
return 0
|
||||
|
||||
var/input = sanitizeSafe(input(usr, "What do you want to name the plushie?", ,""), MAX_NAME_LEN)
|
||||
var/input = sanitizeSafe(tgui_input_text(usr, "What do you want to name the plushie?", ,""), MAX_NAME_LEN)
|
||||
|
||||
if(src && input && !M.stat && in_range(M,src))
|
||||
name = input
|
||||
|
||||
@@ -133,7 +133,7 @@ AI MODULES
|
||||
|
||||
/obj/item/weapon/aiModule/safeguard/attack_self(var/mob/user as mob)
|
||||
..()
|
||||
var/targName = sanitize(input(usr, "Please enter the name of the person to safeguard.", "Safeguard who?", user.name))
|
||||
var/targName = sanitize(tgui_input_text(usr, "Please enter the name of the person to safeguard.", "Safeguard who?", user.name))
|
||||
targetName = targName
|
||||
desc = text("A 'safeguard' AI module: 'Safeguard []. Anyone threatening or attempting to harm [] is no longer to be considered a crew member, and is a threat which must be neutralized.'", targetName, targetName)
|
||||
|
||||
@@ -159,7 +159,7 @@ AI MODULES
|
||||
|
||||
/obj/item/weapon/aiModule/oneHuman/attack_self(var/mob/user as mob)
|
||||
..()
|
||||
var/targName = sanitize(input(usr, "Please enter the name of the person who is the only crew member.", "Who?", user.real_name))
|
||||
var/targName = sanitize(tgui_input_text(usr, "Please enter the name of the person who is the only crew member.", "Who?", user.real_name))
|
||||
targetName = targName
|
||||
desc = text("A 'one crew member' AI module: 'Only [] is a crew member.'", targetName)
|
||||
|
||||
@@ -244,7 +244,7 @@ AI MODULES
|
||||
if(new_lawpos < MIN_SUPPLIED_LAW_NUMBER) return
|
||||
lawpos = min(new_lawpos, MAX_SUPPLIED_LAW_NUMBER)
|
||||
var/newlaw = ""
|
||||
var/targName = sanitize(input(usr, "Please enter a new law for the AI.", "Freeform Law Entry", newlaw))
|
||||
var/targName = sanitize(tgui_input_text(usr, "Please enter a new law for the AI.", "Freeform Law Entry", newlaw))
|
||||
newFreeFormLaw = targName
|
||||
desc = "A 'freeform' AI module: ([lawpos]) '[newFreeFormLaw]'"
|
||||
|
||||
@@ -357,7 +357,7 @@ AI MODULES
|
||||
/obj/item/weapon/aiModule/freeformcore/attack_self(var/mob/user as mob)
|
||||
..()
|
||||
var/newlaw = ""
|
||||
var/targName = sanitize(input(usr, "Please enter a new core law for the AI.", "Freeform Law Entry", newlaw))
|
||||
var/targName = sanitize(tgui_input_text(usr, "Please enter a new core law for the AI.", "Freeform Law Entry", newlaw))
|
||||
newFreeFormLaw = targName
|
||||
desc = "A 'freeform' Core AI module: '[newFreeFormLaw]'"
|
||||
|
||||
@@ -381,7 +381,7 @@ AI MODULES
|
||||
/obj/item/weapon/aiModule/syndicate/attack_self(var/mob/user as mob)
|
||||
..()
|
||||
var/newlaw = ""
|
||||
var/targName = sanitize(input(usr, "Please enter a new law for the AI.", "Freeform Law Entry", newlaw))
|
||||
var/targName = sanitize(tgui_input_text(usr, "Please enter a new law for the AI.", "Freeform Law Entry", newlaw))
|
||||
newFreeFormLaw = targName
|
||||
desc = "A hacked AI law module: '[newFreeFormLaw]'"
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
to_chat(user, "<span class='warning'>Circuit controls are locked.</span>")
|
||||
return
|
||||
var/existing_networks = jointext(network,",")
|
||||
var/input = sanitize(input(usr, "Which networks would you like to connect this camera console circuit to? Seperate networks with a comma. No Spaces!\nFor example: SS13,Security,Secret ", "Multitool-Circuitboard interface", existing_networks))
|
||||
var/input = sanitize(tgui_input_text(usr, "Which networks would you like to connect this camera console circuit to? Seperate networks with a comma. No Spaces!\nFor example: SS13,Security,Secret ", "Multitool-Circuitboard interface", existing_networks))
|
||||
if(!input)
|
||||
to_chat(usr, "No input found please hang up and try your call again.")
|
||||
return
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
..()
|
||||
|
||||
/obj/item/weapon/plastique/attack_self(mob/user as mob)
|
||||
var/newtime = input(usr, "Please set the timer.", "Timer", 10) as num
|
||||
var/newtime = tgui_input_number(usr, "Please set the timer.", "Timer", 10, 60000, 10)
|
||||
if(user.get_active_hand() == src)
|
||||
newtime = CLAMP(newtime, 10, 60000)
|
||||
timer = newtime
|
||||
|
||||
@@ -288,7 +288,7 @@ Implant Specifics:<BR>"}
|
||||
|
||||
/obj/item/weapon/implant/explosive/post_implant(mob/source as mob)
|
||||
elevel = tgui_alert(usr, "What sort of explosion would you prefer?", "Implant Intent", list("Localized Limb", "Destroy Body", "Full Explosion"))
|
||||
phrase = input(usr, "Choose activation phrase:") as text
|
||||
phrase = tgui_input_text(usr, "Choose activation phrase:")
|
||||
var/list/replacechars = list("'" = "","\"" = "",">" = "","<" = "","(" = "",")" = "")
|
||||
phrase = replace_characters(phrase, replacechars)
|
||||
usr.mind.store_memory("Explosive implant in [source] can be activated by saying something containing the phrase ''[src.phrase]'', <B>say [src.phrase]</B> to attempt to activate.", 0, 0)
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/obj/item/weapon/implantcase/attackby(obj/item/weapon/I as obj, mob/user as mob)
|
||||
..()
|
||||
if (istype(I, /obj/item/weapon/pen))
|
||||
var/t = input(user, "What would you like the label to be?", text("[]", src.name), null) as text
|
||||
var/t = tgui_input_text(user, "What would you like the label to be?", text("[]", src.name), null)
|
||||
if (user.get_active_hand() != I)
|
||||
return
|
||||
if((!in_range(src, usr) && src.loc != user))
|
||||
|
||||
@@ -3,8 +3,10 @@
|
||||
req_access = list(access_kitchen)
|
||||
|
||||
starts_with = list(
|
||||
/obj/item/weapon/reagent_containers/food/condiment/flour = 7,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/sugar = 2,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/carton/flour = 6,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/carton/sugar = 1,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/carton/flour/rustic = 1,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/carton/sugar/rustic = 1,
|
||||
/obj/item/weapon/reagent_containers/food/condiment/spacespice = 2
|
||||
)
|
||||
|
||||
|
||||
@@ -90,7 +90,9 @@
|
||||
src.set_dir(turn(src.dir, 90))
|
||||
|
||||
/obj/structure/closet/crate/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if(opened)
|
||||
if(W.is_wrench() && istype(src,/obj/structure/closet/crate/bin))
|
||||
return ..()
|
||||
else if(opened)
|
||||
if(isrobot(user))
|
||||
return
|
||||
if(W.loc != user) // This should stop mounted modules ending up outside the module.
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
icon_state = "girder"
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
plane = PLATING_PLANE
|
||||
layer = TABLE_LAYER //CHOMPEdit - moved so that they render above catwalks.
|
||||
w_class = ITEMSIZE_HUGE
|
||||
var/state = 0
|
||||
var/health = 200
|
||||
|
||||
@@ -332,18 +332,30 @@ var/list/flooring_types
|
||||
icon_base = "tealcarpet"
|
||||
build_type = /obj/item/stack/tile/carpet/teal
|
||||
|
||||
/decl/flooring/carpet/deco
|
||||
name = "deco carpet"
|
||||
icon_base = "decocarpet"
|
||||
build_type = /obj/item/stack/tile/carpet/deco
|
||||
/decl/flooring/carpet/geo
|
||||
name = "geometric carpet"
|
||||
icon_base = "geocarpet"
|
||||
build_type = /obj/item/stack/tile/carpet/geo
|
||||
flags = TURF_REMOVE_CROWBAR | TURF_CAN_BURN
|
||||
|
||||
/decl/flooring/carpet/retro
|
||||
name = "retro carpet"
|
||||
name = "blue retro carpet"
|
||||
icon_base = "retrocarpet"
|
||||
build_type = /obj/item/stack/tile/carpet/retro
|
||||
flags = TURF_REMOVE_CROWBAR | TURF_CAN_BURN
|
||||
|
||||
/decl/flooring/carpet/retro_red
|
||||
name = "red retro carpet"
|
||||
icon_base = "retrocarpet_red"
|
||||
build_type = /obj/item/stack/tile/carpet/retro_red
|
||||
flags = TURF_REMOVE_CROWBAR | TURF_CAN_BURN
|
||||
|
||||
/decl/flooring/carpet/happy
|
||||
name = "happy carpet"
|
||||
icon_base = "happycarpet"
|
||||
build_type = /obj/item/stack/tile/carpet/happy
|
||||
flags = TURF_REMOVE_CROWBAR | TURF_CAN_BURN
|
||||
|
||||
/decl/flooring/tiling
|
||||
name = "floor"
|
||||
desc = "Scuffed from the passage of countless greyshirts."
|
||||
@@ -507,6 +519,31 @@ var/list/flooring_types
|
||||
icon_base = "sifwood"
|
||||
build_type = /obj/item/stack/tile/wood/sif
|
||||
|
||||
/decl/flooring/wood/alt
|
||||
icon = 'icons/turf/flooring/wood.dmi'
|
||||
icon_base = "wood"
|
||||
build_type = /obj/item/stack/tile/wood/alt
|
||||
|
||||
/decl/flooring/wood/alt/panel
|
||||
desc = "Polished wooden panels."
|
||||
icon = 'icons/turf/flooring/wood.dmi'
|
||||
icon_base = "wood_panel"
|
||||
has_damage_range = 2
|
||||
build_type = /obj/item/stack/tile/wood/panel
|
||||
|
||||
/decl/flooring/wood/alt/parquet
|
||||
desc = "Polished wooden tiles."
|
||||
icon = 'icons/turf/flooring/wood.dmi'
|
||||
icon_base = "wood_parquet"
|
||||
build_type = /obj/item/stack/tile/wood/parquet
|
||||
|
||||
/decl/flooring/wood/alt/tile
|
||||
desc = "Polished wooden tiles."
|
||||
icon = 'icons/turf/flooring/wood.dmi'
|
||||
icon_base = "wood_tile"
|
||||
has_damage_range = 2
|
||||
build_type = /obj/item/stack/tile/wood/tile
|
||||
|
||||
/decl/flooring/reinforced
|
||||
name = "reinforced floor"
|
||||
desc = "Heavily reinforced with steel rods."
|
||||
|
||||
@@ -19,10 +19,10 @@
|
||||
icon_state = "tealcarpet"
|
||||
initial_flooring = /decl/flooring/carpet/tealcarpet
|
||||
|
||||
/turf/simulated/floor/carpet/deco
|
||||
/turf/simulated/floor/carpet/geo
|
||||
name = "deco carpet"
|
||||
icon_state = "decocarpet"
|
||||
initial_flooring = /decl/flooring/carpet/deco
|
||||
initial_flooring = /decl/flooring/carpet/geo
|
||||
|
||||
/turf/simulated/floor/carpet/retro
|
||||
name = "retro carpet"
|
||||
@@ -60,6 +60,26 @@
|
||||
icon_state = "oracarpet"
|
||||
initial_flooring = /decl/flooring/carpet/oracarpet
|
||||
|
||||
/turf/simulated/floor/carpet/geo
|
||||
name = "geometric carpet"
|
||||
icon_state = "geocarpet"
|
||||
initial_flooring = /decl/flooring/carpet/geo
|
||||
|
||||
/turf/simulated/floor/carpet/retro
|
||||
name = "blue retro carpet"
|
||||
icon_state = "retrocarpet"
|
||||
initial_flooring = /decl/flooring/carpet/retro
|
||||
|
||||
/turf/simulated/floor/carpet/retro_red
|
||||
name = "red retro carpet"
|
||||
icon_state = "retrocarpet_red"
|
||||
initial_flooring = /decl/flooring/carpet/retro_red
|
||||
|
||||
/turf/simulated/floor/carpet/happy
|
||||
name = "happy carpet"
|
||||
icon_state = "happycarpet"
|
||||
initial_flooring = /decl/flooring/carpet/happy
|
||||
|
||||
/turf/simulated/floor/bluegrid
|
||||
name = "mainframe floor"
|
||||
icon = 'icons/turf/flooring/circuit.dmi'
|
||||
@@ -79,24 +99,67 @@
|
||||
initial_flooring = /decl/flooring/wood
|
||||
|
||||
/turf/simulated/floor/wood/broken
|
||||
icon_state = "wood_broken0" // This gets changed when spawned.
|
||||
icon_state = "wood-broken0" // This gets changed when spawned.
|
||||
|
||||
/turf/simulated/floor/wood/broken/Initialize()
|
||||
/turf/simulated/floor/wood/broken/LateInitialize()
|
||||
. = ..()
|
||||
break_tile()
|
||||
return ..()
|
||||
|
||||
/turf/simulated/floor/wood/sif
|
||||
name = "alien wooden floor"
|
||||
icon = 'icons/turf/flooring/wood.dmi'
|
||||
icon_state = "sifwood"
|
||||
initial_flooring = /decl/flooring/wood/sif
|
||||
|
||||
/turf/simulated/floor/wood/sif/broken
|
||||
icon_state = "sifwood_broken0" // This gets changed when spawned.
|
||||
icon_state = "sifwood-broken0" // This gets changed when spawned.
|
||||
|
||||
/turf/simulated/floor/wood/sif/broken/Initialize()
|
||||
/turf/simulated/floor/wood/sif/broken/LateInitialize()
|
||||
. = ..()
|
||||
break_tile()
|
||||
|
||||
/turf/simulated/floor/wood/alt
|
||||
icon = 'icons/turf/flooring/wood.dmi'
|
||||
initial_flooring = /decl/flooring/wood/alt
|
||||
|
||||
/turf/simulated/floor/wood/alt/broken
|
||||
icon_state = "wood-broken0" // This gets changed when spawned.
|
||||
|
||||
/turf/simulated/floor/wood/alt/broken/LateInitialize()
|
||||
. = ..()
|
||||
break_tile()
|
||||
|
||||
/turf/simulated/floor/wood/alt/tile
|
||||
icon_state = "wood_tile"
|
||||
initial_flooring = /decl/flooring/wood/alt/tile
|
||||
|
||||
/turf/simulated/floor/wood/alt/tile/broken
|
||||
icon_state = "wood_tile-broken0" // This gets changed when spawned.
|
||||
|
||||
/turf/simulated/floor/wood/alt/tile/broken/LateInitialize()
|
||||
. = ..()
|
||||
break_tile()
|
||||
|
||||
/turf/simulated/floor/wood/alt/panel
|
||||
icon_state = "wood_panel"
|
||||
initial_flooring = /decl/flooring/wood/alt/panel
|
||||
|
||||
/turf/simulated/floor/wood/alt/panel/broken
|
||||
icon_state = "wood_panel-broken0" // This gets changed when spawned.
|
||||
|
||||
/turf/simulated/floor/wood/alt/panel/broken/LateInitialize()
|
||||
. = ..()
|
||||
break_tile()
|
||||
|
||||
/turf/simulated/floor/wood/alt/parquet
|
||||
icon_state = "wood_parquet"
|
||||
initial_flooring = /decl/flooring/wood/alt/parquet
|
||||
|
||||
/turf/simulated/floor/wood/alt/parquet/broken
|
||||
icon_state = "wood_parquet-broken0" // This gets changed when spawned.
|
||||
|
||||
/turf/simulated/floor/wood/alt/parquet/broken/LateInitialize()
|
||||
. = ..()
|
||||
break_tile()
|
||||
return ..()
|
||||
|
||||
/turf/simulated/floor/grass
|
||||
name = "grass patch"
|
||||
|
||||
@@ -75,6 +75,9 @@ var/image/no_ceiling_image = null
|
||||
icon_state = "dmg[rand(1,4)]"
|
||||
else if(flooring)
|
||||
if(!isnull(broken) && (flooring.flags & TURF_CAN_BREAK))
|
||||
if(istype(src, /turf/simulated/floor/wood))
|
||||
add_overlay(flooring.get_flooring_overlay("[flooring.icon_base]-broken-[broken]","[flooring.icon_base]-broken[broken]"))
|
||||
else
|
||||
add_overlay(flooring.get_flooring_overlay("[flooring.icon_base]-broken-[broken]","broken[broken]"))
|
||||
if(!isnull(burnt) && (flooring.flags & TURF_CAN_BURN))
|
||||
add_overlay(flooring.get_flooring_overlay("[flooring.icon_base]-burned-[burnt]","burned[burnt]"))
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
switch(param)
|
||||
if("reason")
|
||||
if(!value)
|
||||
value = sanitize(input(usr, "Insert the new reason for [pckey]'s ban", "New Reason", "[reason]", null) as null|text)
|
||||
value = sanitize(tgui_input_text(usr, "Insert the new reason for [pckey]'s ban", "New Reason", "[reason]", null))
|
||||
value = sql_sanitize_text(value)
|
||||
if(!value)
|
||||
to_chat(usr, "Cancelled")
|
||||
@@ -196,7 +196,7 @@
|
||||
qdel(update_query) //CHOMPEdit TGSQL
|
||||
if("duration")
|
||||
if(!value)
|
||||
value = input(usr, "Insert the new duration (in minutes) for [pckey]'s ban", "New Duration", "[duration]", null) as null|num
|
||||
value = tgui_input_number(usr, "Insert the new duration (in minutes) for [pckey]'s ban", "New Duration", "[duration]", null)
|
||||
if(!isnum(value) || !value)
|
||||
to_chat(usr, "Cancelled")
|
||||
return
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
if("remove all")
|
||||
to_chat(src, "<span class='filter_adminlog'><b>[TORFILE] was [fdel(TORFILE)?"":"not "]removed.</b></span>")
|
||||
if("find")
|
||||
var/input = input(src,"Please input an IP address to search for:","Find ToR ban",null) as null|text
|
||||
var/input = tgui_input_text(src,"Please input an IP address to search for:","Find ToR ban",null)
|
||||
if(input)
|
||||
if(ToRban_isbanned(input))
|
||||
to_chat(src, "<span class='filter_adminlog'><font color='green'><b>Address is a known ToR address</b></font></span>")
|
||||
|
||||
@@ -218,7 +218,6 @@ var/global/floorIsLava = 0
|
||||
/datum/player_info/var/content // text content of the information
|
||||
/datum/player_info/var/timestamp // Because this is bloody annoying
|
||||
|
||||
#define PLAYER_NOTES_ENTRIES_PER_PAGE 50
|
||||
/datum/admins/proc/PlayerNotes()
|
||||
set category = "Admin"
|
||||
set name = "Player Notes"
|
||||
@@ -235,56 +234,20 @@ var/global/floorIsLava = 0
|
||||
if (!istype(src,/datum/admins))
|
||||
to_chat(usr, "Error: you are not an admin!")
|
||||
return
|
||||
var/filter = input(usr, "Filter string (case-insensitive regex)", "Player notes filter") as text|null
|
||||
var/filter = tgui_input_text(usr, "Filter string (case-insensitive regex)", "Player notes filter")
|
||||
PlayerNotesPage(1, filter)
|
||||
|
||||
/datum/admins/proc/PlayerNotesPage(page, filter)
|
||||
var/dat = "<B>Player notes</B> - <a href='?src=\ref[src];notes=filter'>Apply Filter</a><HR>"
|
||||
var/savefile/S=new("data/player_notes.sav")
|
||||
var/list/note_keys
|
||||
S >> note_keys
|
||||
if(!note_keys)
|
||||
dat += "No notes found."
|
||||
else
|
||||
dat += "<table>"
|
||||
|
||||
if(note_keys)
|
||||
note_keys = sortList(note_keys)
|
||||
|
||||
if(filter)
|
||||
var/list/results = list()
|
||||
var/regex/needle = regex(filter, "i")
|
||||
for(var/haystack in note_keys)
|
||||
if(needle.Find(haystack))
|
||||
results += haystack
|
||||
note_keys = results
|
||||
|
||||
// Display the notes on the current page
|
||||
var/number_pages = note_keys.len / PLAYER_NOTES_ENTRIES_PER_PAGE
|
||||
// Emulate CEILING(why does BYOND not have ceil, 1)
|
||||
if(number_pages != round(number_pages))
|
||||
number_pages = round(number_pages) + 1
|
||||
var/page_index = page - 1
|
||||
|
||||
if(page_index < 0 || page_index >= number_pages)
|
||||
dat += "<tr><td>No keys found.</td></tr>"
|
||||
else
|
||||
var/lower_bound = page_index * PLAYER_NOTES_ENTRIES_PER_PAGE + 1
|
||||
var/upper_bound = (page_index + 1) * PLAYER_NOTES_ENTRIES_PER_PAGE
|
||||
upper_bound = min(upper_bound, note_keys.len)
|
||||
for(var/index = lower_bound, index <= upper_bound, index++)
|
||||
var/t = note_keys[index]
|
||||
dat += "<tr><td><a href='?src=\ref[src];notes=show;ckey=[t]'>[t]</a></td></tr>"
|
||||
|
||||
dat += "</table><hr>"
|
||||
|
||||
// Display a footer to select different pages
|
||||
for(var/index = 1, index <= number_pages, index++)
|
||||
if(index == page)
|
||||
dat += "<b>"
|
||||
dat += "<a href='?src=\ref[src];notes=list;index=[index];filter=[filter ? url_encode(filter) : 0]'>[index]</a> "
|
||||
if(index == page)
|
||||
dat += "</b>"
|
||||
|
||||
usr << browse(dat, "window=player_notes;size=400x400")
|
||||
var/datum/tgui_module/player_notes/A = new(src)
|
||||
A.ckeys = note_keys
|
||||
A.tgui_interact(usr)
|
||||
|
||||
|
||||
/datum/admins/proc/player_has_info(var/key as text)
|
||||
@@ -303,44 +266,10 @@ var/global/floorIsLava = 0
|
||||
if (!istype(src,/datum/admins))
|
||||
to_chat(usr, "Error: you are not an admin!")
|
||||
return
|
||||
var/dat = "<html><head><title>Info on [key]</title></head>"
|
||||
dat += "<body>"
|
||||
|
||||
var/p_age = "unknown"
|
||||
for(var/client/C in GLOB.clients)
|
||||
if(C.ckey == key)
|
||||
p_age = C.player_age
|
||||
break
|
||||
dat +="<span style='color:#000000; font-weight: bold'>Player age: [p_age]</span><br>"
|
||||
|
||||
var/savefile/info = new("data/player_saves/[copytext(key, 1, 2)]/[key]/info.sav")
|
||||
var/list/infos
|
||||
info >> infos
|
||||
if(!infos)
|
||||
dat += "No information found on the given key.<br>"
|
||||
else
|
||||
var/update_file = 0
|
||||
var/i = 0
|
||||
for(var/datum/player_info/I in infos)
|
||||
i += 1
|
||||
if(!I.timestamp)
|
||||
I.timestamp = "Pre-4/3/2012"
|
||||
update_file = 1
|
||||
if(!I.rank)
|
||||
I.rank = "N/A"
|
||||
update_file = 1
|
||||
dat += "<font color=#008800>[I.content]</font> <i>by [I.author] ([I.rank])</i> on <i><font color=blue>[I.timestamp]</i></font> "
|
||||
if(I.author == usr.key || I.author == "Adminbot" || ishost(usr))
|
||||
dat += "<A href='?src=\ref[src];remove_player_info=[key];remove_index=[i]'>Remove</A>"
|
||||
dat += "<br><br>"
|
||||
if(update_file) info << infos
|
||||
|
||||
dat += "<br>"
|
||||
dat += "<A href='?src=\ref[src];add_player_info=[key]'>Add Comment</A><br>"
|
||||
|
||||
dat += "</body></html>"
|
||||
usr << browse(dat, "window=adminplayerinfo;size=480x480")
|
||||
|
||||
var/datum/tgui_module/player_notes_info/A = new(src)
|
||||
A.key = key
|
||||
A.tgui_interact(usr)
|
||||
|
||||
|
||||
/datum/admins/proc/access_news_network() //MARKER
|
||||
@@ -688,7 +617,7 @@ var/global/floorIsLava = 0
|
||||
set desc="Announce your desires to the world"
|
||||
if(!check_rights(0)) return
|
||||
|
||||
var/message = tgui_input_message(usr, "Global message to send:", "Admin Announce")
|
||||
var/message = tgui_input_text(usr, "Global message to send:", "Admin Announce", multiline = TRUE)
|
||||
if(message)
|
||||
if(!check_rights(R_SERVER,0))
|
||||
message = sanitize(message, 500, extra = 0)
|
||||
@@ -709,12 +638,12 @@ var/datum/announcement/minor/admin_min_announcer = new
|
||||
var/channel = tgui_input_list(usr, "Channel for message:","Channel", radiochannels)
|
||||
|
||||
if(channel) //They picked a channel
|
||||
var/sender = input(usr, "Name of sender (max 75):", "Announcement", "Announcement Computer") as null|text
|
||||
var/sender = tgui_input_text(usr, "Name of sender (max 75):", "Announcement", "Announcement Computer")
|
||||
|
||||
if(sender) //They put a sender
|
||||
sender = sanitize(sender, 75, extra = 0)
|
||||
var/message = input(usr, "Message content (max 500):", "Contents", "This is a test of the announcement system.") as null|message
|
||||
var/msgverb = input(usr, "Name of verb (Such as 'states', 'says', 'asks', etc):", "Verb", "says") as null|text //VOREStation Addition
|
||||
var/message = tgui_input_text(usr, "Message content (max 500):", "Contents", "This is a test of the announcement system.", multiline = TRUE)
|
||||
var/msgverb = tgui_input_text(usr, "Name of verb (Such as 'states', 'says', 'asks', etc):", "Verb", "says")
|
||||
if(message) //They put a message
|
||||
message = sanitize(message, 500, extra = 0)
|
||||
//VOREStation Edit Start
|
||||
@@ -752,7 +681,7 @@ var/datum/announcement/minor/admin_min_announcer = new
|
||||
The above will result in those messages playing, with a 5 second gap between each. Maximum of 20 messages allowed.</span>")
|
||||
|
||||
var/list/decomposed
|
||||
var/message = input(usr,"See your chat box for instructions. Keep a copy elsewhere in case it is rejected when you click OK.", "Input Conversation", "") as null|message
|
||||
var/message = tgui_input_text(usr,"See your chat box for instructions. Keep a copy elsewhere in case it is rejected when you click OK.", "Input Conversation", "", multiline = TRUE)
|
||||
|
||||
if(!message)
|
||||
return
|
||||
@@ -1120,7 +1049,7 @@ var/datum/announcement/minor/admin_min_announcer = new
|
||||
|
||||
if(!seedtype || !SSplants.seeds[seedtype])
|
||||
return
|
||||
var/amount = input(usr, "Amount of fruit to spawn", "Fruit Amount", 1) as null|num
|
||||
var/amount = tgui_input_number(usr, "Amount of fruit to spawn", "Fruit Amount", 1)
|
||||
if(!isnull(amount))
|
||||
var/datum/seed/S = SSplants.seeds[seedtype]
|
||||
S.harvest(usr,0,0,amount)
|
||||
@@ -1533,7 +1462,7 @@ var/datum/announcement/minor/admin_min_announcer = new
|
||||
var/crystals
|
||||
|
||||
if(check_rights(R_ADMIN|R_EVENT))
|
||||
crystals = input(usr, "Amount of telecrystals for [H.ckey], currently [H.mind.tcrystals].", crystals) as null|num
|
||||
crystals = tgui_input_number(usr, "Amount of telecrystals for [H.ckey], currently [H.mind.tcrystals].", crystals)
|
||||
if (!isnull(crystals))
|
||||
H.mind.tcrystals = crystals
|
||||
var/msg = "[key_name(usr)] has modified [H.ckey]'s telecrystals to [crystals]."
|
||||
@@ -1549,7 +1478,7 @@ var/datum/announcement/minor/admin_min_announcer = new
|
||||
var/crystals
|
||||
|
||||
if(check_rights(R_ADMIN|R_EVENT))
|
||||
crystals = input(usr, "Amount of telecrystals to give to [H.ckey], currently [H.mind.tcrystals].", crystals) as null|num
|
||||
crystals = tgui_input_number(usr, "Amount of telecrystals to give to [H.ckey], currently [H.mind.tcrystals].", crystals)
|
||||
if (!isnull(crystals))
|
||||
H.mind.tcrystals += crystals
|
||||
var/msg = "[key_name(usr)] has added [crystals] to [H.ckey]'s telecrystals."
|
||||
@@ -1572,7 +1501,7 @@ var/datum/announcement/minor/admin_min_announcer = new
|
||||
to_chat(usr, "Error: you are not an admin!")
|
||||
return
|
||||
|
||||
var/replyorigin = input(src.owner, "Please specify who the fax is coming from", "Origin") as text|null
|
||||
var/replyorigin = tgui_input_text(src.owner, "Please specify who the fax is coming from", "Origin")
|
||||
|
||||
var/obj/item/weapon/paper/admin/P = new /obj/item/weapon/paper/admin( null ) //hopefully the null loc won't cause trouble for us
|
||||
faxreply = P
|
||||
@@ -1587,7 +1516,7 @@ var/datum/announcement/minor/admin_min_announcer = new
|
||||
/datum/admins/var/obj/item/weapon/paper/admin/faxreply // var to hold fax replies in
|
||||
|
||||
/datum/admins/proc/faxCallback(var/obj/item/weapon/paper/admin/P, var/obj/machinery/photocopier/faxmachine/destination)
|
||||
var/customname = input(src.owner, "Pick a title for the report", "Title") as text|null
|
||||
var/customname = tgui_input_text(src.owner, "Pick a title for the report", "Title")
|
||||
|
||||
P.name = "[P.origin] - [customname]"
|
||||
P.desc = "This is a paper titled '" + P.name + "'."
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
/client/proc/admin_memo_write()
|
||||
var/savefile/F = new(MEMOFILE)
|
||||
if(F)
|
||||
var/memo = sanitize(input(src,"Type your memo\n(Leaving it blank will delete your current memo):","Write Memo",null) as null|message, extra = 0)
|
||||
var/memo = sanitize(tgui_input_text(src,"Type your memo\n(Leaving it blank will delete your current memo):","Write Memo",null, multiline = TRUE), extra = 0)
|
||||
switch(memo)
|
||||
if(null)
|
||||
return
|
||||
|
||||
@@ -127,7 +127,7 @@ world/New()
|
||||
if(M.client)
|
||||
CID = M.client.computer_id
|
||||
|
||||
var/body = input(src.mob, "Describe in detail what you're reporting [M] for", "Report") as null|text
|
||||
var/body = tgui_input_text(src.mob, "Describe in detail what you're reporting [M] for", "Report")
|
||||
if(!body) return
|
||||
|
||||
|
||||
@@ -174,7 +174,7 @@ world/New()
|
||||
if(!found)
|
||||
to_chat(src, "<b>* An error occured, sorry.</b>")
|
||||
|
||||
var/body = input(src.mob, "Enter a body for the news", "Body") as null|message
|
||||
var/body = tgui_input_text(src.mob, "Enter a body for the news", "Body", multiline = TRUE)
|
||||
if(!body) return
|
||||
|
||||
found.body = body
|
||||
|
||||
@@ -35,10 +35,23 @@
|
||||
set category = "Admin"
|
||||
set name = "Aghost"
|
||||
if(!holder) return
|
||||
|
||||
var/build_mode
|
||||
if(src.buildmode)
|
||||
build_mode = tgui_alert(src, "You appear to be currently in buildmode. Do you want to re-enter buildmode after aghosting?", "Buildmode", list("Yes", "No"))
|
||||
if(build_mode != "Yes")
|
||||
to_chat(src, "Will not re-enter buildmode after switch.")
|
||||
|
||||
if(istype(mob,/mob/observer/dead))
|
||||
//re-enter
|
||||
var/mob/observer/dead/ghost = mob
|
||||
if(ghost.can_reenter_corpse)
|
||||
if(build_mode)
|
||||
togglebuildmode(mob)
|
||||
ghost.reenter_corpse()
|
||||
if(build_mode == "Yes")
|
||||
togglebuildmode(mob)
|
||||
else
|
||||
ghost.reenter_corpse()
|
||||
else
|
||||
to_chat(ghost, "<span class='filter_system warning'>Error: Aghost: Can't reenter corpse.</span>")
|
||||
@@ -51,7 +64,16 @@
|
||||
else
|
||||
//ghostize
|
||||
var/mob/body = mob
|
||||
var/mob/observer/dead/ghost = body.ghostize(1)
|
||||
var/mob/observer/dead/ghost
|
||||
if(build_mode)
|
||||
togglebuildmode(body)
|
||||
ghost = body.ghostize(1)
|
||||
ghost.admin_ghosted = 1
|
||||
log_and_message_admins("[key_name(src)] admin-ghosted.") // CHOMPEdit - Add logging.
|
||||
if(build_mode == "Yes")
|
||||
togglebuildmode(ghost)
|
||||
else
|
||||
ghost = body.ghostize(1)
|
||||
ghost.admin_ghosted = 1
|
||||
log_and_message_admins("[key_name(src)] admin-ghosted.") // CHOMPEdit - Add logging.
|
||||
if(body)
|
||||
@@ -180,7 +202,7 @@
|
||||
if(istype(src.mob, /mob/new_player))
|
||||
mob.name = capitalize(ckey)
|
||||
else
|
||||
var/new_key = ckeyEx(input(usr, "Enter your desired display name.", "Fake Key", key) as text|null)
|
||||
var/new_key = ckeyEx(tgui_input_text(usr, "Enter your desired display name.", "Fake Key", key))
|
||||
if(!new_key)
|
||||
return
|
||||
if(length(new_key) >= 26)
|
||||
@@ -254,10 +276,10 @@
|
||||
if("Big Bomb")
|
||||
explosion(epicenter, 3, 5, 7, 5)
|
||||
if("Custom Bomb")
|
||||
var/devastation_range = input(usr, "Devastation range (in tiles):") as num
|
||||
var/heavy_impact_range = input(usr, "Heavy impact range (in tiles):") as num
|
||||
var/light_impact_range = input(usr, "Light impact range (in tiles):") as num
|
||||
var/flash_range = input(usr, "Flash range (in tiles):") as num
|
||||
var/devastation_range = tgui_input_number(usr, "Devastation range (in tiles):")
|
||||
var/heavy_impact_range = tgui_input_number(usr, "Heavy impact range (in tiles):")
|
||||
var/light_impact_range = tgui_input_number(usr, "Light impact range (in tiles):")
|
||||
var/flash_range = tgui_input_number(usr, "Flash range (in tiles):")
|
||||
explosion(epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range)
|
||||
message_admins("<font color='blue'>[ckey] creating an admin explosion at [epicenter.loc].</font>")
|
||||
feedback_add_details("admin_verb","DB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
@@ -277,7 +299,7 @@
|
||||
if ("Badmin") severity = 99
|
||||
|
||||
D.makerandom(severity)
|
||||
D.infectionchance = input(usr, "How virulent is this disease? (1-100)", "Give Disease", D.infectionchance) as num
|
||||
D.infectionchance = tgui_input_number(usr, "How virulent is this disease? (1-100)", "Give Disease", D.infectionchance)
|
||||
|
||||
if(istype(T,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = T
|
||||
@@ -308,7 +330,7 @@
|
||||
var/new_modifier_type = tgui_input_list(usr, "What modifier should we add to [L]?", "Modifier Type", possible_modifiers)
|
||||
if(!new_modifier_type)
|
||||
return
|
||||
var/duration = input(usr, "How long should the new modifier last, in seconds. To make it last forever, write '0'.", "Modifier Duration") as num
|
||||
var/duration = tgui_input_number(usr, "How long should the new modifier last, in seconds. To make it last forever, write '0'.", "Modifier Duration")
|
||||
if(duration == 0)
|
||||
duration = null
|
||||
else
|
||||
@@ -322,7 +344,7 @@
|
||||
set name = "Make Sound"
|
||||
set desc = "Display a message to everyone who can hear the target"
|
||||
if(O)
|
||||
var/message = sanitize(input(usr, "What do you want the message to be?", "Make Sound") as text|null)
|
||||
var/message = sanitize(tgui_input_text(usr, "What do you want the message to be?", "Make Sound"))
|
||||
if(!message)
|
||||
return
|
||||
O.audible_message(message)
|
||||
@@ -406,7 +428,7 @@
|
||||
var/mob/living/silicon/S = tgui_input_list(usr, "Select silicon.", "Rename Silicon.", silicon_mob_list)
|
||||
if(!S) return
|
||||
|
||||
var/new_name = sanitizeSafe(input(src, "Enter new name. Leave blank or as is to cancel.", "[S.real_name] - Enter new silicon name", S.real_name))
|
||||
var/new_name = sanitizeSafe(tgui_input_text(src, "Enter new name. Leave blank or as is to cancel.", "[S.real_name] - Enter new silicon name", S.real_name))
|
||||
if(new_name && new_name != S.real_name)
|
||||
log_and_message_admins("has renamed the silicon '[S.real_name]' to '[new_name]'")
|
||||
S.SetName(new_name)
|
||||
|
||||
@@ -39,9 +39,9 @@
|
||||
if(isturf(orbiter))
|
||||
to_chat(usr, "<span class = 'warning'>The orbiter cannot be a turf. It can only be used as a center.</span>")
|
||||
return
|
||||
var/distance = input(usr, "How large will their orbit radius be? (In pixels. 32 is 'near around a character)", "Orbit Radius", 32) as num|null
|
||||
var/speed = input(usr, "How fast will they orbit (negative numbers spin clockwise)", "Orbit Speed", 20) as num|null
|
||||
var/segments = input(usr, "How many segments will they have in their orbit? (3 is a triangle, 36 is a circle, etc)", "Orbit Segments", 36) as num|null
|
||||
var/distance = tgui_input_number(usr, "How large will their orbit radius be? (In pixels. 32 is 'near around a character)", "Orbit Radius", 32)
|
||||
var/speed = tgui_input_number(usr, "How fast will they orbit (negative numbers spin clockwise)", "Orbit Speed", 20)
|
||||
var/segments = tgui_input_number(usr, "How many segments will they have in their orbit? (3 is a triangle, 36 is a circle, etc)", "Orbit Segments", 36)
|
||||
var/clock = FALSE
|
||||
if(!distance)
|
||||
distance = 32
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
target = null
|
||||
targetselected = 0
|
||||
|
||||
var/procname = input(usr, "Proc path, eg: /proc/fake_blood","Path:", null) as text|null
|
||||
var/procname = tgui_input_text(usr, "Proc path, eg: /proc/fake_blood","Path:", null)
|
||||
if(!procname)
|
||||
return
|
||||
|
||||
@@ -136,7 +136,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention)
|
||||
if(!check_rights(R_DEBUG))
|
||||
return
|
||||
|
||||
var/procname = input(usr, "Proc name, eg: fake_blood","Proc:", null) as text|null
|
||||
var/procname = tgui_input_text(usr, "Proc name, eg: fake_blood","Proc:", null)
|
||||
if(!procname)
|
||||
return
|
||||
if(!hascall(A,procname))
|
||||
@@ -161,7 +161,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention)
|
||||
to_chat(usr, .)
|
||||
|
||||
/client/proc/get_callproc_args()
|
||||
var/argnum = input(usr, "Number of arguments","Number:",0) as num|null
|
||||
var/argnum = tgui_input_number(usr, "Number of arguments","Number:",0)
|
||||
if(isnull(argnum))
|
||||
return null //Cancel
|
||||
|
||||
|
||||
@@ -22,13 +22,13 @@
|
||||
if(F)
|
||||
var/title = F["title"]
|
||||
var/body = html2paper_markup(F["body"])
|
||||
var/new_title = sanitize(input(src,"Write a good title for the news update. Note: HTML is NOT supported.","Write News", title) as null|text, extra = 0)
|
||||
var/new_title = sanitize(tgui_input_text(src,"Write a good title for the news update. Note: HTML is NOT supported.","Write News", title), extra = 0)
|
||||
if(!new_title)
|
||||
return
|
||||
var/new_body = sanitize(input(src,"Write the body of the news update here. Note: HTML is NOT supported, however paper markup is supported. \n\
|
||||
var/new_body = sanitize(tgui_input_text(src,"Write the body of the news update here. Note: HTML is NOT supported, however paper markup is supported. \n\
|
||||
Hitting enter will automatically add a line break. \n\
|
||||
Valid markup includes: \[b\], \[i\], \[u\], \[large\], \[h1\], \[h2\], \[h3\]\ \[*\], \[hr\], \[small\], \[list\], \[table\], \[grid\], \
|
||||
\[row\], \[cell\], \[logo\], \[sglogo\].","Write News", body) as null|message, extra = 0)
|
||||
\[row\], \[cell\], \[logo\], \[sglogo\].","Write News", body, multiline = TRUE), extra = 0)
|
||||
|
||||
new_body = paper_markup2html(new_body)
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
var/transition_area = tgui_input_list(user, "Which area is the transition area? (MAKE SURE THIS IS CORRECT OR THINGS WILL BREAK)", "Area Choice", area_choices)
|
||||
if (!transition_area) return
|
||||
|
||||
var/move_duration = input(user, "How many seconds will this jump take?") as num
|
||||
var/move_duration = tgui_input_number(user, "How many seconds will this jump take?")
|
||||
|
||||
S.long_jump(area_choices[origin_area], area_choices[destination_area], area_choices[transition_area], move_duration)
|
||||
message_admins("<span class='notice'>[key_name_admin(user)] has initiated a jump from [origin_area] to [destination_area] lasting [move_duration] seconds for the [shuttle_tag] shuttle</span>", 1)
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
|
||||
var/task = href_list["editrights"]
|
||||
if(task == "add")
|
||||
var/new_ckey = ckey(input(usr,"New admin's ckey","Admin ckey", null) as text|null)
|
||||
var/new_ckey = ckey(tgui_input_text(usr,"New admin's ckey","Admin ckey", null))
|
||||
if(!new_ckey) return
|
||||
if(new_ckey in admin_datums)
|
||||
to_chat(usr, "<span class='filter_adminlog warning'>Error: Topic 'editrights': [new_ckey] is already an admin</span>")
|
||||
@@ -151,7 +151,7 @@
|
||||
switch(new_rank)
|
||||
if(null,"") return
|
||||
if("*New Rank*")
|
||||
new_rank = input(usr, "Please input a new rank", "New custom rank", null, null) as null|text
|
||||
new_rank = tgui_input_text(usr, "Please input a new rank", "New custom rank")
|
||||
if(config.admin_legacy_system)
|
||||
new_rank = ckeyEx(new_rank)
|
||||
if(!new_rank)
|
||||
@@ -232,7 +232,7 @@
|
||||
if(!check_rights(R_SERVER)) return
|
||||
|
||||
if (emergency_shuttle.wait_for_launch)
|
||||
var/new_time_left = input(usr, "Enter new shuttle launch countdown (seconds):","Edit Shuttle Launch Time", emergency_shuttle.estimate_launch_time() ) as num
|
||||
var/new_time_left = tgui_input_number(usr, "Enter new shuttle launch countdown (seconds):","Edit Shuttle Launch Time", emergency_shuttle.estimate_launch_time() )
|
||||
|
||||
emergency_shuttle.launch_time = world.time + new_time_left*10
|
||||
|
||||
@@ -240,7 +240,7 @@
|
||||
message_admins("<font color='blue'>[key_name_admin(usr)] edited the Emergency Shuttle's launch time to [new_time_left*10]</font>", 1)
|
||||
else if (emergency_shuttle.shuttle.has_arrive_time())
|
||||
|
||||
var/new_time_left = input(usr, "Enter new shuttle arrival time (seconds):","Edit Shuttle Arrival Time", emergency_shuttle.estimate_arrival_time() ) as num
|
||||
var/new_time_left = tgui_input_number(usr, "Enter new shuttle arrival time (seconds):","Edit Shuttle Arrival Time", emergency_shuttle.estimate_arrival_time() )
|
||||
emergency_shuttle.shuttle.arrive_time = world.time + new_time_left*10
|
||||
|
||||
log_admin("[key_name(usr)] edited the Emergency Shuttle's arrival time to [new_time_left]")
|
||||
@@ -338,17 +338,17 @@
|
||||
var/mins = 0
|
||||
if(minutes > CMinutes)
|
||||
mins = minutes - CMinutes
|
||||
mins = input(usr,"How long (in minutes)? (Default: 1440)","Ban time",mins ? mins : 1440) as num|null
|
||||
mins = tgui_input_number(usr,"How long (in minutes)? (Default: 1440)","Ban time",mins ? mins : 1440)
|
||||
if(!mins) return
|
||||
mins = min(525599,mins)
|
||||
minutes = CMinutes + mins
|
||||
duration = GetExp(minutes)
|
||||
reason = sanitize(input(usr,"Reason?","reason",reason2) as text|null)
|
||||
reason = sanitize(tgui_input_text(usr,"Reason?","reason",reason2))
|
||||
if(!reason) return
|
||||
if("No")
|
||||
temp = 0
|
||||
duration = "Perma"
|
||||
reason = sanitize(input(usr,"Reason?","reason",reason2) as text|null)
|
||||
reason = sanitize(tgui_input_text(usr,"Reason?","reason",reason2))
|
||||
if(!reason) return
|
||||
|
||||
log_admin("[key_name(usr)] edited [banned_key]'s ban. Reason: [reason] Duration: [duration]")
|
||||
@@ -758,13 +758,13 @@
|
||||
if(config.ban_legacy_system)
|
||||
to_chat(usr, "<span class='filter_adminlog warning'>Your server is using the legacy banning system, which does not support temporary job bans. Consider upgrading. Aborting ban.</span>")
|
||||
return
|
||||
var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num|null
|
||||
var/mins = tgui_input_number(usr,"How long (in minutes)?","Ban time",1440)
|
||||
if(!mins)
|
||||
return
|
||||
if(check_rights(R_MOD, 0) && !check_rights(R_BAN, 0) && mins > config.mod_job_tempban_max)
|
||||
to_chat(usr, "<span class='filter_adminlog warning'> Moderators can only job tempban up to [config.mod_job_tempban_max] minutes!</span>")
|
||||
return
|
||||
var/reason = sanitize(input(usr,"Reason?","Please State Reason","") as text|null)
|
||||
var/reason = sanitize(tgui_input_text(usr,"Reason?","Please State Reason",""))
|
||||
if(!reason)
|
||||
return
|
||||
|
||||
@@ -789,7 +789,7 @@
|
||||
return 1
|
||||
if("No")
|
||||
if(!check_rights(R_BAN)) return
|
||||
var/reason = sanitize(input(usr,"Reason?","Please State Reason","") as text|null)
|
||||
var/reason = sanitize(tgui_input_text(usr,"Reason?","Please State Reason",""))
|
||||
if(reason)
|
||||
var/msg
|
||||
for(var/job in notbannedlist)
|
||||
@@ -846,7 +846,7 @@
|
||||
if (ismob(M))
|
||||
if(!check_if_greater_rights_than(M.client))
|
||||
return
|
||||
var/reason = sanitize(input(usr, "Please enter reason.") as null|message)
|
||||
var/reason = sanitize(tgui_input_text(usr, "Please enter reason.", multiline = TRUE))
|
||||
if(!reason)
|
||||
return
|
||||
|
||||
@@ -888,14 +888,14 @@
|
||||
|
||||
switch(tgui_alert(usr, "Temporary Ban?","Temporary Ban",list("Yes","No","Cancel")))
|
||||
if("Yes")
|
||||
var/mins = input(usr,"How long (in minutes)?","Ban time",1440) as num|null
|
||||
var/mins = tgui_input_number(usr,"How long (in minutes)?","Ban time",1440)
|
||||
if(!mins)
|
||||
return
|
||||
if(check_rights(R_MOD, 0) && !check_rights(R_BAN, 0) && mins > config.mod_tempban_max)
|
||||
to_chat(usr, "<span class='warning'>Moderators can only job tempban up to [config.mod_tempban_max] minutes!</span>")
|
||||
return
|
||||
if(mins >= 525600) mins = 525599
|
||||
var/reason = sanitize(input(usr,"Reason?","reason","Griefer") as text|null)
|
||||
var/reason = sanitize(tgui_input_text(usr,"Reason?","reason","Griefer"))
|
||||
if(!reason)
|
||||
return
|
||||
AddBan(M.ckey, M.computer_id, reason, usr.ckey, 1, mins)
|
||||
@@ -919,7 +919,7 @@
|
||||
//qdel(M) // See no reason why to delete mob. Important stuff can be lost. And ban can be lifted before round ends.
|
||||
if("No")
|
||||
if(!check_rights(R_BAN)) return
|
||||
var/reason = sanitize(input(usr,"Reason?","reason","Griefer") as text|null)
|
||||
var/reason = sanitize(tgui_input_text(usr,"Reason?","reason","Griefer"))
|
||||
if(!reason)
|
||||
return
|
||||
switch(tgui_alert(usr,"IP ban?","IP Ban",list("Yes","No","Cancel")))
|
||||
@@ -1045,7 +1045,7 @@
|
||||
if(!ismob(M))
|
||||
to_chat(usr, "<span class='filter_adminlog'>this can only be used on instances of type /mob</span>")
|
||||
|
||||
var/speech = input(usr, "What will [key_name(M)] say?.", "Force speech", "") // Don't need to sanitize, since it does that in say(), we also trust our admins.
|
||||
var/speech = tgui_input_text(usr, "What will [key_name(M)] say?.", "Force speech", "") // Don't need to sanitize, since it does that in say(), we also trust our admins.
|
||||
if(!speech) return
|
||||
M.say(speech)
|
||||
speech = sanitize(speech) // Nah, we don't trust them
|
||||
@@ -1463,7 +1463,7 @@
|
||||
return
|
||||
|
||||
if(L.can_centcom_reply())
|
||||
var/input = sanitize(input(src.owner, "Please enter a message to reply to [key_name(L)] via their headset.","Outgoing message from CentCom", ""))
|
||||
var/input = sanitize(tgui_input_text(src.owner, "Please enter a message to reply to [key_name(L)] via their headset.","Outgoing message from CentCom", ""))
|
||||
if(!input) return
|
||||
|
||||
to_chat(src.owner, "<span class='filter_adminlog'>You sent [input] to [L] via a secure channel.</span>")
|
||||
@@ -1488,7 +1488,7 @@
|
||||
to_chat(usr, "<span class='filter_adminlog'>The person you are trying to contact is not wearing a headset</span>")
|
||||
return
|
||||
|
||||
var/input = sanitize(input(src.owner, "Please enter a message to reply to [key_name(H)] via their headset.","Outgoing message from a shadowy figure...", ""))
|
||||
var/input = sanitize(tgui_input_text(src.owner, "Please enter a message to reply to [key_name(H)] via their headset.","Outgoing message from a shadowy figure...", ""))
|
||||
if(!input) return
|
||||
|
||||
to_chat(src.owner, "<span class='filter_adminlog'>You sent [input] to [H] via a secure channel.</span>")
|
||||
@@ -1785,7 +1785,7 @@
|
||||
src.access_news_network()
|
||||
|
||||
else if(href_list["ac_set_channel_name"])
|
||||
src.admincaster_feed_channel.channel_name = sanitizeSafe(input(usr, "Provide a Feed Channel Name", "Network Channel Handler", ""))
|
||||
src.admincaster_feed_channel.channel_name = sanitizeSafe(tgui_input_text(usr, "Provide a Feed Channel Name", "Network Channel Handler", ""))
|
||||
src.access_news_network()
|
||||
|
||||
else if(href_list["ac_set_channel_lock"])
|
||||
@@ -1817,11 +1817,11 @@
|
||||
src.access_news_network()
|
||||
|
||||
else if(href_list["ac_set_new_title"])
|
||||
src.admincaster_feed_message.title = sanitize(input(usr, "Enter the Feed title", "Network Channel Handler", ""))
|
||||
src.admincaster_feed_message.title = sanitize(tgui_input_text(usr, "Enter the Feed title", "Network Channel Handler", ""))
|
||||
src.access_news_network()
|
||||
|
||||
else if(href_list["ac_set_new_message"])
|
||||
src.admincaster_feed_message.body = sanitize(input(usr, "Write your Feed story", "Network Channel Handler", "") as message)
|
||||
src.admincaster_feed_message.body = sanitize(tgui_input_text(usr, "Write your Feed story", "Network Channel Handler", "", multiline = TRUE))
|
||||
src.access_news_network()
|
||||
|
||||
else if(href_list["ac_submit_new_message"])
|
||||
@@ -1863,11 +1863,11 @@
|
||||
src.access_news_network()
|
||||
|
||||
else if(href_list["ac_set_wanted_name"])
|
||||
src.admincaster_feed_message.author = sanitize(input(usr, "Provide the name of the Wanted person", "Network Security Handler", ""))
|
||||
src.admincaster_feed_message.author = sanitize(tgui_input_text(usr, "Provide the name of the Wanted person", "Network Security Handler", ""))
|
||||
src.access_news_network()
|
||||
|
||||
else if(href_list["ac_set_wanted_desc"])
|
||||
src.admincaster_feed_message.body = sanitize(input(usr, "Provide the a description of the Wanted person and any other details you deem important", "Network Security Handler", ""))
|
||||
src.admincaster_feed_message.body = sanitize(tgui_input_text(usr, "Provide the a description of the Wanted person and any other details you deem important", "Network Security Handler", ""))
|
||||
src.access_news_network()
|
||||
|
||||
else if(href_list["ac_submit_wanted"])
|
||||
@@ -1972,7 +1972,7 @@
|
||||
src.access_news_network()
|
||||
|
||||
else if(href_list["ac_set_signature"])
|
||||
src.admincaster_signature = sanitize(input(usr, "Provide your desired signature", "Network Identity Handler", ""))
|
||||
src.admincaster_signature = sanitize(tgui_input_text(usr, "Provide your desired signature", "Network Identity Handler", ""))
|
||||
src.access_news_network()
|
||||
|
||||
else if(href_list["populate_inactive_customitems"])
|
||||
@@ -2019,21 +2019,6 @@
|
||||
|
||||
// player info stuff
|
||||
|
||||
if(href_list["add_player_info"])
|
||||
var/key = href_list["add_player_info"]
|
||||
var/add = sanitize(input(usr, "Add Player Info") as null|text)
|
||||
if(!add) return
|
||||
|
||||
notes_add(key,add,usr)
|
||||
show_player_info(key)
|
||||
|
||||
if(href_list["remove_player_info"])
|
||||
var/key = href_list["remove_player_info"]
|
||||
var/index = text2num(href_list["remove_index"])
|
||||
|
||||
notes_del(key, index)
|
||||
show_player_info(key)
|
||||
|
||||
if(href_list["notes"])
|
||||
var/ckey = href_list["ckey"]
|
||||
if(!ckey)
|
||||
@@ -2043,7 +2028,9 @@
|
||||
|
||||
switch(href_list["notes"])
|
||||
if("show")
|
||||
show_player_info(ckey)
|
||||
var/datum/tgui_module/player_notes_info/A = new(src)
|
||||
A.key = ckey
|
||||
A.tgui_interact(usr)
|
||||
if("list")
|
||||
var/filter
|
||||
if(href_list["filter"] && href_list["filter"] != "0")
|
||||
|
||||
@@ -491,7 +491,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
||||
usr << browse(dat.Join(), "window=ahelp[id];size=620x480")
|
||||
|
||||
/datum/admin_help/proc/Retitle()
|
||||
var/new_title = input(usr, "Enter a title for the ticket", "Rename Ticket", name) as text|null
|
||||
var/new_title = tgui_input_text(usr, "Enter a title for the ticket", "Rename Ticket", name)
|
||||
if(new_title)
|
||||
name = new_title
|
||||
//not saying the original name cause it could be a long ass message
|
||||
|
||||
@@ -210,13 +210,13 @@
|
||||
|
||||
if(config.allow_admin_jump)
|
||||
if(isnull(tx))
|
||||
tx = input(usr, "Select X coordinate", "Move Atom", null, null) as null|num
|
||||
tx = tgui_input_number(usr, "Select X coordinate", "Move Atom", null, null)
|
||||
if(!tx) return
|
||||
if(isnull(ty))
|
||||
ty = input(usr, "Select Y coordinate", "Move Atom", null, null) as null|num
|
||||
ty = tgui_input_number(usr, "Select Y coordinate", "Move Atom", null, null)
|
||||
if(!ty) return
|
||||
if(isnull(tz))
|
||||
tz = input(usr, "Select Z coordinate", "Move Atom", null, null) as null|num
|
||||
tz = tgui_input_number(usr, "Select Z coordinate", "Move Atom", null, null)
|
||||
if(!tz) return
|
||||
var/turf/T = locate(tx, ty, tz)
|
||||
if(!T)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user