mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-27 06:00:23 +01:00
More work on gear loadouts.
This commit is contained in:
@@ -266,7 +266,27 @@ datum/preferences
|
||||
if(config.allow_Metadata)
|
||||
dat += "<b>OOC Notes:</b> <a href='?_src_=prefs;preference=metadata;task=input'> Edit </a><br>"
|
||||
|
||||
dat += "<br><b>Occupation Choices</b><br>"
|
||||
dat += "<br><b>Custom Loadout:</b> "
|
||||
var/total_cost = 0
|
||||
|
||||
if(isnull(gear) || !islist(gear)) gear = list()
|
||||
|
||||
if(gear && gear.len)
|
||||
dat += "<br>"
|
||||
for(var/gear_name in gear)
|
||||
if(gear_datums[gear_name])
|
||||
var/datum/gear/G = gear_datums[gear_name]
|
||||
total_cost += G.cost
|
||||
dat += "[gear_name] <a href='byond://?src=\ref[user];preference=loadout;task=remove;gear=[gear_name]'>\[remove\]</a><br>"
|
||||
|
||||
dat += "<b>Used:</b> [total_cost] points."
|
||||
else
|
||||
dat += "none."
|
||||
|
||||
if(total_cost < MAX_GEAR_COST)
|
||||
dat += " <a href='byond://?src=\ref[user];preference=loadout;task=input'>\[add\]</a>"
|
||||
|
||||
dat += "<br><br><b>Occupation Choices</b><br>"
|
||||
dat += "\t<a href='?_src_=prefs;preference=job;task=menu'><b>Set Preferences</b></a><br>"
|
||||
|
||||
dat += "<br><table><tr><td><b>Body</b> "
|
||||
@@ -342,22 +362,6 @@ datum/preferences
|
||||
else
|
||||
dat += "<br><br>"
|
||||
|
||||
dat += "<b>Custom Loadout:</b> "
|
||||
var/total_cost = 0
|
||||
if(gear && gear.len)
|
||||
dat += "<br>"
|
||||
for(var/gear_name in gear)
|
||||
if(gear_datums[gear_name])
|
||||
var/datum/gear/G = gear_datums[gear_name]
|
||||
total_cost += G.cost
|
||||
dat += "[gear_name] ([G.cost]) "
|
||||
dat += "<a href='byond://?src=\ref[user];preference=loadout;task=remove;gear=[gear_name]'>\[remove\]</a><br>"
|
||||
if(total_cost < MAX_GEAR_COST)
|
||||
dat += "<a href='byond://?src=\ref[user];preference=loadout;task=input'>\[add\]</a><br>"
|
||||
dat += "<b>Used:</b> [total_cost] points.<br>"
|
||||
else
|
||||
dat += "none.<br>"
|
||||
|
||||
if(gender == MALE)
|
||||
dat += "Underwear: <a href ='?_src_=prefs;preference=underwear;task=input'><b>[underwear_m[underwear]]</b></a><br>"
|
||||
else
|
||||
@@ -857,9 +861,35 @@ datum/preferences
|
||||
|
||||
if(href_list["task"] == "input")
|
||||
|
||||
var/choice = input("Select gear to add.") as null|anything in gear_datums
|
||||
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(user, G.whitelisted))
|
||||
continue
|
||||
valid_gear_choices += gear_name
|
||||
|
||||
var/choice = input(user, "Select gear to add: ") as null|anything in valid_gear_choices
|
||||
|
||||
if(choice && gear_datums[choice])
|
||||
gear += choice
|
||||
|
||||
var/total_cost = 0
|
||||
|
||||
if(isnull(gear) || !islist(gear)) gear = list()
|
||||
|
||||
if(gear && gear.len)
|
||||
for(var/gear_name in gear)
|
||||
if(gear_datums[gear_name])
|
||||
var/datum/gear/G = gear_datums[gear_name]
|
||||
total_cost += G.cost
|
||||
|
||||
var/datum/gear/C = gear_datums[choice]
|
||||
total_cost += C.cost
|
||||
if(C && total_cost <= MAX_GEAR_COST)
|
||||
gear += choice
|
||||
user << "\blue Added [choice] for [C.cost] points ([MAX_GEAR_COST - total_cost] points remaining)."
|
||||
else
|
||||
user << "\red That item will exceed the maximum loadout cost of [MAX_GEAR_COST] points."
|
||||
|
||||
else if(href_list["task"] == "remove")
|
||||
var/to_remove = href_list["gear"]
|
||||
@@ -996,14 +1026,14 @@ datum/preferences
|
||||
var/datum/language/lang = all_languages[L]
|
||||
if((!(lang.flags & RESTRICTED)) && (is_alien_whitelisted(user, L)||(!( lang.flags & WHITELISTED ))||(S && (L in S.secondary_langs))))
|
||||
new_languages += lang
|
||||
|
||||
|
||||
//Apparently there's some PHP script that needs to be updated in order to give people whitelist languages.
|
||||
//This workaround should be removed once that has been properly updated
|
||||
if (lang.name == "Siik'maas")
|
||||
new_languages |= all_languages["Siik'tajr"]
|
||||
if (lang.name == "Siik'tajr")
|
||||
new_languages |= all_languages["Siik'maas"]
|
||||
|
||||
|
||||
languages_available = 1
|
||||
|
||||
if(!(languages_available))
|
||||
|
||||
@@ -11,6 +11,7 @@ proc/populate_gear_list()
|
||||
var/cost //Number of points used.
|
||||
var/slot //Slot to equip to.
|
||||
var/list/allowed_roles //Roles that can spawn with this item.
|
||||
var/whitelisted //Term to check the whitelist for..
|
||||
|
||||
//Standard gear datums.
|
||||
/datum/gear/tie_horrible
|
||||
@@ -18,85 +19,318 @@ proc/populate_gear_list()
|
||||
path = /obj/item/clothing/tie/horrible
|
||||
cost = 2
|
||||
|
||||
/datum/gear/tie_blue
|
||||
display_name = "blue tie"
|
||||
path = /obj/item/clothing/tie/blue
|
||||
cost = 2
|
||||
|
||||
/datum/gear/tie_red
|
||||
display_name = "red tie"
|
||||
path = /obj/item/clothing/tie/red
|
||||
cost = 2
|
||||
|
||||
/datum/gear/hairflower
|
||||
display_name = "hair flower pin"
|
||||
path = /obj/item/clothing/head/hairflower
|
||||
cost = 1
|
||||
slot = SLOT_HEAD
|
||||
cost = 2
|
||||
slot = slot_head
|
||||
|
||||
/datum/gear/bandana
|
||||
display_name = "pirate bandana"
|
||||
path = /obj/item/clothing/head/bandana
|
||||
cost = 1
|
||||
slot = SLOT_HEAD
|
||||
cost = 3
|
||||
slot = slot_head
|
||||
|
||||
/datum/gear/overalls
|
||||
display_name = "overalls"
|
||||
path = /obj/item/clothing/suit/apron/overalls
|
||||
cost = 1
|
||||
slot = SLOT_OCLOTHING
|
||||
cost = 2
|
||||
slot = slot_wear_suit
|
||||
|
||||
/datum/gear/wcoat
|
||||
display_name = "waistcoat"
|
||||
path = /obj/item/clothing/suit/wcoat
|
||||
cost = 1
|
||||
slot = SLOT_OCLOTHING
|
||||
cost = 2
|
||||
slot = slot_wear_suit
|
||||
|
||||
/datum/gear/prescription
|
||||
display_name = "prescription sunglasses"
|
||||
path = /obj/item/clothing/glasses/sunglasses/prescription
|
||||
cost = 2
|
||||
slot = SLOT_EYES
|
||||
cost = 3
|
||||
slot = slot_glasses
|
||||
|
||||
/datum/gear/eyepatch
|
||||
display_name = "eyepatch"
|
||||
path = /obj/item/clothing/glasses/eyepatch
|
||||
cost = 1
|
||||
slot = SLOT_EYES
|
||||
cost = 3
|
||||
slot = slot_glasses
|
||||
|
||||
/datum/gear/flatcap
|
||||
display_name = "flat cap"
|
||||
path = /obj/item/clothing/head/flatcap
|
||||
cost = 1
|
||||
slot = SLOT_HEAD
|
||||
cost = 2
|
||||
slot = slot_head
|
||||
|
||||
/datum/gear/labcoat
|
||||
display_name = "labcoat"
|
||||
path = /obj/item/clothing/suit/storage/labcoat
|
||||
cost = 2
|
||||
slot = SLOT_OCLOTHING
|
||||
cost = 3
|
||||
slot = slot_wear_suit
|
||||
|
||||
/datum/gear/sandal
|
||||
display_name = "sandals"
|
||||
path = /obj/item/clothing/shoes/sandal
|
||||
cost = 1
|
||||
slot = SLOT_FEET
|
||||
slot = slot_shoes
|
||||
|
||||
/datum/gear/leather
|
||||
display_name = "leather shoes"
|
||||
path = /obj/item/clothing/shoes/leather
|
||||
cost = 1
|
||||
slot = SLOT_FEET
|
||||
cost = 2
|
||||
slot = slot_shoes
|
||||
|
||||
/datum/gear/dress_shoes
|
||||
display_name = "dress shoes"
|
||||
path = /obj/item/clothing/shoes/centcom
|
||||
cost = 2
|
||||
slot = slot_shoes
|
||||
|
||||
/datum/gear/black_gloves
|
||||
display_name = "black gloves"
|
||||
path = /obj/item/clothing/gloves/black
|
||||
cost = 1
|
||||
slot = SLOT_FEET
|
||||
slot = slot_gloves
|
||||
|
||||
/datum/gear/red_gloves
|
||||
display_name = "red gloves"
|
||||
path = /obj/item/clothing/gloves/red
|
||||
cost = 1
|
||||
slot = slot_gloves
|
||||
|
||||
/datum/gear/blue_gloves
|
||||
display_name = "blue gloves"
|
||||
path = /obj/item/clothing/gloves/blue
|
||||
cost = 1
|
||||
slot = slot_gloves
|
||||
|
||||
/datum/gear/orange_gloves
|
||||
display_name = "orange gloves"
|
||||
path = /obj/item/clothing/gloves/orange
|
||||
cost = 1
|
||||
slot = slot_gloves
|
||||
|
||||
/datum/gear/purple_gloves
|
||||
display_name = "purple gloves"
|
||||
path = /obj/item/clothing/gloves/purple
|
||||
cost = 1
|
||||
slot = slot_gloves
|
||||
|
||||
/datum/gear/brown_gloves
|
||||
display_name = "brown gloves"
|
||||
path = /obj/item/clothing/gloves/brown
|
||||
cost = 1
|
||||
slot = slot_gloves
|
||||
|
||||
/datum/gear/green_gloves
|
||||
display_name = "green gloves"
|
||||
path = /obj/item/clothing/gloves/green
|
||||
cost = 2
|
||||
slot = slot_gloves
|
||||
|
||||
/datum/gear/white_gloves
|
||||
display_name = "white gloves"
|
||||
path = /obj/item/clothing/gloves/white
|
||||
cost = 2
|
||||
slot = slot_gloves
|
||||
|
||||
/datum/gear/black_shoes
|
||||
display_name = "black shoes"
|
||||
path = /obj/item/clothing/shoes/black
|
||||
cost = 2
|
||||
slot = slot_shoes
|
||||
|
||||
/datum/gear/blue_shoes
|
||||
display_name = "blue shoes"
|
||||
path = /obj/item/clothing/shoes/blue
|
||||
cost = 2
|
||||
slot = slot_shoes
|
||||
|
||||
/datum/gear/brown_shoes
|
||||
display_name = "brown shoes"
|
||||
path = /obj/item/clothing/shoes/brown
|
||||
cost = 2
|
||||
slot = slot_shoes
|
||||
|
||||
/datum/gear/green_shoes
|
||||
display_name = "green shoes"
|
||||
path = /obj/item/clothing/shoes/green
|
||||
cost = 2
|
||||
slot = slot_shoes
|
||||
|
||||
/datum/gear/orange_shoes
|
||||
display_name = "orange shoes"
|
||||
path = /obj/item/clothing/shoes/orange
|
||||
cost = 2
|
||||
slot = slot_shoes
|
||||
|
||||
/datum/gear/purple_shoes
|
||||
display_name = "purple shoes"
|
||||
path = /obj/item/clothing/shoes/purple
|
||||
cost = 2
|
||||
slot = slot_shoes
|
||||
|
||||
/datum/gear/red_shoes
|
||||
display_name = "red shoes"
|
||||
path = /obj/item/clothing/shoes/red
|
||||
cost = 2
|
||||
slot = slot_shoes
|
||||
|
||||
/datum/gear/white_shoes
|
||||
display_name = "white shoes"
|
||||
path = /obj/item/clothing/shoes/white
|
||||
cost = 2
|
||||
slot = slot_shoes
|
||||
|
||||
/datum/gear/yellow_shoes
|
||||
display_name = "yellow shoes"
|
||||
path = /obj/item/clothing/shoes/yellow
|
||||
cost = 2
|
||||
slot = slot_shoes
|
||||
|
||||
/datum/gear/jackboots
|
||||
display_name = "jackboots"
|
||||
path = /obj/item/clothing/shoes/jackboots
|
||||
cost = 3
|
||||
slot = slot_shoes
|
||||
|
||||
/datum/gear/webbing
|
||||
display_name = "webbing"
|
||||
path = /obj/item/clothing/tie/storage/webbing
|
||||
cost = 1
|
||||
|
||||
/datum/gear/armband
|
||||
display_name = "red armband"
|
||||
path = /obj/item/clothing/tie/armband
|
||||
cost = 1
|
||||
|
||||
/datum/gear/armband_cargo
|
||||
display_name = "cargo armband"
|
||||
path = /obj/item/clothing/tie/armband/cargo
|
||||
cost = 1
|
||||
|
||||
/datum/gear/armband_engineering
|
||||
display_name = "engineering armband"
|
||||
path = /obj/item/clothing/tie/armband/engine
|
||||
cost = 1
|
||||
|
||||
/datum/gear/armband_science
|
||||
display_name = "science armband"
|
||||
path = /obj/item/clothing/tie/armband/science
|
||||
cost = 1
|
||||
|
||||
/datum/gear/armband_hydroponics
|
||||
display_name = "hydroponics armband"
|
||||
path = /obj/item/clothing/tie/armband/hydro
|
||||
cost = 1
|
||||
|
||||
/datum/gear/armband_medical
|
||||
display_name = "medical armband"
|
||||
path = /obj/item/clothing/tie/armband/med
|
||||
cost = 1
|
||||
|
||||
/datum/gear/armband_emt
|
||||
display_name = "EMT armband"
|
||||
path = /obj/item/clothing/tie/armband/medgreen
|
||||
cost = 1
|
||||
|
||||
/datum/gear/skirt_blue
|
||||
display_name = "blue plaid skirt"
|
||||
path = /obj/item/clothing/under/dress/plaid_blue
|
||||
slot = slot_w_uniform
|
||||
cost = 3
|
||||
|
||||
/datum/gear/skirt_red
|
||||
display_name = "red plaid skirt"
|
||||
path = /obj/item/clothing/under/dress/plaid_red
|
||||
slot = slot_w_uniform
|
||||
cost = 3
|
||||
|
||||
/datum/gear/skirt_purple
|
||||
display_name = "purple plaid skirt"
|
||||
path = /obj/item/clothing/under/dress/plaid_purple
|
||||
slot = slot_w_uniform
|
||||
cost = 3
|
||||
|
||||
/datum/gear/skirt_black
|
||||
display_name = "black skirt"
|
||||
path = /obj/item/clothing/under/blackskirt
|
||||
slot = slot_w_uniform
|
||||
cost = 3
|
||||
|
||||
/datum/gear/sundress
|
||||
display_name = "sundress"
|
||||
path = /obj/item/clothing/under/sundress
|
||||
slot = slot_w_uniform
|
||||
cost = 3
|
||||
|
||||
/datum/gear/uniform_captain
|
||||
display_name = "captain's dress uniform"
|
||||
path = /obj/item/clothing/under/dress/dress_cap
|
||||
slot = slot_w_uniform
|
||||
cost = 3
|
||||
allowed_roles = list("Captain")
|
||||
|
||||
/datum/gear/uniform_hop
|
||||
display_name = "HoP dress uniform"
|
||||
path = /obj/item/clothing/under/dress/dress_hop
|
||||
slot = slot_w_uniform
|
||||
cost = 3
|
||||
allowed_roles = list("Head of Personnel")
|
||||
|
||||
/datum/gear/uniform_hr
|
||||
display_name = "HR director uniform"
|
||||
path = /obj/item/clothing/under/dress/dress_hr
|
||||
slot = slot_w_uniform
|
||||
cost = 3
|
||||
allowed_roles = list("Head of Personnel")
|
||||
|
||||
/datum/gear/kilt
|
||||
display_name = "kilt"
|
||||
path = /obj/item/clothing/under/kilt
|
||||
slot = slot_w_uniform
|
||||
cost = 3
|
||||
|
||||
/datum/gear/exec_suit
|
||||
display_name = "executive suit"
|
||||
path = /obj/item/clothing/under/suit_jacket/really_black
|
||||
slot = slot_w_uniform
|
||||
cost = 3
|
||||
|
||||
//Security
|
||||
/datum/gear/security
|
||||
display_name = "Security HUD"
|
||||
path = /obj/item/clothing/glasses/hud/security
|
||||
cost = 1
|
||||
slot = SLOT_EYES
|
||||
cost = 3
|
||||
slot = slot_glasses
|
||||
allowed_roles = list("Security Officer","Head of Security","Warden")
|
||||
|
||||
/datum/gear/black_vest
|
||||
display_name = "black webbing vest"
|
||||
path = /obj/item/clothing/tie/storage/black_vest
|
||||
cost = 3
|
||||
allowed_roles = list("Security Officer","Head of Security","Warden")
|
||||
|
||||
/datum/gear/armpit
|
||||
display_name = "shoulder holster"
|
||||
path = /obj/item/clothing/tie/holster/armpit
|
||||
cost = 3
|
||||
allowed_roles = list("Captain", "Head of Personnel", "Security Officer", "Head of Security")
|
||||
|
||||
/datum/gear/sec_beret
|
||||
display_name = "security beret"
|
||||
path = /obj/item/clothing/head/beret/sec
|
||||
cost = 1
|
||||
slot = SLOT_HEAD
|
||||
slot = slot_head
|
||||
allowed_roles = list("Security Officer","Head of Security","Warden")
|
||||
|
||||
//Engineering
|
||||
@@ -104,28 +338,38 @@ proc/populate_gear_list()
|
||||
display_name = "engineering beret"
|
||||
path = /obj/item/clothing/head/beret/eng
|
||||
cost = 1
|
||||
slot = SLOT_HEAD
|
||||
allowed_roles = list("Station Engineering","Atmospheric Technician","Chief Engineer")
|
||||
slot = slot_head
|
||||
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer")
|
||||
|
||||
/datum/gear/brown_vest
|
||||
display_name = "brown webbing vest"
|
||||
path = /obj/item/clothing/tie/storage/brown_vest
|
||||
cost = 3
|
||||
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer")
|
||||
|
||||
//Species-specific gear datums.
|
||||
/datum/gear/zhan_furs
|
||||
display_name = "Zhan-Khazan furs"
|
||||
path = /obj/item/clothing/suit/tajaran/furs
|
||||
cost = 3
|
||||
whitelisted = "Tajaran"
|
||||
|
||||
/datum/gear/zhan_scarf
|
||||
display_name = "Zhan-Khazan headscarf"
|
||||
path = /obj/item/clothing/head/tajaran/scarf
|
||||
cost = 2
|
||||
whitelisted = "Tajaran"
|
||||
|
||||
/datum/gear/unathi_robe
|
||||
display_name = "roughspun robe"
|
||||
path = /obj/item/clothing/suit/unathi/robe
|
||||
cost = 3
|
||||
slot = SLOT_OCLOTHING
|
||||
slot = slot_wear_suit
|
||||
whitelisted = "Unathi"
|
||||
|
||||
/datum/gear/unathi_mantle
|
||||
display_name = "hide mantle"
|
||||
path = /obj/item/clothing/suit/unathi/mantle
|
||||
cost = 2
|
||||
slot = SLOT_OCLOTHING
|
||||
slot = slot_wear_suit
|
||||
whitelisted = "Unathi"
|
||||
|
||||
@@ -155,6 +155,7 @@
|
||||
S["skills"] >> skills
|
||||
S["skill_specialization"] >> skill_specialization
|
||||
S["organ_data"] >> organ_data
|
||||
S["gear"] >> gear
|
||||
|
||||
S["nanotrasen_relation"] >> nanotrasen_relation
|
||||
//S["skin_style"] >> skin_style
|
||||
@@ -211,6 +212,7 @@
|
||||
if(isnull(disabilities)) disabilities = 0
|
||||
if(!player_alt_titles) player_alt_titles = new()
|
||||
if(!organ_data) src.organ_data = list()
|
||||
if(!gear) src.gear = list()
|
||||
//if(!skin_style) skin_style = "Default"
|
||||
|
||||
return 1
|
||||
@@ -248,6 +250,7 @@
|
||||
S["undershirt"] << undershirt
|
||||
S["backbag"] << backbag
|
||||
S["b_type"] << b_type
|
||||
S["spawnpoint"] << spawnpoint
|
||||
|
||||
//Jobs
|
||||
S["alternate_option"] << alternate_option
|
||||
@@ -273,6 +276,7 @@
|
||||
S["skills"] << skills
|
||||
S["skill_specialization"] << skill_specialization
|
||||
S["organ_data"] << organ_data
|
||||
S["gear"] << gear
|
||||
|
||||
S["nanotrasen_relation"] << nanotrasen_relation
|
||||
//S["skin_style"] << skin_style
|
||||
|
||||
Reference in New Issue
Block a user