mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-24 00:51:46 +00:00
Merge branch 'master' of https://github.com/PolarisSS13/Polaris into NanoGrade
Conflicts: code/modules/client/client procs.dm nano/templates/robot_control.tmpl
This commit is contained in:
3
code/modules/client/preference_setup/_defines.dm
Normal file
3
code/modules/client/preference_setup/_defines.dm
Normal file
@@ -0,0 +1,3 @@
|
||||
#define EQUIP_PREVIEW_LOADOUT 1
|
||||
#define EQUIP_PREVIEW_JOB 2
|
||||
#define EQUIP_PREVIEW_ALL (EQUIP_PREVIEW_LOADOUT|EQUIP_PREVIEW_JOB)
|
||||
@@ -7,19 +7,29 @@ var/global/list/uplink_locations = list("PDA", "Headset", "None")
|
||||
/datum/category_item/player_setup_item/antagonism/basic/load_character(var/savefile/S)
|
||||
S["uplinklocation"] >> pref.uplinklocation
|
||||
S["exploit_record"] >> pref.exploit_record
|
||||
S["antag_faction"] >> pref.antag_faction
|
||||
S["antag_vis"] >> pref.antag_vis
|
||||
|
||||
/datum/category_item/player_setup_item/antagonism/basic/save_character(var/savefile/S)
|
||||
S["uplinklocation"] << pref.uplinklocation
|
||||
S["exploit_record"] << pref.exploit_record
|
||||
S["antag_faction"] << pref.antag_faction
|
||||
S["antag_vis"] << pref.antag_vis
|
||||
|
||||
/datum/category_item/player_setup_item/antagonism/basic/sanitize_character()
|
||||
pref.uplinklocation = sanitize_inlist(pref.uplinklocation, uplink_locations, initial(pref.uplinklocation))
|
||||
if(!pref.antag_faction) pref.antag_faction = "None"
|
||||
if(!pref.antag_vis) pref.antag_vis = "Hidden"
|
||||
|
||||
// Moved from /datum/preferences/proc/copy_to()
|
||||
/datum/category_item/player_setup_item/antagonism/basic/copy_to_mob(var/mob/living/carbon/human/character)
|
||||
character.exploit_record = pref.exploit_record
|
||||
character.antag_faction = pref.antag_faction
|
||||
character.antag_vis = pref.antag_vis
|
||||
|
||||
/datum/category_item/player_setup_item/antagonism/basic/content(var/mob/user)
|
||||
. += "Faction: <a href='?src=\ref[src];antagfaction=1'>[pref.antag_faction]</a><br/>"
|
||||
. += "Visibility: <a href='?src=\ref[src];antagvis=1'>[pref.antag_vis]</a><br/>"
|
||||
. +="<b>Uplink Type : <a href='?src=\ref[src];antagtask=1'>[pref.uplinklocation]</a></b>"
|
||||
. +="<br>"
|
||||
. +="<b>Exploitable information:</b><br>"
|
||||
@@ -34,9 +44,29 @@ var/global/list/uplink_locations = list("PDA", "Headset", "None")
|
||||
return TOPIC_REFRESH
|
||||
|
||||
if(href_list["exploitable_record"])
|
||||
var/exploitmsg = sanitize(input(user,"Set exploitable information about you here.","Exploitable Information", html_decode(pref.exploit_record)) as message|null, MAX_PAPER_MESSAGE_LEN, extra = 0)
|
||||
var/exploitmsg = sanitize(input(user,"Set exploitable information about you here.","Exploitable Information", html_decode(pref.exploit_record)) as message|null, MAX_RECORD_LENGTH, extra = 0)
|
||||
if(!isnull(exploitmsg) && !jobban_isbanned(user, "Records") && CanUseTopic(user))
|
||||
pref.exploit_record = exploitmsg
|
||||
return TOPIC_REFRESH
|
||||
|
||||
if(href_list["antagfaction"])
|
||||
var/choice = input(user, "Please choose an antagonistic faction to work for.", "Character Preference", pref.antag_faction) as null|anything in antag_faction_choices + list("None","Other")
|
||||
if(!choice || !CanUseTopic(user))
|
||||
return TOPIC_NOACTION
|
||||
if(choice == "Other")
|
||||
var/raw_choice = sanitize(input(user, "Please enter a faction.", "Character Preference") as text|null, MAX_NAME_LEN)
|
||||
if(raw_choice)
|
||||
pref.antag_faction = raw_choice
|
||||
else
|
||||
pref.antag_faction = choice
|
||||
return TOPIC_REFRESH
|
||||
|
||||
if(href_list["antagvis"])
|
||||
var/choice = input(user, "Please choose an antagonistic visibility level.", "Character Preference", pref.antag_vis) as null|anything in antag_visiblity_choices
|
||||
if(!choice || !CanUseTopic(user))
|
||||
return TOPIC_NOACTION
|
||||
else
|
||||
pref.antag_vis = choice
|
||||
return TOPIC_REFRESH
|
||||
|
||||
return ..()
|
||||
|
||||
@@ -29,9 +29,7 @@ datum/preferences/proc/set_biological_gender(var/gender)
|
||||
S["OOC_Notes"] << pref.metadata
|
||||
|
||||
/datum/category_item/player_setup_item/general/basic/sanitize_character()
|
||||
if(!pref.species) pref.species = "Human"
|
||||
var/datum/species/S = all_species[pref.species ? pref.species : "Human"]
|
||||
pref.age = sanitize_integer(pref.age, S.min_age, S.max_age, initial(pref.age))
|
||||
pref.age = sanitize_integer(pref.age, get_min_age(), get_max_age(), initial(pref.age))
|
||||
pref.biological_gender = sanitize_inlist(pref.biological_gender, get_genders(), pick(get_genders()))
|
||||
pref.identifying_gender = (pref.identifying_gender in all_genders_define_list) ? pref.identifying_gender : pref.biological_gender
|
||||
pref.real_name = sanitize_name(pref.real_name, pref.species)
|
||||
@@ -75,7 +73,6 @@ datum/preferences/proc/set_biological_gender(var/gender)
|
||||
. = jointext(.,null)
|
||||
|
||||
/datum/category_item/player_setup_item/general/basic/OnTopic(var/href,var/list/href_list, var/mob/user)
|
||||
var/datum/species/S = all_species[pref.species]
|
||||
if(href_list["rename"])
|
||||
var/raw_name = input(user, "Choose your character's name:", "Character Name") as text|null
|
||||
if (!isnull(raw_name) && CanUseTopic(user))
|
||||
@@ -108,10 +105,11 @@ datum/preferences/proc/set_biological_gender(var/gender)
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["age"])
|
||||
if(!pref.species) pref.species = "Human"
|
||||
var/new_age = input(user, "Choose your character's age:\n([S.min_age]-[S.max_age])", "Character Preference", pref.age) as num|null
|
||||
var/min_age = get_min_age()
|
||||
var/max_age = get_max_age()
|
||||
var/new_age = input(user, "Choose your character's age:\n([min_age]-[max_age])", "Character Preference", pref.age) as num|null
|
||||
if(new_age && CanUseTopic(user))
|
||||
pref.age = max(min(round(text2num(new_age)), S.max_age), S.min_age)
|
||||
pref.age = max(min(round(text2num(new_age)), max_age), min_age)
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["spawnpoint"])
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
var/list/available_languages = S.secondary_langs.Copy()
|
||||
for(var/L in all_languages)
|
||||
var/datum/language/lang = all_languages[L]
|
||||
if(!(lang.flags & RESTRICTED) && (!config.usealienwhitelist || is_alien_whitelisted(user, L) || !(lang.flags & WHITELISTED)))
|
||||
if(!(lang.flags & RESTRICTED) && (is_lang_whitelisted(user, lang)))
|
||||
available_languages |= L
|
||||
|
||||
// make sure we don't let them waste slots on the default languages
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-")
|
||||
|
||||
/datum/preferences
|
||||
var/dress_mob = TRUE
|
||||
var/equip_preview_mob = EQUIP_PREVIEW_ALL
|
||||
|
||||
/datum/category_item/player_setup_item/general/body
|
||||
name = "Body"
|
||||
@@ -121,6 +121,8 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
I.mechassist()
|
||||
else if(status == "mechanical")
|
||||
I.robotize()
|
||||
else if(status == "digital")
|
||||
I.digitize()
|
||||
return
|
||||
|
||||
/datum/category_item/player_setup_item/general/body/content(var/mob/user)
|
||||
@@ -197,6 +199,11 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
if(ind > 1)
|
||||
. += ", "
|
||||
. += "\tSynthetic [organ_name]"
|
||||
else if(status == "digital")
|
||||
++ind
|
||||
if(ind > 1)
|
||||
. += ", "
|
||||
. += "\tDigital [organ_name]"
|
||||
else if(status == "assisted")
|
||||
++ind
|
||||
if(ind > 1)
|
||||
@@ -219,8 +226,8 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
|
||||
. += "</td><td><b>Preview</b><br>"
|
||||
. += "<div class='statusDisplay'><center><img src=previewicon.png width=[pref.preview_icon.Width()] height=[pref.preview_icon.Height()]></center></div>"
|
||||
. += "<br><a href='?src=\ref[src];toggle_clothing=1'>[pref.dress_mob ? "Hide equipment" : "Show equipment"]</a>"
|
||||
|
||||
. += "<br><a href='?src=\ref[src];toggle_preview_value=[EQUIP_PREVIEW_LOADOUT]'>[pref.equip_preview_mob & EQUIP_PREVIEW_LOADOUT ? "Hide loadout" : "Show loadout"]</a>"
|
||||
. += "<br><a href='?src=\ref[src];toggle_preview_value=[EQUIP_PREVIEW_JOB]'>[pref.equip_preview_mob & EQUIP_PREVIEW_JOB ? "Hide job gear" : "Show job gear"]</a>"
|
||||
. += "</td></tr></table>"
|
||||
|
||||
. += "<b>Hair</b><br>"
|
||||
@@ -324,8 +331,9 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
|
||||
reset_limbs() // Safety for species with incompatible manufacturers; easier than trying to do it case by case.
|
||||
|
||||
var/datum/species/S = all_species[pref.species]
|
||||
pref.age = max(min(pref.age, S.max_age), S.min_age)
|
||||
var/min_age = get_min_age()
|
||||
var/max_age = get_max_age()
|
||||
pref.age = max(min(pref.age, max_age), min_age)
|
||||
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
@@ -549,6 +557,8 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
var/list/organ_choices = list("Normal","Assisted","Mechanical")
|
||||
if(pref.organ_data[BP_TORSO] == "cyborg")
|
||||
organ_choices -= "Normal"
|
||||
if(organ_name == "Brain")
|
||||
organ_choices += "Digital"
|
||||
|
||||
var/new_state = input(user, "What state do you wish the organ to be in?") as null|anything in organ_choices
|
||||
if(!new_state) return
|
||||
@@ -560,6 +570,8 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
pref.organ_data[organ] = "assisted"
|
||||
if("Mechanical")
|
||||
pref.organ_data[organ] = "mechanical"
|
||||
if("Digital")
|
||||
pref.organ_data[organ] = "digital"
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["disabilities"])
|
||||
@@ -567,8 +579,8 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
pref.disabilities ^= disability_flag
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["toggle_clothing"])
|
||||
pref.dress_mob = !pref.dress_mob
|
||||
else if(href_list["toggle_preview_value"])
|
||||
pref.equip_preview_mob ^= text2num(href_list["toggle_preview_value"])
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
return ..()
|
||||
@@ -629,11 +641,11 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
dat += "</table><center><hr/>"
|
||||
|
||||
var/restricted = 0
|
||||
if(config.usealienwhitelist) //If we're using the whitelist, make sure to check it!
|
||||
if(!(current_species.spawn_flags & SPECIES_CAN_JOIN))
|
||||
restricted = 2
|
||||
else if((current_species.spawn_flags & SPECIES_IS_WHITELISTED) && !is_alien_whitelisted(preference_mob(),current_species))
|
||||
restricted = 1
|
||||
|
||||
if(!(current_species.spawn_flags & SPECIES_CAN_JOIN))
|
||||
restricted = 2
|
||||
else if(!is_alien_whitelisted(preference_mob(),current_species))
|
||||
restricted = 1
|
||||
|
||||
if(restricted)
|
||||
if(restricted == 1)
|
||||
|
||||
@@ -115,19 +115,19 @@
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["set_medical_records"])
|
||||
var/new_medical = sanitize(input(user,"Enter medical information here.","Character Preference", html_decode(pref.med_record)) as message|null, MAX_PAPER_MESSAGE_LEN, extra = 0)
|
||||
var/new_medical = sanitize(input(user,"Enter medical information here.","Character Preference", html_decode(pref.med_record)) as message|null, MAX_RECORD_LENGTH, extra = 0)
|
||||
if(!isnull(new_medical) && !jobban_isbanned(user, "Records") && CanUseTopic(user))
|
||||
pref.med_record = new_medical
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["set_general_records"])
|
||||
var/new_general = sanitize(input(user,"Enter employment information here.","Character Preference", html_decode(pref.gen_record)) as message|null, MAX_PAPER_MESSAGE_LEN, extra = 0)
|
||||
var/new_general = sanitize(input(user,"Enter employment information here.","Character Preference", html_decode(pref.gen_record)) as message|null, MAX_RECORD_LENGTH, extra = 0)
|
||||
if(!isnull(new_general) && !jobban_isbanned(user, "Records") && CanUseTopic(user))
|
||||
pref.gen_record = new_general
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["set_security_records"])
|
||||
var/sec_medical = sanitize(input(user,"Enter security information here.","Character Preference", html_decode(pref.sec_record)) as message|null, MAX_PAPER_MESSAGE_LEN, extra = 0)
|
||||
var/sec_medical = sanitize(input(user,"Enter security information here.","Character Preference", html_decode(pref.sec_record)) as message|null, MAX_RECORD_LENGTH, extra = 0)
|
||||
if(!isnull(sec_medical) && !jobban_isbanned(user, "Records") && CanUseTopic(user))
|
||||
pref.sec_record = sec_medical
|
||||
return TOPIC_REFRESH
|
||||
|
||||
@@ -55,7 +55,7 @@ var/list/gear_datums = list()
|
||||
var/list/valid_gear_choices = list()
|
||||
for(var/gear_name in gear_datums)
|
||||
var/datum/gear/G = gear_datums[gear_name]
|
||||
if(G.whitelisted && !is_alien_whitelisted(preference_mob(), G.whitelisted))
|
||||
if(G.whitelisted && !is_alien_whitelisted(preference_mob(), all_species[G.whitelisted]))
|
||||
continue
|
||||
if(max_cost && G.cost > max_cost)
|
||||
continue
|
||||
|
||||
@@ -45,6 +45,10 @@
|
||||
display_name = "holster, hip"
|
||||
path = /obj/item/clothing/accessory/holster/hip
|
||||
|
||||
/datum/gear/accessory/holster/leg
|
||||
display_name = "holster, leg"
|
||||
path = /obj/item/clothing/accessory/holster/leg
|
||||
|
||||
/datum/gear/accessory/holster/waist
|
||||
display_name = "holster, waist"
|
||||
path = /obj/item/clothing/accessory/holster/waist
|
||||
|
||||
@@ -3,8 +3,12 @@
|
||||
path = /obj/item/weapon/cane
|
||||
|
||||
/datum/gear/dice
|
||||
display_name = "d20"
|
||||
path = /obj/item/weapon/dice/d20
|
||||
display_name = "dice pack"
|
||||
path = /obj/item/weapon/storage/pill_bottle/dice
|
||||
|
||||
/datum/gear/dice/nerd
|
||||
display_name = "dice pack (gaming)"
|
||||
path = /obj/item/weapon/storage/pill_bottle/dice_nerd
|
||||
|
||||
/datum/gear/cards
|
||||
display_name = "deck of cards"
|
||||
|
||||
@@ -48,4 +48,12 @@
|
||||
|
||||
/datum/gear/gloves/white
|
||||
display_name = "gloves, white"
|
||||
path = /obj/item/clothing/gloves/white
|
||||
path = /obj/item/clothing/gloves/white
|
||||
|
||||
/datum/gear/gloves/evening
|
||||
display_name = "evening gloves"
|
||||
path = /obj/item/clothing/gloves/evening
|
||||
|
||||
/datum/gear/gloves/evening/New()
|
||||
..()
|
||||
gear_tweaks = list(gear_tweak_free_color_choice)
|
||||
|
||||
@@ -31,6 +31,21 @@
|
||||
path = /obj/item/clothing/head/beret/sec/navy/hos
|
||||
allowed_roles = list("Head of Security")
|
||||
|
||||
/datum/gear/head/beret/csec
|
||||
display_name = "beret, corporate (officer)"
|
||||
path = /obj/item/clothing/head/beret/sec/corporate/officer
|
||||
allowed_roles = list("Security Officer","Head of Security","Warden")
|
||||
|
||||
/datum/gear/head/beret/csec_warden
|
||||
display_name = "beret, corporate (warden)"
|
||||
path = /obj/item/clothing/head/beret/sec/corporate/warden
|
||||
allowed_roles = list("Head of Security","Warden")
|
||||
|
||||
/datum/gear/head/beret/csec_hos
|
||||
display_name = "beret, corporate (hos)"
|
||||
path = /obj/item/clothing/head/beret/sec/corporate/hos
|
||||
allowed_roles = list("Head of Security")
|
||||
|
||||
/datum/gear/head/beret/eng
|
||||
display_name = "beret, engie-orange"
|
||||
path = /obj/item/clothing/head/beret/engineering
|
||||
|
||||
@@ -54,6 +54,10 @@
|
||||
display_name = "military jacket, alt"
|
||||
path = /obj/item/clothing/suit/storage/miljacket/alt
|
||||
|
||||
/datum/gear/suit/mil/green
|
||||
display_name = "military jacket, green"
|
||||
path = /obj/item/clothing/suit/storage/miljacket/green
|
||||
|
||||
/datum/gear/suit/hazard_vest
|
||||
display_name = "hazard vest"
|
||||
path = /obj/item/clothing/suit/storage/hazardvest
|
||||
@@ -208,7 +212,7 @@
|
||||
/datum/gear/suit/wintercoat/security
|
||||
display_name = "winter coat, security"
|
||||
path = /obj/item/clothing/suit/storage/hooded/wintercoat/security
|
||||
allowed_roles = list("Security Officer, Head of Security, Warden, Detective")
|
||||
allowed_roles = list("Security Officer", "Head of Security", "Warden", "Detective")
|
||||
|
||||
/datum/gear/suit/wintercoat/medical
|
||||
display_name = "winter coat, medical"
|
||||
@@ -267,4 +271,20 @@
|
||||
for(var/track_style in typesof(/obj/item/clothing/suit/storage/toggle/track))
|
||||
var/obj/item/clothing/suit/storage/toggle/track/track = track_style
|
||||
tracks[initial(track.name)] = track
|
||||
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(tracks))
|
||||
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(tracks))
|
||||
|
||||
/datum/gear/suit/flannel
|
||||
display_name = "grey flannel"
|
||||
path = /obj/item/clothing/suit/storage/flannel
|
||||
|
||||
/datum/gear/suit/flannel/red
|
||||
display_name = "red flannel"
|
||||
path = /obj/item/clothing/suit/storage/flannel/red
|
||||
|
||||
/datum/gear/suit/flannel/aqua
|
||||
display_name = "aqua flannel"
|
||||
path = /obj/item/clothing/suit/storage/flannel/aqua
|
||||
|
||||
/datum/gear/suit/flannel/brown
|
||||
display_name = "brown flannel"
|
||||
path = /obj/item/clothing/suit/storage/flannel/brown
|
||||
@@ -90,12 +90,12 @@
|
||||
|
||||
/datum/gear/uniform/job_skirt/ce
|
||||
display_name = "skirt, ce"
|
||||
path = /obj/item/clothing/under/rank/engineer/chief_engineer/skirt
|
||||
path = /obj/item/clothing/under/rank/chief_engineer/skirt
|
||||
allowed_roles = list("Chief Engineer")
|
||||
|
||||
/datum/gear/uniform/job_skirt/atmos
|
||||
display_name = "skirt, atmos"
|
||||
path = /obj/item/clothing/under/rank/engineer/atmospheric_technician/skirt
|
||||
path = /obj/item/clothing/under/rank/atmospheric_technician/skirt
|
||||
allowed_roles = list("Chief Engineer","Atmospheric Technician")
|
||||
|
||||
/datum/gear/uniform/job_skirt/eng
|
||||
@@ -110,17 +110,17 @@
|
||||
|
||||
/datum/gear/uniform/job_skirt/cmo
|
||||
display_name = "skirt, cmo"
|
||||
path = /obj/item/clothing/under/rank/medical/chief_medical_officer/skirt
|
||||
path = /obj/item/clothing/under/rank/chief_medical_officer/skirt
|
||||
allowed_roles = list("Chief Medical Officer")
|
||||
|
||||
/datum/gear/uniform/job_skirt/chem
|
||||
display_name = "skirt, chemist"
|
||||
path = /obj/item/clothing/under/rank/medical/chemist/skirt
|
||||
path = /obj/item/clothing/under/rank/chemist/skirt
|
||||
allowed_roles = list("Chief Medical Officer","Chemist")
|
||||
|
||||
/datum/gear/uniform/job_skirt/viro
|
||||
display_name = "skirt, virologist"
|
||||
path = /obj/item/clothing/under/rank/medical/virologist/skirt
|
||||
path = /obj/item/clothing/under/rank/virologist/skirt
|
||||
allowed_roles = list("Chief Medical Officer","Medical Doctor")
|
||||
|
||||
/datum/gear/uniform/job_skirt/med
|
||||
@@ -145,7 +145,7 @@
|
||||
|
||||
/datum/gear/uniform/job_skirt/warden
|
||||
display_name = "skirt, warden"
|
||||
path = /obj/item/clothing/under/rank/security/warden/skirt
|
||||
path = /obj/item/clothing/under/rank/warden/skirt
|
||||
allowed_roles = list("Head of Security", "Warden")
|
||||
|
||||
/datum/gear/uniform/job_skirt/security
|
||||
@@ -155,7 +155,7 @@
|
||||
|
||||
/datum/gear/uniform/job_skirt/head_of_security
|
||||
display_name = "skirt, hos"
|
||||
path = /obj/item/clothing/under/rank/security/head_of_security/skirt
|
||||
path = /obj/item/clothing/under/rank/head_of_security/skirt
|
||||
allowed_roles = list("Head of Security")
|
||||
|
||||
/datum/gear/uniform/jeans_qm
|
||||
@@ -325,7 +325,7 @@
|
||||
allowed_roles = list("Security Officer","Head of Security","Warden")
|
||||
|
||||
/datum/gear/uniform/navywarsuit
|
||||
display_name = "uniform, navy blue (Wardem)"
|
||||
display_name = "uniform, navy blue (Warden)"
|
||||
path = /obj/item/clothing/under/rank/warden/navyblue
|
||||
allowed_roles = list("Head of Security","Warden")
|
||||
|
||||
|
||||
@@ -160,10 +160,10 @@
|
||||
var/choice = input("Choose an title for [job.title].", "Choose Title", pref.GetPlayerAltTitle(job)) as anything in choices|null
|
||||
if(choice && CanUseTopic(user))
|
||||
SetPlayerAltTitle(job, choice)
|
||||
return (pref.dress_mob ? TOPIC_REFRESH_UPDATE_PREVIEW : TOPIC_REFRESH)
|
||||
return (pref.equip_preview_mob ? TOPIC_REFRESH_UPDATE_PREVIEW : TOPIC_REFRESH)
|
||||
|
||||
else if(href_list["set_job"])
|
||||
if(SetJob(user, href_list["set_job"])) return (pref.dress_mob ? TOPIC_REFRESH_UPDATE_PREVIEW : TOPIC_REFRESH)
|
||||
if(SetJob(user, href_list["set_job"])) return (pref.equip_preview_mob ? TOPIC_REFRESH_UPDATE_PREVIEW : TOPIC_REFRESH)
|
||||
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -4,6 +4,10 @@
|
||||
#define TOPIC_UPDATE_PREVIEW 4
|
||||
#define TOPIC_REFRESH_UPDATE_PREVIEW (TOPIC_REFRESH|TOPIC_UPDATE_PREVIEW)
|
||||
|
||||
#define PREF_FBP_CYBORG "cyborg"
|
||||
#define PREF_FBP_POSI "posi"
|
||||
#define PREF_FBP_SOFTWARE "software"
|
||||
|
||||
/datum/category_group/player_setup_category/general_preferences
|
||||
name = "General"
|
||||
sort_order = 1
|
||||
@@ -252,3 +256,50 @@
|
||||
|
||||
if(pref.client)
|
||||
return pref.client.mob
|
||||
|
||||
// Checks in a really hacky way if a character's preferences say they are an FBP or not.
|
||||
/datum/category_item/player_setup_item/proc/is_FBP()
|
||||
if(pref.organ_data && pref.organ_data[BP_TORSO] != "cyborg")
|
||||
return 0
|
||||
return 1
|
||||
|
||||
// Returns what kind of FBP the player's prefs are. Returns 0 if they're not an FBP.
|
||||
/datum/category_item/player_setup_item/proc/get_FBP_type()
|
||||
if(!is_FBP())
|
||||
return 0 // Not a robot.
|
||||
switch(pref.organ_data["brain"])
|
||||
if("assisted")
|
||||
return PREF_FBP_CYBORG
|
||||
if("mechanical")
|
||||
return PREF_FBP_POSI
|
||||
if("digital")
|
||||
return PREF_FBP_SOFTWARE
|
||||
return 0 //Something went wrong!
|
||||
|
||||
/datum/category_item/player_setup_item/proc/get_min_age()
|
||||
var/datum/species/S = all_species[pref.species ? pref.species : "Human"]
|
||||
if(!is_FBP())
|
||||
return S.min_age // If they're not a robot, we can just use the species var.
|
||||
var/FBP_type = get_FBP_type()
|
||||
switch(FBP_type)
|
||||
if(PREF_FBP_CYBORG)
|
||||
return S.min_age
|
||||
if(PREF_FBP_POSI)
|
||||
return 1
|
||||
if(PREF_FBP_SOFTWARE)
|
||||
return 1
|
||||
return S.min_age // welp
|
||||
|
||||
/datum/category_item/player_setup_item/proc/get_max_age()
|
||||
var/datum/species/S = all_species[pref.species ? pref.species : "Human"]
|
||||
if(!is_FBP())
|
||||
return S.max_age // If they're not a robot, we can just use the species var.
|
||||
var/FBP_type = get_FBP_type()
|
||||
switch(FBP_type)
|
||||
if(PREF_FBP_CYBORG)
|
||||
return S.max_age + 20
|
||||
if(PREF_FBP_POSI)
|
||||
return 220
|
||||
if(PREF_FBP_SOFTWARE)
|
||||
return 150
|
||||
return S.max_age // welp
|
||||
Reference in New Issue
Block a user