mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-04 14:33:10 +00:00
Revert "Revert "IPC Tag Project (#8649)""
This reverts commit bf11747fc3.
This commit is contained in:
@@ -9,6 +9,10 @@
|
||||
S["species"] >> pref.species
|
||||
S["spawnpoint"] >> pref.spawnpoint
|
||||
S["OOC_Notes"] >> pref.metadata
|
||||
if(istype(all_species[pref.species], /datum/species/machine))
|
||||
S["ipc_tag_status"] >> pref.machine_tag_status
|
||||
S["ipc_serial_number"] >> pref.machine_serial_number
|
||||
S["ipc_ownership_status"] >> pref.machine_ownership_status
|
||||
|
||||
/datum/category_item/player_setup_item/general/basic/save_character(var/savefile/S)
|
||||
S["real_name"] << pref.real_name
|
||||
@@ -17,7 +21,13 @@
|
||||
S["species"] << pref.species
|
||||
S["spawnpoint"] << pref.spawnpoint
|
||||
S["OOC_Notes"] << pref.metadata
|
||||
if(istype(all_species[pref.species], /datum/species/machine))
|
||||
S["ipc_tag_status"] << pref.machine_tag_status
|
||||
S["ipc_serial_number"] << pref.machine_serial_number
|
||||
S["ipc_ownership_status"] << pref.machine_ownership_status
|
||||
|
||||
// if table_name and pref.var_name is different, then do it like
|
||||
// "table_name" = "pref.var_name", as below
|
||||
/datum/category_item/player_setup_item/general/basic/gather_load_query()
|
||||
return list(
|
||||
"ss13_characters" = list(
|
||||
@@ -30,12 +40,25 @@
|
||||
"species"
|
||||
),
|
||||
"args" = list("id")
|
||||
),
|
||||
"ss13_characters_ipc_tags" = list(
|
||||
"vars" = list(
|
||||
"tag_status" = "machine_tag_status",
|
||||
"serial_number" = "machine_serial_number",
|
||||
"ownership_status" = "machine_ownership_status"
|
||||
),
|
||||
"args" = list("char_id")
|
||||
)
|
||||
)
|
||||
|
||||
// Generally, this doesn't USUALLY need changing
|
||||
/datum/category_item/player_setup_item/general/basic/gather_load_parameters()
|
||||
return list("id" = pref.current_character)
|
||||
return list(
|
||||
"id" = pref.current_character,
|
||||
"char_id" = pref.current_character
|
||||
)
|
||||
|
||||
// Only need to list the SQL table field names here
|
||||
/datum/category_item/player_setup_item/general/basic/gather_save_query()
|
||||
return list(
|
||||
"ss13_characters" = list(
|
||||
@@ -47,6 +70,12 @@
|
||||
"species",
|
||||
"id" = 1,
|
||||
"ckey" = 1
|
||||
),
|
||||
"ss13_characters_ipc_tags" = list(
|
||||
"tag_status",
|
||||
"serial_number",
|
||||
"ownership_status",
|
||||
"char_id" = 1 // = 1 signifies argument
|
||||
)
|
||||
)
|
||||
|
||||
@@ -58,12 +87,17 @@
|
||||
"metadata" = pref.metadata,
|
||||
"spawnpoint" = pref.spawnpoint,
|
||||
"species" = pref.species,
|
||||
"tag_status" = pref.machine_tag_status,
|
||||
"serial_number" = pref.machine_serial_number,
|
||||
"ownership_status" = pref.machine_ownership_status,
|
||||
"id" = pref.current_character,
|
||||
"char_id" = pref.current_character,
|
||||
"ckey" = PREF_CLIENT_CKEY
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/general/basic/load_special()
|
||||
pref.can_edit_name = 1
|
||||
pref.can_edit_name = TRUE
|
||||
pref.can_edit_ipc_tag = TRUE
|
||||
|
||||
if (config.sql_saves && pref.current_character)
|
||||
if (!establish_db_connection(dbcon))
|
||||
@@ -76,7 +110,9 @@
|
||||
|
||||
if (query.NextRow())
|
||||
if (text2num(query.item[1]) > 5)
|
||||
pref.can_edit_name = 0
|
||||
pref.can_edit_name = FALSE
|
||||
if(config.ipc_timelock_active)
|
||||
pref.can_edit_ipc_tag = FALSE
|
||||
else
|
||||
error("SQL CHARACTER LOAD: Logic error, general/basic/load_special() didn't return any rows when it should have.")
|
||||
log_debug("SQL CHARACTER LOAD: Logic error, general/basic/load_special() didn't return any rows when it should have. Character ID: [pref.current_character].")
|
||||
@@ -85,12 +121,13 @@
|
||||
if(!pref.species || !(pref.species in playable_species))
|
||||
pref.species = "Human"
|
||||
|
||||
pref.age = sanitize_integer(text2num(pref.age), pref.getMinAge(), pref.getMaxAge(), initial(pref.age))
|
||||
pref.gender = sanitize_gender(pref.gender, pref.species)
|
||||
pref.real_name = sanitize_name(pref.real_name, pref.species)
|
||||
pref.age = sanitize_integer(text2num(pref.age), pref.getMinAge(), pref.getMaxAge(), initial(pref.age))
|
||||
pref.gender = sanitize_gender(pref.gender, pref.species)
|
||||
pref.real_name = sanitize_name(pref.real_name, pref.species)
|
||||
if(!pref.real_name)
|
||||
pref.real_name = random_name(pref.gender, pref.species)
|
||||
pref.spawnpoint = sanitize_inlist(pref.spawnpoint, SSatlas.spawn_locations, initial(pref.spawnpoint))
|
||||
pref.real_name = random_name(pref.gender, pref.species)
|
||||
pref.spawnpoint = sanitize_inlist(pref.spawnpoint, SSatlas.spawn_locations, initial(pref.spawnpoint))
|
||||
pref.machine_tag_status = text2num(pref.machine_tag_status) // SQL queries return as text, so make this a num
|
||||
|
||||
/datum/category_item/player_setup_item/general/basic/content()
|
||||
var/list/dat = list("<b>Name:</b> ")
|
||||
@@ -104,6 +141,22 @@
|
||||
dat += "<b>Gender:</b> <a href='?src=\ref[src];gender=1'><b>[capitalize(lowertext(pref.gender))]</b></a><br>"
|
||||
dat += "<b>Age:</b> <a href='?src=\ref[src];age=1'>[pref.age]</a><br>"
|
||||
dat += "<b>Spawn Point</b>: <a href='?src=\ref[src];spawnpoint=1'>[pref.spawnpoint]</a><br>"
|
||||
if(istype(all_species[pref.species], /datum/species/machine))
|
||||
if(pref.can_edit_ipc_tag)
|
||||
dat += "<b>Has Tag:</b> <a href='?src=\ref[src];ipc_tag=1'>[pref.machine_tag_status ? "Yes" : "No"]</a><br>"
|
||||
else
|
||||
dat += "<b>Has Tag:</b> [pref.machine_tag_status ? "Yes" : "No"] (<a href='?src=\ref[src];namehelp=1'>?</a>)<br>"
|
||||
if(pref.machine_tag_status)
|
||||
if(!pref.machine_serial_number)
|
||||
var/generated_serial = uppertext(dd_limittext(md5(pref.real_name), 12))
|
||||
pref.machine_serial_number = generated_serial
|
||||
if(pref.can_edit_ipc_tag)
|
||||
dat += "<b>Serial Number:</b> <a href='?src=\ref[src];serial_number=1'>[pref.machine_serial_number]</a><br>"
|
||||
dat += "(<a href='?src=\ref[src];generate_serial=1'>Generate Serial Number</A>)<br>"
|
||||
dat += "<b>Ownership Status:</b> <a href='?src=\ref[src];ownership_status=1'>[pref.machine_ownership_status]</a><br>"
|
||||
else
|
||||
dat += "<b>Serial Number:</b> [pref.machine_serial_number] (<a href='?src=\ref[src];namehelp=1'>?</a>)<br>"
|
||||
dat += "<b>Ownership Status:</b> [pref.machine_ownership_status] (<a href='?src=\ref[src];namehelp=1'>?</a>)<br>"
|
||||
if(config.allow_Metadata)
|
||||
dat += "<b>OOC Notes:</b> <a href='?src=\ref[src];metadata=1'> Edit </a><br>"
|
||||
|
||||
@@ -126,7 +179,7 @@
|
||||
return TOPIC_NOACTION
|
||||
|
||||
else if(href_list["namehelp"])
|
||||
alert(user, "Due to game mechanics, you are no longer able to edit the name for this character. The grace period offered is 5 days since the character's initial save.\n\nIf you have a need to change the character's name, or further questions regarding this policy, please contact an administrator.")
|
||||
alert(user, "Due to game mechanics, you are no longer able to edit this information for this character. The grace period offered is 5 days since the character's initial save.\n\nIf you have a need to change the character's information, or further questions regarding this policy, please contact an administrator.")
|
||||
return TOPIC_NOACTION
|
||||
|
||||
else if(href_list["random_name"])
|
||||
@@ -167,4 +220,45 @@
|
||||
pref.metadata = sanitize(new_metadata)
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["ipc_tag"])
|
||||
if(!pref.can_edit_ipc_tag)
|
||||
to_chat(usr, SPAN_WARNING("You are unable to edit your IPC tag due to a timelock restriction. If you got here, it is either a hack or a bug."))
|
||||
return
|
||||
var/choice = alert(user, "Do you wish for your IPC to have a tag?\n\nWARNING: Being an untagged IPC in Tau space is highly illegal!", "IPC Tag", "Yes", "No")
|
||||
if(CanUseTopic(user))
|
||||
if(choice == "Yes")
|
||||
pref.machine_tag_status = TRUE
|
||||
else
|
||||
pref.machine_tag_status = FALSE
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["serial_number"])
|
||||
if(!pref.can_edit_ipc_tag)
|
||||
to_chat(usr, SPAN_WARNING("You are unable to edit your IPC tag due to a timelock restriction. If you got here, it is either a hack or a bug."))
|
||||
return
|
||||
var/new_serial_number = sanitize(input(user, "Enter what you want to set your serial number to.", "IPC Serial Number", pref.machine_serial_number) as message|null)
|
||||
new_serial_number = uppertext(dd_limittext(new_serial_number, 12))
|
||||
if(new_serial_number && CanUseTopic(user))
|
||||
pref.machine_serial_number = sanitize(new_serial_number)
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["generate_serial"])
|
||||
if(!pref.can_edit_ipc_tag)
|
||||
to_chat(usr, SPAN_WARNING("You are unable to edit your IPC tag due to a timelock restriction. If you got here, it is either a hack or a bug."))
|
||||
return
|
||||
if(pref.real_name)
|
||||
var/generated_serial = uppertext(dd_limittext(md5(pref.real_name), 12))
|
||||
pref.machine_serial_number = generated_serial
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["ownership_status"])
|
||||
if(!pref.can_edit_ipc_tag)
|
||||
to_chat(usr, SPAN_WARNING("You are unable to edit your IPC tag due to a timelock restriction. If you got here, it is either a hack or a bug."))
|
||||
return
|
||||
var/static/list/ownership_options = list(IPC_OWNERSHIP_COMPANY, IPC_OWNERSHIP_PRIVATE, IPC_OWNERSHIP_SELF)
|
||||
var/new_ownership_status = input(user, "Choose your IPC's ownership status.", "IPC Ownership Status") as null|anything in ownership_options
|
||||
if(new_ownership_status && CanUseTopic(user))
|
||||
pref.machine_ownership_status = new_ownership_status
|
||||
return TOPIC_REFRESH
|
||||
|
||||
return ..()
|
||||
|
||||
Reference in New Issue
Block a user