Loadout Rollable Clothes (#15365)

This commit is contained in:
Geeves
2022-12-21 19:05:07 +02:00
committed by GitHub
parent 02cf77529c
commit b64d429eb7
5 changed files with 94 additions and 14 deletions

View File

@@ -1,7 +1,7 @@
/datum/gear_tweak/proc/get_contents(var/metadata)
return
/datum/gear_tweak/proc/get_metadata(var/user, var/metadata)
/datum/gear_tweak/proc/get_metadata(var/user, var/metadata, var/title, var/gear_path)
return
/datum/gear_tweak/proc/get_default()
@@ -216,7 +216,7 @@ var/datum/gear_tweak/custom_name/gear_tweak_free_name = new()
var/datum/component/base_name/BN = I.GetComponent(/datum/component/base_name)
if(BN)
BN.rename(metadata)
/*
Custom Description
*/
@@ -294,4 +294,4 @@ Paper Data
return
BT.id = metadata[1]
BT.distance = metadata[2]
BT.search_interval = metadata[3] SECONDS
BT.search_interval = metadata[3] SECONDS

View File

@@ -203,7 +203,7 @@ var/list/gear_datums = list()
if(!(gear_name in player_valid_gear_choices))
continue
var/datum/gear/G = LC.gear[gear_name]
var/temp_html = ""
var/datum/job/job = pref.return_chosen_high_job()
var/available = (G.check_faction(pref.faction) \
@@ -231,7 +231,7 @@ var/list/gear_datums = list()
temp_html += "<tr style='vertical-align:top'><td width=25%><a href='?src=\ref[src];toggle_gear=[G.display_name]'><font [style]>[G.display_name]</font></a></td>"
temp_html += "<td width = 10% style='vertical-align:top'>[G.cost]</td>"
temp_html += "<td><font size=2><i>[G.description]</i><br>"
if(G.allowed_roles)
temp_html += "</font><font size = 1>(Role: "
var/role_count = 0
@@ -268,20 +268,20 @@ var/list/gear_datums = list()
else
temp_html += ", "
temp_html += "</font></td></tr>"
if(ticked)
temp_html += "<tr><td colspan=3>"
for(var/datum/gear_tweak/tweak in G.gear_tweaks)
temp_html += " <a href='?src=\ref[src];gear=[G.display_name];tweak=\ref[tweak]'>[tweak.get_contents(get_tweak_metadata(G, tweak))]</a>"
temp_html += "</td></tr>"
if(ticked)
if(ticked)
ticked_items_html += temp_html
else if(!available)
available_items_html += temp_html
else
unavailable_items_html += temp_html
. += ticked_items_html
. += unavailable_items_html
. += available_items_html
@@ -323,7 +323,7 @@ var/list/gear_datums = list()
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))
var/metadata = tweak.get_metadata(user, get_tweak_metadata(gear, tweak), null, gear.path)
if(!metadata || !CanUseTopic(user))
return TOPIC_NOACTION
set_tweak_metadata(gear, tweak, metadata)

View File

@@ -5,6 +5,10 @@
slot = slot_w_uniform
sort_category = "Uniforms and Casual Dress"
/datum/gear/uniform/New()
..()
gear_tweaks += list(gear_tweak_uniform_rolled_state)
/datum/gear/uniform/iacjumpsuit
display_name = "IAC Jumpsuit"
path = /obj/item/clothing/under/rank/iacjumpsuit
@@ -394,3 +398,63 @@
fetil_dress["fetil dress, red flairs"] = /obj/item/clothing/under/antillean
fetil_dress["fetil dress, gold flairs"] = /obj/item/clothing/under/antillean/goldflair
gear_tweaks += new /datum/gear_tweak/path(fetil_dress)
/*
Uniform Rolled State Adjustment
*/
#define UNIFORM_UNROLLED "Unrolled"
#define UNIFORM_ROLLED_SLEEVES "Rolled Sleeves"
#define UNIFORM_ROLLED_DOWN "Rolled Down"
var/datum/gear_tweak/uniform_rolled_state/gear_tweak_uniform_rolled_state = new()
/datum/gear_tweak/uniform_rolled_state/get_contents(var/metadata)
return "Rolled State: [metadata]"
/datum/gear_tweak/uniform_rolled_state/get_default()
return UNIFORM_UNROLLED
/datum/gear_tweak/uniform_rolled_state/get_metadata(var/user, var/metadata, var/gear_path)
var/list/possible_states = list(UNIFORM_UNROLLED)
var/obj/item/clothing/under/uniform = gear_path
var/rolled_sleeves_state = initial(uniform.rolled_sleeves)
var/rolled_down_state = initial(uniform.rolled_down)
var/icon/under_icon = INV_W_UNIFORM_DEF_ICON
if(rolled_sleeves_state == -1 || rolled_down_state == -1)
if(initial(uniform.contained_sprite))
under_icon = initial(uniform.icon)
else if(initial(uniform.icon_override))
under_icon = initial(uniform.icon_override)
if(rolled_sleeves_state != -1 || ("[initial(uniform.icon_state)]_r[initial(uniform.contained_sprite) ? "_un" : "_s"]" in icon_states(under_icon)))
possible_states += UNIFORM_ROLLED_SLEEVES
if(rolled_down_state != -1 || ("[initial(uniform.icon_state)]_d[initial(uniform.contained_sprite) ? "_un" : "_s"]" in icon_states(under_icon)))
possible_states += UNIFORM_ROLLED_DOWN
var/input = input(user, "Choose in which state you want your uniform to spawn in.", "Uniform State", metadata) as null|anything in possible_states
if(!input)
input = metadata
return input
/datum/gear_tweak/uniform_rolled_state/tweak_item(var/obj/item/clothing/under/uniform, var/metadata, var/title, var/gear_path)
if(!istype(uniform))
return
if(uniform.rolled_sleeves != -1)
uniform.rolled_sleeves = metadata == UNIFORM_ROLLED_SLEEVES ? TRUE : FALSE
if(uniform.rolled_down != -1)
uniform.rolled_down = metadata == UNIFORM_ROLLED_DOWN ? TRUE : FALSE
if(uniform.rolled_sleeves == 1)
uniform.handle_rollsleeves()
if(uniform.rolled_down == 1)
uniform.handle_rollsuit()
#undef UNIFORM_UNROLLED
#undef UNIFORM_ROLLED_SLEEVES
#undef UNIFORM_ROLLED_DOWN