Merge branch 'master' of https://github.com/PolarisSS13/Polaris into sink
1
code/_helpers/_global_objects.dm
Normal file
@@ -0,0 +1 @@
|
|||||||
|
var/datum/gear_tweak/color/gear_tweak_free_color_choice = new()
|
||||||
@@ -2,144 +2,55 @@
|
|||||||
name = "None"
|
name = "None"
|
||||||
always_last = TRUE
|
always_last = TRUE
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/briefs_white
|
/datum/category_item/underwear/bottom/briefs
|
||||||
name = "Briefs, white"
|
name = "Briefs"
|
||||||
icon_state = "b1"
|
icon_state = "briefs"
|
||||||
|
has_color = TRUE
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/briefs_white/is_default(var/gender)
|
/datum/category_item/underwear/bottom/briefs/is_default(var/gender)
|
||||||
return gender != FEMALE
|
return gender != FEMALE
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/briefs_grey
|
|
||||||
name = "Briefs, grey"
|
|
||||||
icon_state = "b2"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/briefs_green
|
|
||||||
name = "Briefs, green"
|
|
||||||
icon_state = "b3"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/briefs_blue
|
|
||||||
name = "Briefs, blue"
|
|
||||||
icon_state = "b4"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/briefs_black
|
|
||||||
name = "Briefs, black"
|
|
||||||
icon_state = "b5"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/panties_noback
|
|
||||||
name = "Panties, noback"
|
|
||||||
icon_state = "b6"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/boxers_loveheart
|
/datum/category_item/underwear/bottom/boxers_loveheart
|
||||||
name = "Boxers, Loveheart"
|
name = "Boxers, Loveheart"
|
||||||
icon_state = "b7"
|
icon_state = "boxers_loveheart"
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/boxers_black
|
/datum/category_item/underwear/bottom/boxers
|
||||||
name = "Boxers, black"
|
name = "Boxers"
|
||||||
icon_state = "b8"
|
icon_state = "boxers"
|
||||||
|
has_color = TRUE
|
||||||
/datum/category_item/underwear/bottom/boxers_grey
|
|
||||||
name = "Boxers, grey"
|
|
||||||
icon_state = "b9"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/boxers_green_and_blue
|
/datum/category_item/underwear/bottom/boxers_green_and_blue
|
||||||
name = "Boxers, green & blue striped"
|
name = "Boxers, green & blue striped"
|
||||||
icon_state = "b10"
|
icon_state = "boxers_green_and_blue"
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/panties_red
|
/datum/category_item/underwear/bottom/panties
|
||||||
name = "Panties, red"
|
name = "Panties"
|
||||||
icon_state = "b11"
|
icon_state = "panties"
|
||||||
|
has_color = TRUE
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/panties_white
|
/datum/category_item/underwear/bottom/panties/is_default(var/gender)
|
||||||
name = "Panties, white"
|
|
||||||
icon_state = "b12"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/panties_white/is_default(var/gender)
|
|
||||||
return gender == FEMALE
|
return gender == FEMALE
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/panties_yellow
|
/datum/category_item/underwear/bottom/lacy_thong
|
||||||
name = "Panties, yellow"
|
name = "Lacy thong"
|
||||||
icon_state = "b13"
|
icon_state = "lacy_thong"
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/panties_blue
|
/datum/category_item/underwear/bottom/lacy_thong_alt
|
||||||
name = "Panties, blue"
|
name = "Lacy thong, alt"
|
||||||
icon_state = "b14"
|
icon_state = "lacy_thong_alt"
|
||||||
|
has_color = TRUE
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/panties_light_black
|
/datum/category_item/underwear/bottom/panties_alt
|
||||||
name = "Panties, light-black"
|
name = "Panties, alt"
|
||||||
icon_state = "b15"
|
icon_state = "panties_alt"
|
||||||
|
has_color = TRUE
|
||||||
|
|
||||||
|
/datum/category_item/underwear/bottom/compression_shorts
|
||||||
|
name = "Compression shorts"
|
||||||
|
icon_state = "compression_shorts"
|
||||||
|
has_color = TRUE
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/thong
|
/datum/category_item/underwear/bottom/thong
|
||||||
name = "Thong"
|
name = "Thong"
|
||||||
icon_state = "b16"
|
icon_state = "thong"
|
||||||
|
has_color = TRUE
|
||||||
/datum/category_item/underwear/bottom/panties_black
|
|
||||||
name = "Panties, black"
|
|
||||||
icon_state = "b17"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/panties_white_alt
|
|
||||||
name = "Bra, white alt"
|
|
||||||
icon_state = "b18"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/compression_shorts_black
|
|
||||||
name = "Compression shorts, black"
|
|
||||||
icon_state = "b19"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/compression_shorts_white
|
|
||||||
name = "Compression shorts, white"
|
|
||||||
icon_state = "b20"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/compression_shorts_baby_blue
|
|
||||||
name = "Compression shorts, baby-blue"
|
|
||||||
icon_state = "b21"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/panties_green
|
|
||||||
name = "Panties, green"
|
|
||||||
icon_state = "b22"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/compression_shorts_pink
|
|
||||||
name = "Compression shorts, pink"
|
|
||||||
icon_state = "b23"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/thong_violet
|
|
||||||
name = "Thong, violet"
|
|
||||||
icon_state = "b24"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/thong_alt
|
|
||||||
name = "Thong, alt"
|
|
||||||
icon_state = "b25"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/thong_violet_alt
|
|
||||||
name = "Thong, violet alt"
|
|
||||||
icon_state = "b26"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/alt_thong_black
|
|
||||||
name = "Alt. thong, black"
|
|
||||||
icon_state = "b27"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/alt_thong_blue
|
|
||||||
name = "Alt. thong, blue"
|
|
||||||
icon_state = "b28"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/alt_thong_green
|
|
||||||
name = "Alt. thong, green"
|
|
||||||
icon_state = "b29"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/alt_thong_purple
|
|
||||||
name = "Alt. thong, purple"
|
|
||||||
icon_state = "b30"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/alt_thong_red
|
|
||||||
name = "Alt. thong, red"
|
|
||||||
icon_state = "b31"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/alt_thong_teal
|
|
||||||
name = "Alt. thong, teal"
|
|
||||||
icon_state = "b32"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/alt_thong_violet
|
|
||||||
name = "Alt. thong, violet"
|
|
||||||
icon_state = "b33"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/bottom/alt_thong_white
|
|
||||||
name = "Alt. thong, white"
|
|
||||||
icon_state = "b34"
|
|
||||||
@@ -2,57 +2,49 @@
|
|||||||
always_last = TRUE
|
always_last = TRUE
|
||||||
name = "None"
|
name = "None"
|
||||||
|
|
||||||
/datum/category_item/underwear/socks/white_normal
|
/datum/category_item/underwear/socks/normal
|
||||||
name = "Normal, white"
|
name = "Normal"
|
||||||
icon_state = "white_norm"
|
icon_state = "socks_norm"
|
||||||
|
has_color = TRUE
|
||||||
|
|
||||||
/datum/category_item/underwear/socks/white_short
|
/datum/category_item/underwear/socks/short
|
||||||
name = "Short, white"
|
name = "Short"
|
||||||
icon_state = "white_short"
|
icon_state = "socks_short"
|
||||||
|
has_color = TRUE
|
||||||
|
|
||||||
/datum/category_item/underwear/socks/white_knee
|
/datum/category_item/underwear/socks/thigh
|
||||||
name = "Knee, white"
|
name = "Thigh"
|
||||||
icon_state = "white_knee"
|
icon_state = "socks_thigh"
|
||||||
|
has_color = TRUE
|
||||||
|
|
||||||
/datum/category_item/underwear/socks/white_thigh
|
/datum/category_item/underwear/socks/knee
|
||||||
name = "Thigh, white"
|
name = "Knee"
|
||||||
icon_state = "white_thigh"
|
icon_state = "socks_knee"
|
||||||
|
has_color = TRUE
|
||||||
|
|
||||||
/datum/category_item/underwear/socks/black_normal
|
/datum/category_item/underwear/socks/striped_knee
|
||||||
name = "Normal, black"
|
name = "Knee, striped"
|
||||||
icon_state = "black_norm"
|
icon_state = "striped_knee"
|
||||||
|
has_color = TRUE
|
||||||
|
|
||||||
/datum/category_item/underwear/socks/black_short
|
/datum/category_item/underwear/socks/striped_thigh
|
||||||
name = "Short, black"
|
name = "Thigh, striped"
|
||||||
icon_state = "black_short"
|
icon_state = "striped_thigh"
|
||||||
|
has_color = TRUE
|
||||||
/datum/category_item/underwear/socks/black_knee
|
|
||||||
name = "Knee, black"
|
|
||||||
icon_state = "black_knee"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/socks/black_thigh
|
|
||||||
name = "Thigh, black"
|
|
||||||
icon_state = "black_thigh"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/socks/thin_knee
|
|
||||||
name = "Knee, thin"
|
|
||||||
icon_state = "thin_knee"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/socks/thin_thigh
|
|
||||||
name = "Thigh, thin"
|
|
||||||
icon_state = "thin_thigh"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/socks/pantyhose
|
/datum/category_item/underwear/socks/pantyhose
|
||||||
name = "Pantyhose"
|
name = "Pantyhose"
|
||||||
icon_state = "pantyhose"
|
icon_state = "pantyhose"
|
||||||
|
|
||||||
/datum/category_item/underwear/socks/striped_thigh
|
/datum/category_item/underwear/socks/thin_thigh
|
||||||
name = "Thigh, striped"
|
name = "Thigh, thin"
|
||||||
icon_state = "striped_thigh"
|
icon_state = "thin_thigh"
|
||||||
|
has_color = TRUE
|
||||||
|
|
||||||
/datum/category_item/underwear/socks/striped_knee
|
/datum/category_item/underwear/socks/thin_knee
|
||||||
name = "Knee, striped"
|
name = "Knee, thin"
|
||||||
icon_state = "striped_knee"
|
icon_state = "thin_knee"
|
||||||
|
has_color = TRUE
|
||||||
|
|
||||||
/datum/category_item/underwear/socks/rainbow_thigh
|
/datum/category_item/underwear/socks/rainbow_thigh
|
||||||
name = "Thigh, rainbow"
|
name = "Thigh, rainbow"
|
||||||
@@ -64,12 +56,4 @@
|
|||||||
|
|
||||||
/datum/category_item/underwear/socks/fishnet
|
/datum/category_item/underwear/socks/fishnet
|
||||||
name = "Fishnet"
|
name = "Fishnet"
|
||||||
icon_state = "fishnet"
|
icon_state = "fishnet"
|
||||||
|
|
||||||
/datum/category_item/underwear/socks/thinwhite_thigh
|
|
||||||
name = "Thigh, thin white"
|
|
||||||
icon_state = "thinwhite_thigh"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/socks/thinwhite_knee
|
|
||||||
name = "Knee, thin white"
|
|
||||||
icon_state = "thinwhite_knee"
|
|
||||||
@@ -5,102 +5,39 @@
|
|||||||
/datum/category_item/underwear/top/none/is_default(var/gender)
|
/datum/category_item/underwear/top/none/is_default(var/gender)
|
||||||
return gender != FEMALE
|
return gender != FEMALE
|
||||||
|
|
||||||
/datum/category_item/underwear/top/bra_red
|
/datum/category_item/underwear/top/bra
|
||||||
name = "Bra, red"
|
|
||||||
icon_state = "t1"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/top/bra_white
|
|
||||||
is_default = TRUE
|
is_default = TRUE
|
||||||
name = "Bra, white"
|
name = "Bra"
|
||||||
icon_state = "t2"
|
icon_state = "bra"
|
||||||
|
has_color = TRUE
|
||||||
|
|
||||||
/datum/category_item/underwear/top/bra_white/is_default(var/gender)
|
/datum/category_item/underwear/top/bra/is_default(var/gender)
|
||||||
return gender == FEMALE
|
return gender == FEMALE
|
||||||
|
|
||||||
/datum/category_item/underwear/top/bra_yellow
|
/datum/category_item/underwear/top/sports_bra
|
||||||
name = "Bra, yellow"
|
name = "Sports bra"
|
||||||
icon_state = "t3"
|
icon_state = "sports_bra"
|
||||||
|
has_color = TRUE
|
||||||
|
|
||||||
/datum/category_item/underwear/top/bra_blue
|
/datum/category_item/underwear/top/sports_bra_alt
|
||||||
name = "Bra, blue"
|
name = "Sports bra, alt"
|
||||||
icon_state = "t4"
|
icon_state = "sports_bra_alt"
|
||||||
|
has_color = TRUE
|
||||||
/datum/category_item/underwear/top/bra_black
|
|
||||||
name = "Bra, black"
|
|
||||||
icon_state = "t5"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/top/lacy_bra
|
/datum/category_item/underwear/top/lacy_bra
|
||||||
name = "Lacy bra"
|
name = "Lacy bra"
|
||||||
icon_state = "t6"
|
icon_state = "lacy_bra"
|
||||||
|
|
||||||
/datum/category_item/underwear/top/sports_bra_black
|
|
||||||
name = "Sports bra, black"
|
|
||||||
icon_state = "t7"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/top/sports_bra_white
|
|
||||||
name = "Sports bra, white"
|
|
||||||
icon_state = "t8"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/top/sports_bra_black_alt
|
|
||||||
name = "Sports bra, black alt"
|
|
||||||
icon_state = "t9"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/top/sports_bra_white_alt
|
|
||||||
name = "Sports bra, white alt"
|
|
||||||
icon_state = "t10"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/top/bra_baby_blue
|
|
||||||
name = "Bra, baby blue"
|
|
||||||
icon_state = "t11"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/top/bra_green
|
|
||||||
name = "Bra, green"
|
|
||||||
icon_state = "t12"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/top/bra_pink
|
|
||||||
name = "Bra, pink"
|
|
||||||
icon_state = "t13"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/top/bra_violet
|
|
||||||
name = "Bra, violet"
|
|
||||||
icon_state = "t14"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/top/lacy_bra_alt
|
/datum/category_item/underwear/top/lacy_bra_alt
|
||||||
name = "Lacy bra, alt"
|
name = "Lacy bra, alt"
|
||||||
icon_state = "t15"
|
icon_state = "lacy_bra_alt"
|
||||||
|
has_color = TRUE
|
||||||
|
|
||||||
/datum/category_item/underwear/top/bra_lacy_violet
|
/datum/category_item/underwear/top/lacy_bra_alt_stripe
|
||||||
name = "Lacy bra, violet"
|
name = "Lacy bra, alt, stripe"
|
||||||
icon_state = "t16"
|
icon_state = "lacy_bra_alt_stripe"
|
||||||
|
|
||||||
/datum/category_item/underwear/top/halterneck_bra_black
|
/datum/category_item/underwear/top/halterneck_bra
|
||||||
name = "Halterneck bra, black"
|
name = "Halterneck bra"
|
||||||
icon_state = "t17"
|
icon_state = "halterneck_bra"
|
||||||
|
has_color = TRUE
|
||||||
/datum/category_item/underwear/top/halterneck_bra_blue
|
|
||||||
name = "Halterneck bra, blue"
|
|
||||||
icon_state = "t18"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/top/halterneck_bra_green
|
|
||||||
name = "Halterneck bra, green"
|
|
||||||
icon_state = "t19"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/top/halterneck_bra_purple
|
|
||||||
name = "Halterneck bra, purple"
|
|
||||||
icon_state = "t20"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/top/halterneck_bra_red
|
|
||||||
name = "Halterneck bra, red"
|
|
||||||
icon_state = "t21"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/top/halterneck_bra_teal
|
|
||||||
name = "Halterneck bra, teal"
|
|
||||||
icon_state = "t22"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/top/halterneck_bra_violet
|
|
||||||
name = "Halterneck bra, violet"
|
|
||||||
icon_state = "t23"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/top/halterneck_bra_white
|
|
||||||
name = "Halterneck bra, white"
|
|
||||||
icon_state = "t24"
|
|
||||||
@@ -3,74 +3,25 @@
|
|||||||
name = "None"
|
name = "None"
|
||||||
always_last = TRUE
|
always_last = TRUE
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/tank_top_white
|
/datum/category_item/underwear/undershirt/shirt
|
||||||
name = "Tank top, white"
|
name = "Shirt"
|
||||||
icon_state = "u1"
|
icon_state = "undershirt"
|
||||||
|
has_color = TRUE
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/tank_top_white_alt
|
/datum/category_item/underwear/undershirt/tank_top
|
||||||
name = "Tank top, white alt"
|
name = "Tank top"
|
||||||
icon_state = "tank_white_s"
|
icon_state = "tanktop"
|
||||||
|
has_color = TRUE
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/tank_top_black
|
/datum/category_item/underwear/undershirt/tank_top_alt
|
||||||
name = "Tank top, black"
|
name = "Tank top, alt"
|
||||||
icon_state = "u2"
|
icon_state = "tanktop_alt"
|
||||||
|
has_color = TRUE
|
||||||
/datum/category_item/underwear/undershirt/tank_top_red
|
|
||||||
name = "Tank top, red"
|
|
||||||
icon_state = "tank_red_s"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/tank_top_fire
|
/datum/category_item/underwear/undershirt/tank_top_fire
|
||||||
name = "Tank top, fire"
|
name = "Tank top, fire"
|
||||||
icon_state = "tank_fire_s"
|
icon_state = "tank_fire_s"
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/shirt_black
|
|
||||||
name = "Shirt, black"
|
|
||||||
icon_state = "u3"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/shirt_black_alt
|
|
||||||
name = "Shirt, black alt"
|
|
||||||
icon_state = "shirt_black_s"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/shirt_white
|
|
||||||
name = "Shirt, white"
|
|
||||||
icon_state = "u4"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/shirt_white_alt
|
|
||||||
name = "Shirt, white alt"
|
|
||||||
icon_state = "shirt_white_s"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/shirt_grey
|
|
||||||
name = "Shirt, grey"
|
|
||||||
icon_state = "shirt_grey_s"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/shirt_blue
|
|
||||||
name = "Shirt, blue"
|
|
||||||
icon_state = "blueshirt_s"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/shirt_blue_alt
|
|
||||||
name = "Shirt, blue alt"
|
|
||||||
icon_state = "shirt_blue_s"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/shirt_red
|
|
||||||
name = "Shirt, red"
|
|
||||||
icon_state = "redshirt_s"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/shirt_red_alt
|
|
||||||
name = "Shirt, red alt"
|
|
||||||
icon_state = "shirt_red_s"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/shirt_yellow
|
|
||||||
name = "Shirt, yellow"
|
|
||||||
icon_state = "yellowshirt_s"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/shirt_green
|
|
||||||
name = "Shirt, green"
|
|
||||||
icon_state = "greenshirt_s"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/shirt_green_alt
|
|
||||||
name = "Shirt, green alt"
|
|
||||||
icon_state = "shirt_green_s"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/shirt_heart
|
/datum/category_item/underwear/undershirt/shirt_heart
|
||||||
name = "Shirt, heart"
|
name = "Shirt, heart"
|
||||||
icon_state = "lover_s"
|
icon_state = "lover_s"
|
||||||
@@ -80,44 +31,18 @@
|
|||||||
icon_state = "shirt_nano_s"
|
icon_state = "shirt_nano_s"
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/shirt_love_nt
|
/datum/category_item/underwear/undershirt/shirt_love_nt
|
||||||
name = "Shirt, I<3NT"
|
name = "Shirt, I<3NT"
|
||||||
icon_state = "lover_s"
|
icon_state = "lover_s"
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/shortsleeve_shirt_white
|
/datum/category_item/underwear/undershirt/shortsleeve_shirt
|
||||||
name = "Shortsleeve shirt, white"
|
name = "Shortsleeve shirt"
|
||||||
icon_state = "whiteshortsleeve_s"
|
icon_state = "shortsleeve"
|
||||||
|
has_color = TRUE
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/shortsleeve_shirt_purple
|
/datum/category_item/underwear/undershirt/polo_shirt
|
||||||
name = "Shortsleeve shirt, purple"
|
name = "Polo shirt"
|
||||||
icon_state = "purpleshortsleeve_s"
|
icon_state = "polo"
|
||||||
|
has_color = TRUE
|
||||||
/datum/category_item/underwear/undershirt/shortsleeve_shirt_blue
|
|
||||||
name = "Shortsleeve shirt, blue"
|
|
||||||
icon_state = "blueshortsleeve_s"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/shortsleeve_shirt_green
|
|
||||||
name = "Shortsleeve shirt, green"
|
|
||||||
icon_state = "greenshortsleeve_s"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/shortsleeve_shirt_black
|
|
||||||
name = "Shortsleeve shirt, black"
|
|
||||||
icon_state = "blackshortsleeve_s"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/polo_shirt_blue
|
|
||||||
name = "Polo shirt, blue"
|
|
||||||
icon_state = "bluepolo_s"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/polo_shirt_red
|
|
||||||
name = "Polo shirt, red"
|
|
||||||
icon_state = "redpolo_s"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/polo_shirt_white
|
|
||||||
name = "Polo shirt, white"
|
|
||||||
icon_state = "whitepolo_s"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/polo_shirt_grey_yellow
|
|
||||||
name = "Polo shirt, grey and yellow"
|
|
||||||
icon_state = "grayyellowpolo_s"
|
|
||||||
|
|
||||||
/datum/category_item/underwear/undershirt/sport_shirt_green
|
/datum/category_item/underwear/undershirt/sport_shirt_green
|
||||||
name = "Sport shirt, green"
|
name = "Sport shirt, green"
|
||||||
|
|||||||
@@ -41,6 +41,12 @@ datum/category_group/underwear/dd_SortValue()
|
|||||||
var/is_default = FALSE // Should this entry be considered the default for its type?
|
var/is_default = FALSE // Should this entry be considered the default for its type?
|
||||||
var/icon = 'icons/mob/human.dmi' // Which icon to get the underwear from
|
var/icon = 'icons/mob/human.dmi' // Which icon to get the underwear from
|
||||||
var/icon_state // And the particular item state
|
var/icon_state // And the particular item state
|
||||||
|
var/list/tweaks = list() // Underwear customizations.
|
||||||
|
var/has_color = FALSE
|
||||||
|
|
||||||
|
/datum/category_item/underwear/New()
|
||||||
|
if(has_color)
|
||||||
|
tweaks += gear_tweak_free_color_choice
|
||||||
|
|
||||||
/datum/category_item/underwear/dd_SortValue()
|
/datum/category_item/underwear/dd_SortValue()
|
||||||
if(always_last)
|
if(always_last)
|
||||||
@@ -50,7 +56,11 @@ datum/category_group/underwear/dd_SortValue()
|
|||||||
/datum/category_item/underwear/proc/is_default(var/gender)
|
/datum/category_item/underwear/proc/is_default(var/gender)
|
||||||
return is_default
|
return is_default
|
||||||
|
|
||||||
/datum/category_item/underwear/proc/apply_to_icon(var/icon/I)
|
/datum/category_item/underwear/proc/generate_image(var/list/metadata)
|
||||||
if(!icon_state)
|
if(!icon_state)
|
||||||
return
|
return
|
||||||
I.Blend(new /icon('icons/mob/human.dmi', icon_state), ICON_OVERLAY)
|
|
||||||
|
var/image/I = image(icon = 'icons/mob/human.dmi', icon_state = icon_state)
|
||||||
|
for(var/datum/gear_tweak/gt in tweaks)
|
||||||
|
gt.tweak_item(I, metadata && metadata["[gt]"] ? metadata["[gt]"] : gt.get_default())
|
||||||
|
return I
|
||||||
@@ -6,10 +6,10 @@
|
|||||||
Shocking someone costs ten chemicals per use."
|
Shocking someone costs ten chemicals per use."
|
||||||
enhancedtext = "Shocking biologicals without grabbing only requires five chemicals, and has more disabling power."
|
enhancedtext = "Shocking biologicals without grabbing only requires five chemicals, and has more disabling power."
|
||||||
genomecost = 2
|
genomecost = 2
|
||||||
verbpath = /mob/proc/changeling_bioelectrogenesis
|
verbpath = /mob/living/carbon/human/proc/changeling_bioelectrogenesis
|
||||||
|
|
||||||
//Recharge whatever's in our hand, or shock people.
|
//Recharge whatever's in our hand, or shock people.
|
||||||
/mob/proc/changeling_bioelectrogenesis()
|
/mob/living/carbon/human/proc/changeling_bioelectrogenesis()
|
||||||
set category = "Changeling"
|
set category = "Changeling"
|
||||||
set name = "Bioelectrogenesis (20 + 10/shock)"
|
set name = "Bioelectrogenesis (20 + 10/shock)"
|
||||||
set desc = "Recharges anything in your hand, or shocks people."
|
set desc = "Recharges anything in your hand, or shocks people."
|
||||||
@@ -33,19 +33,28 @@
|
|||||||
return 0
|
return 0
|
||||||
|
|
||||||
else
|
else
|
||||||
|
// Handle glove conductivity.
|
||||||
|
var/obj/item/clothing/gloves/gloves = src.gloves
|
||||||
|
var/siemens = 1
|
||||||
|
if(gloves)
|
||||||
|
siemens = gloves.siemens_coefficient
|
||||||
|
|
||||||
//If we're grabbing someone, electrocute them.
|
//If we're grabbing someone, electrocute them.
|
||||||
if(istype(held_item,/obj/item/weapon/grab))
|
if(istype(held_item,/obj/item/weapon/grab))
|
||||||
var/obj/item/weapon/grab/G = held_item
|
var/obj/item/weapon/grab/G = held_item
|
||||||
if(G.affecting)
|
if(G.affecting)
|
||||||
G.affecting.electrocute_act(10,src,1.0,BP_TORSO)
|
G.affecting.electrocute_act(10 * siemens,src,1.0,BP_TORSO)
|
||||||
var/agony = 80 //Does more than if hit with an electric hand, since grabbing is slower.
|
var/agony = 80 * siemens //Does more than if hit with an electric hand, since grabbing is slower.
|
||||||
G.affecting.stun_effect_act(0, agony, BP_TORSO, src)
|
G.affecting.stun_effect_act(0, agony, BP_TORSO, src)
|
||||||
|
|
||||||
msg_admin_attack("[key_name(src)] shocked [key_name(G.affecting)] with the [src].")
|
msg_admin_attack("[key_name(src)] shocked [key_name(G.affecting)] with the [src].")
|
||||||
|
|
||||||
visible_message("<span class='warning'>Arcs of electricity strike [G.affecting]!</span>",
|
if(siemens)
|
||||||
"<span class='warning'>Our hand channels raw electricity into [G.affecting].</span>",
|
visible_message("<span class='warning'>Arcs of electricity strike [G.affecting]!</span>",
|
||||||
"<span class='italics'>You hear sparks!</span>")
|
"<span class='warning'>Our hand channels raw electricity into [G.affecting].</span>",
|
||||||
|
"<span class='italics'>You hear sparks!</span>")
|
||||||
|
else
|
||||||
|
src << "<span class='warning'>Our gloves block us from shocking \the [G.affecting].</span>"
|
||||||
src.mind.changeling.chem_charges -= 10
|
src.mind.changeling.chem_charges -= 10
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
@@ -69,17 +78,19 @@
|
|||||||
"<span class='warning'>Our hand channels raw electricity into \the [held_item].</span>",
|
"<span class='warning'>Our hand channels raw electricity into \the [held_item].</span>",
|
||||||
"<span class='italics'>You hear sparks!</span>")
|
"<span class='italics'>You hear sparks!</span>")
|
||||||
var/i = 10
|
var/i = 10
|
||||||
while(i)
|
if(siemens)
|
||||||
cell.charge += 100 //This should be a nice compromise between recharging guns and other batteries.
|
while(i)
|
||||||
if(cell.charge > cell.maxcharge)
|
cell.charge += 100 * siemens //This should be a nice compromise between recharging guns and other batteries.
|
||||||
cell.charge = cell.maxcharge
|
if(cell.charge > cell.maxcharge)
|
||||||
break
|
cell.charge = cell.maxcharge
|
||||||
var/T = get_turf(src)
|
break
|
||||||
new /obj/effect/effect/sparks(T)
|
if(siemens)
|
||||||
held_item.update_icon()
|
var/T = get_turf(src)
|
||||||
i--
|
new /obj/effect/effect/sparks(T)
|
||||||
sleep(1 SECOND)
|
held_item.update_icon()
|
||||||
success = 1
|
i--
|
||||||
|
sleep(1 SECOND)
|
||||||
|
success = 1
|
||||||
if(success == 0) //If we couldn't do anything with the ability, don't deduct the chemicals.
|
if(success == 0) //If we couldn't do anything with the ability, don't deduct the chemicals.
|
||||||
src << "<span class='warning'>We are unable to affect \the [held_item].</span>"
|
src << "<span class='warning'>We are unable to affect \the [held_item].</span>"
|
||||||
else
|
else
|
||||||
@@ -113,11 +124,18 @@
|
|||||||
if(src)
|
if(src)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
/obj/item/weapon/electric_hand/afterattack(var/atom/target, var/mob/living/user, proximity)
|
/obj/item/weapon/electric_hand/afterattack(var/atom/target, var/mob/living/carbon/human/user, proximity)
|
||||||
if(!target)
|
if(!target)
|
||||||
return
|
return
|
||||||
if(!proximity)
|
if(!proximity)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
// Handle glove conductivity.
|
||||||
|
var/obj/item/clothing/gloves/gloves = user.gloves
|
||||||
|
var/siemens = 1
|
||||||
|
if(gloves)
|
||||||
|
siemens = gloves.siemens_coefficient
|
||||||
|
|
||||||
//Excuse the copypasta.
|
//Excuse the copypasta.
|
||||||
if(istype(target,/mob/living/carbon))
|
if(istype(target,/mob/living/carbon))
|
||||||
var/mob/living/carbon/C = target
|
var/mob/living/carbon/C = target
|
||||||
@@ -126,14 +144,17 @@
|
|||||||
src << "<span class='warning'>We require more chemicals to electrocute [C]!</span>"
|
src << "<span class='warning'>We require more chemicals to electrocute [C]!</span>"
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
C.electrocute_act(electrocute_amount,src,1.0,BP_TORSO)
|
C.electrocute_act(electrocute_amount * siemens,src,1.0,BP_TORSO)
|
||||||
C.stun_effect_act(0, agony_amount, BP_TORSO, src)
|
C.stun_effect_act(0, agony_amount * siemens, BP_TORSO, src)
|
||||||
|
|
||||||
msg_admin_attack("[key_name(user)] shocked [key_name(C)] with the [src].")
|
msg_admin_attack("[key_name(user)] shocked [key_name(C)] with the [src].")
|
||||||
|
|
||||||
visible_message("<span class='warning'>Arcs of electricity strike [C]!</span>",
|
if(siemens)
|
||||||
"<span class='warning'>Our hand channels raw electricity into [C]</span>",
|
visible_message("<span class='warning'>Arcs of electricity strike [C]!</span>",
|
||||||
"<span class='italics'>You hear sparks!</span>")
|
"<span class='warning'>Our hand channels raw electricity into [C]</span>",
|
||||||
|
"<span class='italics'>You hear sparks!</span>")
|
||||||
|
else
|
||||||
|
src << "<span class='warning'>Our gloves block us from shocking \the [C].</span>"
|
||||||
//qdel(src) //Since we're no longer a one hit stun, we need to stick around.
|
//qdel(src) //Since we're no longer a one hit stun, we need to stick around.
|
||||||
user.mind.changeling.chem_charges -= shock_cost
|
user.mind.changeling.chem_charges -= shock_cost
|
||||||
return 1
|
return 1
|
||||||
@@ -145,11 +166,12 @@
|
|||||||
src << "<span class='warning'>We require more chemicals to electrocute [S]!</span>"
|
src << "<span class='warning'>We require more chemicals to electrocute [S]!</span>"
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
S.electrocute_act(60,src,1.0) //If only they had surge protectors.
|
S.electrocute_act(60 * siemens,src,1.0) //If only they had surge protectors.
|
||||||
visible_message("<span class='warning'>Arcs of electricity strike [S]!</span>",
|
if(siemens)
|
||||||
"<span class='warning'>Our hand channels raw electricity into [S]</span>",
|
visible_message("<span class='warning'>Arcs of electricity strike [S]!</span>",
|
||||||
"<span class='italics'>You hear sparks!</span>")
|
"<span class='warning'>Our hand channels raw electricity into [S]</span>",
|
||||||
S << "<span class='danger'>Warning: Electrical surge detected!</span>"
|
"<span class='italics'>You hear sparks!</span>")
|
||||||
|
S << "<span class='danger'>Warning: Electrical surge detected!</span>"
|
||||||
//qdel(src)
|
//qdel(src)
|
||||||
user.mind.changeling.chem_charges -= 10
|
user.mind.changeling.chem_charges -= 10
|
||||||
return 1
|
return 1
|
||||||
@@ -164,20 +186,22 @@
|
|||||||
"<span class='warning'>Our hand channels raw electricity into \the [target].</span>",
|
"<span class='warning'>Our hand channels raw electricity into \the [target].</span>",
|
||||||
"<span class='italics'>You hear sparks!</span>")
|
"<span class='italics'>You hear sparks!</span>")
|
||||||
var/i = 10
|
var/i = 10
|
||||||
while(i)
|
if(siemens)
|
||||||
cell.charge += 100 //This should be a nice compromise between recharging guns and other batteries.
|
while(i)
|
||||||
if(cell.charge > cell.maxcharge)
|
cell.charge += 100 * siemens //This should be a nice compromise between recharging guns and other batteries.
|
||||||
cell.charge = cell.maxcharge
|
if(cell.charge > cell.maxcharge)
|
||||||
break //No point making sparks if the cell's full.
|
cell.charge = cell.maxcharge
|
||||||
// if(!Adjacent(T))
|
break //No point making sparks if the cell's full.
|
||||||
// break
|
// if(!Adjacent(T))
|
||||||
var/Turf = get_turf(src)
|
// break
|
||||||
new /obj/effect/effect/sparks(Turf)
|
if(siemens)
|
||||||
T.update_icon()
|
var/Turf = get_turf(src)
|
||||||
i--
|
new /obj/effect/effect/sparks(Turf)
|
||||||
sleep(1 SECOND)
|
T.update_icon()
|
||||||
success = 1
|
i--
|
||||||
break
|
sleep(1 SECOND)
|
||||||
|
success = 1
|
||||||
|
break
|
||||||
if(success == 0)
|
if(success == 0)
|
||||||
src << "<span class='warning'>We are unable to affect \the [target].</span>"
|
src << "<span class='warning'>We are unable to affect \the [target].</span>"
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -18,14 +18,13 @@
|
|||||||
var/mob/living/carbon/C = src
|
var/mob/living/carbon/C = src
|
||||||
|
|
||||||
if(changeling.max_geneticpoints < 0) //Absorbed by another ling
|
if(changeling.max_geneticpoints < 0) //Absorbed by another ling
|
||||||
src << "<span class='danger'>You have no genomes, not even your own, and cannot regenerate.</span>"
|
src << "<span class='danger'>We have no genomes, not even our own, and cannot regenerate.</span>"
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
if(!C.stat && alert("Are we sure we wish to fake our death?",,"Yes","No") == "No")//Confirmation for living changelings if they want to fake their death
|
if(!C.stat && alert("Are we sure we wish to regenerate? We will appear to be dead while doing so.","Revival","Yes","No") == "No")
|
||||||
return
|
return
|
||||||
C << "<span class='notice'>We will attempt to regenerate our form.</span>"
|
C << "<span class='notice'>We will attempt to regenerate our form.</span>"
|
||||||
|
|
||||||
C.status_flags |= FAKEDEATH //play dead
|
|
||||||
C.update_canmove()
|
C.update_canmove()
|
||||||
C.remove_changeling_powers()
|
C.remove_changeling_powers()
|
||||||
|
|
||||||
@@ -33,13 +32,12 @@
|
|||||||
C.suiciding = 0
|
C.suiciding = 0
|
||||||
|
|
||||||
if(C.stat != DEAD)
|
if(C.stat != DEAD)
|
||||||
C.emote("deathgasp")
|
C.adjustOxyLoss(C.maxHealth * 2)
|
||||||
C.tod = worldtime2text()
|
|
||||||
|
|
||||||
spawn(rand(800,2000))
|
spawn(rand(800,2000))
|
||||||
//The ling will now be able to choose when to revive
|
//The ling will now be able to choose when to revive
|
||||||
src.verbs += /mob/proc/changeling_revive
|
src.verbs += /mob/proc/changeling_revive
|
||||||
src << "<span class='notice'>We are ready to rise. Use the Revive verb when you are ready.</span>"
|
src << "<span class='notice'><font size='5'>We are ready to rise. Use the <b>Revive</b> verb when you are ready.</font></span>"
|
||||||
|
|
||||||
feedback_add_details("changeling_powers","FD")
|
feedback_add_details("changeling_powers","FD")
|
||||||
return 1
|
return 1
|
||||||
@@ -25,8 +25,6 @@
|
|||||||
C.SetStunned(0)
|
C.SetStunned(0)
|
||||||
C.SetWeakened(0)
|
C.SetWeakened(0)
|
||||||
C.radiation = 0
|
C.radiation = 0
|
||||||
C.halloss = 0
|
|
||||||
C.shock_stage = 0 //Pain
|
|
||||||
C.heal_overall_damage(C.getBruteLoss(), C.getFireLoss())
|
C.heal_overall_damage(C.getBruteLoss(), C.getFireLoss())
|
||||||
C.reagents.clear_reagents()
|
C.reagents.clear_reagents()
|
||||||
C.restore_all_organs(ignore_prosthetic_prefs=1) //Covers things like fractures and other things not covered by the above.
|
C.restore_all_organs(ignore_prosthetic_prefs=1) //Covers things like fractures and other things not covered by the above.
|
||||||
@@ -36,8 +34,13 @@
|
|||||||
H.mutations.Remove(HUSK)
|
H.mutations.Remove(HUSK)
|
||||||
H.status_flags -= DISFIGURED
|
H.status_flags -= DISFIGURED
|
||||||
H.update_body(1)
|
H.update_body(1)
|
||||||
|
for(var/limb in H.organs_by_name)
|
||||||
|
var/obj/item/organ/external/current_limb = H.organs_by_name[limb]
|
||||||
|
current_limb.undislocate()
|
||||||
|
|
||||||
|
C.halloss = 0
|
||||||
|
C.shock_stage = 0 //Pain
|
||||||
C << "<span class='notice'>We have regenerated.</span>"
|
C << "<span class='notice'>We have regenerated.</span>"
|
||||||
C.status_flags &= ~FAKEDEATH
|
|
||||||
C.update_canmove()
|
C.update_canmove()
|
||||||
C.mind.changeling.purchased_powers -= C
|
C.mind.changeling.purchased_powers -= C
|
||||||
feedback_add_details("changeling_powers","CR")
|
feedback_add_details("changeling_powers","CR")
|
||||||
|
|||||||
@@ -13,21 +13,16 @@
|
|||||||
minimal_access = list() //See /datum/job/assistant/get_access()
|
minimal_access = list() //See /datum/job/assistant/get_access()
|
||||||
alt_titles = list("Technical Assistant","Medical Intern","Research Assistant","Visitor", "Resident")
|
alt_titles = list("Technical Assistant","Medical Intern","Research Assistant","Visitor", "Resident")
|
||||||
|
|
||||||
/datum/job/assistant/equip(var/mob/living/carbon/human/H)
|
/datum/job/assistant/equip(var/mob/living/carbon/human/H, var/alt_title)
|
||||||
if(!H) return 0
|
if(!H) return 0
|
||||||
switch(H.backbag)
|
switch(H.backbag)
|
||||||
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
|
||||||
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/norm(H), slot_back)
|
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel/norm(H), slot_back)
|
||||||
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
|
||||||
if (H.mind.role_alt_title)
|
if(has_alt_title(H, alt_title,"Visitor")) //I doubt someone visiting the station would want to wear an ugly grey uniform
|
||||||
switch(H.mind.role_alt_title)
|
H.equip_to_slot_or_del(new /obj/item/clothing/under/assistantformal(H), slot_w_uniform)
|
||||||
if("Visitor") //I doubt someone visiting the station would want to wear an ugly grey uniform
|
else if(has_alt_title(H, alt_title,"Resident"))
|
||||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/assistantformal(H), slot_w_uniform)
|
H.equip_to_slot_or_del(new /obj/item/clothing/under/color/white(H), slot_w_uniform)
|
||||||
|
|
||||||
if("Resident")
|
|
||||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/color/white(H), slot_w_uniform)
|
|
||||||
else
|
|
||||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(H), slot_w_uniform)
|
|
||||||
else
|
else
|
||||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(H), slot_w_uniform)
|
H.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(H), slot_w_uniform)
|
||||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
|
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ obj/machinery/recharger
|
|||||||
anchored = 1
|
anchored = 1
|
||||||
use_power = 1
|
use_power = 1
|
||||||
idle_power_usage = 4
|
idle_power_usage = 4
|
||||||
active_power_usage = 15000 //15 kW
|
active_power_usage = 40000 //40 kW
|
||||||
var/obj/item/charging = null
|
var/obj/item/charging = null
|
||||||
var/list/allowed_devices = list(/obj/item/weapon/gun/energy, /obj/item/weapon/melee/baton, /obj/item/device/laptop, /obj/item/weapon/cell)
|
var/list/allowed_devices = list(/obj/item/weapon/gun/energy, /obj/item/weapon/melee/baton, /obj/item/device/laptop, /obj/item/weapon/cell)
|
||||||
var/icon_state_charged = "recharger2"
|
var/icon_state_charged = "recharger2"
|
||||||
|
|||||||
@@ -6,9 +6,9 @@
|
|||||||
name = "space heater"
|
name = "space heater"
|
||||||
desc = "Made by Space Amish using traditional space techniques, this heater is guaranteed not to set the station on fire."
|
desc = "Made by Space Amish using traditional space techniques, this heater is guaranteed not to set the station on fire."
|
||||||
var/obj/item/weapon/cell/cell
|
var/obj/item/weapon/cell/cell
|
||||||
var/cell_type = /obj/item/weapon/cell/apc
|
var/cell_type = /obj/item/weapon/cell/high
|
||||||
var/on = 0
|
var/on = 0
|
||||||
var/set_temperature = T0C + 50 //K
|
var/set_temperature = T0C + 20 //K
|
||||||
var/heating_power = 40000
|
var/heating_power = 40000
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -101,6 +101,78 @@ LINEN BINS
|
|||||||
icon_state = "sheetbrown"
|
icon_state = "sheetbrown"
|
||||||
item_state = "sheetbrown"
|
item_state = "sheetbrown"
|
||||||
|
|
||||||
|
/obj/item/weapon/bedsheet/ian
|
||||||
|
icon_state = "sheetian"
|
||||||
|
item_state = "bedsheet"
|
||||||
|
|
||||||
|
/obj/item/weapon/bedsheet/double
|
||||||
|
icon_state = "doublesheet"
|
||||||
|
item_state = "bedsheet"
|
||||||
|
|
||||||
|
/obj/item/weapon/bedsheet/bluedouble
|
||||||
|
icon_state = "doublesheetblue"
|
||||||
|
item_state = "sheetblue"
|
||||||
|
|
||||||
|
/obj/item/weapon/bedsheet/greendouble
|
||||||
|
icon_state = "doublesheetgreen"
|
||||||
|
item_state = "sheetgreen"
|
||||||
|
|
||||||
|
/obj/item/weapon/bedsheet/orangedouble
|
||||||
|
icon_state = "doublesheetorange"
|
||||||
|
item_state = "sheetorange"
|
||||||
|
|
||||||
|
/obj/item/weapon/bedsheet/purpledouble
|
||||||
|
icon_state = "doublesheetpurple"
|
||||||
|
item_state = "sheetpurple"
|
||||||
|
|
||||||
|
/obj/item/weapon/bedsheet/doublerainbow //all the way across the sky.
|
||||||
|
icon_state = "doublesheetrainbow"
|
||||||
|
item_state = "sheetrainbow"
|
||||||
|
|
||||||
|
/obj/item/weapon/bedsheet/doublered
|
||||||
|
icon_state = "doublesheetred"
|
||||||
|
item_state = "sheetred"
|
||||||
|
|
||||||
|
/obj/item/weapon/bedsheet/doubleyellow
|
||||||
|
icon_state = "doublesheetyellow"
|
||||||
|
item_state = "sheetyellow"
|
||||||
|
|
||||||
|
/obj/item/weapon/bedsheet/doublemime
|
||||||
|
icon_state = "doublesheetmime"
|
||||||
|
item_state = "sheetmime"
|
||||||
|
|
||||||
|
/obj/item/weapon/bedsheet/doubleclown
|
||||||
|
icon_state = "doublesheetclown"
|
||||||
|
item_state = "sheetclown"
|
||||||
|
|
||||||
|
/obj/item/weapon/bedsheet/doublecaptain
|
||||||
|
icon_state = "doublesheetcaptain"
|
||||||
|
item_state = "sheetcaptain"
|
||||||
|
|
||||||
|
/obj/item/weapon/bedsheet/doublerd
|
||||||
|
icon_state = "doublesheetrd"
|
||||||
|
item_state = "sheetrd"
|
||||||
|
|
||||||
|
/obj/item/weapon/bedsheet/doublehos
|
||||||
|
icon_state = "doublesheethos"
|
||||||
|
item_state = "sheethos"
|
||||||
|
|
||||||
|
/obj/item/weapon/bedsheet/doublehop
|
||||||
|
icon_state = "doublesheethop"
|
||||||
|
item_state = "sheethop"
|
||||||
|
|
||||||
|
/obj/item/weapon/bedsheet/doublece
|
||||||
|
icon_state = "doublesheetce"
|
||||||
|
item_state = "sheetce"
|
||||||
|
|
||||||
|
/obj/item/weapon/bedsheet/doublebrown
|
||||||
|
icon_state = "doublesheetbrown"
|
||||||
|
item_state = "sheetbrown"
|
||||||
|
|
||||||
|
/obj/item/weapon/bedsheet/doubleian
|
||||||
|
icon_state = "doublesheetian"
|
||||||
|
item_state = "bedsheet"
|
||||||
|
|
||||||
|
|
||||||
/obj/structure/bedsheetbin
|
/obj/structure/bedsheetbin
|
||||||
name = "linen bin"
|
name = "linen bin"
|
||||||
|
|||||||
@@ -176,6 +176,19 @@
|
|||||||
/obj/structure/bed/alien/New(var/newloc)
|
/obj/structure/bed/alien/New(var/newloc)
|
||||||
..(newloc,"resin")
|
..(newloc,"resin")
|
||||||
|
|
||||||
|
/obj/structure/bed/double
|
||||||
|
name = "double bed"
|
||||||
|
icon_state = "doublebed"
|
||||||
|
base_icon = "doublebed"
|
||||||
|
|
||||||
|
/obj/structure/bed/double/post_buckle_mob(mob/living/M as mob)
|
||||||
|
if(M == buckled_mob)
|
||||||
|
M.pixel_y = 13
|
||||||
|
M.old_y = 13
|
||||||
|
else
|
||||||
|
M.pixel_y = 0
|
||||||
|
M.old_y = 0
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Roller beds
|
* Roller beds
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -17,11 +17,31 @@
|
|||||||
for(var/datum/category_group/underwear/UWC in global_underwear.categories)
|
for(var/datum/category_group/underwear/UWC in global_underwear.categories)
|
||||||
var/datum/category_item/underwear/UWI = H.all_underwear[UWC.name]
|
var/datum/category_item/underwear/UWI = H.all_underwear[UWC.name]
|
||||||
var/item_name = UWI ? UWI.name : "None"
|
var/item_name = UWI ? UWI.name : "None"
|
||||||
dat += "[UWC.name]: <a href='?src=\ref[src];change_underwear=[UWC.name]'>[item_name]</a> <a href='?src=\ref[src];remove_underwear=[UWC.name]'>(Remove)</a><br>"
|
dat += "[UWC.name]: <a href='?src=\ref[src];change_underwear=[UWC.name]'>[item_name]</a>"
|
||||||
|
if(UWI)
|
||||||
|
for(var/datum/gear_tweak/gt in UWI.tweaks)
|
||||||
|
dat += " <a href='?src=\ref[src];underwear=[UWC.name];tweak=\ref[gt]'>[gt.get_contents(get_metadata(H, UWC.name, gt))]</a>"
|
||||||
|
dat += " <a href='?src=\ref[src];remove_underwear=[UWC.name]'>(Remove)</a><br>"
|
||||||
|
|
||||||
dat = jointext(dat)
|
dat = jointext(dat,null)
|
||||||
H << browse(dat, "window=wardrobe;size=400x200")
|
H << browse(dat, "window=wardrobe;size=400x200")
|
||||||
|
|
||||||
|
/obj/structure/undies_wardrobe/proc/get_metadata(var/mob/living/carbon/human/H, var/underwear_category, var/datum/gear_tweak/gt)
|
||||||
|
var/metadata = H.all_underwear_metadata[underwear_category]
|
||||||
|
if(!metadata)
|
||||||
|
metadata = list()
|
||||||
|
H.all_underwear_metadata[underwear_category] = metadata
|
||||||
|
|
||||||
|
var/tweak_data = metadata["[gt]"]
|
||||||
|
if(!tweak_data)
|
||||||
|
tweak_data = gt.get_default()
|
||||||
|
metadata["[gt]"] = tweak_data
|
||||||
|
return tweak_data
|
||||||
|
|
||||||
|
/obj/structure/undies_wardrobe/proc/set_metadata(var/mob/living/carbon/human/H, var/underwear_category, var/datum/gear_tweak/gt, var/new_metadata)
|
||||||
|
var/list/metadata = H.all_underwear_metadata[underwear_category]
|
||||||
|
metadata["[gt]"] = new_metadata
|
||||||
|
|
||||||
/obj/structure/undies_wardrobe/proc/human_who_can_use_underwear(var/mob/living/carbon/human/H)
|
/obj/structure/undies_wardrobe/proc/human_who_can_use_underwear(var/mob/living/carbon/human/H)
|
||||||
if(!istype(H) || !H.species || !(H.species.appearance_flags & HAS_UNDERWEAR))
|
if(!istype(H) || !H.species || !(H.species.appearance_flags & HAS_UNDERWEAR))
|
||||||
return FALSE
|
return FALSE
|
||||||
@@ -50,6 +70,18 @@
|
|||||||
if(selected_underwear && CanUseTopic(H, default_state))
|
if(selected_underwear && CanUseTopic(H, default_state))
|
||||||
H.all_underwear[UWC.name] = selected_underwear
|
H.all_underwear[UWC.name] = selected_underwear
|
||||||
. = TRUE
|
. = TRUE
|
||||||
|
else if(href_list["underwear"] && href_list["tweak"])
|
||||||
|
var/underwear = href_list["underwear"]
|
||||||
|
if(!(underwear in H.all_underwear))
|
||||||
|
return
|
||||||
|
var/datum/gear_tweak/gt = locate(href_list["tweak"])
|
||||||
|
if(!gt)
|
||||||
|
return
|
||||||
|
var/new_metadata = gt.get_metadata(usr, get_metadata(H, underwear, gt), "Wardrobe Underwear Selection")
|
||||||
|
if(new_metadata)
|
||||||
|
set_metadata(H, underwear, gt, new_metadata)
|
||||||
|
. = TRUE
|
||||||
|
|
||||||
if(.)
|
if(.)
|
||||||
H.update_body(1)
|
H.update_underwear()
|
||||||
interact(H)
|
interact(H)
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
/datum/preferences
|
/datum/preferences
|
||||||
var/list/all_underwear
|
var/list/all_underwear
|
||||||
|
var/list/all_underwear_metadata
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/general/equipment
|
/datum/category_item/player_setup_item/general/equipment
|
||||||
name = "Clothing"
|
name = "Clothing"
|
||||||
@@ -7,11 +8,13 @@
|
|||||||
|
|
||||||
/datum/category_item/player_setup_item/general/equipment/load_character(var/savefile/S)
|
/datum/category_item/player_setup_item/general/equipment/load_character(var/savefile/S)
|
||||||
S["all_underwear"] >> pref.all_underwear
|
S["all_underwear"] >> pref.all_underwear
|
||||||
|
S["all_underwear_metadata"] >> pref.all_underwear_metadata
|
||||||
S["backbag"] >> pref.backbag
|
S["backbag"] >> pref.backbag
|
||||||
S["pdachoice"] >> pref.pdachoice
|
S["pdachoice"] >> pref.pdachoice
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/general/equipment/save_character(var/savefile/S)
|
/datum/category_item/player_setup_item/general/equipment/save_character(var/savefile/S)
|
||||||
S["all_underwear"] << pref.all_underwear
|
S["all_underwear"] << pref.all_underwear
|
||||||
|
S["all_underwear_metadata"] << pref.all_underwear_metadata
|
||||||
S["backbag"] << pref.backbag
|
S["backbag"] << pref.backbag
|
||||||
S["pdachoice"] << pref.pdachoice
|
S["pdachoice"] << pref.pdachoice
|
||||||
|
|
||||||
@@ -27,15 +30,21 @@
|
|||||||
pref.all_underwear[WRC.name] = WRI.name
|
pref.all_underwear[WRC.name] = WRI.name
|
||||||
break
|
break
|
||||||
|
|
||||||
|
if(!istype(pref.all_underwear_metadata))
|
||||||
|
pref.all_underwear_metadata = list()
|
||||||
|
|
||||||
for(var/underwear_category in pref.all_underwear)
|
for(var/underwear_category in pref.all_underwear)
|
||||||
var/datum/category_group/underwear/UWC = global_underwear.categories_by_name[underwear_category]
|
var/datum/category_group/underwear/UWC = global_underwear.categories_by_name[underwear_category]
|
||||||
if(!UWC)
|
if(!UWC)
|
||||||
pref.all_underwear -= UWC
|
pref.all_underwear -= underwear_category
|
||||||
else
|
else
|
||||||
var/datum/category_item/underwear/UWI = UWC.items_by_name[pref.all_underwear[underwear_category]]
|
var/datum/category_item/underwear/UWI = UWC.items_by_name[pref.all_underwear[underwear_category]]
|
||||||
if(!UWI)
|
if(!UWI)
|
||||||
pref.all_underwear -= UWC
|
pref.all_underwear -= underwear_category
|
||||||
|
|
||||||
|
for(var/underwear_metadata in pref.all_underwear_metadata)
|
||||||
|
if(!(underwear_metadata in pref.all_underwear))
|
||||||
|
pref.all_underwear_metadata -= underwear_metadata
|
||||||
pref.backbag = sanitize_integer(pref.backbag, 1, backbaglist.len, initial(pref.backbag))
|
pref.backbag = sanitize_integer(pref.backbag, 1, backbaglist.len, initial(pref.backbag))
|
||||||
pref.pdachoice = sanitize_integer(pref.pdachoice, 1, pdachoicelist.len, initial(pref.pdachoice))
|
pref.pdachoice = sanitize_integer(pref.pdachoice, 1, pdachoicelist.len, initial(pref.pdachoice))
|
||||||
|
|
||||||
@@ -44,11 +53,34 @@
|
|||||||
. += "<b>Equipment:</b><br>"
|
. += "<b>Equipment:</b><br>"
|
||||||
for(var/datum/category_group/underwear/UWC in global_underwear.categories)
|
for(var/datum/category_group/underwear/UWC in global_underwear.categories)
|
||||||
var/item_name = pref.all_underwear[UWC.name] ? pref.all_underwear[UWC.name] : "None"
|
var/item_name = pref.all_underwear[UWC.name] ? pref.all_underwear[UWC.name] : "None"
|
||||||
. += "[UWC.name]: <a href='?src=\ref[src];change_underwear=[UWC.name]'><b>[item_name]</b></a><br>"
|
. += "[UWC.name]: <a href='?src=\ref[src];change_underwear=[UWC.name]'><b>[item_name]</b></a>"
|
||||||
|
var/datum/category_item/underwear/UWI = UWC.items_by_name[item_name]
|
||||||
|
if(UWI)
|
||||||
|
for(var/datum/gear_tweak/gt in UWI.tweaks)
|
||||||
|
. += " <a href='?src=\ref[src];underwear=[UWC.name];tweak=\ref[gt]'>[gt.get_contents(get_metadata(UWC.name, gt))]</a>"
|
||||||
|
|
||||||
|
. += "<br>"
|
||||||
. += "Backpack Type: <a href='?src=\ref[src];change_backpack=1'><b>[backbaglist[pref.backbag]]</b></a><br>"
|
. += "Backpack Type: <a href='?src=\ref[src];change_backpack=1'><b>[backbaglist[pref.backbag]]</b></a><br>"
|
||||||
. += "PDA Type: <a href='?src=\ref[src];change_pda=1'><b>[pdachoicelist[pref.pdachoice]]</b></a><br>"
|
. += "PDA Type: <a href='?src=\ref[src];change_pda=1'><b>[pdachoicelist[pref.pdachoice]]</b></a><br>"
|
||||||
|
|
||||||
return jointext(.)
|
return jointext(.,null)
|
||||||
|
|
||||||
|
/datum/category_item/player_setup_item/general/equipment/proc/get_metadata(var/underwear_category, var/datum/gear_tweak/gt)
|
||||||
|
var/metadata = pref.all_underwear_metadata[underwear_category]
|
||||||
|
if(!metadata)
|
||||||
|
metadata = list()
|
||||||
|
pref.all_underwear_metadata[underwear_category] = metadata
|
||||||
|
|
||||||
|
var/tweak_data = metadata["[gt]"]
|
||||||
|
if(!tweak_data)
|
||||||
|
tweak_data = gt.get_default()
|
||||||
|
metadata["[gt]"] = tweak_data
|
||||||
|
return tweak_data
|
||||||
|
|
||||||
|
/datum/category_item/player_setup_item/general/equipment/proc/set_metadata(var/underwear_category, var/datum/gear_tweak/gt, var/new_metadata)
|
||||||
|
var/list/metadata = pref.all_underwear_metadata[underwear_category]
|
||||||
|
metadata["[gt]"] = new_metadata
|
||||||
|
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/general/equipment/OnTopic(var/href,var/list/href_list, var/mob/user)
|
/datum/category_item/player_setup_item/general/equipment/OnTopic(var/href,var/list/href_list, var/mob/user)
|
||||||
if(href_list["change_backpack"])
|
if(href_list["change_backpack"])
|
||||||
@@ -72,4 +104,16 @@
|
|||||||
pref.all_underwear[UWC.name] = selected_underwear.name
|
pref.all_underwear[UWC.name] = selected_underwear.name
|
||||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||||
|
|
||||||
|
else if(href_list["underwear"] && href_list["tweak"])
|
||||||
|
var/underwear = href_list["underwear"]
|
||||||
|
if(!(underwear in pref.all_underwear))
|
||||||
|
return TOPIC_NOACTION
|
||||||
|
var/datum/gear_tweak/gt = locate(href_list["tweak"])
|
||||||
|
if(!gt)
|
||||||
|
return TOPIC_NOACTION
|
||||||
|
var/new_metadata = gt.get_metadata(usr, get_metadata(underwear, gt))
|
||||||
|
if(new_metadata)
|
||||||
|
set_metadata(underwear, gt, new_metadata)
|
||||||
|
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||||
|
|
||||||
return ..()
|
return ..()
|
||||||
@@ -17,8 +17,6 @@
|
|||||||
* Color adjustment
|
* Color adjustment
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var/datum/gear_tweak/color/gear_tweak_free_color_choice = new()
|
|
||||||
|
|
||||||
/datum/gear_tweak/color
|
/datum/gear_tweak/color
|
||||||
var/list/valid_colors
|
var/list/valid_colors
|
||||||
|
|
||||||
@@ -32,10 +30,10 @@ var/datum/gear_tweak/color/gear_tweak_free_color_choice = new()
|
|||||||
/datum/gear_tweak/color/get_default()
|
/datum/gear_tweak/color/get_default()
|
||||||
return valid_colors ? valid_colors[1] : COLOR_GRAY
|
return valid_colors ? valid_colors[1] : COLOR_GRAY
|
||||||
|
|
||||||
/datum/gear_tweak/color/get_metadata(var/user, var/metadata)
|
/datum/gear_tweak/color/get_metadata(var/user, var/metadata, var/title = "Character Preference")
|
||||||
if(valid_colors)
|
if(valid_colors)
|
||||||
return input(user, "Choose an item color.", "Character Preference", metadata) as null|anything in valid_colors
|
return input(user, "Choose a color.", title, metadata) as null|anything in valid_colors
|
||||||
return input(user, "Choose an item color.", "Global Preference", metadata) as color|null
|
return input(user, "Choose a color.", title, metadata) as color|null
|
||||||
|
|
||||||
/datum/gear_tweak/color/tweak_item(var/obj/item/I, var/metadata)
|
/datum/gear_tweak/color/tweak_item(var/obj/item/I, var/metadata)
|
||||||
if(valid_colors && !(metadata in valid_colors))
|
if(valid_colors && !(metadata in valid_colors))
|
||||||
|
|||||||
@@ -53,10 +53,26 @@
|
|||||||
display_name = "tie, blue"
|
display_name = "tie, blue"
|
||||||
path = /obj/item/clothing/accessory/blue
|
path = /obj/item/clothing/accessory/blue
|
||||||
|
|
||||||
|
/datum/gear/accessory/tie/blue_clip
|
||||||
|
display_name = "tie, blue with clip"
|
||||||
|
path = /obj/item/clothing/accessory/blue_clip
|
||||||
|
|
||||||
/datum/gear/accessory/tie/red
|
/datum/gear/accessory/tie/red
|
||||||
display_name = "tie, red"
|
display_name = "tie, red"
|
||||||
path = /obj/item/clothing/accessory/red
|
path = /obj/item/clothing/accessory/red
|
||||||
|
|
||||||
|
/datum/gear/accessory/tie/red_long
|
||||||
|
display_name = "tie, red long"
|
||||||
|
path = /obj/item/clothing/accessory/red_long
|
||||||
|
|
||||||
|
/datum/gear/accessory/tie/yellow
|
||||||
|
display_name = "tie, yellow"
|
||||||
|
path = /obj/item/clothing/accessory/yellow
|
||||||
|
|
||||||
|
/datum/gear/accessory/tie/navy
|
||||||
|
display_name = "tie, navy blue"
|
||||||
|
path = /obj/item/clothing/accessory/navy
|
||||||
|
|
||||||
/datum/gear/accessory/tie/horrible
|
/datum/gear/accessory/tie/horrible
|
||||||
display_name = "tie, socially disgraceful"
|
display_name = "tie, socially disgraceful"
|
||||||
path = /obj/item/clothing/accessory/horrible
|
path = /obj/item/clothing/accessory/horrible
|
||||||
|
|||||||
@@ -350,10 +350,17 @@ datum/preferences
|
|||||||
I.robotize()
|
I.robotize()
|
||||||
|
|
||||||
character.all_underwear.Cut()
|
character.all_underwear.Cut()
|
||||||
|
character.all_underwear_metadata.Cut()
|
||||||
|
|
||||||
for(var/underwear_category_name in all_underwear)
|
for(var/underwear_category_name in all_underwear)
|
||||||
var/underwear_item_name = all_underwear[underwear_category_name]
|
|
||||||
var/datum/category_group/underwear/underwear_category = global_underwear.categories_by_name[underwear_category_name]
|
var/datum/category_group/underwear/underwear_category = global_underwear.categories_by_name[underwear_category_name]
|
||||||
character.all_underwear[underwear_category_name] = underwear_category.items_by_name[underwear_item_name]
|
if(underwear_category)
|
||||||
|
var/underwear_item_name = all_underwear[underwear_category_name]
|
||||||
|
character.all_underwear[underwear_category_name] = underwear_category.items_by_name[underwear_item_name]
|
||||||
|
if(all_underwear_metadata[underwear_category_name])
|
||||||
|
character.all_underwear_metadata[underwear_category_name] = all_underwear_metadata[underwear_category_name]
|
||||||
|
else
|
||||||
|
all_underwear -= underwear_category_name
|
||||||
|
|
||||||
if(backbag > 4 || backbag < 1)
|
if(backbag > 4 || backbag < 1)
|
||||||
backbag = 1 //Same as above
|
backbag = 1 //Same as above
|
||||||
@@ -367,6 +374,7 @@ datum/preferences
|
|||||||
character.force_update_limbs()
|
character.force_update_limbs()
|
||||||
character.update_mutations(0)
|
character.update_mutations(0)
|
||||||
character.update_body(0)
|
character.update_body(0)
|
||||||
|
character.update_underwear(0)
|
||||||
character.update_hair(0)
|
character.update_hair(0)
|
||||||
character.update_icons()
|
character.update_icons()
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,7 @@
|
|||||||
var/datum/robolimb/synthetic //If they are a synthetic (aka synthetic torso)
|
var/datum/robolimb/synthetic //If they are a synthetic (aka synthetic torso)
|
||||||
|
|
||||||
var/list/all_underwear = list()
|
var/list/all_underwear = list()
|
||||||
|
var/list/all_underwear_metadata = list()
|
||||||
var/backbag = 2 //Which backpack type the player has chosen. Nothing, Satchel or Backpack.
|
var/backbag = 2 //Which backpack type the player has chosen. Nothing, Satchel or Backpack.
|
||||||
var/pdachoice = 1 //Which PDA type the player has chosen. Default, Slim, or Old.
|
var/pdachoice = 1 //Which PDA type the player has chosen. Default, Slim, or Old.
|
||||||
|
|
||||||
|
|||||||
@@ -109,29 +109,30 @@ Please contact me on #coderbus IRC. ~Carn x
|
|||||||
#define MUTATIONS_LAYER 1
|
#define MUTATIONS_LAYER 1
|
||||||
#define DAMAGE_LAYER 2
|
#define DAMAGE_LAYER 2
|
||||||
#define SURGERY_LEVEL 3 //bs12 specific.
|
#define SURGERY_LEVEL 3 //bs12 specific.
|
||||||
#define UNIFORM_LAYER 4
|
#define UNDERWEAR_LAYER 4
|
||||||
#define ID_LAYER 5
|
#define UNIFORM_LAYER 5
|
||||||
#define SHOES_LAYER 6
|
#define ID_LAYER 6
|
||||||
#define GLOVES_LAYER 7
|
#define SHOES_LAYER 7
|
||||||
#define BELT_LAYER 8
|
#define GLOVES_LAYER 8
|
||||||
#define SUIT_LAYER 9
|
#define BELT_LAYER 9
|
||||||
#define TAIL_LAYER 10 //bs12 specific. this hack is probably gonna come back to haunt me
|
#define SUIT_LAYER 10
|
||||||
#define GLASSES_LAYER 11
|
#define TAIL_LAYER 11 //bs12 specific. this hack is probably gonna come back to haunt me
|
||||||
#define BELT_LAYER_ALT 12
|
#define GLASSES_LAYER 12
|
||||||
#define SUIT_STORE_LAYER 13
|
#define BELT_LAYER_ALT 13
|
||||||
#define BACK_LAYER 14
|
#define SUIT_STORE_LAYER 14
|
||||||
#define HAIR_LAYER 15 //TODO: make part of head layer?
|
#define BACK_LAYER 15
|
||||||
#define EARS_LAYER 16
|
#define HAIR_LAYER 16 //TODO: make part of head layer?
|
||||||
#define FACEMASK_LAYER 17
|
#define EARS_LAYER 17
|
||||||
#define HEAD_LAYER 18
|
#define FACEMASK_LAYER 18
|
||||||
#define COLLAR_LAYER 19
|
#define HEAD_LAYER 19
|
||||||
#define HANDCUFF_LAYER 20
|
#define COLLAR_LAYER 20
|
||||||
#define LEGCUFF_LAYER 21
|
#define HANDCUFF_LAYER 21
|
||||||
#define L_HAND_LAYER 22
|
#define LEGCUFF_LAYER 22
|
||||||
#define R_HAND_LAYER 23
|
#define L_HAND_LAYER 23
|
||||||
#define FIRE_LAYER 24 //If you're on fire
|
#define R_HAND_LAYER 24
|
||||||
#define TARGETED_LAYER 25 //BS12: Layer for the target overlay from weapon targeting system
|
#define FIRE_LAYER 25 //If you're on fire
|
||||||
#define TOTAL_LAYERS 25
|
#define TARGETED_LAYER 26 //BS12: Layer for the target overlay from weapon targeting system
|
||||||
|
#define TOTAL_LAYERS 26
|
||||||
//////////////////////////////////
|
//////////////////////////////////
|
||||||
|
|
||||||
/mob/living/carbon/human
|
/mob/living/carbon/human
|
||||||
@@ -148,8 +149,12 @@ Please contact me on #coderbus IRC. ~Carn x
|
|||||||
|
|
||||||
if (icon_update)
|
if (icon_update)
|
||||||
icon = stand_icon
|
icon = stand_icon
|
||||||
for(var/image/I in overlays_standing)
|
for(var/entry in overlays_standing)
|
||||||
overlays += I
|
if(istype(entry, /image))
|
||||||
|
overlays += entry
|
||||||
|
else if(istype(entry, /list))
|
||||||
|
for(var/inner_entry in entry)
|
||||||
|
overlays += inner_entry
|
||||||
|
|
||||||
if(lying && !species.prone_icon) //Only rotate them if we're not drawing a specific icon for being prone.
|
if(lying && !species.prone_icon) //Only rotate them if we're not drawing a specific icon for being prone.
|
||||||
var/matrix/M = matrix()
|
var/matrix/M = matrix()
|
||||||
@@ -318,18 +323,24 @@ var/global/list/damage_icon_parts = list()
|
|||||||
//END CACHED ICON GENERATION.
|
//END CACHED ICON GENERATION.
|
||||||
stand_icon.Blend(base_icon,ICON_OVERLAY)
|
stand_icon.Blend(base_icon,ICON_OVERLAY)
|
||||||
|
|
||||||
//Underwear
|
|
||||||
if(species.appearance_flags & HAS_UNDERWEAR)
|
|
||||||
for(var/category in all_underwear)
|
|
||||||
var/datum/category_item/underwear/UW = all_underwear[category]
|
|
||||||
UW.apply_to_icon(stand_icon)
|
|
||||||
|
|
||||||
if(update_icons)
|
if(update_icons)
|
||||||
update_icons()
|
update_icons()
|
||||||
|
|
||||||
//tail
|
//tail
|
||||||
update_tail_showing(0)
|
update_tail_showing(0)
|
||||||
|
|
||||||
|
//UNDERWEAR OVERLAY
|
||||||
|
/mob/living/carbon/human/proc/update_underwear(var/update_icons=1)
|
||||||
|
overlays_standing[UNDERWEAR_LAYER] = null
|
||||||
|
|
||||||
|
if(species.appearance_flags & HAS_UNDERWEAR)
|
||||||
|
overlays_standing[UNDERWEAR_LAYER] = list()
|
||||||
|
for(var/category in all_underwear)
|
||||||
|
var/datum/category_item/underwear/UWI = all_underwear[category]
|
||||||
|
overlays_standing[UNDERWEAR_LAYER] += UWI.generate_image(all_underwear_metadata[category])
|
||||||
|
|
||||||
|
if(update_icons) update_icons()
|
||||||
|
|
||||||
//HAIR OVERLAY
|
//HAIR OVERLAY
|
||||||
/mob/living/carbon/human/proc/update_hair(var/update_icons=1)
|
/mob/living/carbon/human/proc/update_hair(var/update_icons=1)
|
||||||
//Reset our hair
|
//Reset our hair
|
||||||
@@ -429,6 +440,7 @@ var/global/list/damage_icon_parts = list()
|
|||||||
|
|
||||||
update_mutations(0)
|
update_mutations(0)
|
||||||
update_body(0)
|
update_body(0)
|
||||||
|
update_underwear(0)
|
||||||
update_hair(0)
|
update_hair(0)
|
||||||
update_inv_w_uniform(0)
|
update_inv_w_uniform(0)
|
||||||
update_inv_wear_id(0)
|
update_inv_wear_id(0)
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
organ_tag = "brain"
|
organ_tag = "brain"
|
||||||
parent_organ = BP_HEAD
|
parent_organ = BP_HEAD
|
||||||
vital = 1
|
vital = 1
|
||||||
|
var/brain_type = /obj/item/device/mmi
|
||||||
var/obj/item/device/mmi/stored_mmi
|
var/obj/item/device/mmi/stored_mmi
|
||||||
|
|
||||||
/obj/item/organ/internal/mmi_holder/Destroy()
|
/obj/item/organ/internal/mmi_holder/Destroy()
|
||||||
@@ -35,8 +36,10 @@
|
|||||||
|
|
||||||
/obj/item/organ/internal/mmi_holder/New(var/mob/living/carbon/human/new_owner, var/internal)
|
/obj/item/organ/internal/mmi_holder/New(var/mob/living/carbon/human/new_owner, var/internal)
|
||||||
..(new_owner, internal)
|
..(new_owner, internal)
|
||||||
if(!stored_mmi)
|
var/mob/living/carbon/human/dummy/mannequin/M = new_owner
|
||||||
stored_mmi = new(src)
|
if(istype(M))
|
||||||
|
return
|
||||||
|
stored_mmi = new brain_type(src)
|
||||||
sleep(-1)
|
sleep(-1)
|
||||||
update_from_mmi()
|
update_from_mmi()
|
||||||
|
|
||||||
@@ -80,10 +83,8 @@
|
|||||||
|
|
||||||
/obj/item/organ/internal/mmi_holder/posibrain
|
/obj/item/organ/internal/mmi_holder/posibrain
|
||||||
name = "positronic brain interface"
|
name = "positronic brain interface"
|
||||||
|
brain_type = /obj/item/device/mmi/digital/posibrain
|
||||||
/obj/item/organ/internal/mmi_holder/posibrain/New()
|
|
||||||
stored_mmi = new /obj/item/device/mmi/digital/posibrain(src)
|
|
||||||
..()
|
|
||||||
|
|
||||||
/obj/item/organ/internal/mmi_holder/posibrain/update_from_mmi()
|
/obj/item/organ/internal/mmi_holder/posibrain/update_from_mmi()
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -53,6 +53,13 @@
|
|||||||
|
|
||||||
-->
|
-->
|
||||||
<div class="commit sansserif">
|
<div class="commit sansserif">
|
||||||
|
<h2 class="date">30 May 2016</h2>
|
||||||
|
<h3 class="author">EmperorJon updated:</h3>
|
||||||
|
<ul class="changes bgimages16">
|
||||||
|
<li class="rscadd">Ports Baystation's setup screen changes, thanks to PsiOmegaDelta.</li>
|
||||||
|
<li class="rscadd">Includes character preview with toggleable equipment, visible loadout items, ghost character sprites, and custom colour underwear. Your underwear will have reset, so you'll need to set it back.</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<h2 class="date">29 May 2016</h2>
|
<h2 class="date">29 May 2016</h2>
|
||||||
<h3 class="author">Datraen updated:</h3>
|
<h3 class="author">Datraen updated:</h3>
|
||||||
<ul class="changes bgimages16">
|
<ul class="changes bgimages16">
|
||||||
|
|||||||
@@ -2337,3 +2337,9 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
|
|||||||
Zuhayr:
|
Zuhayr:
|
||||||
- tweak: 'Backend change: allowed accessories to be placed on any clothing item
|
- tweak: 'Backend change: allowed accessories to be placed on any clothing item
|
||||||
with the appropriate variables set.'
|
with the appropriate variables set.'
|
||||||
|
2016-05-30:
|
||||||
|
EmperorJon:
|
||||||
|
- rscadd: Ports Baystation's setup screen changes, thanks to PsiOmegaDelta.
|
||||||
|
- rscadd: Includes character preview with toggleable equipment, visible loadout
|
||||||
|
items, ghost character sprites, and custom colour underwear. Your underwear
|
||||||
|
will have reset, so you'll need to set it back.
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 119 KiB After Width: | Height: | Size: 119 KiB |
|
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 120 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 76 KiB |
@@ -92,7 +92,7 @@ NanoBaseHelpers = function ()
|
|||||||
return string.charAt(0).toUpperCase() + string.slice(1);
|
return string.charAt(0).toUpperCase() + string.slice(1);
|
||||||
},
|
},
|
||||||
// Display a bar. Used to show health, capacity, etc. Use difClass if the entire display bar class should be different
|
// Display a bar. Used to show health, capacity, etc. Use difClass if the entire display bar class should be different
|
||||||
displayBar: function(value, rangeMin, rangeMax, styleClass, showText, difClass) {
|
displayBar: function(value, rangeMin, rangeMax, styleClass, showText, difClass, direction) {
|
||||||
|
|
||||||
if (rangeMin < rangeMax)
|
if (rangeMin < rangeMax)
|
||||||
{
|
{
|
||||||
@@ -129,12 +129,21 @@ NanoBaseHelpers = function ()
|
|||||||
|
|
||||||
if (typeof difClass == 'undefined' || !difClass)
|
if (typeof difClass == 'undefined' || !difClass)
|
||||||
{
|
{
|
||||||
return '<div class="displayBar ' + styleClass + '"><div class="displayBarFill ' + styleClass + '" style="width: ' + percentage + '%;"></div><div class="displayBarText ' + styleClass + '">' + showText + '</div></div>';
|
difClass = ''
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(typeof direction == 'undefined' || !direction)
|
||||||
|
{
|
||||||
|
direction = 'width'
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
direction = 'height'
|
||||||
|
}
|
||||||
|
|
||||||
var percentage = Math.round((value - rangeMin) / (rangeMax - rangeMin) * 100);
|
var percentage = Math.round((value - rangeMin) / (rangeMax - rangeMin) * 100);
|
||||||
|
|
||||||
return '<div class="' + difClass + ' ' + styleClass + '"><div class="' + difClass + 'Fill ' + styleClass + '" style="height: ' + percentage + '%;"></div><div class="' + difClass + 'Text ' + styleClass + '">' + showText + '</div></div>';
|
return '<div class="displayBar' + difClass + ' ' + styleClass + '"><div class="displayBar' + difClass + 'Fill ' + styleClass + '" style="' + direction + ': ' + percentage + '%;"></div><div class="displayBar' + difClass + 'Text ' + styleClass + '">' + showText + '</div></div>';
|
||||||
},
|
},
|
||||||
// Display DNA Blocks (for the DNA Modifier UI)
|
// Display DNA Blocks (for the DNA Modifier UI)
|
||||||
displayDNABlocks: function(dnaString, selectedBlock, selectedSubblock, blockSize, paramKey) {
|
displayDNABlocks: function(dnaString, selectedBlock, selectedSubblock, blockSize, paramKey) {
|
||||||
|
|||||||
@@ -9,10 +9,10 @@ Used In File(s): \code\modules\xenobio2\machines\injector_computer.dm
|
|||||||
<div class="itemContent" style="text-align: center; width: 100px">
|
<div class="itemContent" style="text-align: center; width: 100px">
|
||||||
{{if data.beaker}}
|
{{if data.beaker}}
|
||||||
{{:data.reagentAmount}}u / {{:data.reagentMax}}u
|
{{:data.reagentAmount}}u / {{:data.reagentMax}}u
|
||||||
{{:helper.displayBar(data.reagentAmount, data.reagentMax, data.reagentMin, 'good', null, 'displayBarBeaker')}}
|
{{:helper.displayBar(data.reagentAmount, data.reagentMax, data.reagentMin, 'good', null, 'Beaker', 1)}}
|
||||||
{{else}}
|
{{else}}
|
||||||
<span class='bad'><b>ERR</b></span>
|
<span class='bad'><b>ERR</b></span>
|
||||||
{{:helper.displayBar(data.reagentAmount, data.reagentMax, data.reagentMin, 'good', null, 'displayBarBeaker')}}
|
{{:helper.displayBar(data.reagentAmount, data.reagentMax, data.reagentMin, 'good', null, 'Beaker', 1)}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
<div style="padding-left: 110px;">
|
<div style="padding-left: 110px;">
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
#include "code\_compatibility\509\JSON Writer.dm"
|
#include "code\_compatibility\509\JSON Writer.dm"
|
||||||
#include "code\_compatibility\509\text.dm"
|
#include "code\_compatibility\509\text.dm"
|
||||||
#include "code\_compatibility\509\type2type.dm"
|
#include "code\_compatibility\509\type2type.dm"
|
||||||
|
#include "code\_helpers\_global_objects.dm"
|
||||||
#include "code\_helpers\atmospherics.dm"
|
#include "code\_helpers\atmospherics.dm"
|
||||||
#include "code\_helpers\datum_pool.dm"
|
#include "code\_helpers\datum_pool.dm"
|
||||||
#include "code\_helpers\files.dm"
|
#include "code\_helpers\files.dm"
|
||||||
|
|||||||