mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-24 05:23:22 +01:00
Port bay newest loadout system (#1648)
-ports bay newest loadout system, which is pretty much a tab of their own, with different sections instead of a single list -adds code that allows for several tweaks of custom loadout, like color, item path and contents -adds dumb lunchboxes that can be filled with some food selection -adds the option to select pre-filled vacuum-flasks or flasks -also tries to fix the issues with xeno gear again
This commit is contained in:
@@ -7,37 +7,31 @@
|
||||
S["undershirt"] >> pref.undershirt
|
||||
S["socks"] >> pref.socks
|
||||
S["backbag"] >> pref.backbag
|
||||
S["gear"] >> pref.gear
|
||||
|
||||
/datum/category_item/player_setup_item/general/equipment/save_character(var/savefile/S)
|
||||
S["underwear"] << pref.underwear
|
||||
S["undershirt"] << pref.undershirt
|
||||
S["socks"] << pref.socks
|
||||
S["backbag"] << pref.backbag
|
||||
S["gear"] << pref.gear
|
||||
|
||||
/datum/category_item/player_setup_item/general/equipment/gather_load_query()
|
||||
return list("ss13_characters" = list("vars" = list("underwear", "undershirt", "socks", "backbag", "gear"), "args" = list("id")))
|
||||
return list("ss13_characters" = list("vars" = list("underwear", "undershirt", "socks", "backbag"), "args" = list("id")))
|
||||
|
||||
/datum/category_item/player_setup_item/general/equipment/gather_load_parameters()
|
||||
return list(":id" = pref.current_character)
|
||||
|
||||
/datum/category_item/player_setup_item/general/equipment/gather_save_query()
|
||||
return list("ss13_characters" = list("underwear", "undershirt", "socks", "backbag", "gear", "id" = 1, "ckey" = 1))
|
||||
return list("ss13_characters" = list("underwear", "undershirt", "socks", "backbag", "id" = 1, "ckey" = 1))
|
||||
|
||||
/datum/category_item/player_setup_item/general/equipment/gather_save_parameters()
|
||||
return list(":underwear" = pref.underwear, ":undershirt" = pref.undershirt, ":socks" = pref.socks, ":backbag" = pref.backbag, ":gear" = list2params(pref.gear), ":id" = pref.current_character, ":ckey" = pref.client.ckey)
|
||||
return list(":underwear" = pref.underwear, ":undershirt" = pref.undershirt, ":socks" = pref.socks, ":backbag" = pref.backbag, ":id" = pref.current_character, ":ckey" = pref.client.ckey)
|
||||
|
||||
/datum/category_item/player_setup_item/general/equipment/sanitize_character(var/sql_load = 0)
|
||||
if (sql_load)
|
||||
pref.backbag = text2num(pref.backbag)
|
||||
pref.gear = params2list(pref.gear)
|
||||
|
||||
pref.backbag = sanitize_integer(pref.backbag, 1, backbaglist.len, initial(pref.backbag))
|
||||
|
||||
if (!islist(pref.gear))
|
||||
pref.gear = list()
|
||||
|
||||
var/undies = get_undies()
|
||||
var/gender_socks = get_gender_socks()
|
||||
if(!get_key_by_value(undies, pref.underwear))
|
||||
@@ -47,45 +41,14 @@
|
||||
if(!get_key_by_value(gender_socks, pref.socks))
|
||||
pref.socks = gender_socks[gender_socks[1]]
|
||||
|
||||
var/total_cost = 0
|
||||
for(var/gear_name in pref.gear)
|
||||
if(!gear_datums[gear_name])
|
||||
pref.gear -= gear_name
|
||||
else if(!(gear_name in valid_gear_choices()))
|
||||
pref.gear -= gear_name
|
||||
else
|
||||
var/datum/gear/G = gear_datums[gear_name]
|
||||
if(total_cost + G.cost > MAX_GEAR_COST)
|
||||
pref.gear -= gear_name
|
||||
else
|
||||
total_cost += G.cost
|
||||
|
||||
/datum/category_item/player_setup_item/general/equipment/content()
|
||||
. += "<b>Equipment Loadout:</b><br>"
|
||||
. += "<b>Equipment:</b><br>"
|
||||
. += "Underwear: <a href='?src=\ref[src];change_underwear=1'><b>[get_key_by_value(get_undies(),pref.underwear)]</b></a><br>"
|
||||
. += "Undershirt: <a href='?src=\ref[src];change_undershirt=1'><b>[get_key_by_value(undershirt_t,pref.undershirt)]</b></a><br>"
|
||||
. += "Socks: <a href='?src=\ref[src];change_socks=1'><b>[get_key_by_value(get_gender_socks(),pref.socks)]</b></a><br>"
|
||||
. += "Backpack Type: <a href='?src=\ref[src];change_backpack=1'><b>[backbaglist[pref.backbag]]</b></a><br>"
|
||||
|
||||
. += "<br><b>Custom Loadout:</b><br>"
|
||||
var/total_cost = 0
|
||||
|
||||
if(pref.gear && pref.gear.len)
|
||||
for(var/i = 1; i <= pref.gear.len; i++)
|
||||
var/datum/gear/G = gear_datums[pref.gear[i]]
|
||||
if(G)
|
||||
total_cost += G.cost
|
||||
. += "[pref.gear[i]] ([G.cost] points) <a href='?src=\ref[src];remove_loadout=[i]'>Remove</a><br>"
|
||||
|
||||
. += "<b>Used:</b> [total_cost] points."
|
||||
else
|
||||
. += "None."
|
||||
|
||||
if(total_cost < MAX_GEAR_COST)
|
||||
. += " <a href='?src=\ref[src];add_loadout=1'>Add</a>"
|
||||
if(pref.gear && pref.gear.len)
|
||||
. += " <a href='?src=\ref[src];clear_loadout=1'>Clear</a>"
|
||||
. += "<br>"
|
||||
|
||||
/datum/category_item/player_setup_item/general/equipment/proc/get_undies()
|
||||
return pref.gender == MALE ? underwear_m : underwear_f
|
||||
@@ -93,17 +56,6 @@
|
||||
/datum/category_item/player_setup_item/general/equipment/proc/get_gender_socks()
|
||||
return pref.gender == MALE ? socks_m : socks_f
|
||||
|
||||
/datum/category_item/player_setup_item/general/equipment/proc/valid_gear_choices(var/max_cost)
|
||||
. = list()
|
||||
var/mob/preference_mob = preference_mob()
|
||||
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))
|
||||
continue
|
||||
if(max_cost && G.cost > max_cost)
|
||||
continue
|
||||
. += gear_name
|
||||
|
||||
/datum/category_item/player_setup_item/general/equipment/OnTopic(var/href,var/list/href_list, var/mob/user)
|
||||
if(href_list["change_underwear"])
|
||||
var/underwear_options = get_undies()
|
||||
@@ -131,32 +83,4 @@
|
||||
pref.backbag = backbaglist.Find(new_backbag)
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["add_loadout"])
|
||||
var/total_cost = 0
|
||||
for(var/gear_name in pref.gear)
|
||||
if(gear_datums[gear_name])
|
||||
var/datum/gear/G = gear_datums[gear_name]
|
||||
total_cost += G.cost
|
||||
|
||||
var/choice = input(user, "Select gear to add:", "Character Preference") as null|anything in valid_gear_choices(MAX_GEAR_COST - total_cost)
|
||||
if(choice && gear_datums[choice] && CanUseTopic(user))
|
||||
var/datum/gear/C = gear_datums[choice]
|
||||
total_cost += C.cost
|
||||
if(C && total_cost <= MAX_GEAR_COST)
|
||||
pref.gear += choice
|
||||
user << "<span class='notice'>Added \the '[choice]' for [C.cost] points ([MAX_GEAR_COST - total_cost] points remaining).</span>"
|
||||
else
|
||||
user << "<span class='warning'>Adding \the '[choice]' will exceed the maximum loadout cost of [MAX_GEAR_COST] points.</span>"
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["remove_loadout"])
|
||||
var/i_remove = text2num(href_list["remove_loadout"])
|
||||
if(i_remove < 1 || i_remove > pref.gear.len) return TOPIC_NOACTION
|
||||
pref.gear.Cut(i_remove, i_remove + 1)
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["clear_loadout"])
|
||||
pref.gear.Cut()
|
||||
return TOPIC_REFRESH
|
||||
|
||||
return ..()
|
||||
|
||||
@@ -0,0 +1,145 @@
|
||||
/datum/gear_tweak/proc/get_contents(var/metadata)
|
||||
return
|
||||
|
||||
/datum/gear_tweak/proc/get_metadata(var/user, var/metadata)
|
||||
return
|
||||
|
||||
/datum/gear_tweak/proc/get_default()
|
||||
return
|
||||
|
||||
/datum/gear_tweak/proc/tweak_gear_data(var/metadata, var/datum/gear_data)
|
||||
return
|
||||
|
||||
/datum/gear_tweak/proc/tweak_item(var/obj/item/I, var/metadata)
|
||||
return
|
||||
|
||||
/*
|
||||
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]'>⚫</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
|
||||
var/list/valid_paths
|
||||
|
||||
/datum/gear_tweak/path/New(var/list/valid_paths)
|
||||
src.valid_paths = valid_paths
|
||||
..()
|
||||
|
||||
/datum/gear_tweak/path/get_contents(var/metadata)
|
||||
return "Type: [metadata]"
|
||||
|
||||
/datum/gear_tweak/path/get_default()
|
||||
return valid_paths[1]
|
||||
|
||||
/datum/gear_tweak/path/get_metadata(var/user, var/metadata)
|
||||
return input(user, "Choose a type.", "Character Preference", metadata) as null|anything in valid_paths
|
||||
|
||||
/datum/gear_tweak/path/tweak_gear_data(var/metadata, var/datum/gear_data/gear_data)
|
||||
if(!(metadata in valid_paths))
|
||||
return
|
||||
gear_data.path = valid_paths[metadata]
|
||||
|
||||
/*
|
||||
Content adjustment
|
||||
*/
|
||||
|
||||
/datum/gear_tweak/contents
|
||||
var/list/valid_contents
|
||||
|
||||
/datum/gear_tweak/contents/New()
|
||||
valid_contents = args.Copy()
|
||||
..()
|
||||
|
||||
/datum/gear_tweak/contents/get_contents(var/metadata)
|
||||
return "Contents: [english_list(metadata, and_text = ", ")]"
|
||||
|
||||
/datum/gear_tweak/contents/get_default()
|
||||
. = list()
|
||||
for(var/i = 1 to valid_contents.len)
|
||||
. += "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)
|
||||
. += entry
|
||||
else
|
||||
return metadata
|
||||
|
||||
/datum/gear_tweak/contents/tweak_item(var/obj/item/I, var/list/metadata)
|
||||
if(metadata.len != valid_contents.len)
|
||||
return
|
||||
for(var/i = 1 to valid_contents.len)
|
||||
var/path
|
||||
var/list/contents = valid_contents[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
|
||||
*/
|
||||
|
||||
|
||||
/datum/gear_tweak/reagents
|
||||
var/list/valid_reagents
|
||||
|
||||
/datum/gear_tweak/reagents/New(var/list/reagents)
|
||||
valid_reagents = reagents.Copy()
|
||||
..()
|
||||
|
||||
/datum/gear_tweak/reagents/get_contents(var/metadata)
|
||||
return "Reagents: [metadata]"
|
||||
|
||||
/datum/gear_tweak/reagents/get_default()
|
||||
return "Random"
|
||||
|
||||
/datum/gear_tweak/reagents/get_metadata(var/user, var/list/metadata)
|
||||
. = input(user, "Choose an entry.", "Character Preference", metadata) as null|anything in (valid_reagents + list("Random", "None"))
|
||||
if(!.)
|
||||
return metadata
|
||||
|
||||
/datum/gear_tweak/reagents/tweak_item(var/obj/item/I, var/list/metadata)
|
||||
if(metadata == "None")
|
||||
return
|
||||
if(metadata == "Random")
|
||||
. = valid_reagents[pick(valid_reagents)]
|
||||
else
|
||||
. = valid_reagents[metadata]
|
||||
I.reagents.add_reagent(., I.reagents.get_free_space())
|
||||
@@ -0,0 +1,228 @@
|
||||
var/list/loadout_categories = list()
|
||||
var/list/gear_datums = list()
|
||||
|
||||
/datum/loadout_category
|
||||
var/category = ""
|
||||
var/list/gear = list()
|
||||
|
||||
/datum/loadout_category/New(var/cat)
|
||||
category = cat
|
||||
..()
|
||||
|
||||
/hook/startup/proc/populate_gear_list()
|
||||
|
||||
//create a list of gear datums to sort
|
||||
for(var/geartype in typesof(/datum/gear)-/datum/gear)
|
||||
var/datum/gear/G = geartype
|
||||
|
||||
var/use_name = initial(G.display_name)
|
||||
var/use_category = initial(G.sort_category)
|
||||
|
||||
if(!loadout_categories[use_category])
|
||||
loadout_categories[use_category] = new /datum/loadout_category(use_category)
|
||||
var/datum/loadout_category/LC = loadout_categories[use_category]
|
||||
gear_datums[use_name] = new geartype
|
||||
LC.gear[use_name] = gear_datums[use_name]
|
||||
|
||||
loadout_categories = sortAssoc(loadout_categories)
|
||||
for(var/loadout_category in loadout_categories)
|
||||
var/datum/loadout_category/LC = loadout_categories[loadout_category]
|
||||
LC.gear = sortAssoc(LC.gear)
|
||||
return 1
|
||||
|
||||
/datum/category_item/player_setup_item/loadout
|
||||
name = "Loadout"
|
||||
sort_order = 1
|
||||
var/current_tab = "General"
|
||||
|
||||
/datum/category_item/player_setup_item/loadout/load_character(var/savefile/S)
|
||||
S["gear"] >> pref.gear
|
||||
|
||||
/datum/category_item/player_setup_item/loadout/save_character(var/savefile/S)
|
||||
S["gear"] << pref.gear
|
||||
|
||||
/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)
|
||||
|
||||
/datum/category_item/player_setup_item/loadout/proc/valid_gear_choices(var/max_cost)
|
||||
. = list()
|
||||
var/mob/preference_mob = preference_mob()
|
||||
for(var/gear_name in gear_datums)
|
||||
var/datum/gear/G = gear_datums[gear_name]
|
||||
|
||||
if(G.whitelisted && !is_alien_whitelisted(preference_mob, all_species[G.whitelisted]))
|
||||
continue
|
||||
if(max_cost && G.cost > max_cost)
|
||||
continue
|
||||
. += gear_name
|
||||
|
||||
/datum/category_item/player_setup_item/loadout/sanitize_character(var/sql_load = 0)
|
||||
|
||||
if (sql_load)
|
||||
pref.gear = params2list(pref.gear)
|
||||
|
||||
var/mob/preference_mob = preference_mob()
|
||||
if(!islist(pref.gear))
|
||||
pref.gear = list()
|
||||
|
||||
for(var/gear_name in pref.gear)
|
||||
if(!(gear_name in gear_datums))
|
||||
pref.gear -= gear_name
|
||||
var/total_cost = 0
|
||||
for(var/gear_name in pref.gear)
|
||||
if(!gear_datums[gear_name])
|
||||
preference_mob << "<span class='warning'>You cannot have more than one of the \the [gear_name]</span>"
|
||||
pref.gear -= gear_name
|
||||
else if(!(gear_name in valid_gear_choices()))
|
||||
preference_mob << "<span class='warning'>You cannot take \the [gear_name] as you are not whitelisted for the species.</span>"
|
||||
pref.gear -= gear_name
|
||||
else
|
||||
var/datum/gear/G = gear_datums[gear_name]
|
||||
if(total_cost + G.cost > MAX_GEAR_COST)
|
||||
pref.gear -= gear_name
|
||||
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)
|
||||
for(var/i = 1; i <= pref.gear.len; i++)
|
||||
var/datum/gear/G = gear_datums[pref.gear[i]]
|
||||
if(G)
|
||||
total_cost += G.cost
|
||||
|
||||
var/fcolor = "#3366CC"
|
||||
if(total_cost < MAX_GEAR_COST)
|
||||
fcolor = "#E67300"
|
||||
. = list()
|
||||
. += "<table align = 'center' width = 100%>"
|
||||
. += "<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>"
|
||||
var/firstcat = 1
|
||||
for(var/category in loadout_categories)
|
||||
|
||||
if(firstcat)
|
||||
firstcat = 0
|
||||
else
|
||||
. += " |"
|
||||
if(category == current_tab)
|
||||
. += " [category] "
|
||||
else
|
||||
var/datum/loadout_category/LC = loadout_categories[category]
|
||||
var/tcolor = "#3366CC"
|
||||
for(var/thing in LC.gear)
|
||||
if(thing in pref.gear)
|
||||
tcolor = "#E67300"
|
||||
break
|
||||
. += " <a href='?src=\ref[src];select_category=[category]'><font color = '[tcolor]'>[category]</font></a> "
|
||||
. += "</b></center></td></tr>"
|
||||
|
||||
var/datum/loadout_category/LC = loadout_categories[current_tab]
|
||||
. += "<tr><td colspan=3><hr></td></tr>"
|
||||
. += "<tr><td colspan=3><b><center>[LC.category]</center></b></td></tr>"
|
||||
. += "<tr><td colspan=3><hr></td></tr>"
|
||||
for(var/gear_name in LC.gear)
|
||||
if(!(gear_name in valid_gear_choices()))
|
||||
continue
|
||||
var/datum/gear/G = LC.gear[gear_name]
|
||||
var/ticked = (G.display_name in pref.gear)
|
||||
. += "<tr style='vertical-align:top'><td width=25%><a href='?src=\ref[src];toggle_gear=[G.display_name]'><font color='[ticked ? "#E67300" : "#3366CC"]'>[G.display_name]</font></a></td>"
|
||||
. += "<td width = 10% style='vertical-align:top'>[G.cost]</td>"
|
||||
. += "<td><font size=2><i>[G.description]</i></font></td></tr>"
|
||||
if(ticked)
|
||||
. += "<tr><td colspan=3>"
|
||||
for(var/datum/gear_tweak/tweak in G.gear_tweaks)
|
||||
. += " <a href='?src=\ref[src];gear=[G.display_name];tweak=\ref[tweak]'>[tweak.get_contents(get_tweak_metadata(G, tweak))]</a>"
|
||||
. += "</td></tr>"
|
||||
. += "</table>"
|
||||
. = jointext(.,null)
|
||||
|
||||
/datum/category_item/player_setup_item/loadout/proc/get_gear_metadata(var/datum/gear/G)
|
||||
. = pref.gear[G.display_name]
|
||||
if(!.)
|
||||
. = list()
|
||||
pref.gear[G.display_name] = .
|
||||
|
||||
/datum/category_item/player_setup_item/loadout/proc/get_tweak_metadata(var/datum/gear/G, var/datum/gear_tweak/tweak)
|
||||
var/list/metadata = get_gear_metadata(G)
|
||||
. = metadata["[tweak]"]
|
||||
if(!.)
|
||||
. = tweak.get_default()
|
||||
metadata["[tweak]"] = .
|
||||
|
||||
/datum/category_item/player_setup_item/loadout/proc/set_tweak_metadata(var/datum/gear/G, var/datum/gear_tweak/tweak, var/new_metadata)
|
||||
var/list/metadata = get_gear_metadata(G)
|
||||
metadata["[tweak]"] = new_metadata
|
||||
|
||||
/datum/category_item/player_setup_item/loadout/OnTopic(href, href_list, user)
|
||||
if(href_list["toggle_gear"])
|
||||
var/datum/gear/TG = gear_datums[href_list["toggle_gear"]]
|
||||
if(TG.display_name in pref.gear)
|
||||
pref.gear -= TG.display_name
|
||||
else
|
||||
var/total_cost = 0
|
||||
for(var/gear_name in pref.gear)
|
||||
var/datum/gear/G = gear_datums[gear_name]
|
||||
if(istype(G)) total_cost += G.cost
|
||||
if((total_cost+TG.cost) <= MAX_GEAR_COST)
|
||||
pref.gear += TG.display_name
|
||||
return TOPIC_REFRESH
|
||||
if(href_list["gear"] && href_list["tweak"])
|
||||
var/datum/gear/gear = gear_datums[href_list["gear"]]
|
||||
var/datum/gear_tweak/tweak = locate(href_list["tweak"])
|
||||
if(!tweak || !istype(gear) || !(tweak in gear.gear_tweaks))
|
||||
return TOPIC_NOACTION
|
||||
var/metadata = tweak.get_metadata(user, get_tweak_metadata(gear, tweak))
|
||||
if(!metadata || !CanUseTopic(user))
|
||||
return TOPIC_NOACTION
|
||||
set_tweak_metadata(gear, tweak, metadata)
|
||||
return TOPIC_REFRESH
|
||||
else if(href_list["select_category"])
|
||||
current_tab = href_list["select_category"]
|
||||
return TOPIC_REFRESH
|
||||
else if(href_list["clear_loadout"])
|
||||
pref.gear.Cut()
|
||||
return TOPIC_REFRESH
|
||||
return ..()
|
||||
|
||||
/datum/gear
|
||||
var/display_name //Name/index. Must be unique.
|
||||
var/description //Description of this gear. If left blank will default to the description of the pathed item.
|
||||
var/path //Path to item.
|
||||
var/cost = 1 //Number of points used. Items in general cost 1 point, storage/armor/gloves/special use costs 2 points.
|
||||
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..
|
||||
var/sort_category = "General"
|
||||
var/list/gear_tweaks = list() //List of datums which will alter the item after it has been spawned.
|
||||
|
||||
/datum/gear/New()
|
||||
..()
|
||||
if(!description)
|
||||
var/obj/O = path
|
||||
description = initial(O.desc)
|
||||
|
||||
/datum/gear_data
|
||||
var/path
|
||||
var/location
|
||||
|
||||
/datum/gear_data/New(var/path, var/location)
|
||||
src.path = path
|
||||
src.location = location
|
||||
|
||||
/datum/gear/proc/spawn_item(var/location, var/metadata)
|
||||
var/datum/gear_data/gd = new(path, location)
|
||||
for(var/datum/gear_tweak/gt in gear_tweaks)
|
||||
gt.tweak_gear_data(metadata["[gt]"], gd)
|
||||
var/item = new gd.path(gd.location)
|
||||
for(var/datum/gear_tweak/gt in gear_tweaks)
|
||||
gt.tweak_item(item, metadata["[gt]"])
|
||||
return item
|
||||
@@ -0,0 +1,69 @@
|
||||
/datum/gear/accessory
|
||||
display_name = "suspenders"
|
||||
path = /obj/item/clothing/accessory/suspenders
|
||||
slot = slot_tie
|
||||
sort_category = "Accessories"
|
||||
|
||||
/datum/gear/accessory/waistcoat
|
||||
display_name = "waistcoat"
|
||||
path = /obj/item/clothing/accessory/wcoat
|
||||
|
||||
/datum/gear/accessory/armband
|
||||
display_name = "armband selection"
|
||||
path = /obj/item/clothing/accessory/armband
|
||||
|
||||
/datum/gear/accessory/armband/New()
|
||||
..()
|
||||
var/armbands = list()
|
||||
armbands["red armband"] = /obj/item/clothing/accessory/armband
|
||||
armbands["cargo armband"] = /obj/item/clothing/accessory/armband/cargo
|
||||
armbands["EMT armband"] = /obj/item/clothing/accessory/armband/medgreen
|
||||
armbands["medical armband"] = /obj/item/clothing/accessory/armband/med
|
||||
armbands["engineering armband"] = /obj/item/clothing/accessory/armband/engine
|
||||
armbands["hydroponics armband"] = /obj/item/clothing/accessory/armband/hydro
|
||||
armbands["science armband"] = /obj/item/clothing/accessory/armband/science
|
||||
armbands["synthetic intelligence movement armband"] = /obj/item/clothing/accessory/armband/movement
|
||||
armbands["ATLAS armband"] = /obj/item/clothing/accessory/armband/atlas
|
||||
gear_tweaks += new/datum/gear_tweak/path(armbands)
|
||||
|
||||
/datum/gear/accessory/holster
|
||||
display_name = "holster selection"
|
||||
path = /obj/item/clothing/accessory/holster
|
||||
allowed_roles = list("Captain", "Head of Personnel", "Security Officer", "Warden", "Head of Security","Detective", "Security Cadet")
|
||||
|
||||
/datum/gear/accessory/holster/New()
|
||||
..()
|
||||
var/holsters = list()
|
||||
holsters["holster, armpit"] = /obj/item/clothing/accessory/holster/armpit
|
||||
holsters["holster, hip"] = /obj/item/clothing/accessory/holster/hip
|
||||
holsters["holster, waist"] = /obj/item/clothing/accessory/holster/waist
|
||||
holsters["holster, thigh"] = /obj/item/clothing/accessory/holster/thigh
|
||||
gear_tweaks += new/datum/gear_tweak/path(holsters)
|
||||
|
||||
/datum/gear/accessory/tie
|
||||
display_name = "tie selection"
|
||||
path = /obj/item/clothing/accessory
|
||||
|
||||
/datum/gear/accessory/tie/New()
|
||||
..()
|
||||
var/ties = list()
|
||||
ties["blue tie"] = /obj/item/clothing/accessory/blue
|
||||
ties["red tie"] = /obj/item/clothing/accessory/red
|
||||
ties["horrible tie"] = /obj/item/clothing/accessory/horrible
|
||||
gear_tweaks += new/datum/gear_tweak/path(ties)
|
||||
|
||||
/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")
|
||||
|
||||
/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")
|
||||
|
||||
/datum/gear/accessory/webbing
|
||||
display_name = "webbing, simple"
|
||||
path = /obj/item/clothing/accessory/storage/webbing
|
||||
cost = 2
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
/datum/gear/cosmetic
|
||||
display_name = "purple comb"
|
||||
path = /obj/item/weapon/haircomb
|
||||
sort_category = "Cosmetics"
|
||||
|
||||
/datum/gear/cosmetic/lipstick
|
||||
display_name = "lipstick selection"
|
||||
path = /obj/item/weapon/lipstick
|
||||
|
||||
/datum/gear/cosmetic/lipstick/New()
|
||||
..()
|
||||
var/lipsticks = list()
|
||||
lipsticks["lipstick, red"] = /obj/item/weapon/lipstick
|
||||
lipsticks["lipstick, purple"] = /obj/item/weapon/lipstick/purple
|
||||
lipsticks["lipstick, jade"] = /obj/item/weapon/lipstick/jade
|
||||
lipsticks["lipstick, back"] = /obj/item/weapon/lipstick/black
|
||||
gear_tweaks += new/datum/gear_tweak/path(lipsticks)
|
||||
|
||||
/datum/gear/cosmetic/mirror
|
||||
display_name = "handheld mirror"
|
||||
path = /obj/item/weapon/mirror
|
||||
@@ -0,0 +1,19 @@
|
||||
// Stuff worn on the ears. Items here go in the "ears" sort_category but they must not use
|
||||
// the slot_r_ear or slot_l_ear as the slot, or else players will spawn with no headset.
|
||||
/datum/gear/ears
|
||||
display_name = "earmuffs"
|
||||
path = /obj/item/clothing/ears/earmuffs
|
||||
sort_category = "Earwear"
|
||||
|
||||
/datum/gear/ears/bandanna
|
||||
display_name = "neck bandanna selection"
|
||||
path = /obj/item/clothing/ears/bandanna
|
||||
|
||||
/datum/gear/ears/bandanna/New()
|
||||
..()
|
||||
var/bandanna = list()
|
||||
bandanna["red bandanna"] = /obj/item/clothing/ears/bandanna
|
||||
bandanna["blue bandanna"] = /obj/item/clothing/ears/bandanna/blue
|
||||
bandanna["black bandanna"] = /obj/item/clothing/ears/bandanna/black
|
||||
gear_tweaks += new/datum/gear_tweak/path(bandanna)
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
// Eyes
|
||||
/datum/gear/eyes
|
||||
display_name = "eyepatch"
|
||||
path = /obj/item/clothing/glasses/eyepatch
|
||||
slot = slot_glasses
|
||||
sort_category = "Glasses and Eyewear"
|
||||
|
||||
/datum/gear/eyes/glasses
|
||||
display_name = "glasses, prescription"
|
||||
path = /obj/item/clothing/glasses/regular
|
||||
|
||||
/datum/gear/eyes/glasses/green
|
||||
display_name = "glasses, green"
|
||||
path = /obj/item/clothing/glasses/gglasses
|
||||
|
||||
/datum/gear/eyes/glasses/prescriptionhipster
|
||||
display_name = "glasses, hipster"
|
||||
path = /obj/item/clothing/glasses/regular/hipster
|
||||
|
||||
/datum/gear/eyes/glasses/monocle
|
||||
display_name = "monocle"
|
||||
path = /obj/item/clothing/glasses/monocle
|
||||
|
||||
/datum/gear/eyes/scanning_goggles
|
||||
display_name = "scanning goggles"
|
||||
path = /obj/item/clothing/glasses/regular/scanners
|
||||
|
||||
/datum/gear/eyes/sciencegoggles
|
||||
display_name = "science Goggles"
|
||||
path = /obj/item/clothing/glasses/science
|
||||
|
||||
/datum/gear/eyes/security
|
||||
display_name = "security HUD"
|
||||
path = /obj/item/clothing/glasses/hud/security
|
||||
allowed_roles = list("Security Officer","Head of Security","Warden")
|
||||
|
||||
/datum/gear/eyes/medical
|
||||
display_name = "medical HUD"
|
||||
path = /obj/item/clothing/glasses/hud/health
|
||||
allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist")
|
||||
|
||||
/datum/gear/eyes/shades
|
||||
display_name = "sunglasses, fat"
|
||||
path = /obj/item/clothing/glasses/sunglasses/big
|
||||
allowed_roles = list("Security Officer","Head of Security","Warden","Captain","Head of Personnel","Quartermaster","Internal Affairs Agent","Detective")
|
||||
|
||||
/datum/gear/eyes/shades/prescriptionsun
|
||||
display_name = "sunglasses, presciption"
|
||||
path = /obj/item/clothing/glasses/sunglasses/prescription
|
||||
cost = 2
|
||||
@@ -0,0 +1,69 @@
|
||||
/datum/gear/cane
|
||||
display_name = "cane"
|
||||
path = /obj/item/weapon/cane
|
||||
|
||||
/datum/gear/dice
|
||||
display_name = "d20"
|
||||
path = /obj/item/weapon/dice/d20
|
||||
|
||||
/datum/gear/cards
|
||||
display_name = "deck of cards"
|
||||
path = /obj/item/weapon/deck/cards
|
||||
|
||||
/datum/gear/tarot
|
||||
display_name = "deck of tarot cards"
|
||||
path = /obj/item/weapon/deck/tarot
|
||||
|
||||
/datum/gear/holder
|
||||
display_name = "card holder"
|
||||
path = /obj/item/weapon/deck/holder
|
||||
|
||||
/datum/gear/cardemon_pack
|
||||
display_name = "cardemon booster pack"
|
||||
path = /obj/item/weapon/pack/cardemon
|
||||
|
||||
/datum/gear/spaceball_pack
|
||||
display_name = "spaceball booster pack"
|
||||
path = /obj/item/weapon/pack/spaceball
|
||||
|
||||
/datum/gear/flask
|
||||
display_name = "flask"
|
||||
path = /obj/item/weapon/reagent_containers/food/drinks/flask/barflask
|
||||
|
||||
/datum/gear/flask/New()
|
||||
..()
|
||||
gear_tweaks += new/datum/gear_tweak/reagents(lunchables_ethanol_reagents())
|
||||
|
||||
/datum/gear/vacflask
|
||||
display_name = "vacuum-flask"
|
||||
path = /obj/item/weapon/reagent_containers/food/drinks/flask/vacuumflask
|
||||
|
||||
/datum/gear/vacflask/New()
|
||||
..()
|
||||
gear_tweaks += new/datum/gear_tweak/reagents(lunchables_drink_reagents())
|
||||
|
||||
/datum/gear/boot_knife
|
||||
display_name = "boot knife"
|
||||
path = /obj/item/weapon/material/kitchen/utensil/knife/boot
|
||||
cost = 3
|
||||
|
||||
/datum/gear/cape
|
||||
display_name = "tunnel cloak"
|
||||
path = /obj/item/weapon/storage/backpack/cloak
|
||||
cost = 1
|
||||
|
||||
/datum/gear/lunchbox
|
||||
display_name = "lunchbox"
|
||||
description = "A little lunchbox."
|
||||
cost = 2
|
||||
path = /obj/item/weapon/storage/toolbox/lunchbox
|
||||
|
||||
/datum/gear/lunchbox/New()
|
||||
..()
|
||||
var/list/lunchboxes = list()
|
||||
for(var/lunchbox_type in typesof(/obj/item/weapon/storage/toolbox/lunchbox))
|
||||
var/obj/item/weapon/storage/toolbox/lunchbox/lunchbox = lunchbox_type
|
||||
if(!initial(lunchbox.filled))
|
||||
lunchboxes[initial(lunchbox.name)] = lunchbox_type
|
||||
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(lunchboxes))
|
||||
gear_tweaks += new/datum/gear_tweak/contents(lunchables_lunches(), lunchables_snacks(), lunchables_drinks())
|
||||
@@ -0,0 +1,25 @@
|
||||
/datum/gear/gloves
|
||||
display_name = "watch"
|
||||
path = /obj/item/clothing/gloves/watch
|
||||
cost = 2
|
||||
slot = slot_gloves
|
||||
sort_category = "Gloves and Handwear"
|
||||
|
||||
/datum/gear/gloves/color
|
||||
display_name = "gloves selection"
|
||||
path = /obj/item/clothing/gloves/black
|
||||
|
||||
/datum/gear/gloves/color/New()
|
||||
..()
|
||||
var/gloves = list()
|
||||
gloves["black gloves"] = /obj/item/clothing/gloves
|
||||
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["grey gloves"] = /obj/item/clothing/gloves/grey
|
||||
gloves["rainbow gloves"] = /obj/item/clothing/gloves/rainbow
|
||||
gear_tweaks += new/datum/gear_tweak/path(gloves)
|
||||
@@ -0,0 +1,113 @@
|
||||
/datum/gear/head
|
||||
display_name = "hat, boatsman"
|
||||
path = /obj/item/clothing/head/boaterhat
|
||||
slot = slot_head
|
||||
sort_category = "Hats and Headwear"
|
||||
|
||||
/datum/gear/head/bandana
|
||||
display_name = "bandana selection"
|
||||
path = /obj/item/clothing/head/bandana
|
||||
|
||||
/datum/gear/head/bandana/New()
|
||||
..()
|
||||
var/bandanas = list()
|
||||
bandanas["green bandana"] = /obj/item/clothing/head/greenbandana
|
||||
bandanas["orange bandana"] = /obj/item/clothing/head/orangebandana
|
||||
bandanas["pirate bandana"] = /obj/item/clothing/head/bandana
|
||||
gear_tweaks += new/datum/gear_tweak/path(bandanas)
|
||||
|
||||
/datum/gear/head/cap
|
||||
display_name = "cap selection"
|
||||
path = /obj/item/clothing/head/soft/blue
|
||||
|
||||
/datum/gear/head/cap/New()
|
||||
..()
|
||||
var/caps = list()
|
||||
caps["blue cap"] = /obj/item/clothing/head/soft/blue
|
||||
caps["flat cap"] = /obj/item/clothing/head/flatcap
|
||||
caps["green cap"] = /obj/item/clothing/head/soft/green
|
||||
caps["grey cap"] = /obj/item/clothing/head/soft/grey
|
||||
caps["mailman cap"] = /obj/item/clothing/head/mailman
|
||||
caps["orange cap"] = /obj/item/clothing/head/soft/orange
|
||||
caps["purple cap"] = /obj/item/clothing/head/soft/purple
|
||||
caps["rainbow cap"] = /obj/item/clothing/head/soft/rainbow
|
||||
caps["red cap"] = /obj/item/clothing/head/soft/red
|
||||
caps["white cap"] = /obj/item/clothing/head/soft/mime
|
||||
caps["yellow cap"] = /obj/item/clothing/head/soft/yellow
|
||||
gear_tweaks += new/datum/gear_tweak/path(caps)
|
||||
|
||||
/datum/gear/head/beret
|
||||
display_name = "beret, red"
|
||||
path = /obj/item/clothing/head/beret
|
||||
|
||||
/datum/gear/head/beret/eng
|
||||
display_name = "beret, engie-orange"
|
||||
path = /obj/item/clothing/head/beret/engineering
|
||||
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Engineering Apprentice")
|
||||
|
||||
/datum/gear/head/beret/purp
|
||||
display_name = "beret, purple"
|
||||
path = /obj/item/clothing/head/beret/purple
|
||||
|
||||
/datum/gear/head/beret/sec
|
||||
display_name = "beret,security"
|
||||
path = /obj/item/clothing/head/beret/sec
|
||||
allowed_roles = list("Security Officer","Head of Security","Warden","Security Cadet","Detective")
|
||||
|
||||
/datum/gear/head/beret/warden
|
||||
display_name = "beret,security (warden)"
|
||||
path = /obj/item/clothing/head/beret/sec/warden
|
||||
allowed_roles = list("Head of Security","Warden")
|
||||
|
||||
/datum/gear/head/beret/hos
|
||||
display_name = "beret,security (head of security)"
|
||||
path = /obj/item/clothing/head/beret/sec/hos
|
||||
allowed_roles = list("Head of Security")
|
||||
|
||||
/datum/gear/head/cap/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
|
||||
display_name = "cap, security"
|
||||
path = /obj/item/clothing/head/soft/sec
|
||||
allowed_roles = list("Security Officer","Head of Security","Warden","Security Cadet","Detective")
|
||||
|
||||
/datum/gear/head/hardhat
|
||||
display_name = "hardhat, yellow"
|
||||
path = /obj/item/clothing/head/hardhat
|
||||
allowed_roles = list("Station Engineer","Atmospheric Technician","Chief Engineer","Engineering Apprentice")
|
||||
|
||||
/datum/gear/head/hardhat/New()
|
||||
..()
|
||||
var/hardhat = list()
|
||||
hardhat["hardhat, yellow"] = /obj/item/clothing/head/hardhat
|
||||
hardhat["hardhat, blue"] = /obj/item/clothing/head/hardhat/dblue
|
||||
hardhat["hardhat, orange"] = /obj/item/clothing/head/hardhat/orange
|
||||
hardhat["hardhat, red"] = /obj/item/clothing/head/hardhat/red
|
||||
gear_tweaks += new/datum/gear_tweak/path(hardhat)
|
||||
|
||||
/datum/gear/head/hairflower
|
||||
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/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/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
|
||||
@@ -0,0 +1,5 @@
|
||||
// Mask
|
||||
/datum/gear/mask
|
||||
display_name = "sterile mask"
|
||||
path = /obj/item/clothing/mask/surgical
|
||||
cost = 2
|
||||
@@ -0,0 +1,45 @@
|
||||
// Shoelocker
|
||||
/datum/gear/shoes
|
||||
display_name = "jackboots"
|
||||
path = /obj/item/clothing/shoes/jackboots
|
||||
slot = slot_shoes
|
||||
sort_category = "Shoes and Footwear"
|
||||
|
||||
/datum/gear/shoes/toeless
|
||||
display_name = "toe-less jackboots"
|
||||
path = /obj/item/clothing/shoes/jackboots/unathi
|
||||
|
||||
/datum/gear/shoes/workboots
|
||||
display_name = "workboots"
|
||||
path = /obj/item/clothing/shoes/workboots
|
||||
|
||||
/datum/gear/shoes/sandals
|
||||
display_name = "sandals"
|
||||
path = /obj/item/clothing/shoes/sandal
|
||||
|
||||
/datum/gear/shoes/color
|
||||
display_name = "shoe selection"
|
||||
path = /obj/item/clothing/shoes/black
|
||||
|
||||
/datum/gear/shoes/color/New()
|
||||
..()
|
||||
var/shoes = list()
|
||||
shoes["black shoes"] = /obj/item/clothing/shoes/black
|
||||
shoes["blue shoes"] = /obj/item/clothing/shoes/blue
|
||||
shoes["brown shoes"] = /obj/item/clothing/shoes/brown
|
||||
shoes["green shoes"] = /obj/item/clothing/shoes/green
|
||||
shoes["orange shoes"] = /obj/item/clothing/shoes/orange
|
||||
shoes["purple shoes"] = /obj/item/clothing/shoes/purple
|
||||
shoes["rainbow shoes"] = /obj/item/clothing/shoes/rainbow
|
||||
shoes["red shoes"] = /obj/item/clothing/shoes/red
|
||||
shoes["white shoes"] = /obj/item/clothing/shoes/white
|
||||
shoes["yellow shoes"] = /obj/item/clothing/shoes/yellow
|
||||
gear_tweaks += new/datum/gear_tweak/path(shoes)
|
||||
|
||||
/datum/gear/shoes/dress
|
||||
display_name = "shoes, dress"
|
||||
path = /obj/item/clothing/shoes/laceup
|
||||
|
||||
/datum/gear/shoes/leather
|
||||
display_name = "shoes, leather"
|
||||
path = /obj/item/clothing/shoes/leather
|
||||
@@ -0,0 +1,27 @@
|
||||
/datum/gear/smokingpipe
|
||||
display_name = "pipe, smoking"
|
||||
path = /obj/item/clothing/mask/smokable/pipe
|
||||
|
||||
/datum/gear/cornpipe
|
||||
display_name = "pipe, corn"
|
||||
path = /obj/item/clothing/mask/smokable/pipe/cobpipe
|
||||
|
||||
/datum/gear/matchbook
|
||||
display_name = "matchbook"
|
||||
path = /obj/item/weapon/storage/box/matches
|
||||
|
||||
/datum/gear/zippo
|
||||
display_name = "zippo"
|
||||
path = /obj/item/weapon/flame/lighter/zippo
|
||||
|
||||
/datum/gear/cigarcase
|
||||
display_name = "cigar case"
|
||||
path = /obj/item/weapon/storage/fancy/cigar
|
||||
|
||||
/datum/gear/cigarette
|
||||
display_name = "cigarette packet"
|
||||
path = /obj/item/weapon/storage/fancy/cigarettes
|
||||
|
||||
/datum/gear/dromedaryco
|
||||
display_name = "dromedaryco cigarette packet"
|
||||
path = /obj/item/weapon/storage/fancy/cigarettes/dromedaryco
|
||||
@@ -0,0 +1,129 @@
|
||||
// Suit slot
|
||||
/datum/gear/suit
|
||||
display_name = "apron, blue"
|
||||
path = /obj/item/clothing/suit/apron
|
||||
slot = slot_wear_suit
|
||||
sort_category = "Suits and Overwear"
|
||||
cost = 2
|
||||
|
||||
/datum/gear/suit/leather
|
||||
display_name = "jacket selection"
|
||||
path = /obj/item/clothing/suit/storage/leather_jacket
|
||||
|
||||
/datum/gear/suit/leather/New()
|
||||
..()
|
||||
var/jackets = list()
|
||||
jackets["bomber jacket"] = /obj/item/clothing/suit/storage/toggle/bomber
|
||||
jackets["corporate black jacket"] = /obj/item/clothing/suit/storage/leather_jacket/nanotrasen
|
||||
jackets["corporate brown jacket"] = /obj/item/clothing/suit/storage/toggle/brown_jacket/nanotrasen
|
||||
jackets["black jacket"] = /obj/item/clothing/suit/storage/leather_jacket
|
||||
jackets["brown jacket"] = /obj/item/clothing/suit/storage/toggle/brown_jacket
|
||||
gear_tweaks += new/datum/gear_tweak/path(jackets)
|
||||
|
||||
/datum/gear/suit/hazard_vest
|
||||
display_name = "hazard vest"
|
||||
path = /obj/item/clothing/suit/storage/hazardvest
|
||||
|
||||
/datum/gear/suit/hoodie
|
||||
display_name = "hoodie, grey"
|
||||
path = /obj/item/clothing/suit/storage/toggle/hoodie
|
||||
|
||||
/datum/gear/suit/hoodie/black
|
||||
display_name = "hoodie, black"
|
||||
path = /obj/item/clothing/suit/storage/toggle/hoodie/black
|
||||
|
||||
/datum/gear/suit/labcoat
|
||||
display_name = "labcoat selection"
|
||||
path = /obj/item/clothing/suit/storage/toggle/labcoat
|
||||
|
||||
/datum/gear/suit/labcoat/New()
|
||||
..()
|
||||
var/labcoat = list()
|
||||
labcoat["labcoat"] = /obj/item/clothing/suit/storage/toggle/labcoat
|
||||
labcoat["labcoat, blue"] = /obj/item/clothing/suit/storage/toggle/labcoat/blue
|
||||
labcoat["labcoat, green"] = /obj/item/clothing/suit/storage/toggle/labcoat/green
|
||||
labcoat["labcoat, orange"] = /obj/item/clothing/suit/storage/toggle/labcoat/orange
|
||||
labcoat["labcoat, purple"] = /obj/item/clothing/suit/storage/toggle/labcoat/purple
|
||||
labcoat["labcoat, red"] = /obj/item/clothing/suit/storage/toggle/labcoat/red
|
||||
gear_tweaks += new/datum/gear_tweak/path(labcoat)
|
||||
|
||||
/datum/gear/suit/overalls
|
||||
display_name = "overalls"
|
||||
path = /obj/item/clothing/suit/apron/overalls
|
||||
cost = 1
|
||||
|
||||
/datum/gear/suit/poncho
|
||||
display_name = "poncho selection"
|
||||
path = /obj/item/clothing/suit/poncho
|
||||
cost = 1
|
||||
|
||||
/datum/gear/suit/poncho/New()
|
||||
..()
|
||||
var/poncho = list()
|
||||
poncho["poncho, tan"] = /obj/item/clothing/suit/poncho
|
||||
poncho["poncho, blue"] = /obj/item/clothing/suit/poncho/blue
|
||||
poncho["poncho, green"] = /obj/item/clothing/suit/poncho/green
|
||||
poncho["poncho, purple"] = /obj/item/clothing/suit/poncho/purple
|
||||
poncho["poncho, red"] = /obj/item/clothing/suit/poncho/red
|
||||
gear_tweaks += new/datum/gear_tweak/path(poncho)
|
||||
|
||||
/datum/gear/suit/blue_lawyer_jacket
|
||||
display_name = "suit jacket, blue"
|
||||
path = /obj/item/clothing/suit/storage/toggle/lawyer/bluejacket
|
||||
|
||||
/datum/gear/suit/purple_lawyer_jacket
|
||||
display_name = "suit jacket, purple"
|
||||
path = /obj/item/clothing/suit/storage/lawyer/purpjacket
|
||||
|
||||
/datum/gear/suit/track_jacket
|
||||
display_name = "track jacket"
|
||||
path = /obj/item/clothing/suit/storage/toggle/tracksuit
|
||||
|
||||
/datum/gear/suit/winter
|
||||
display_name = "winter coat"
|
||||
path = /obj/item/clothing/suit/storage/hooded/wintercoat
|
||||
|
||||
/datum/gear/suit/winter/captain
|
||||
display_name = "winter coat, captain"
|
||||
path = /obj/item/clothing/suit/storage/hooded/wintercoat/captain
|
||||
allowed_roles = list("Captain")
|
||||
|
||||
/datum/gear/suit/winter/security
|
||||
display_name = "winter coat, security"
|
||||
path = /obj/item/clothing/suit/storage/hooded/wintercoat/security
|
||||
allowed_roles = list("Security Officer","Head of Security","Warden","Security Cadet","Detective")
|
||||
|
||||
/datum/gear/suit/winter/science
|
||||
display_name = "winter coat, science"
|
||||
path = /obj/item/clothing/suit/storage/hooded/wintercoat/science
|
||||
allowed_roles = list("Research Director","Scientist","Xenobiologist","Roboticist","Lab Assistant","Geneticist")
|
||||
|
||||
/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",)
|
||||
|
||||
/datum/gear/suit/winter/engineering
|
||||
display_name = "winter coat, engineering"
|
||||
path = /obj/item/clothing/suit/storage/hooded/wintercoat/engineering
|
||||
allowed_roles = list("Station Engineer","Chief Engineer","Engineering Apprentice")
|
||||
|
||||
/datum/gear/suit/winter/atmos
|
||||
display_name = "winter coat, atmospherics"
|
||||
path = /obj/item/clothing/suit/storage/hooded/wintercoat/engineering/atmos
|
||||
allowed_roles = list("Atmospheric Technician","Chief Engineer")
|
||||
|
||||
/datum/gear/suit/winter/hydro
|
||||
display_name = "winter coat, hydroponics"
|
||||
path = /obj/item/clothing/suit/storage/hooded/wintercoat/hydro
|
||||
allowed_roles = list("Head of Personnel","Gardener")
|
||||
|
||||
/datum/gear/suit/winter/cargo
|
||||
display_name = "winter coat, cargo"
|
||||
path = /obj/item/clothing/suit/storage/hooded/wintercoat/cargo
|
||||
allowed_roles = list("Cargo Technician","Quartermaster","Head of Personnel")
|
||||
|
||||
/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")
|
||||
@@ -0,0 +1,150 @@
|
||||
// Uniform slot
|
||||
/datum/gear/uniform
|
||||
display_name = "blazer, blue"
|
||||
path = /obj/item/clothing/under/blazer
|
||||
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
|
||||
|
||||
/datum/gear/uniform/jumpsuit/New()
|
||||
..()
|
||||
var/jumpsuit = list()
|
||||
jumpsuit["grey jumpsuit"] = /obj/item/clothing/under/color/grey
|
||||
jumpsuit["black jumpsuit"] = /obj/item/clothing/under/color/black
|
||||
jumpsuit["blue jumpsuit"] = /obj/item/clothing/under/color/blue
|
||||
jumpsuit["green jumpsuit"] = /obj/item/clothing/under/color/green
|
||||
jumpsuit["orange jumpsuit"] = /obj/item/clothing/under/color/orange
|
||||
jumpsuit["pink jumpsuit"] = /obj/item/clothing/under/color/pink
|
||||
jumpsuit["red jumpsuit"] = /obj/item/clothing/under/color/red
|
||||
jumpsuit["white jumpsuit"] = /obj/item/clothing/under/color/white
|
||||
jumpsuit["yellow jumpsuit"] = /obj/item/clothing/under/color/yellow
|
||||
jumpsuit["light blue jumpsuit"] = /obj/item/clothing/under/lightblue
|
||||
jumpsuit["aqua jumpsuit"] = /obj/item/clothing/under/aqua
|
||||
jumpsuit["purple jumpsuit"] = /obj/item/clothing/under/purple
|
||||
jumpsuit["light purple jumpsuit"] = /obj/item/clothing/under/lightpurple
|
||||
jumpsuit["light green jumpsuit"] = /obj/item/clothing/under/lightgreen
|
||||
jumpsuit["brown jumpsuit"] = /obj/item/clothing/under/brown
|
||||
jumpsuit["light brown jumpsuit"] = /obj/item/clothing/under/lightbrown
|
||||
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
|
||||
gear_tweaks += new/datum/gear_tweak/path(jumpsuit)
|
||||
|
||||
/datum/gear/uniform/skirt
|
||||
display_name = "plaid skirt, blue"
|
||||
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/suit
|
||||
display_name = "suit selection"
|
||||
path = /obj/item/clothing/under/lawyer/bluesuit
|
||||
|
||||
/datum/gear/uniform/suit/New()
|
||||
..()
|
||||
var/suits = list()
|
||||
suits["amish suit"] = /obj/item/clothing/under/sl_suit
|
||||
suits["black suit"] = /obj/item/clothing/under/suit_jacket
|
||||
suits["blue suit"] = /obj/item/clothing/under/lawyer/blue
|
||||
suits["burgundy suit"] = /obj/item/clothing/under/suit_jacket/burgundy
|
||||
suits["charcoal suit"] = /obj/item/clothing/under/suit_jacket/charcoal
|
||||
suits["checkered suit"] = /obj/item/clothing/under/suit_jacket/checkered
|
||||
suits["executive suit"] = /obj/item/clothing/under/suit_jacket/really_black
|
||||
suits["female executive suit"] = /obj/item/clothing/under/suit_jacket/female
|
||||
suits["gentleman suit"] = /obj/item/clothing/under/gentlesuit
|
||||
suits["navy suit"] = /obj/item/clothing/under/suit_jacket/navy
|
||||
suits["old man suit"] = /obj/item/clothing/under/lawyer/oldman
|
||||
suits["purple suit"] = /obj/item/clothing/under/lawyer/purpsuit
|
||||
suits["red suit"] = /obj/item/clothing/under/suit_jacket/red
|
||||
suits["red lawyer suit"] = /obj/item/clothing/under/lawyer/red
|
||||
suits["shiny black suit"] = /obj/item/clothing/under/lawyer/black
|
||||
suits["tan suit"] = /obj/item/clothing/under/suit_jacket/tan
|
||||
suits["white suit"] = /obj/item/clothing/under/scratch
|
||||
suits["white-blue suit"] = /obj/item/clothing/under/lawyer/bluesuit
|
||||
gear_tweaks += new/datum/gear_tweak/path(suits)
|
||||
|
||||
/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",)
|
||||
|
||||
/datum/gear/uniform/scrubs/New()
|
||||
..()
|
||||
var/scrubs = list()
|
||||
scrubs["scrubs, black"] = /obj/item/clothing/under/rank/medical/black
|
||||
scrubs["scrubs, blue"] = /obj/item/clothing/under/rank/medical/blue
|
||||
scrubs["scrubs, green"] = /obj/item/clothing/under/rank/medical/green
|
||||
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"
|
||||
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/uniform_captain
|
||||
display_name = "uniform, captain's dress"
|
||||
path = /obj/item/clothing/under/dress/dress_cap
|
||||
allowed_roles = list("Captain")
|
||||
|
||||
/datum/gear/uniform/corpsecsuit
|
||||
display_name = "uniform, corporate (Security)"
|
||||
path = /obj/item/clothing/under/rank/security/corp
|
||||
allowed_roles = list("Security Officer","Head of Security","Warden")
|
||||
|
||||
/datum/gear/uniform/uniform_hop
|
||||
display_name = "uniform, HoP's dress"
|
||||
path = /obj/item/clothing/under/dress/dress_hop
|
||||
allowed_roles = list("Head of Personnel")
|
||||
|
||||
/datum/gear/uniform/uniform_hr
|
||||
display_name = "uniform, HR director (HoP)"
|
||||
path = /obj/item/clothing/under/dress/dress_hr
|
||||
allowed_roles = list("Head of Personnel")
|
||||
|
||||
/datum/gear/uniform/navysecsuit
|
||||
display_name = "uniform, navyblue (Security)"
|
||||
path = /obj/item/clothing/under/rank/security/navyblue
|
||||
allowed_roles = list("Security Officer","Head of Security","Warden")
|
||||
|
||||
/datum/gear/uniform/gearharness
|
||||
display_name = "gear harness"
|
||||
path = /obj/item/clothing/under/gearharness
|
||||
cost = 2
|
||||
|
||||
/datum/gear/uniform/track_pants
|
||||
display_name = "track pants"
|
||||
path = /obj/item/clothing/under/track
|
||||
|
||||
/datum/gear/uniform/turtleneck
|
||||
display_name = "tacticool turtleneck"
|
||||
path = /obj/item/clothing/under/syndicate/tacticool
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
/datum/gear/utility
|
||||
display_name = "briefcase"
|
||||
path = /obj/item/weapon/storage/briefcase
|
||||
sort_category = "Utility"
|
||||
|
||||
/datum/gear/utility/secure
|
||||
display_name = "secure briefcase"
|
||||
path = /obj/item/weapon/storage/secure/briefcase
|
||||
cost = 2
|
||||
|
||||
/datum/gear/utility/clipboard
|
||||
display_name = "clipboard"
|
||||
path = /obj/item/weapon/clipboard
|
||||
|
||||
/datum/gear/utility/folder
|
||||
display_name = "folders"
|
||||
path = /obj/item/weapon/folder
|
||||
|
||||
/datum/gear/utility/folder/New()
|
||||
..()
|
||||
var/folders = list()
|
||||
folders["blue folder"] = /obj/item/weapon/folder/blue
|
||||
folders["grey folder"] = /obj/item/weapon/folder
|
||||
folders["red folder"] = /obj/item/weapon/folder/red
|
||||
folders["white folder"] = /obj/item/weapon/folder/white
|
||||
folders["yellow folder"] = /obj/item/weapon/folder/yellow
|
||||
gear_tweaks += new/datum/gear_tweak/path(folders)
|
||||
|
||||
/datum/gear/utility/paicard
|
||||
display_name = "personal AI device"
|
||||
path = /obj/item/device/paicard
|
||||
|
||||
/datum/gear/utility/wallet
|
||||
display_name = "wallet"
|
||||
path = /obj/item/weapon/storage/wallet
|
||||
|
||||
/*
|
||||
/datum/gear/utility/cheaptablet
|
||||
display_name = "cheap tablet computer"
|
||||
path = /obj/item/modular_computer/tablet/preset/custom_loadout/cheap
|
||||
cost = 3
|
||||
|
||||
/datum/gear/utility/normaltablet
|
||||
display_name = "tablet computer"
|
||||
path = /obj/item/modular_computer/tablet/preset/custom_loadout/advanced
|
||||
cost = 4
|
||||
*/
|
||||
|
||||
/datum/gear/utility/recorder
|
||||
display_name = "universal recorder"
|
||||
path = /obj/item/device/taperecorder
|
||||
|
||||
/datum/gear/utility/camera
|
||||
display_name = "camera"
|
||||
path = /obj/item/device/camera
|
||||
@@ -0,0 +1,108 @@
|
||||
//unathi clothing
|
||||
|
||||
/datum/gear/suit/unathi_mantle
|
||||
display_name = "hide mantle (Unathi)"
|
||||
path = /obj/item/clothing/suit/unathi/mantle
|
||||
cost = 1
|
||||
whitelisted = "Unathi"
|
||||
sort_category = "Xenowear"
|
||||
|
||||
/datum/gear/suit/unathi_robe
|
||||
display_name = "roughspun robe (Unathi)"
|
||||
path = /obj/item/clothing/suit/unathi/robe
|
||||
cost = 1
|
||||
whitelisted = "Unathi"
|
||||
sort_category = "Xenowear"
|
||||
|
||||
//skrell headtail adorns
|
||||
|
||||
/datum/gear/ears/f_skrell
|
||||
display_name = "headtail-wear, female (Skrell)"
|
||||
path = /obj/item/clothing/ears/skrell/chain
|
||||
sort_category = "Xenowear"
|
||||
whitelisted = "Skrell"
|
||||
|
||||
/datum/gear/ears/f_skrell/New()
|
||||
..()
|
||||
var/f_chains = list()
|
||||
f_chains["headtail chains"] = /obj/item/clothing/ears/skrell/chain
|
||||
f_chains["headtail cloth"] = /obj/item/clothing/ears/skrell/cloth_female
|
||||
f_chains["red-jeweled chain"] = /obj/item/clothing/ears/skrell/redjewel_chain
|
||||
f_chains["ebony chain"] = /obj/item/clothing/ears/skrell/ebony_chain
|
||||
f_chains["blue-jeweled chain"] = /obj/item/clothing/ears/skrell/bluejeweled_chain
|
||||
f_chains["silver chain"] = /obj/item/clothing/ears/skrell/silver_chain
|
||||
f_chains["blue cloth"] = /obj/item/clothing/ears/skrell/blue_skrell_cloth_band_female
|
||||
gear_tweaks += new/datum/gear_tweak/path(f_chains)
|
||||
|
||||
/datum/gear/ears/m_skrell
|
||||
display_name = "headtail-wear, male (Skrell)"
|
||||
path = /obj/item/clothing/ears/skrell/band
|
||||
sort_category = "Xenowear"
|
||||
whitelisted = "Skrell"
|
||||
|
||||
/datum/gear/ears/m_skrell/New()
|
||||
..()
|
||||
var/m_chains = list()
|
||||
m_chains["headtail bands"] = /obj/item/clothing/ears/skrell/chain
|
||||
m_chains["headtail cloth"] = /obj/item/clothing/ears/skrell/cloth_male
|
||||
m_chains["red-jeweled bands"] = /obj/item/clothing/ears/skrell/redjeweled_band
|
||||
m_chains["ebony bands"] = /obj/item/clothing/ears/skrell/ebony_band
|
||||
m_chains["blue-jeweled bands"] = /obj/item/clothing/ears/skrell/bluejeweled_band
|
||||
m_chains["silver bands"] = /obj/item/clothing/ears/skrell/silver_band
|
||||
m_chains["blue cloth"] = /obj/item/clothing/ears/skrell/blue_skrell_cloth_band_male
|
||||
gear_tweaks += new/datum/gear_tweak/path(m_chains)
|
||||
|
||||
//vaurca items
|
||||
|
||||
/datum/gear/eyes/blindfold
|
||||
display_name = "vaurca blindfold (Vaurca)"
|
||||
path = /obj/item/clothing/glasses/sunglasses/blinders
|
||||
cost = 2
|
||||
whitelisted = "Vaurca"
|
||||
sort_category = "Xenowear"
|
||||
|
||||
/datum/gear/mask/vaurca
|
||||
display_name = "mandible garment (Vaurca)"
|
||||
path = /obj/item/clothing/mask/breath/vaurca
|
||||
cost = 1
|
||||
whitelisted = "Vaurca"
|
||||
sort_category = "Xenowear"
|
||||
|
||||
//beastmen gloves
|
||||
|
||||
/datum/gear/gloves/unathi
|
||||
display_name = "gloves selection (Unathi)"
|
||||
path = /obj/item/clothing/gloves/black/unathi
|
||||
whitelisted = "Unathi"
|
||||
sort_category = "Xenowear"
|
||||
|
||||
/datum/gear/gloves/unathi/New()
|
||||
..()
|
||||
var/un_gloves = list()
|
||||
un_gloves["black gloves"] = /obj/item/clothing/gloves/black/unathi
|
||||
un_gloves["red gloves"] = /obj/item/clothing/gloves/red/unathi
|
||||
un_gloves["blue gloves"] = /obj/item/clothing/gloves/blue/unathi
|
||||
un_gloves["orange gloves"] = /obj/item/clothing/gloves/orange/unathi
|
||||
un_gloves["purple gloves"] = /obj/item/clothing/gloves/purple/unathi
|
||||
un_gloves["brown gloves"] = /obj/item/clothing/gloves/brown/unathi
|
||||
un_gloves["green gloves"] = /obj/item/clothing/gloves/green/unathi
|
||||
un_gloves["white gloves"] = /obj/item/clothing/gloves/white/unathi
|
||||
gear_tweaks += new/datum/gear_tweak/path(un_gloves)
|
||||
|
||||
/datum/gear/gloves/tajara
|
||||
display_name = "gloves selection (Tajara)"
|
||||
path = /obj/item/clothing/gloves/black/tajara
|
||||
whitelisted = "Tajara"
|
||||
sort_category = "Xenowear"
|
||||
|
||||
/datum/gear/gloves/tajara/New()
|
||||
..()
|
||||
var/taj_gloves = list()
|
||||
taj_gloves["black gloves"] = /obj/item/clothing/gloves/black/tajara
|
||||
taj_gloves["red gloves"] = /obj/item/clothing/gloves/red/tajara
|
||||
taj_gloves["blue gloves"] = /obj/item/clothing/gloves/blue/tajara
|
||||
taj_gloves["orange gloves"] = /obj/item/clothing/gloves/orange/tajara
|
||||
taj_gloves["purple gloves"] = /obj/item/clothing/gloves/purple/tajara
|
||||
taj_gloves["brown gloves"] = /obj/item/clothing/gloves/brown/tajara
|
||||
taj_gloves["white gloves"] = /obj/item/clothing/gloves/green/tajara
|
||||
gear_tweaks += new/datum/gear_tweak/path(taj_gloves)
|
||||
@@ -27,6 +27,11 @@
|
||||
sort_order = 4
|
||||
category_item_type = /datum/category_item/player_setup_item/antagonism
|
||||
|
||||
/datum/category_group/player_setup_category/loadout_preferences
|
||||
name = "Loadout"
|
||||
sort_order = 5
|
||||
category_item_type = /datum/category_item/player_setup_item/loadout
|
||||
|
||||
/datum/category_group/player_setup_category/global_preferences
|
||||
name = "Global"
|
||||
sort_order = 5
|
||||
|
||||
Reference in New Issue
Block a user