Merge master into map-development

This commit is contained in:
Lohikar
2017-03-21 18:28:39 -05:00
312 changed files with 5822 additions and 3118 deletions
-5
View File
@@ -194,11 +194,6 @@
return
// Antag contest shit
if (href_list["contest_action"] && config.antag_contest_enabled)
src.process_contest_topic(href_list)
return
..() //redirect to hsrc.()
/client/proc/handle_spam_prevention(var/message, var/mute_type)
@@ -105,12 +105,12 @@
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.<br><br>If 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 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.")
return TOPIC_NOACTION
else if(href_list["random_name"])
if (!pref.can_edit_name)
alert(user, "You can no longer edit the name of your character.<br><br>If there is a legitimate need, please contact an administrator regarding the matter.")
alert(user, "You can no longer edit the name of your character.\n\nIf there is a legitimate need, please contact an administrator regarding the matter.")
return TOPIC_NOACTION
pref.real_name = random_name(pref.gender, pref.species)
@@ -141,4 +141,4 @@
pref.metadata = sanitize(new_metadata)
return TOPIC_REFRESH
return ..()
return ..()
@@ -75,6 +75,9 @@
else
var/new_lang = input(user, "Select an additional language", "Character Generation", null) as null|anything in available_languages
if(new_lang)
pref.alternate_languages |= new_lang
if (pref.alternate_languages.len >= S.num_alternate_languages)
alert(user, "You have already selected the maximum number of alternate languages for this species!")
else
pref.alternate_languages |= new_lang
return TOPIC_REFRESH
return ..()
@@ -63,6 +63,7 @@
. += "<b>Ghost radio:</b> <a href='?src=\ref[src];toggle=[CHAT_GHOSTRADIO]'><b>[(pref.toggles & CHAT_GHOSTRADIO) ? "All Chatter" : "Nearest Speakers"]</b></a><br>"
. += "<b>Space Parallax:</b> <a href='?src=\ref[src];paratoggle=[PARALLAX_SPACE]'><b>[(pref.parallax_togs & PARALLAX_SPACE) ? "Yes" : "No"]</b></a><br>"
. += "<b>Space Dust:</b> <a href='?src=\ref[src];paratoggle=[PARALLAX_DUST]'><b>[(pref.parallax_togs & PARALLAX_DUST) ? "Yes" : "No"]</b></a><br>"
. += "<b>Progress Bars:</b> <a href='?src=\ref[src];paratoggle=[PROGRESS_BARS]'><b>[(pref.parallax_togs & PROGRESS_BARS) ? "Yes" : "No"]</b></a><br>"
/datum/category_item/player_setup_item/player_global/settings/OnTopic(var/href,var/list/href_list, var/mob/user)
if(href_list["toggle"])
@@ -14,7 +14,36 @@
return
/*
* Path adjustment
Color adjustment
*/
var/datum/gear_tweak/color/gear_tweak_free_color_choice = new()
/datum/gear_tweak/color
var/list/valid_colors
/datum/gear_tweak/color/New(var/list/valid_colors)
src.valid_colors = valid_colors
..()
/datum/gear_tweak/color/get_contents(var/metadata)
return "Color: <font color='[metadata]'>&#9899;</font>"
/datum/gear_tweak/color/get_default()
return valid_colors ? valid_colors[1] : COLOR_GRAY
/datum/gear_tweak/color/get_metadata(var/user, var/metadata)
if(valid_colors)
return input(user, "Choose an item color.", "Character Preference", metadata) as null|anything in valid_colors
return input(user, "Choose an item color.", "Global Preference", metadata) as color|null
/datum/gear_tweak/color/tweak_item(var/obj/item/I, var/metadata)
if(valid_colors && !(metadata in valid_colors))
return
I.color = metadata
/*
Path adjustment
*/
/datum/gear_tweak/path
@@ -25,7 +54,7 @@
..()
/datum/gear_tweak/path/get_contents(var/metadata)
return "(Type: [metadata])"
return "Type: [metadata]"
/datum/gear_tweak/path/get_default()
return valid_paths[1]
@@ -39,27 +68,28 @@
gear_data.path = valid_paths[metadata]
/*
* Content adjustment
Content adjustment
*/
/datum/gear_tweak/contents
var/list/valid_contents
/datum/gear_tweak/contents/New()
valid_contents = args
valid_contents = args.Copy()
..()
/datum/gear_tweak/contents/get_contents(var/metadata)
return "(Contents)"
return "Contents: [english_list(metadata, and_text = ", ")]"
/datum/gear_tweak/contents/get_default()
. = list()
for(var/i = 1 to valid_contents.len)
var/list/contents = valid_contents[i]
. += contents[1]
. += "Random"
/datum/gear_tweak/contents/get_metadata(var/user, var/list/metadata)
. = list()
for(var/i = metadata.len to (valid_contents.len - 1))
metadata += "Random"
for(var/i = 1 to valid_contents.len)
var/entry = input(user, "Choose an entry.", "Character Preference", metadata[i]) as null|anything in (valid_contents[i] + list("Random", "None"))
if(entry)
@@ -71,16 +101,17 @@
if(metadata.len != valid_contents.len)
return
for(var/i = 1 to valid_contents.len)
var/path
var/list/contents = valid_contents[i]
var/path = contents[metadata[i]]
if(path)
if(path == "Random")
path = pick(contents)
path = contents[path]
else if(path == "None")
continue
new path(I)
if(metadata[i] == "Random")
path = pick(contents)
path = contents[path]
else if(metadata[i] == "None")
continue
else
path = contents[metadata[i]]
new path(I)
/*
Reagents adjustment
*/
@@ -34,6 +34,7 @@ var/list/gear_datums = list()
name = "Loadout"
sort_order = 1
var/current_tab = "General"
var/gear_reset = FALSE
/datum/category_item/player_setup_item/loadout/load_character(var/savefile/S)
S["gear"] >> pref.gear
@@ -46,12 +47,12 @@ var/list/gear_datums = list()
/datum/category_item/player_setup_item/loadout/gather_load_query()
return list("ss13_characters" = list("vars" = list("gear"), "args" = list("id")))
/datum/category_item/player_setup_item/loadout/gather_save_query()
return list("ss13_characters" = list("gear", "id" = 1, "ckey" = 1))
/datum/category_item/player_setup_item/loadout/gather_save_parameters()
return list(":gear" = list2params(pref.gear), ":id" = pref.current_character, ":ckey" = pref.client.ckey)
return list(":gear" = json_encode(pref.gear), ":id" = pref.current_character, ":ckey" = pref.client.ckey)
/datum/category_item/player_setup_item/loadout/proc/valid_gear_choices(var/max_cost)
. = list()
@@ -66,9 +67,18 @@ var/list/gear_datums = list()
. += gear_name
/datum/category_item/player_setup_item/loadout/sanitize_character(var/sql_load = 0)
if (sql_load)
pref.gear = params2list(pref.gear)
gear_reset = FALSE
if (pref.gear && istext(pref.gear))
try
pref.gear = json_decode(pref.gear)
catch
log_debug("SQL CHARACTER LOAD: Unable to load custom loadout for client [pref.client ? pref.client.ckey : "UNKNOWN"].")
pref.gear = list()
gear_reset = TRUE
else
pref.gear = list()
gear_reset = TRUE
var/mob/preference_mob = preference_mob()
if(!islist(pref.gear))
@@ -92,7 +102,7 @@ var/list/gear_datums = list()
preference_mob << "<span class='warning'>You cannot afford to take \the [gear_name]</span>"
else
total_cost += G.cost
/datum/category_item/player_setup_item/loadout/content()
var/total_cost = 0
if(pref.gear && pref.gear.len)
@@ -106,6 +116,8 @@ var/list/gear_datums = list()
fcolor = "#E67300"
. = list()
. += "<table align = 'center' width = 100%>"
if (gear_reset)
. += "<tr><td colspan=3><center><i>Your loadout failed to load and will be reset if you save this slot.</i></center></td></tr>"
. += "<tr><td colspan=3><center><b><font color = '[fcolor]'>[total_cost]/[MAX_GEAR_COST]</font> loadout points spent.</b> \[<a href='?src=\ref[src];clear_loadout=1'>Clear Loadout</a>\]</center></td></tr>"
. += "<tr><td colspan=3><center><b>"
@@ -28,7 +28,7 @@
/datum/gear/accessory/holster
display_name = "holster selection"
path = /obj/item/clothing/accessory/holster
path = /obj/item/clothing/accessory/holster/armpit
allowed_roles = list("Captain", "Head of Personnel", "Security Officer", "Warden", "Head of Security","Detective", "Security Cadet")
/datum/gear/accessory/holster/New()
@@ -42,7 +42,7 @@
/datum/gear/accessory/tie
display_name = "tie selection"
path = /obj/item/clothing/accessory
path = /obj/item/clothing/accessory/blue
/datum/gear/accessory/tie/New()
..()
@@ -55,18 +55,22 @@
/datum/gear/accessory/brown_vest
display_name = "webbing, engineering"
path = /obj/item/clothing/accessory/storage/brown_vest
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer")
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer", "Engineering Apprentice")
/datum/gear/accessory/black_vest
display_name = "webbing, security"
path = /obj/item/clothing/accessory/storage/black_vest
allowed_roles = list("Security Officer","Head of Security","Warden")
allowed_roles = list("Security Officer","Head of Security","Warden", "Security Cadet", "Detective" )
/datum/gear/accessory/webbing
display_name = "webbing, simple"
path = /obj/item/clothing/accessory/storage/webbing
cost = 2
/datum/gear/accessory/locket
display_name = "silver locket"
path = /obj/item/clothing/accessory/locket
/datum/gear/accessory/scarf
display_name = "scarf selection"
path = /obj/item/clothing/accessory/scarf
@@ -28,6 +28,11 @@
/datum/gear/eyes/sciencegoggles
display_name = "science Goggles"
path = /obj/item/clothing/glasses/science
/datum/gear/eyes/mesonprescription
display_name = "meson goggles, prescription"
path = /obj/item/clothing/glasses/meson/prescription
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Engineering Apprentice", "Research Director","Scientist")
/datum/gear/eyes/security
display_name = "security HUD"
@@ -47,4 +52,3 @@
/datum/gear/eyes/shades/prescriptionsun
display_name = "sunglasses, presciption"
path = /obj/item/clothing/glasses/sunglasses/prescription
cost = 2
@@ -1,7 +1,7 @@
/datum/gear/gloves
display_name = "watch"
path = /obj/item/clothing/gloves/watch
cost = 2
cost = 1
slot = slot_gloves
sort_category = "Gloves and Handwear"
@@ -12,14 +12,15 @@
/datum/gear/gloves/color/New()
..()
var/gloves = list()
gloves["black gloves"] = /obj/item/clothing/gloves
gloves["black gloves"] = /obj/item/clothing/gloves/black
gloves["red gloves"] = /obj/item/clothing/gloves/red
gloves["blue gloves"] = /obj/item/clothing/gloves/blue
gloves["orange gloves"] = /obj/item/clothing/gloves/orange
gloves["purple gloves"] = /obj/item/clothing/gloves/purple
gloves["brown gloves"] = /obj/item/clothing/gloves/brown
gloves["light-brown gloves"] = /obj/item/clothing/gloves/light_brown
gloves["white gloves"] = /obj/item/clothing/gloves/green
gloves["white gloves"] = /obj/item/clothing/gloves/white
gloves["green gloves"] = /obj/item/clothing/gloves/green
gloves["grey gloves"] = /obj/item/clothing/gloves/grey
gloves["rainbow gloves"] = /obj/item/clothing/gloves/rainbow
gear_tweaks += new/datum/gear_tweak/path(gloves)
@@ -1,6 +1,6 @@
/datum/gear/head
display_name = "hat, boatsman"
path = /obj/item/clothing/head/boaterhat
display_name = "ushanka"
path = /obj/item/clothing/head/ushanka
slot = slot_head
sort_category = "Hats and Headwear"
@@ -64,12 +64,12 @@
path = /obj/item/clothing/head/beret/sec/hos
allowed_roles = list("Head of Security")
/datum/gear/head/cap/corp
/datum/gear/head/corp
display_name = "cap, corporate (security)"
path = /obj/item/clothing/head/soft/sec/corp
allowed_roles = list("Security Officer","Head of Security","Warden","Security Cadet","Detective")
/datum/gear/head/cap/sec
/datum/gear/head/sec
display_name = "cap, security"
path = /obj/item/clothing/head/soft/sec
allowed_roles = list("Security Officer","Head of Security","Warden","Security Cadet","Detective")
@@ -92,26 +92,29 @@
display_name = "hair flower pin, red"
path = /obj/item/clothing/head/hairflower
/datum/gear/head/bowler
display_name = "hat, bowler"
path = /obj/item/clothing/head/bowler
/datum/gear/head/hats
display_name = "hat selection"
path = /obj/item/clothing/head/boaterhat
/datum/gear/head/fez
display_name = "hat, fez"
path = /obj/item/clothing/head/fez
/datum/gear/head/tophat
display_name = "hat, tophat"
path = /obj/item/clothing/head/that
/datum/gear/head/hats/New()
..()
var/hats = list()
hats["hat, boatsman"] = /obj/item/clothing/head/boaterhat
hats["hat, bowler"] = /obj/item/clothing/head/bowler
hats["hat, fez"] = /obj/item/clothing/head/fez
hats["hat, tophat"] = /obj/item/clothing/head/that
hats["hat, feather trilby"] = /obj/item/clothing/head/feathertrilby
hats["hat, fedora"] = /obj/item/clothing/head/fedora
hats["hat, beaver"] = /obj/item/clothing/head/beaverhat
hats["hat, cowboy"] = /obj/item/clothing/head/cowboy
hats["hat, wide-brimmed cowboy"] = /obj/item/clothing/head/cowboy/wide
hats["hat, sombrero"] = /obj/item/clothing/head/sombrero
gear_tweaks += new/datum/gear_tweak/path(hats)
/datum/gear/head/philosopher_wig
display_name = "natural philosopher's wig"
path = /obj/item/clothing/head/philosopher_wig
/datum/gear/head/ushanka
display_name = "ushanka"
path = /obj/item/clothing/head/ushanka
/datum/gear/head/hijab
display_name = "hijab selection"
path = /obj/item/clothing/head/hijab
@@ -127,3 +130,17 @@
hijab["blue hijab"] = /obj/item/clothing/head/hijab/blue
gear_tweaks += new/datum/gear_tweak/path(hijab)
/datum/gear/head/surgical
display_name = "surgical cap selection"
path = /obj/item/clothing/head/surgery/blue
allowed_roles = list("Scientist","Chief Medical Officer","Medical Doctor","Geneticist","Chemist","Paramedic","Nursing Intern","Xenobiologist","Roboticist","Research Director","Detective")
/datum/gear/head/surgical/New()
..()
var/surgical = list()
surgical["surgical cap, purple"] = /obj/item/clothing/head/surgery/purple
surgical["surgical cap, blue"] = /obj/item/clothing/head/surgery/blue
surgical["surgical cap, green"] = /obj/item/clothing/head/surgery/green
surgical["surgical cap, black"] = /obj/item/clothing/head/surgery/black
gear_tweaks += new/datum/gear_tweak/path(surgical)
@@ -79,6 +79,10 @@
display_name = "track jacket"
path = /obj/item/clothing/suit/storage/toggle/tracksuit
/datum/gear/suit/ian
display_name = "worn shirt"
path = /obj/item/clothing/suit/ianshirt
/datum/gear/suit/winter
display_name = "winter coat"
path = /obj/item/clothing/suit/storage/hooded/wintercoat
@@ -101,7 +105,7 @@
/datum/gear/suit/winter/medical
display_name = "winter coat, medical"
path = /obj/item/clothing/suit/storage/hooded/wintercoat/medical
allowed_roles = list("Chief Medical Officer","Medical Doctor","Paramedic","Nursing Intern","Psychiatrist","Chemist",)
allowed_roles = list("Chief Medical Officer","Medical Doctor","Paramedic","Nursing Intern","Psychiatrist","Chemist")
/datum/gear/suit/winter/engineering
display_name = "winter coat, engineering"
@@ -126,4 +130,4 @@
/datum/gear/suit/winter/mining
display_name = "winter coat, mining"
path = /obj/item/clothing/suit/storage/hooded/wintercoat/miner
allowed_roles = list("Quartermaster","Head of Personnel","Shaft Miner")
allowed_roles = list("Quartermaster","Head of Personnel","Shaft Miner")
@@ -5,18 +5,10 @@
slot = slot_w_uniform
sort_category = "Uniforms and Casual Dress"
/datum/gear/uniform/cheongsam
display_name = "cheongsam, white"
path = /obj/item/clothing/under/cheongsam
/datum/gear/uniform/kilt
display_name = "kilt"
path = /obj/item/clothing/under/kilt
/datum/gear/uniform/jumpskirt
display_name = "jumpskirt, black"
path = /obj/item/clothing/under/blackjumpskirt
/datum/gear/uniform/jumpsuit
display_name = "generic jumpsuits"
path = /obj/item/clothing/under/color/grey
@@ -43,19 +35,21 @@
jumpsuit["yellow green jumpsuit"] = /obj/item/clothing/under/yellowgreen
jumpsuit["light red jumpsuit"] = /obj/item/clothing/under/lightred
jumpsuit["dark red jumpsuit"] = /obj/item/clothing/under/darkred
jumpsuit["rainbow jumpsuit"] = /obj/item/clothing/under/rainbow
gear_tweaks += new/datum/gear_tweak/path(jumpsuit)
/datum/gear/uniform/skirt
display_name = "plaid skirt, blue"
display_name = "skirt selection"
path = /obj/item/clothing/under/dress/plaid_blue
/datum/gear/uniform/skirt/purple
display_name = "plaid skirt, purple"
path = /obj/item/clothing/under/dress/plaid_purple
/datum/gear/uniform/skirt/red
display_name = "plaid skirt, red"
path = /obj/item/clothing/under/dress/plaid_red
/datum/gear/uniform/skirt/New()
..()
var/skirts = list()
skirts["plaid skirt, blue"] = /obj/item/clothing/under/dress/plaid_blue
skirts["plaid skirt, purple"] = /obj/item/clothing/under/dress/plaid_purple
skirts["plaid skirt, red"] = /obj/item/clothing/under/dress/plaid_red
skirts["jumpskirt, black"] = /obj/item/clothing/under/blackjumpskirt
gear_tweaks += new/datum/gear_tweak/path(skirts)
/datum/gear/uniform/suit
display_name = "suit selection"
@@ -87,7 +81,7 @@
/datum/gear/uniform/scrubs
display_name = "scrubs selection"
path = /obj/item/clothing/under/rank/medical/black
allowed_roles = list("Scientist","Chief Medical Officer","Medical Doctor","Geneticist","Paramedic","Nursing Intern","Xenobiologist","Roboticist","Research Director","Detective",)
allowed_roles = list("Scientist","Chief Medical Officer","Medical Doctor","Chemist","Geneticist","Paramedic","Nursing Intern","Xenobiologist","Roboticist","Research Director","Detective")
/datum/gear/uniform/scrubs/New()
..()
@@ -98,17 +92,22 @@
scrubs["scrubs, purple"] = /obj/item/clothing/under/rank/medical/purple
gear_tweaks += new/datum/gear_tweak/path(scrubs)
/datum/gear/uniform/sundress
display_name = "sundress"
/datum/gear/uniform/dress
display_name = "dress selection"
path = /obj/item/clothing/under/sundress
/datum/gear/uniform/sundress/white
display_name = "sundress, white"
path = /obj/item/clothing/under/sundress_white
/datum/gear/uniform/dress_fire
display_name = "flame dress"
path = /obj/item/clothing/under/dress/dress_fire
/datum/gear/uniform/dress/New()
..()
var/dress = list()
dress["sundress"] = /obj/item/clothing/under/sundress
dress["sundress, white"] = /obj/item/clothing/under/sundress_white
dress["dress, flame"] = /obj/item/clothing/under/dress/dress_fire
dress["dress, green"] = /obj/item/clothing/under/dress/dress_green
dress["dress, orange"] = /obj/item/clothing/under/dress/dress_orange
dress["dress, pink"] = /obj/item/clothing/under/dress/dress_pink
dress["dress, yellow"] = /obj/item/clothing/under/dress/dress_yellow
dress["cheongsam, white"] = /obj/item/clothing/under/cheongsam
gear_tweaks += new/datum/gear_tweak/path(dress)
/datum/gear/uniform/uniform_captain
display_name = "uniform, captain's dress"
@@ -65,21 +65,21 @@
display_name = "vaurca blindfold (Vaurca)"
path = /obj/item/clothing/glasses/sunglasses/blinders
cost = 2
whitelisted = "Vaurca"
whitelisted = "Vaurca Worker"
sort_category = "Xenowear"
/datum/gear/mask/vaurca
display_name = "mandible garment (Vaurca)"
path = /obj/item/clothing/mask/breath/vaurca
cost = 1
whitelisted = "Vaurca"
whitelisted = "Vaurca Worker"
sort_category = "Xenowear"
/datum/gear/cape
display_name = "tunnel cloak (Vaurca)"
path = /obj/item/weapon/storage/backpack/cloak
cost = 1
whitelisted = "Vaurca"
whitelisted = "Vaurca Worker"
sort_category = "Xenowear"
//beastmen gloves
+3 -3
View File
@@ -62,8 +62,8 @@ datum/preferences
var/species = "Human" //Species datum to use.
var/species_preview //Used for the species selection window.
var/list/alternate_languages = list() //Secondary language(s)
var/list/language_prefixes = list() //Kanguage prefix keys
var/list/gear //Custom/fluff item loadout.
var/list/language_prefixes = list() // Language prefix keys
var/list/gear // Custom/fluff item loadout.
//Some faction information.
var/home_system = "Unset" //System of birth.
@@ -127,7 +127,7 @@ datum/preferences
// SPAAAACE
var/parallax_speed = 2
var/parallax_togs = PARALLAX_SPACE
var/parallax_togs = PARALLAX_SPACE | PROGRESS_BARS
var/list/pai = list() // A list for holding pAI related data.
@@ -189,3 +189,15 @@
if (mob.hud_used)
mob.hud_used.update_parallax()
/client/verb/toggle_progress()
set name = "Show/Hide Progress Bars"
set category = "Preferences"
set desc = "Toggles progress bars on slow actions."
prefs.parallax_togs ^= PROGRESS_BARS
prefs.save_preferences()
if (prefs.parallax_togs & PROGRESS_BARS)
src << "You will now see progress bars on delayed actions."
else
src << "You will no longer see progress bars on delayed actions."