Skip to content

Commit

Permalink
Bathrobes (#1242)
Browse files Browse the repository at this point in the history
* ROBEZ

* thing

* toggle up

* a few edits

* fixing sleeves and making the sprite update

* flags

* things plus a recipe

* final edits and rewording the dumb variable to make it more clear

---------

Co-authored-by: La Villa Strangiato <mangodeity@gmail.com~>
Co-authored-by: NPC1314 <110836368+NPC1314@users.noreply.github.com>
  • Loading branch information
3 people authored Dec 14, 2024
1 parent 07e89ec commit 188c2cc
Show file tree
Hide file tree
Showing 9 changed files with 84 additions and 35 deletions.
2 changes: 1 addition & 1 deletion code/game/objects/structures/mannequin.dm
Original file line number Diff line number Diff line change
Expand Up @@ -393,7 +393,7 @@
var/obj/item/clothing/under/C = worn_thing
fitting = C.fitted

var/added_overlays = worn_thing.build_worn_icon(default_layer = clothing_layer, default_icon_file = overlay_icon, isinhands = FALSE, femaleuniform = fitting, coom = is_female)
var/added_overlays = worn_thing.build_worn_icon(default_layer = clothing_layer, default_icon_file = overlay_icon, isinhands = FALSE, femaleuniform = fitting, femicon = is_female)
//Cloaks refuse to be shown behind the mannequin unless they are applied to the underlays.
if(clothing_layer >= CLOAK_BEHIND_LAYER)
underlays += added_overlays
Expand Down
10 changes: 10 additions & 0 deletions code/modules/cargo/packsrogue/apparel.dm
Original file line number Diff line number Diff line change
Expand Up @@ -158,11 +158,21 @@
cost = 30
contains = /obj/item/clothing/suit/roguetown/shirt/dress/silkdress/random

/datum/supply_pack/rogue/apparel/valoriandress
name = "Valorian Dress"
cost = 15
contains = /obj/item/clothing/suit/roguetown/shirt/dress/valorian

/datum/supply_pack/rogue/apparel/robe
name = "Robe"
cost = 5
contains = /obj/item/clothing/suit/roguetown/shirt/robe/mage

/datum/supply_pack/rogue/apparel/bathrobe
name = "Bathrobe"
cost = 14
contains = /obj/item/clothing/suit/roguetown/shirt/robe/bath

/datum/supply_pack/rogue/apparel/tights_random
name = "Cloth Tights"
cost = 4
Expand Down
30 changes: 29 additions & 1 deletion code/modules/clothing/rogueclothes/robes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,35 @@
prevent_crits = list(BCLASS_CUT, BCLASS_TWIST)
max_integrity = 200


/obj/item/clothing/suit/roguetown/shirt/robe/bath
name = "bathrobe"
desc = "A bathrobe with a luxurious fur interior."
icon_state = "bathrobe"
toggle_icon_state = TRUE
adjustable = CAN_CADJUST
body_parts_covered = ARM_LEFT|ARM_RIGHT
sellprice = 12

/obj/item/clothing/suit/roguetown/shirt/robe/bath/AdjustClothes(mob/user)
if(loc == user)
if(adjustable == CAN_CADJUST)
adjustable = CADJUSTED
if(toggle_icon_state)
icon_state = "[initial(icon_state)]_t"
flags_inv = null
if(ishuman(user))
var/mob/living/carbon/H = user
H.update_inv_armor()
H.update_icon()
else if(adjustable == CADJUSTED)
ResetAdjust(user)
flags_inv = HIDEBOOB
body_parts_covered = ARM_LEFT|ARM_RIGHT|CHEST|GROIN
if(user)
if(ishuman(user))
var/mob/living/carbon/H = user
H.update_inv_armor()
H.update_icon()

/obj/item/clothing/suit/roguetown/shirt/robe/merchant
name = "guilder jacket"
Expand Down
2 changes: 2 additions & 0 deletions code/modules/clothing/rogueclothes/shirts.dm
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,7 @@
icon_state = "valorian"
item_state = "valorian"
allowed_race = list("human", "tiefling", "aasimar", "elf")
sellprice = 13

/obj/item/clothing/suit/roguetown/shirt/undershirt/webs
name = "webbed shirt"
Expand All @@ -332,6 +333,7 @@
l_sleeve_status = SLEEVE_NORMAL
body_parts_covered = CHEST|ARMS|VITALS
color = null
sellprice = 30

/obj/item/clothing/suit/roguetown/shirt/robe/archivist
name = "archivist's robe"
Expand Down
66 changes: 33 additions & 33 deletions code/modules/mob/living/carbon/human/update_icons.dm
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,7 @@ There are several things that need to be remembered:
client.screen += wear_ring
update_observer_view(wear_ring)
var/use_female_sprites = dna?.species.sexes ? (gender == FEMALE && !dna.species.use_m) || dna.species.use_f : FALSE
var/mutable_appearance/id_overlay = wear_ring.build_worn_icon(default_layer = RING_LAYER, default_icon_file = 'icons/roguetown/clothing/onmob/rings.dmi', coom = use_female_sprites)
var/mutable_appearance/id_overlay = wear_ring.build_worn_icon(default_layer = RING_LAYER, default_icon_file = 'icons/roguetown/clothing/onmob/rings.dmi', femicon = use_female_sprites)
if(!dna?.species.sexes || gender == MALE)
if(OFFSET_ID in dna.species.offset_features)
id_overlay.pixel_x += dna.species.offset_features[OFFSET_ID][1]
Expand Down Expand Up @@ -453,9 +453,9 @@ There are several things that need to be remembered:
var/G = (gender == FEMALE) ? "f" : "m"
var/armsindex = get_limbloss_index(ARM_RIGHT, ARM_LEFT)
if((G == "f" && !dna.species.use_m) || dna.species.use_f)
gloves_overlay = gloves.build_worn_icon(default_layer = GLOVES_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = TRUE, sleeveindex = armsindex)
gloves_overlay = gloves.build_worn_icon(default_layer = GLOVES_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = TRUE, sleeveindex = armsindex)
else
gloves_overlay = gloves.build_worn_icon(default_layer = GLOVES_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = FALSE, sleeveindex = armsindex, customi = racecustom)
gloves_overlay = gloves.build_worn_icon(default_layer = GLOVES_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = FALSE, sleeveindex = armsindex, customi = racecustom)

if(gender == MALE)
if(OFFSET_GLOVES in dna.species.offset_features)
Expand Down Expand Up @@ -511,9 +511,9 @@ There are several things that need to be remembered:
var/armsindex = get_limbloss_index(ARM_RIGHT, ARM_LEFT)
var/mutable_appearance/wrists_overlay
if((G == "f" && !dna.species.use_m) || dna.species.use_f)
wrists_overlay = wear_wrists.build_worn_icon(default_layer = WRISTS_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = TRUE, sleeveindex = armsindex)
wrists_overlay = wear_wrists.build_worn_icon(default_layer = WRISTS_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = TRUE, sleeveindex = armsindex)
else
wrists_overlay = wear_wrists.build_worn_icon(default_layer = WRISTS_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = FALSE, sleeveindex = armsindex, customi = racecustom)
wrists_overlay = wear_wrists.build_worn_icon(default_layer = WRISTS_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = FALSE, sleeveindex = armsindex, customi = racecustom)

if(gender == MALE)
if(OFFSET_WRISTS in dna.species.offset_features)
Expand Down Expand Up @@ -624,9 +624,9 @@ There are several things that need to be remembered:
if(dna.species.custom_clothes)
racecustom = dna.species.id
if((G == "f" && !dna.species.use_m) || dna.species.use_f)
shoes_overlay = shoes.build_worn_icon(default_layer = SHOES_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = "f", customi = racecustom, sleeveindex = footindex)
shoes_overlay = shoes.build_worn_icon(default_layer = SHOES_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = "f", customi = racecustom, sleeveindex = footindex)
else
shoes_overlay = shoes.build_worn_icon(default_layer = SHOES_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = FALSE, customi = racecustom, sleeveindex = footindex)
shoes_overlay = shoes.build_worn_icon(default_layer = SHOES_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = FALSE, customi = racecustom, sleeveindex = footindex)

if(OFFSET_SHOES in dna.species.offset_features)
shoes_overlay.pixel_x += dna.species.offset_features[OFFSET_SHOES][1]
Expand Down Expand Up @@ -690,9 +690,9 @@ There are several things that need to be remembered:
update_mutant_bodyparts()
// var/G = (gender == FEMALE) ? "f" : "m"
// if(G == "f" || dna.species.use_f)
// overlays_standing[HEAD_LAYER] = head.build_worn_icon(default_layer = HEAD_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = "e")
// overlays_standing[HEAD_LAYER] = head.build_worn_icon(default_layer = HEAD_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = "e")
// else
overlays_standing[HEAD_LAYER] = head.build_worn_icon(default_layer = HEAD_LAYER, default_icon_file = 'icons/roguetown/clothing/onmob/head.dmi', coom = FALSE)
overlays_standing[HEAD_LAYER] = head.build_worn_icon(default_layer = HEAD_LAYER, default_icon_file = 'icons/roguetown/clothing/onmob/head.dmi', femicon = FALSE)
var/mutable_appearance/head_overlay = overlays_standing[HEAD_LAYER]
if(head_overlay)
remove_overlay(HEAD_LAYER)
Expand Down Expand Up @@ -841,9 +841,9 @@ There are several things that need to be remembered:
if(dna.species.custom_clothes)
racecustom = dna.species.id
if((G == "f" && !dna.species.use_m) || dna.species.use_f)
mbeltoverlay = belt.build_worn_icon(default_layer = BELT_LAYER, default_icon_file = 'icons/roguetown/clothing/onmob/belts.dmi', coom = "f", customi = racecustom)
mbeltoverlay = belt.build_worn_icon(default_layer = BELT_LAYER, default_icon_file = 'icons/roguetown/clothing/onmob/belts.dmi', femicon = "f", customi = racecustom)
else
mbeltoverlay = belt.build_worn_icon(default_layer = BELT_LAYER, default_icon_file = 'icons/roguetown/clothing/onmob/belts.dmi', coom = FALSE, customi = racecustom)
mbeltoverlay = belt.build_worn_icon(default_layer = BELT_LAYER, default_icon_file = 'icons/roguetown/clothing/onmob/belts.dmi', femicon = FALSE, customi = racecustom)
if(mbeltoverlay && !dna.species.custom_clothes)
if(gender == MALE)
if(OFFSET_BELT in dna.species.offset_features)
Expand Down Expand Up @@ -1086,12 +1086,12 @@ There are several things that need to be remembered:
if(dna.species.custom_clothes)
racecustom = dna.species.id
if(G == "f" && !dna.species.use_m)
cloak_overlay = cloak.build_worn_icon(default_layer = CLOAK_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = "f", customi = racecustom)
cloak_overlay = cloak.build_worn_icon(default_layer = CLOAK_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = "f", customi = racecustom)
else
if(dna.species.use_f)
cloak_overlay = cloak.build_worn_icon(default_layer = CLOAK_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = "e", customi = racecustom)
cloak_overlay = cloak.build_worn_icon(default_layer = CLOAK_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = "e", customi = racecustom)
else
cloak_overlay = cloak.build_worn_icon(default_layer = CLOAK_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = FALSE, customi = racecustom)
cloak_overlay = cloak.build_worn_icon(default_layer = CLOAK_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = FALSE, customi = racecustom)

if(gender == MALE)
if(OFFSET_CLOAK in dna.species.offset_features)
Expand Down Expand Up @@ -1134,12 +1134,12 @@ There are several things that need to be remembered:
if(dna.species.custom_clothes)
racecustom = dna.species.id
if(G == "f" && !dna.species.use_m)
cloak_overlay = backr.build_worn_icon(default_layer = CLOAK_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = "f", customi = racecustom)
cloak_overlay = backr.build_worn_icon(default_layer = CLOAK_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = "f", customi = racecustom)
else
if(dna.species.use_f)
cloak_overlay = backr.build_worn_icon(default_layer = CLOAK_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = "e", customi = racecustom)
cloak_overlay = backr.build_worn_icon(default_layer = CLOAK_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = "e", customi = racecustom)
else
cloak_overlay = backr.build_worn_icon(default_layer = CLOAK_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = FALSE, customi = racecustom)
cloak_overlay = backr.build_worn_icon(default_layer = CLOAK_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = FALSE, customi = racecustom)

if(gender == MALE)
if(OFFSET_CLOAK in dna.species.offset_features)
Expand Down Expand Up @@ -1211,12 +1211,12 @@ There are several things that need to be remembered:
if(I.flags_inv & HIDEBOOB)
hideboob = TRUE
if(G == "f" && !hideboob && !dna.species.use_m)
shirt_overlay = wear_shirt.build_worn_icon(default_layer = SHIRT_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = "f", customi = racecustom, sleeveindex = armsindex)
shirt_overlay = wear_shirt.build_worn_icon(default_layer = SHIRT_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = "f", customi = racecustom, sleeveindex = armsindex)
else
if(dna.species.use_f || (G == "f" && !dna.species.use_m))
shirt_overlay = wear_shirt.build_worn_icon(default_layer = SHIRT_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = "e", customi = racecustom, sleeveindex = armsindex)
shirt_overlay = wear_shirt.build_worn_icon(default_layer = SHIRT_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = "e", customi = racecustom, sleeveindex = armsindex)
else
shirt_overlay = wear_shirt.build_worn_icon(default_layer = SHIRT_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = FALSE, customi = racecustom, sleeveindex = armsindex)
shirt_overlay = wear_shirt.build_worn_icon(default_layer = SHIRT_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = FALSE, customi = racecustom, sleeveindex = armsindex)

if(gender == MALE)
if(OFFSET_SHIRT in dna.species.offset_features)
Expand Down Expand Up @@ -1282,12 +1282,12 @@ There are several things that need to be remembered:
if(dna.species.custom_clothes)
racecustom = dna.species.id
if((G == "f" && !hideboob && !dna.species.use_m)|| (G == "f" && !dna.species.use_m))
armor_overlay = wear_armor.build_worn_icon(default_layer = ARMOR_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = "f", customi = racecustom, sleeveindex = armsindex)
armor_overlay = wear_armor.build_worn_icon(default_layer = ARMOR_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = "f", customi = racecustom, sleeveindex = armsindex)
else
if(dna.species.use_f)
armor_overlay = wear_armor.build_worn_icon(default_layer = ARMOR_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = "e", customi = racecustom, sleeveindex = armsindex)
armor_overlay = wear_armor.build_worn_icon(default_layer = ARMOR_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = "e", customi = racecustom, sleeveindex = armsindex)
else
armor_overlay = wear_armor.build_worn_icon(default_layer = ARMOR_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = null, customi = racecustom, sleeveindex = armsindex)
armor_overlay = wear_armor.build_worn_icon(default_layer = ARMOR_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = null, customi = racecustom, sleeveindex = armsindex)

if(gender == MALE)
if(OFFSET_ARMOR in dna.species.offset_features)
Expand Down Expand Up @@ -1349,12 +1349,12 @@ There are several things that need to be remembered:
if(dna.species.custom_clothes)
racecustom = dna.species.id
if(G == "f" && !dna.species.use_m)
pants_overlay = wear_pants.build_worn_icon(default_layer = PANTS_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = "f", customi = racecustom, sleeveindex = legsindex)
pants_overlay = wear_pants.build_worn_icon(default_layer = PANTS_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = "f", customi = racecustom, sleeveindex = legsindex)
else
if(dna.species.use_f)
pants_overlay = wear_pants.build_worn_icon(default_layer = PANTS_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = "e", customi = racecustom, sleeveindex = legsindex)
pants_overlay = wear_pants.build_worn_icon(default_layer = PANTS_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = "e", customi = racecustom, sleeveindex = legsindex)
else
pants_overlay = wear_pants.build_worn_icon(default_layer = PANTS_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', coom = FALSE, customi = racecustom, sleeveindex = legsindex)
pants_overlay = wear_pants.build_worn_icon(default_layer = PANTS_LAYER, default_icon_file = 'icons/mob/clothing/feet.dmi', femicon = FALSE, customi = racecustom, sleeveindex = legsindex)

if(G == "m")
if(OFFSET_PANTS in dna.species.offset_features)
Expand Down Expand Up @@ -1539,7 +1539,7 @@ generate/load female uniform sprites matching all previously decided variables
*/
/obj/item/proc/build_worn_icon(default_layer = 0, default_icon_file = null, isinhands = FALSE, femaleuniform = NO_FEMALE_UNIFORM, override_state = null, coom = null, customi = null, sleeveindex)
/obj/item/proc/build_worn_icon(default_layer = 0, default_icon_file = null, isinhands = FALSE, femaleuniform = NO_FEMALE_UNIFORM, override_state = null, femicon = null, customi = null, sleeveindex)
var/t_state
var/sleevejazz = sleevetype
if(override_state)
Expand All @@ -1548,7 +1548,7 @@ generate/load female uniform sprites matching all previously decided variables
if(isinhands && item_state)
t_state = item_state
else
if(coom)
if(femicon)
t_state = icon_state + "_f"
if(sleevejazz)
sleevejazz += "_f"
Expand Down Expand Up @@ -1602,7 +1602,7 @@ generate/load female uniform sprites matching all previously decided variables
// for(var/mutable_appearance/MA in worn_overlays)
// MA.blend_mode = BLEND_MULTIPLY
standing.overlays.Add(worn_overlays)
if(!isinhands && coom == "f" && boobed)
if(!isinhands && femicon == "f" && boobed)
var/mutable_appearance/boob_overlay = mutable_appearance(file2use, "[t_state]_boob", -layer2use)
standing.overlays.Add(boob_overlay)

Expand All @@ -1612,7 +1612,7 @@ generate/load female uniform sprites matching all previously decided variables
if(get_detail_color())
pic.color = get_detail_color()
standing.overlays.Add(pic)
if(!isinhands && coom == "f" && boobed)
if(!isinhands && femicon == "f" && boobed)
pic = mutable_appearance(icon(file2use, "[t_state]_boob[get_detail_tag()]"), -layer2use)
pic.appearance_flags = RESET_COLOR
if(get_detail_color())
Expand All @@ -1622,17 +1622,17 @@ generate/load female uniform sprites matching all previously decided variables
if(!isinhands && HAS_BLOOD_DNA(src))
var/index = "[t_state][sleeveindex]"
var/static/list/bloody_onmob = list()
var/icon/clothing_icon = bloody_onmob["[index][(coom == "f") ? "_boob" : ""]"]
var/icon/clothing_icon = bloody_onmob["[index][(femicon == "f") ? "_boob" : ""]"]
if(!clothing_icon)
if(sleeved && sleeveindex < 4) //cut out sleeves from north/south sprites
clothing_icon = icon(GLOB.dismembered_clothing_icons[index])
else
clothing_icon = icon(file2use, t_state)
if(coom == "f" && boobed)
if(femicon == "f" && boobed)
clothing_icon.Blend(icon(file2use, "[t_state]_boob"), ICON_OVERLAY)
clothing_icon.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent)
clothing_icon.Blend(icon(bloody_icon, bloody_icon_state), ICON_MULTIPLY) //adds blood and the remaining white areas become transparant
bloody_onmob["[index][(coom == "f") ? "_boob" : ""]"] = fcopy_rsc(clothing_icon)
bloody_onmob["[index][(femicon == "f") ? "_boob" : ""]"] = fcopy_rsc(clothing_icon)
var/mutable_appearance/pic = mutable_appearance(clothing_icon, -layer2use)
standing.overlays.Add(pic)

Expand Down
9 changes: 9 additions & 0 deletions code/modules/roguetown/roguecrafting/weaving.dm
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,14 @@
craftdiff = 2
sellprice = 19

/datum/crafting_recipe/roguetown/weaving/bathrobe
name = "bathrobe"
result = list(/obj/item/clothing/suit/roguetown/shirt/robe/bath)
reqs = list(/obj/item/natural/silk = 2,
/obj/item/natural/fur = 1)
craftdiff = 2
sellprice = 10

/datum/crafting_recipe/roguetown/weaving/mundies
name = "masculine smallclothes"
result = list(/obj/item/undies)
Expand All @@ -81,6 +89,7 @@
craftdiff = 2
sellprice = 20


/*========= SKILL LEVEL: 3 REQUIRED ==========*/

/datum/crafting_recipe/roguetown/weaving/paddedgambeson
Expand Down
Binary file modified icons/roguetown/clothing/armor.dmi
Binary file not shown.
Binary file modified icons/roguetown/clothing/onmob/armor.dmi
Binary file not shown.
Binary file modified icons/roguetown/clothing/onmob/helpers/sleeves_armor.dmi
Binary file not shown.

0 comments on commit 188c2cc

Please sign in to comment.