diff --git a/_maps/shuttles/shiptest/voidcrew/thunderbird.dmm b/_maps/shuttles/shiptest/voidcrew/thunderbird.dmm index f3bed7aa44d..21212ff05c5 100644 --- a/_maps/shuttles/shiptest/voidcrew/thunderbird.dmm +++ b/_maps/shuttles/shiptest/voidcrew/thunderbird.dmm @@ -7,6 +7,17 @@ dir = 10 }, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood{ + pixel_y = 32; + layer = 12 + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/blood{ pixel_y = 32; layer = 12 @@ -125,6 +136,7 @@ /obj/effect/turf_decal/corner/yellow/mono, /obj/machinery/computer/mech_bay_power_console, /turf/open/floor/pod, +/turf/open/floor/pod, /area/ship/cargo) "dJ" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible, @@ -132,6 +144,7 @@ icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/aft) "dK" = ( @@ -187,6 +200,8 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/executive, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/executive, /area/ship/bridge) "fa" = ( /obj/effect/decal/cleanable/dirt, @@ -213,6 +228,9 @@ /obj/effect/turf_decal/industrial/caution, /obj/effect/decal/cleanable/dirt, /turf/open/floor/pod, +/obj/effect/turf_decal/industrial/caution, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod, /area/ship/cargo) "gp" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -232,6 +250,7 @@ }, /obj/structure/fans/tiny, /obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/turf_decal/industrial/hatch/yellow, /turf/open/floor/plating, /area/ship/cargo) "hg" = ( @@ -242,6 +261,9 @@ /obj/effect/turf_decal/industrial/loading, /obj/effect/decal/cleanable/dirt, /turf/open/floor/pod, +/obj/effect/turf_decal/industrial/loading, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod, /area/ship/cargo) "hx" = ( /turf/closed/wall/mineral/titanium, @@ -252,6 +274,8 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/pod, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod, /area/ship/cargo) "hU" = ( /obj/effect/turf_decal/corner/red/mono, @@ -289,11 +313,20 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/pod, /area/ship/cargo) +"iD" = ( +/obj/effect/turf_decal/industrial/loading, +/obj/structure/sign/warning/vacuum{ + pixel_x = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod, +/area/ship/cargo) "iK" = ( /obj/machinery/computer/autopilot{ dir = 8 }, /turf/open/floor/carpet/executive, +/turf/open/floor/carpet/executive, /area/ship/bridge) "iO" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible, @@ -304,6 +337,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/aft) "iY" = ( @@ -363,6 +397,10 @@ /obj/structure/sign/poster/official/nanotrasen_logo, /turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/cargo) +"kf" = ( +/obj/structure/sign/poster/official/nanotrasen_logo, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/cargo) "kE" = ( /obj/structure/cable{ icon_state = "2-4" @@ -377,6 +415,8 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/executive, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/executive, /area/ship/bridge) "lc" = ( /obj/effect/turf_decal/corner/red/mono, @@ -396,6 +436,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, /turf/open/floor/pod, +/turf/open/floor/pod, /area/ship/cargo) "lN" = ( /obj/structure/table/optable, @@ -421,6 +462,23 @@ name = "dried blood trail" }, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood{ + pixel_y = 32; + layer = 12 + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/radiation, +/obj/effect/decal/cleanable/blood/old{ + dir = 8; + icon_state = "trails_1"; + name = "dried blood trail" + }, +/obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/blood{ pixel_y = 32; layer = 12 @@ -440,6 +498,8 @@ }, /obj/effect/decal/cleanable/glass, /turf/open/floor/carpet/executive, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/carpet/executive, /area/ship/bridge) "nC" = ( /turf/closed/wall/mineral/titanium, @@ -451,6 +511,7 @@ dir = 8 }, /turf/open/floor/pod, +/turf/open/floor/pod, /area/ship/cargo) "nV" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ @@ -458,6 +519,8 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/pod, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod, /area/ship/cargo) "ov" = ( /obj/structure/table/reinforced, @@ -528,6 +591,11 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/executive, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/executive, /area/ship/bridge) "pR" = ( /obj/effect/turf_decal/corner/red/mono, @@ -558,6 +626,10 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/radiation{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/aft) "qj" = ( @@ -580,6 +652,9 @@ /obj/effect/turf_decal/industrial/radiation, /obj/machinery/suit_storage_unit/radsuit, /obj/item/tank/internals/oxygen, +/obj/effect/turf_decal/industrial/radiation, +/obj/machinery/suit_storage_unit/radsuit, +/obj/item/tank/internals/oxygen, /turf/open/floor/plating, /area/ship/maintenance/aft) "qJ" = ( @@ -623,6 +698,17 @@ /obj/effect/decal/cleanable/blood/gibs/body, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old{ + dir = 10; + icon_state = "trails_1"; + name = "dried blood trail" + }, +/obj/effect/decal/cleanable/blood/gibs/body, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/footprints, /obj/effect/decal/cleanable/blood/footprints{ dir = 1 }, @@ -739,6 +825,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /turf/open/floor/pod, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod, /area/ship/cargo) "un" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ @@ -779,6 +867,10 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/radiation{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/aft) "vN" = ( @@ -820,6 +912,16 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/blood/gibs/core, /obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/radiation, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/gibs/core, +/obj/effect/decal/cleanable/blood/footprints, /obj/effect/decal/cleanable/blood/footprints{ dir = 8 }, @@ -844,17 +946,25 @@ }, /obj/machinery/suit_storage_unit/ert/engineer, /obj/item/tank/internals/oxygen, +/obj/machinery/suit_storage_unit/ert/engineer, +/obj/item/tank/internals/oxygen, /turf/open/floor/plating, /area/ship/maintenance/aft) "ym" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/decal/cleanable/dirt, /turf/open/floor/pod, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod, /area/ship/cargo) "yK" = ( /obj/structure/sign/poster/official/nanotrasen_logo, /turf/closed/wall/mineral/titanium, /area/ship/crew/dorm) +"yK" = ( +/obj/structure/sign/poster/official/nanotrasen_logo, +/turf/closed/wall/mineral/titanium, +/area/ship/crew/dorm) "zq" = ( /turf/template_noop, /area/template_noop) @@ -877,6 +987,20 @@ /obj/item/stamp/captain, /obj/item/reagent_containers/food/drinks/bottle/lizardwine, /turf/open/floor/carpet/executive, +/obj/machinery/photocopier/faxmachine/longrange{ + layer = 3.1; + pixel_y = 6; + pixel_x = -4 + }, +/obj/item/paper_bin{ + pixel_y = 4; + pixel_x = 8 + }, +/obj/item/pen/fountain, +/obj/item/pen/fourcolor, +/obj/item/stamp/captain, +/obj/item/reagent_containers/food/drinks/bottle/lizardwine, +/turf/open/floor/carpet/executive, /area/ship/bridge) "zE" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible{ @@ -889,6 +1013,10 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/radiation{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/aft) "zL" = ( @@ -900,6 +1028,8 @@ }, /obj/effect/decal/cleanable/blood/gibs/bubblegum, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/gibs/bubblegum, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/aft) "zQ" = ( @@ -940,6 +1070,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/pod, /area/ship/cargo) +"BZ" = ( +/obj/effect/turf_decal/industrial/caution, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod, +/area/ship/cargo) "Cj" = ( /obj/effect/turf_decal/corner/yellow/mono, /obj/structure/rack, @@ -948,6 +1083,7 @@ /obj/item/t_scanner/adv_mining_scanner/lesser, /obj/item/t_scanner/adv_mining_scanner/lesser, /turf/open/floor/pod, +/turf/open/floor/pod, /area/ship/cargo) "Cu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer4{ @@ -961,6 +1097,7 @@ /obj/effect/turf_decal/corner/yellow/mono, /obj/machinery/airalarm/directional/west, /turf/open/floor/pod, +/turf/open/floor/pod, /area/ship/cargo) "Cy" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible, @@ -974,6 +1111,18 @@ }, /turf/open/floor/plating, /area/ship/maintenance/aft) +"Cy" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 1 + }, +/turf/open/floor/plating, +/area/ship/maintenance/aft) "Dd" = ( /obj/structure/cable{ icon_state = "1-4" @@ -1036,11 +1185,16 @@ dir = 2 }, /turf/open/floor/pod, +/turf/open/floor/pod, /area/ship/cargo) "Ft" = ( /obj/structure/sign/warning/radiation, /turf/closed/wall/mineral/titanium, /area/ship/maintenance/aft) +"Ft" = ( +/obj/structure/sign/warning/radiation, +/turf/closed/wall/mineral/titanium, +/area/ship/maintenance/aft) "Gm" = ( /obj/machinery/power/apc/auto_name/north, /obj/structure/cable{ @@ -1049,6 +1203,8 @@ /obj/machinery/holopad/emergency/command, /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/executive, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/executive, /area/ship/bridge) "Gw" = ( /obj/effect/turf_decal/corner/red/mono, @@ -1075,6 +1231,8 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/executive, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/executive, /area/ship/bridge) "GY" = ( /obj/machinery/power/terminal{ @@ -1087,6 +1245,9 @@ icon_state = "0-4" }, /obj/machinery/power/port_gen/pacman, +/obj/effect/turf_decal/industrial/radiation{ + dir = 1 + }, /obj/effect/turf_decal/industrial/radiation{ dir = 1 }, @@ -1103,6 +1264,7 @@ icon_state = "2-4" }, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/aft) "Im" = ( @@ -1229,6 +1391,10 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/radiation{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/aft) "MH" = ( @@ -1251,6 +1417,11 @@ /obj/effect/decal/cleanable/greenglow, /turf/open/floor/pod, /area/ship/cargo) +"NH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/greenglow, +/turf/open/floor/pod, +/area/ship/cargo) "NT" = ( /obj/structure/cable{ icon_state = "4-8" @@ -1342,6 +1513,26 @@ }, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/blood/footprints, +/obj/effect/decal/cleanable/blood/footprints{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/ship/maintenance/aft) +"Ri" = ( +/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/old{ + icon_state = "trails_1"; + name = "dried blood trail" + }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/blood/footprints, /obj/effect/decal/cleanable/blood/footprints{ dir = 1 }, @@ -1355,6 +1546,8 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/pod, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod, /area/ship/cargo) "SC" = ( /obj/effect/turf_decal/corner/lime/mono, @@ -1414,10 +1607,13 @@ /obj/effect/turf_decal/corner/yellow/mono, /obj/machinery/ore_silo, /turf/open/floor/pod, +/turf/open/floor/pod, /area/ship/cargo) "Vl" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/pod, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod, /area/ship/cargo) "Vs" = ( /obj/effect/turf_decal/corner/blue/mono, @@ -1447,6 +1643,8 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/pod, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod, /area/ship/cargo) "Ww" = ( /obj/machinery/am_shielding, @@ -1456,11 +1654,16 @@ /obj/structure/sign/poster/official/nanotrasen_logo, /turf/closed/wall/mineral/titanium, /area/ship/cargo) +"WG" = ( +/obj/structure/sign/poster/official/nanotrasen_logo, +/turf/closed/wall/mineral/titanium, +/area/ship/cargo) "WR" = ( /obj/machinery/atmospherics/components/unary/tank/toxins{ dir = 8 }, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/aft) "WY" = ( @@ -1478,6 +1681,7 @@ dir = 4 }, /turf/open/floor/pod, +/turf/open/floor/pod, /area/ship/cargo) "Xc" = ( /obj/effect/turf_decal/corner/lime/mono, @@ -1503,6 +1707,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/aft) "XH" = ( @@ -1521,6 +1726,17 @@ /obj/item/lighter/greyscale, /obj/item/lighter/greyscale, /obj/effect/decal/cleanable/ash, +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/chair/plastic{ + dir = 8 + }, +/obj/item/storage/fancy/cigarettes/cigars, +/obj/item/storage/fancy/cigarettes/cigpack_cannabis, +/obj/item/storage/fancy/cigarettes/cigpack_robustgold, +/obj/item/storage/fancy/cigarettes/cigpack_uplift, +/obj/item/lighter/greyscale, +/obj/item/lighter/greyscale, +/obj/effect/decal/cleanable/ash, /turf/open/floor/plating, /area/ship/maintenance/aft) "XM" = ( @@ -1544,6 +1760,10 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt/dust, +/obj/effect/turf_decal/industrial/radiation{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/ship/maintenance/aft) "Yh" = ( @@ -1572,6 +1792,8 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/executive, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/executive, /area/ship/bridge) "YY" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -1580,6 +1802,9 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/oil/slippery, /turf/open/floor/pod, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil/slippery, +/turf/open/floor/pod, /area/ship/cargo) "Zd" = ( /obj/effect/turf_decal/corner/yellow/mono, @@ -1588,6 +1813,8 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/pod, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/pod, /area/ship/cargo) "Zg" = ( /obj/effect/turf_decal/corner/yellow/mono, @@ -1595,6 +1822,7 @@ /obj/item/stack/sheet/glass/fifty, /obj/item/stack/sheet/metal/fifty, /turf/open/floor/pod, +/turf/open/floor/pod, /area/ship/cargo) "Zp" = ( /obj/structure/cable{ @@ -1621,6 +1849,8 @@ }, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/ash, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/ash, /turf/open/floor/plating, /area/ship/maintenance/aft) "ZX" = ( @@ -1632,6 +1862,10 @@ /obj/structure/sign/poster/official/nanotrasen_logo, /turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/crew/dorm) +"ZY" = ( +/obj/structure/sign/poster/official/nanotrasen_logo, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/dorm) (1,1,1) = {" zq @@ -1681,6 +1915,7 @@ zq oy IW JL +JL oy ya qu @@ -1704,6 +1939,8 @@ zL rk Cy Ri +Cy +Ri wp Ww Ww @@ -1763,6 +2000,7 @@ zq zq hx lc +lc me AA Dk @@ -1774,6 +2012,7 @@ Qb TK TK VH +VH qj VV ZX @@ -1792,9 +2031,12 @@ TK oy ur Ft +Ft TK ka JS +ka +JS vN VV Km @@ -1842,9 +2084,11 @@ uF uF aJ yK +yK "} (11,1,1) = {" WG +WG SG tp tp @@ -1863,11 +2107,14 @@ tj Xc ww dS +dS "} (12,1,1) = {" hc iD BZ +iD +BZ nD Ff Cv @@ -1879,32 +2126,39 @@ dK uF SC hg +hg Iv iq KW cM oO +oO "} (13,1,1) = {" hc hm NH +NH Vl Wp uj lk OZ ji +ji Lw ji +ji fy OI Dd dB un fa +fa tr dS +dS "} (14,1,1) = {" hc @@ -1918,14 +2172,18 @@ Yh Pc tD Ao +Ao uF bL LT hg hg +hg +hg Iv Ei uF +uF "} (15,1,1) = {" hc @@ -1950,12 +2208,14 @@ uF "} (16,1,1) = {" WG +WG tp SG WY Cj Vl Vg +Vg SG pG Tj @@ -1968,6 +2228,7 @@ Yv aJ uF yK +yK "} (17,1,1) = {" zq @@ -2041,10 +2302,12 @@ zq zq zq kf +kf dh dh dh ZY +ZY zq zq zq diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index f10068930b7..c0f632e81ce 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -134,8 +134,7 @@ #define NOMOUTH 22 #define NOSOCKS 23 // You cannot wear sock #define NO_BONES 24 //WS Edit - Breakable Bones -#define MUTCOLORS_SECONDARY 25 //! A second mutant colour for other things -#define SKINCOLORS 26 //Human skintones + //organ slots #define ORGAN_SLOT_BRAIN "brain" diff --git a/code/__DEFINES/bodyparts.dm b/code/__DEFINES/bodyparts.dm index 9783cbfaa88..c3d51099e3f 100644 --- a/code/__DEFINES/bodyparts.dm +++ b/code/__DEFINES/bodyparts.dm @@ -1,2 +1 @@ #define IS_ORGANIC_LIMB(A) (A.bodytype & BODYTYPE_ORGANIC) -#define IS_ROBOTIC_LIMB(A) (A.bodytype & BODYTYPE_ROBOTIC) diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index fdc2aa86af7..737c91b768c 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -19,7 +19,7 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/lizard, GLOB.animated_tails_list_lizard) init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, GLOB.tails_list_human) init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/human, GLOB.animated_tails_list_human) - init_sprite_accessory_subtypes(/datum/sprite_accessory/face_markings, GLOB.face_markings_list) + init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, GLOB.snouts_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/horns,GLOB.horns_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/ears, GLOB.ears_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, GLOB.wings_list) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 7bb76a3c7e4..487dc40549b 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -55,8 +55,8 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, GLOB.tails_list_human) if(!GLOB.tails_list_lizard.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/lizard, GLOB.tails_list_lizard) - if(!GLOB.face_markings_list.len) - init_sprite_accessory_subtypes(/datum/sprite_accessory/face_markings, GLOB.face_markings_list) + if(!GLOB.snouts_list.len) + init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, GLOB.snouts_list) if(!GLOB.horns_list.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/horns, GLOB.horns_list) if(!GLOB.ears_list.len) @@ -96,7 +96,7 @@ if(!GLOB.spider_mandibles_list.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/spider_mandibles, GLOB.spider_mandibles_list) //For now we will always return none for tail_human and ears. - return(list("mcolor" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),"ethcolor" = GLOB.color_list_ethereal[pick(GLOB.color_list_ethereal)], "tail_lizard" = pick(GLOB.tails_list_lizard), "tail_human" = "None", "wings" = "None", "face_markings" = pick(GLOB.face_markings_list), "horns" = pick(GLOB.horns_list), "ears" = "None", "frills" = pick(GLOB.frills_list), "spines" = pick(GLOB.spines_list), "body_markings" = pick(GLOB.body_markings_list), "legs" = "Normal Legs", "caps" = pick(GLOB.caps_list), "moth_wings" = pick(GLOB.moth_wings_list), "moth_fluff" = pick(GLOB.moth_fluff_list), "moth_markings" = pick(GLOB.moth_markings_list), "squid_face" = pick(GLOB.squid_face_list), "ipc_screen" = pick(GLOB.ipc_screens_list), "ipc_antenna" = pick(GLOB.ipc_antennas_list),"ipc_chassis" = pick(GLOB.ipc_chassis_list), "spider_legs" = pick(GLOB.spider_legs_list), "spider_spinneret" = pick(GLOB.spider_spinneret_list), "spider_mandibles" = pick(GLOB.spider_mandibles_list), "kepori_feathers" = pick(GLOB.kepori_feathers_list), "kepori_body_feathers" = pick(GLOB.kepori_body_feathers_list), "flavor_text" = "")) + return(list("mcolor" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),"ethcolor" = GLOB.color_list_ethereal[pick(GLOB.color_list_ethereal)], "tail_lizard" = pick(GLOB.tails_list_lizard), "tail_human" = "None", "wings" = "None", "snout" = pick(GLOB.snouts_list), "horns" = pick(GLOB.horns_list), "ears" = "None", "frills" = pick(GLOB.frills_list), "spines" = pick(GLOB.spines_list), "body_markings" = pick(GLOB.body_markings_list), "legs" = "Normal Legs", "caps" = pick(GLOB.caps_list), "moth_wings" = pick(GLOB.moth_wings_list), "moth_fluff" = pick(GLOB.moth_fluff_list), "moth_markings" = pick(GLOB.moth_markings_list), "squid_face" = pick(GLOB.squid_face_list), "ipc_screen" = pick(GLOB.ipc_screens_list), "ipc_antenna" = pick(GLOB.ipc_antennas_list),"ipc_chassis" = pick(GLOB.ipc_chassis_list), "spider_legs" = pick(GLOB.spider_legs_list), "spider_spinneret" = pick(GLOB.spider_spinneret_list), "spider_mandibles" = pick(GLOB.spider_mandibles_list), "kepori_feathers" = pick(GLOB.kepori_feathers_list), "kepori_body_feathers" = pick(GLOB.kepori_body_feathers_list), "flavor_text" = "")) /proc/random_hairstyle(gender) switch(gender) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 4f44491ae5f..70d1a1608c9 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -21,7 +21,7 @@ GLOBAL_LIST_EMPTY(socks_list) //stores /datum/sprite_accessory/socks indexed by GLOBAL_LIST_EMPTY(body_markings_list) GLOBAL_LIST_EMPTY(tails_list_lizard) GLOBAL_LIST_EMPTY(animated_tails_list_lizard) -GLOBAL_LIST_EMPTY(face_markings_list) +GLOBAL_LIST_EMPTY(snouts_list) GLOBAL_LIST_EMPTY(horns_list) GLOBAL_LIST_EMPTY(frills_list) GLOBAL_LIST_EMPTY(spines_list) diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 14bef808e11..fc76ca8c172 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -64,7 +64,7 @@ var/drop_amount = 3 var/deconstructible = TRUE -/obj/structure/fluff/attackby(obj/item/I, mob/living/user, params) +/obj/structure/barricade/wooden/attackby(obj/item/I, mob/living/user, params) if(I.tool_behaviour == TOOL_CROWBAR && deconstructible) user.visible_message("[user] starts prying [src]...", "You start prying [src]...") I.play_tool_sound(src) diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index ad184ba9817..7c9b066c2d9 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -420,6 +420,61 @@ icon_state = "tile" turf_type = /turf/open/floor/iron merge_type = /obj/item/stack/tile/iron + tile_reskin_types = list( + /obj/item/stack/tile/iron, + /obj/item/stack/tile/iron/edge, + /obj/item/stack/tile/iron/half, + /obj/item/stack/tile/iron/corner, + /obj/item/stack/tile/iron/large, + /obj/item/stack/tile/iron/textured, + /obj/item/stack/tile/iron/textured_edge, + /obj/item/stack/tile/iron/textured_corner, + /obj/item/stack/tile/iron/textured_large, + /obj/item/stack/tile/iron/small, + /obj/item/stack/tile/iron/diagonal, + /obj/item/stack/tile/iron/herringbone, + /obj/item/stack/tile/iron/white, + /obj/item/stack/tile/iron/white/smooth_edge, + /obj/item/stack/tile/iron/white/smooth_half, + /obj/item/stack/tile/iron/white/smooth_corner, + /obj/item/stack/tile/iron/white/smooth_large, + /obj/item/stack/tile/iron/white_side, + /obj/item/stack/tile/iron/white_corner, + /obj/item/stack/tile/iron/white/textured, + /obj/item/stack/tile/iron/white/textured_edge, + /obj/item/stack/tile/iron/white/textured_half, + /obj/item/stack/tile/iron/white/textured_corner, + /obj/item/stack/tile/iron/white/textured_large, + /obj/item/stack/tile/iron/white/small, + /obj/item/stack/tile/iron/white/diagonal, + /obj/item/stack/tile/iron/white/herringbone, + /obj/item/stack/tile/iron/dark, + /obj/item/stack/tile/iron/dark/smooth_edge, + /obj/item/stack/tile/iron/dark/smooth_half, + /obj/item/stack/tile/iron/dark/smooth_corner, + /obj/item/stack/tile/iron/dark/smooth_large, + /obj/item/stack/tile/iron/dark/small, + /obj/item/stack/tile/iron/dark/diagonal, + /obj/item/stack/tile/iron/dark/herringbone, + /obj/item/stack/tile/iron/checker, + /obj/item/stack/tile/iron/cafeteria, + /obj/item/stack/tile/iron/smooth, + /obj/item/stack/tile/iron/smooth_edge, + /obj/item/stack/tile/iron/smooth_corner, + /obj/item/stack/tile/iron/smooth_large, + /obj/item/stack/tile/iron/kitchen, + /obj/item/stack/tile/iron/kitchen/small, + /obj/item/stack/tile/iron/kitchen/diagonal, + /obj/item/stack/tile/iron/kitchen/herringbone, + /obj/item/stack/tile/iron/chapel, + /obj/item/stack/tile/iron/showroomfloor, + /obj/item/stack/tile/iron/solarpanel, + /obj/item/stack/tile/iron/freezer, + /obj/item/stack/tile/iron/grimy, + /obj/item/stack/tile/iron/tech, + /obj/item/stack/tile/iron/tech/grid, + /obj/item/stack/tile/iron/tech/techmaint + ) /obj/item/stack/tile/iron/cyborg custom_materials = null // All other Borg versions of items have no Metal or Glass - RR diff --git a/code/game/objects/structures/crates_lockers/crates/critter.dm b/code/game/objects/structures/crates_lockers/crates/critter.dm index 78bb1b06234..17e7a871220 100644 --- a/code/game/objects/structures/crates_lockers/crates/critter.dm +++ b/code/game/objects/structures/crates_lockers/crates/critter.dm @@ -2,6 +2,7 @@ name = "critter crate" desc = "A crate designed for safe transport of animals. It has an oxygen tank for safe transport in space." icon_state = "crittercrate" + base_icon_state = "crittercrate" horizontal = FALSE allow_objects = FALSE breakout_time = 600 diff --git a/code/game/objects/structures/crates_lockers/crates/large.dm b/code/game/objects/structures/crates_lockers/crates/large.dm index 5d43d82ec8f..b4004b7278e 100644 --- a/code/game/objects/structures/crates_lockers/crates/large.dm +++ b/code/game/objects/structures/crates_lockers/crates/large.dm @@ -2,6 +2,7 @@ name = "large crate" desc = "A hefty wooden crate. You'll need a crowbar to get it open." icon_state = "largecrate" + base_icon_state = "largecrate" density = TRUE storage_capacity = 100 //its mapper only, cant be closed again, its logical material_drop = /obj/item/stack/sheet/mineral/wood diff --git a/code/game/objects/structures/crates_lockers/crates/secure.dm b/code/game/objects/structures/crates_lockers/crates/secure.dm index b053581349a..2b143a05731 100644 --- a/code/game/objects/structures/crates_lockers/crates/secure.dm +++ b/code/game/objects/structures/crates_lockers/crates/secure.dm @@ -147,8 +147,6 @@ to_chat(user, span_warning("[src] is broken!")) -/obj/structure/closet/crate/secure/exo +/obj/structure/closet/crate/secure/cargo/mining/exo desc = "A lock-enabled crate used to carry EXOCON merchandise destined for export to potential buyers." name = "EXOCON storage crate" - icon = 'icons/obj/crates.dmi' - icon_state = "exocrate" diff --git a/code/game/objects/structures/crates_lockers/crates/wooden.dm b/code/game/objects/structures/crates_lockers/crates/wooden.dm index d5f9de4deb8..9848aaef733 100644 --- a/code/game/objects/structures/crates_lockers/crates/wooden.dm +++ b/code/game/objects/structures/crates_lockers/crates/wooden.dm @@ -4,6 +4,7 @@ material_drop = /obj/item/stack/sheet/mineral/wood material_drop_amount = 6 icon_state = "wooden" + base_icon_state = "wooden" open_sound = 'sound/machines/wooden_closet_open.ogg' close_sound = 'sound/machines/wooden_closet_close.ogg' open_sound_volume = 25 diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 82ad3adcf79..9898e6bcc0a 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -183,16 +183,18 @@ else to_chat(H, "Invalid color. Your color is not bright enough.") - if(MUTCOLORS_SECONDARY in H.dna.species.species_traits) - var/new_secondary_mutantcolor = input(user, "Choose your secondary skin color:", "Race change","#" + H.dna.features["mcolor2"]) as color|null - if(new_secondary_mutantcolor) - var/temp_hsv = RGBtoHSV(new_secondary_mutantcolor) + if(MUTCOLORS in H.dna.species.species_traits) + var/new_mutantcolor = input(user, "Choose your skin color:", "Race change","#"+H.dna.features["mcolor"]) as color|null + if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + return + if(new_mutantcolor) + var/temp_hsv = RGBtoHSV(new_mutantcolor) - if(ReadHSV(temp_hsv)[3] >= ReadHSV("#191919")[3]) // mutantcolors must be bright - H.dna.features["mcolor2"] = sanitize_hexcolor(new_secondary_mutantcolor) + if(ReadHSV(temp_hsv)[3] >= ReadHSV("#191919")[3]) // mutantcolors must be bright + H.dna.features["mcolor"] = sanitize_hexcolor(new_mutantcolor) - else - to_chat(H, "Invalid color. Your secondary color is not bright enough.") + else + to_chat(H, "Invalid color. Your color is not bright enough.") H.update_body() H.update_hair() diff --git a/code/modules/admin/create_mob.dm b/code/modules/admin/create_mob.dm index 44b532d29e5..7b40d1edeb6 100644 --- a/code/modules/admin/create_mob.dm +++ b/code/modules/admin/create_mob.dm @@ -28,7 +28,7 @@ H.dna.features["mcolor"] = random_short_color() H.dna.features["ethcolor"] = GLOB.color_list_ethereal[pick(GLOB.color_list_ethereal)] H.dna.features["tail_lizard"] = pick(GLOB.tails_list_lizard) - H.dna.features["face_markings"] = pick(GLOB.face_markings_list) + H.dna.features["snout"] = pick(GLOB.snouts_list) H.dna.features["horns"] = pick(GLOB.horns_list) H.dna.features["frills"] = pick(GLOB.frills_list) H.dna.features["spines"] = pick(GLOB.spines_list) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index aff471038cc..d875cb1c23f 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -1732,7 +1732,7 @@ access = ACCESS_QM contains = list(/obj/item/storage/backpack/duffelbag/mining_conscript) crate_name = "EXOCON Frontier starter kit" - crate_type = /obj/structure/closet/crate/secure/exo + crate_type = /obj/structure/closet/crate/secure/cargo/mining/exo /datum/supply_pack/service/hvyminer name = "Heavy Mining Kit" @@ -1740,7 +1740,7 @@ cost = 7500 access = ACCESS_QM crate_name = "EXOCON Heavy Operations Kit" - crate_type = /obj/structure/closet/crate/secure/exo + crate_type = /obj/structure/closet/crate/secure/cargo/mining/exo contains = list(/obj/item/clothing/suit/space/hardsuit/mining/heavy, /obj/item/clothing/shoes/bhop, /obj/item/reagent_containers/hypospray/medipen/stimpack/crisis, diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index dfb41e538ac..2f8fceee6ba 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -85,7 +85,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/eye_color = "000" //Eye color var/datum/species/pref_species = new /datum/species/human() //Mutant race var/species_looking_at = "human" //used as a helper to keep track of in the species select thingy - var/list/features = list("mcolor" = "FFF", "mcolor2" = "FFF", "ethcolor" = "9c3030", "tail_lizard" = "Smooth", "tail_human" = "None", "face_markings" = "None", "horns" = "None", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs", "moth_wings" = "Plain", "moth_fluff" = "Plain", "moth_markings" = "None", "spider_legs" = "Plain", "spider_spinneret" = "Plain", "spider_mandibles" = "Plain", "flavor_text" = "") + var/list/features = list("mcolor" = "FFF", "ethcolor" = "9c3030", "tail_lizard" = "Smooth", "tail_human" = "None", "snout" = "Round", "horns" = "None", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs", "moth_wings" = "Plain", "moth_fluff" = "Plain", "moth_markings" = "None", "spider_legs" = "Plain", "spider_spinneret" = "Plain", "spider_mandibles" = "Plain", "flavor_text" = "") var/list/randomise = list(RANDOM_UNDERWEAR = TRUE, RANDOM_UNDERWEAR_COLOR = TRUE, RANDOM_UNDERSHIRT = TRUE, RANDOM_SOCKS = TRUE, RANDOM_BACKPACK = TRUE, RANDOM_JUMPSUIT_STYLE = TRUE, RANDOM_EXOWEAR_STYLE = TRUE, RANDOM_HAIRSTYLE = TRUE, RANDOM_HAIR_COLOR = TRUE, RANDOM_FACIAL_HAIRSTYLE = TRUE, RANDOM_FACIAL_HAIR_COLOR = TRUE, RANDOM_SKIN_TONE = TRUE, RANDOM_EYE_COLOR = TRUE) var/list/friendlyGenders = list("Male" = "male", "Female" = "female", "Other" = "plural") var/phobia = "spiders" @@ -361,7 +361,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

Mutant Color

" dat += "    Change
" - dat += "    Change
" + mutant_colors = TRUE if(istype(pref_species, /datum/species/ethereal)) //not the best thing to do tbf but I dont know whats better. @@ -426,13 +426,13 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "" mutant_category = 0 - if("face_markings" in pref_species.default_features) + if("snout" in pref_species.default_features) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN - dat += "

Face Marking

" + dat += "

Snout

" - dat += "[features["face_markings"]]
" + dat += "[features["snout"]]
" mutant_category++ if(mutant_category >= MAX_MUTANT_ROWS) @@ -446,8 +446,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

Horns

" dat += "[features["horns"]]
" - dat += "    Change
" - dat += "[(randomise[RANDOM_HAIR_COLOR]) ? "Lock" : "Unlock"]
" mutant_category++ if(mutant_category >= MAX_MUTANT_ROWS) @@ -653,7 +651,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

Kepori Body Feathers

" dat += "[features["kepori_body_feathers"]]
" - dat += "    Change
" + dat += "    Change
" + dat += "[(randomise[RANDOM_FACIAL_HAIR_COLOR]) ? "Lock" : "Unlock"]
" mutant_category++ if(mutant_category >= MAX_MUTANT_ROWS) @@ -1736,17 +1735,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) else to_chat(user, "Invalid color. Your color is not bright enough.") - if("mutant_color_2") - var/new_mutantcolor = input(user, "Choose your character's secondary alien/mutant color:", "Character Preference","#" + features["mcolor2"]) as color|null - if(new_mutantcolor) - var/temp_hsv = RGBtoHSV(new_mutantcolor) - if(new_mutantcolor == "#000000") - features["mcolor2"] = pref_species.default_color - else if((MUTCOLORS_PARTSONLY in pref_species.species_traits) || ReadHSV(temp_hsv)[3] >= ReadHSV("#191919")[3]) // mutantcolors must be bright, but only if they affect the skin - features["mcolor2"] = sanitize_hexcolor(new_mutantcolor) - else - to_chat(user, "Invalid color. Your color is not bright enough.") - if("color_ethereal") var/new_etherealcolor = input(user, "Choose your ethereal color", "Character Preference") as null|anything in GLOB.color_list_ethereal if(new_etherealcolor) @@ -1765,11 +1753,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(new_tail) features["tail_human"] = new_tail - if("face_markings") - var/new_face_markings - new_face_markings = input(user, "Choose your character's face markings:", "Character Preference") as null|anything in GLOB.face_markings_list - if(new_face_markings) - features["face_markings"] = new_face_markings + if("snout") + var/new_snout + new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in GLOB.snouts_list + if(new_snout) + features["snout"] = new_snout if("horns") var/new_horns diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 8c51ad12e8e..056217849d4 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -386,7 +386,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car READ_FILE(S["feature_ethcolor"], features["ethcolor"]) READ_FILE(S["feature_lizard_tail"], features["tail_lizard"]) READ_FILE(S["feature_human_tail"], features["tail_human"]) - READ_FILE(S["feature_lizard_face_markings"], features["face_markings"]) + READ_FILE(S["feature_lizard_snout"], features["snout"]) READ_FILE(S["feature_lizard_horns"], features["horns"]) READ_FILE(S["feature_human_ears"], features["ears"]) READ_FILE(S["feature_lizard_frills"], features["frills"]) @@ -502,7 +502,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car features["ethcolor"] = copytext_char(features["ethcolor"], 1, 7) features["tail_lizard"] = sanitize_inlist(features["tail_lizard"], GLOB.tails_list_lizard) features["tail_human"] = sanitize_inlist(features["tail_human"], GLOB.tails_list_human, "None") - features["face_markings"] = sanitize_inlist(features["face_markings"], GLOB.face_markings_list) + features["snout"] = sanitize_inlist(features["snout"], GLOB.snouts_list) features["horns"] = sanitize_inlist(features["horns"], GLOB.horns_list) features["ears"] = sanitize_inlist(features["ears"], GLOB.ears_list, "None") features["frills"] = sanitize_inlist(features["frills"], GLOB.frills_list) @@ -565,11 +565,10 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["species"] , pref_species.id) WRITE_FILE(S["phobia"], phobia) WRITE_FILE(S["feature_mcolor"] , features["mcolor"]) - WRITE_FILE(S["feature_mcolor2"] , features["mcolor2"]) WRITE_FILE(S["feature_ethcolor"] , features["ethcolor"]) WRITE_FILE(S["feature_lizard_tail"] , features["tail_lizard"]) WRITE_FILE(S["feature_human_tail"] , features["tail_human"]) - WRITE_FILE(S["feature_lizard_face_markings"] , features["face_markings"]) + WRITE_FILE(S["feature_lizard_snout"] , features["snout"]) WRITE_FILE(S["feature_lizard_horns"] , features["horns"]) WRITE_FILE(S["feature_human_ears"] , features["ears"]) WRITE_FILE(S["feature_lizard_frills"] , features["frills"]) diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 4c07420ed15..3352fcb2cf0 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -7,6 +7,7 @@ name = "necropolis chest" desc = "It's watching you closely." icon_state = "necrocrate" + base_icon_state = "necrocrate" resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF /obj/structure/closet/crate/necropolis/tendril diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index d544b5e05ec..8f8913a3533 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -69,3 +69,4 @@ desc = "A mining car. This one doesn't work on rails, but has to be dragged." name = "Mining car (not for rails)" icon_state = "miningcar" + base_icon_state = "miningcar" diff --git a/code/modules/mob/dead/new_player/sprite_accessories.dm b/code/modules/mob/dead/new_player/sprite_accessories.dm index 1283f20e557..5a339d30810 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories.dm @@ -5,18 +5,19 @@ The process of adding in new hairstyles has been made pain-free and easy to do. Enjoy! - Doohl + Notice: This all gets automatically compiled in a list in dna.dm, so you do not have to define any UI values for sprite accessories manually for hair and facial hair. Just add in new hair types and the game will naturally adapt. + !!WARNING!!: changing existing hair information can be VERY hazardous to savefiles, to the point where you may completely corrupt a server's savefiles. Please refrain from doing this unless you absolutely know what you are doing, and have defined a conversion in savefile.dm */ -//Roundstart argument builds a specific list for roundstart parts where some parts may be locked -/proc/init_sprite_accessory_subtypes(prototype, list/L, list/male, list/female, roundstart = FALSE) +/proc/init_sprite_accessory_subtypes(prototype, list/L, list/male, list/female,var/roundstart = FALSE)//Roundstart argument builds a specific list for roundstart parts where some parts may be locked if(!istype(L)) L = list() if(!istype(male)) @@ -47,44 +48,20 @@ return L /datum/sprite_accessory - var/icon //the icon file the accessory is located in - var/icon_state //the icon_state of the accessory - var/name //the preview name of the accessory - var/gender = NEUTER //Determines if the accessory will be skipped or included in random hair generations - var/gender_specific //Something that can be worn by either gender, but looks different on each - var/use_static //determines if the accessory will be skipped by color preferences - var/color_src = MUTCOLORS //Currently only used by mutantparts so don't worry about hair and stuff. This is the source that this accessory will get its color from. Default is MUTCOLOR, but can also be HAIR, FACEHAIR, EYECOLOR and 0 if none. - var/secondary_color //Decides if this sprite has a secondary color in use. - var/locked = FALSE //Is this part locked from roundstart selection? Used for parts that apply effects - var/center = FALSE //Should we center the sprite? - var/limbs_id //The limbs id supplied for full-body replacing features. - var/image_alpha = 255 //The alpha for the accessory to use. + var/icon //the icon file the accessory is located in + var/icon_state //the icon_state of the accessory + var/name //the preview name of the accessory + var/gender = NEUTER //Determines if the accessory will be skipped or included in random hair generations + var/gender_specific //Something that can be worn by either gender, but looks different on each + var/use_static //determines if the accessory will be skipped by color preferences + var/color_src = MUTCOLORS //Currently only used by mutantparts so don't worry about hair and stuff. This is the source that this accessory will get its color from. Default is MUTCOLOR, but can also be HAIR, FACEHAIR, EYECOLOR and 0 if none. + var/hasinner //Decides if this sprite has an "inner" part, such as the fleshy parts on ears. + var/locked = FALSE //Is this part locked from roundstart selection? Used for parts that apply effects var/dimension_x = 32 var/dimension_y = 32 - var/body_zone = BODY_ZONE_CHEST //The body zone this accessory affects - var/synthetic_icon_state //The icon_state to use when the bodypart it's attached to is synthetic - var/synthetic_color_src //The color src to use instead of the normal src when synthetic, leave blank to use the normal src - -//Squids AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA whyyyy -/datum/sprite_accessory/squid_face - icon = 'icons/mob/mutant_bodyparts.dmi' - -/datum/sprite_accessory/squid_face/squidward - name = "Squidward" - icon_state = "squidward" - -/datum/sprite_accessory/squid_face/illithid - name = "Illithid" - icon_state = "illithid" - -/datum/sprite_accessory/squid_face/freaky - name = "Freaky" - icon_state = "freaky" - -/datum/sprite_accessory/squid_face/grabbers - name = "Grabbers" - icon_state = "grabbers" - + var/center = FALSE //Should we center the sprite? + var/limbs_id // The limbs id supplied for full-body replacing features. + var/image_alpha = 255 // The alpha for the accessory to use. ////////////////////// // Hair Definitions // @@ -1669,130 +1646,120 @@ /datum/sprite_accessory/body_markings icon = 'icons/mob/mutant_bodyparts.dmi' - color_src = MUTCOLORS_SECONDARY - body_zone = BODY_ZONE_CHEST /datum/sprite_accessory/body_markings/none name = "None" icon_state = "none" +/datum/sprite_accessory/body_markings/dtiger + name = "Dark Tiger Body" + icon_state = "dtiger" + gender_specific = 1 + /datum/sprite_accessory/body_markings/ltiger - name = "Tiger" - icon_state = "tiger" + name = "Light Tiger Body" + icon_state = "ltiger" + gender_specific = 1 /datum/sprite_accessory/body_markings/lbelly name = "Light Belly" icon_state = "lbelly" - -/datum/sprite_accessory/body_markings/cracks - name = "Cracks" - icon_state = "cracks" - -//Start tails + gender_specific = 1 /datum/sprite_accessory/tails icon = 'icons/mob/mutant_bodyparts.dmi' - body_zone = BODY_ZONE_CHEST - secondary_color = TRUE /datum/sprite_accessory/tails_animated icon = 'icons/mob/mutant_bodyparts.dmi' - secondary_color = TRUE - body_zone = BODY_ZONE_CHEST /datum/sprite_accessory/tails/lizard/smooth - name = "Smooth (Two color)" + name = "Smooth" icon_state = "smooth" /datum/sprite_accessory/tails_animated/lizard/smooth - name = "Smooth (Two color)" + name = "Smooth" icon_state = "smooth" -/datum/sprite_accessory/tails/lizard/smooth_onecolor - name = "Smooth (One color)" - icon_state = "smooth2" - secondary_color = FALSE +/datum/sprite_accessory/tails/lizard/dtiger + name = "Dark Tiger" + icon_state = "dtiger" -/datum/sprite_accessory/tails_animated/lizard/smooth_onecolor - name = "Smooth (One color)" - icon_state = "smooth2" +/datum/sprite_accessory/tails_animated/lizard/dtiger + name = "Dark Tiger" + icon_state = "dtiger" -/datum/sprite_accessory/tails/lizard/prosthetic - name = "Prosthetic" - icon_state = "synth" +/datum/sprite_accessory/tails/lizard/ltiger + name = "Light Tiger" + icon_state = "ltiger" -/datum/sprite_accessory/tails_animated/lizard/prosthetic - name = "Prosthetic" - icon_state = "synth" +/datum/sprite_accessory/tails_animated/lizard/ltiger + name = "Light Tiger" + icon_state = "ltiger" -/datum/sprite_accessory/tails/lizard/large - name = "Large" - icon_state = "large" +/datum/sprite_accessory/tails/lizard/spikes + name = "Spikes" + icon_state = "spikes" -/datum/sprite_accessory/tails_animated/lizard/large - name = "Large" - icon_state = "large" +/datum/sprite_accessory/tails_animated/lizard/spikes + name = "Spikes" + icon_state = "spikes" -/datum/sprite_accessory/tails/lizard/small - name = "Small" - icon_state = "small" +/datum/sprite_accessory/tails/human/none + name = "None" + icon_state = "none" -/datum/sprite_accessory/tails_animated/lizard/small - name = "Small" - icon_state = "small" +/datum/sprite_accessory/tails_animated/human/none + name = "None" + icon_state = "none" -//Start Face markings +/datum/sprite_accessory/tails/human/cat + name = "Cat" + icon_state = "cat" + color_src = HAIR -/datum/sprite_accessory/face_markings - icon = 'icons/mob/mutant_bodyparts.dmi' - body_zone = BODY_ZONE_HEAD - color_src = MUTCOLORS_SECONDARY +/datum/sprite_accessory/tails_animated/human/cat + name = "Cat" + icon_state = "cat" + color_src = HAIR -/datum/sprite_accessory/face_markings/none - name = "None" - icon_state = "none" +/datum/sprite_accessory/tails/human/cat/slime + name = "Slimecat" + icon_state = "cat" + color_src = HAIR + image_alpha = 150 + +/datum/sprite_accessory/tails_animated/human/cat/slime + name = "Slimecat" + icon_state = "cat" + color_src = HAIR + image_alpha = 150 -/datum/sprite_accessory/face_markings/jaw - name = "Jaw" - icon_state = "jaw" +/datum/sprite_accessory/snouts + icon = 'icons/mob/mutant_bodyparts.dmi' -/datum/sprite_accessory/face_markings/top - name = "Top Stripe" - icon_state = "top" +/datum/sprite_accessory/snouts/sharp + name = "Sharp" + icon_state = "sharp" -/datum/sprite_accessory/face_markings/eye - name = "Alligator Skink" - icon_state = "eye" +/datum/sprite_accessory/snouts/round + name = "Round" + icon_state = "round" -/datum/sprite_accessory/face_markings/dome - name = "Dome" - icon_state = "dome" +/datum/sprite_accessory/snouts/sharplight + name = "Sharp + Light" + icon_state = "sharplight" -//Start Horns +/datum/sprite_accessory/snouts/roundlight + name = "Round + Light" + icon_state = "roundlight" /datum/sprite_accessory/horns icon = 'icons/mob/mutant_bodyparts.dmi' - color_src = HAIR - body_zone = BODY_ZONE_HEAD /datum/sprite_accessory/horns/none name = "None" icon_state = "none" -//new horns -/datum/sprite_accessory/horns/broken - name = "Broken" - icon_state = "broken" - -/datum/sprite_accessory/horns/lightning - name = "Lightning" - icon_state = "lightning" - -/datum/sprite_accessory/horns/brimstone - name = "Brimstone" - icon_state = "brimstone" - -//old horns /datum/sprite_accessory/horns/simple name = "Simple" icon_state = "simple" @@ -1805,7 +1772,7 @@ name = "Curled" icon_state = "curled" -/datum/sprite_accessory/horns/ram //remade +/datum/sprite_accessory/horns/ram name = "Ram" icon_state = "ram" @@ -1813,152 +1780,6 @@ name = "Angeler" icon_state = "angler" -//Start Frills - -/datum/sprite_accessory/frills - icon = 'icons/mob/mutant_bodyparts.dmi' - secondary_color = TRUE - -/datum/sprite_accessory/frills/none - name = "None" - icon_state = "none" - -//Ears are here because having frills+ears would overlap and be weird. - -/datum/sprite_accessory/frills/aquatic - name = "Aquatic" - icon_state = "aqua" - -/datum/sprite_accessory/frills/droopy - name = "Droopy" - icon_state = "droopy" - -/datum/sprite_accessory/frills/ears - name = "Normal ears" - icon_state = "ears" - -//End ears - -/datum/sprite_accessory/frills/frillhawk - name = "Frillhawk" - icon_state = "frillhawk" - -/datum/sprite_accessory/frills/neck - name = "Neck" - icon_state = "neck" - -/datum/sprite_accessory/frills/neckbig - name = "Frilled Dragon" - icon_state = "neckbig" - -/datum/sprite_accessory/frills/short - name = "Short" - icon_state = "short" - -/datum/sprite_accessory/frills/simple - name = "Simple" - icon_state = "simple" - -//Start Spines - -/datum/sprite_accessory/spines - icon = 'icons/mob/mutant_bodyparts.dmi' - -/datum/sprite_accessory/spines_animated - icon = 'icons/mob/mutant_bodyparts.dmi' - -/datum/sprite_accessory/spines/none - name = "None" - icon_state = "none" - -/datum/sprite_accessory/spines_animated/none - name = "None" - icon_state = "none" - -/datum/sprite_accessory/spines/short - name = "Short" - icon_state = "short" - -/datum/sprite_accessory/spines_animated/short - name = "Short" - icon_state = "short" - -/datum/sprite_accessory/spines/shortmeme - name = "Short + Membrane" - icon_state = "shortmeme" - -/datum/sprite_accessory/spines_animated/shortmeme - name = "Short + Membrane" - icon_state = "shortmeme" - -/datum/sprite_accessory/spines/long - name = "Long" - icon_state = "long" - -/datum/sprite_accessory/spines_animated/long - name = "Long" - icon_state = "long" - -/datum/sprite_accessory/spines/longmeme - name = "Long + Membrane" - icon_state = "longmeme" - -/datum/sprite_accessory/spines_animated/longmeme - name = "Long + Membrane" - icon_state = "longmeme" - -/datum/sprite_accessory/spines/aquatic - name = "Aquatic" - icon_state = "aqua" - -/datum/sprite_accessory/spines_animated/aquatic - name = "Aquatic" - icon_state = "aqua" - -//Leg stuff, no better place to put it, no point in a legs.dm file - -/datum/sprite_accessory/legs //legs are a special case, they aren't actually sprite_accessories but are updated with them. - icon = null //These datums exist for selecting legs on preference, and little else - -/datum/sprite_accessory/legs/none - name = "Normal Legs" - -/datum/sprite_accessory/legs/digitigrade_lizard - name = "Digitigrade Legs" - -/datum/sprite_accessory/tails/human/none - name = "None" - icon_state = "none" - -/datum/sprite_accessory/tails_animated/human/none - name = "None" - icon_state = "none" - -/datum/sprite_accessory/tails/human/cat - name = "Cat" - icon_state = "cat" - color_src = HAIR - -/datum/sprite_accessory/tails_animated/human/cat - name = "Cat" - icon_state = "cat" - color_src = HAIR - -/datum/sprite_accessory/tails/human/cat/slime - name = "Slimecat" - icon_state = "cat" - color_src = HAIR - image_alpha = 150 - -/datum/sprite_accessory/tails_animated/human/cat/slime - name = "Slimecat" - icon_state = "cat" - color_src = HAIR - image_alpha = 150 - -/datum/sprite_accessory/face_markings - icon = 'icons/mob/mutant_bodyparts.dmi' - /datum/sprite_accessory/ears icon = 'icons/mob/mutant_bodyparts.dmi' @@ -1969,13 +1790,13 @@ /datum/sprite_accessory/ears/cat name = "Cat" icon_state = "cat" - secondary_color = 1 + hasinner = 1 color_src = HAIR /datum/sprite_accessory/ears/cat/slime name = "Slimecat" icon_state = "cat" - secondary_color = FALSE + hasinner = FALSE color_src = HAIR image_alpha = 150 @@ -2055,6 +1876,88 @@ center = TRUE dimension_y = 32 +/datum/sprite_accessory/frills + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/frills/none + name = "None" + icon_state = "none" + +/datum/sprite_accessory/frills/simple + name = "Simple" + icon_state = "simple" + +/datum/sprite_accessory/frills/short + name = "Short" + icon_state = "short" + +/datum/sprite_accessory/frills/aquatic + name = "Aquatic" + icon_state = "aqua" + +/datum/sprite_accessory/spines + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/spines_animated + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/spines/none + name = "None" + icon_state = "none" + +/datum/sprite_accessory/spines_animated/none + name = "None" + icon_state = "none" + +/datum/sprite_accessory/spines/short + name = "Short" + icon_state = "short" + +/datum/sprite_accessory/spines_animated/short + name = "Short" + icon_state = "short" + +/datum/sprite_accessory/spines/shortmeme + name = "Short + Membrane" + icon_state = "shortmeme" + +/datum/sprite_accessory/spines_animated/shortmeme + name = "Short + Membrane" + icon_state = "shortmeme" + +/datum/sprite_accessory/spines/long + name = "Long" + icon_state = "long" + +/datum/sprite_accessory/spines_animated/long + name = "Long" + icon_state = "long" + +/datum/sprite_accessory/spines/longmeme + name = "Long + Membrane" + icon_state = "longmeme" + +/datum/sprite_accessory/spines_animated/longmeme + name = "Long + Membrane" + icon_state = "longmeme" + +/datum/sprite_accessory/spines/aqautic + name = "Aquatic" + icon_state = "aqua" + +/datum/sprite_accessory/spines_animated/aqautic + name = "Aquatic" + icon_state = "aqua" + +/datum/sprite_accessory/legs //legs are a special case, they aren't actually sprite_accessories but are updated with them. + icon = null //These datums exist for selecting legs on preference, and little else + +/datum/sprite_accessory/legs/none + name = "Normal Legs" + +/datum/sprite_accessory/legs/digitigrade_lizard + name = "Digitigrade Legs" + /datum/sprite_accessory/caps icon = 'icons/mob/mutant_bodyparts.dmi' color_src = HAIR diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 5b620d30a92..f45f620618e 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -822,9 +822,9 @@ GLOBAL_LIST_EMPTY(roundstart_races) else if ("tail" in mutant_bodyparts) bodyparts_to_add -= "waggingspines" - if("face_markings" in mutant_bodyparts) //Take a closer look at that snout! + if("snout" in mutant_bodyparts) //Take a closer look at that snout! if((H.wear_mask?.flags_inv & HIDEFACE) || (H.head?.flags_inv & HIDEFACE) || !HD) - bodyparts_to_add -= "face_markings" + bodyparts_to_add -= "snout" if("frills" in mutant_bodyparts) if(!H.dna.features["frills"] || H.dna.features["frills"] == "None" || (H.head?.flags_inv & HIDEEARS) || !HD) @@ -893,10 +893,15 @@ GLOBAL_LIST_EMPTY(roundstart_races) if((!H.wear_suit) || (H.wear_suit.supports_variations & DIGITIGRADE_VARIATION) || !(H.wear_suit.body_parts_covered & LEGS) || (H.wear_suit.supports_variations & DIGITIGRADE_VARIATION_NO_NEW_ICON)) //Checks suit compatability suit_compatible = TRUE - var/show_digitigrade = suit_compatible && (uniform_compatible || H.wear_suit?.flags_inv & HIDEJUMPSUIT) //If the uniform is hidden, it doesnt matter if its compatible - for(var/obj/item/bodypart/BP as anything in H.bodyparts) - if(BP.bodytype & BODYTYPE_DIGITIGRADE) - BP.plantigrade_forced = !show_digitigrade + if((uniform_compatible && suit_compatible) || (suit_compatible && H.wear_suit?.flags_inv & HIDEJUMPSUIT)) //If the uniform is hidden, it doesnt matter if its compatible + for(var/obj/item/bodypart/BP as anything in H.bodyparts) + if(BP.bodytype & BODYTYPE_DIGITIGRADE) + BP.limb_id = "digitigrade" + + else + for(var/obj/item/bodypart/BP as anything in H.bodyparts) + if(BP.bodytype & BODYTYPE_DIGITIGRADE) + BP.limb_id = "lizard" ///End digi handling @@ -928,8 +933,8 @@ GLOBAL_LIST_EMPTY(roundstart_races) S = GLOB.spines_list[H.dna.features["spines"]] if("waggingspines") S = GLOB.animated_spines_list[H.dna.features["spines"]] - if("face_markings") - S = GLOB.face_markings_list[H.dna.features["face_markings"]] + if("snout") + S = GLOB.snouts_list[H.dna.features["snout"]] if("frills") S = GLOB.frills_list[H.dna.features["frills"]] if("horns") @@ -979,41 +984,27 @@ GLOBAL_LIST_EMPTY(roundstart_races) //A little rename so we don't have to use tail_lizard or tail_human when naming the sprites. accessory_overlay.alpha = S.image_alpha - if(bodypart == "tail_lizard" || bodypart == "tail_human" || bodypart == "tail_elzu") + if(bodypart == "tail_lizard" || bodypart == "tail_human") bodypart = "tail" - else if(bodypart == "waggingtail_lizard" || bodypart == "waggingtail_human" || bodypart == "waggingtail_elzu") + else if(bodypart == "waggingtail_lizard" || bodypart == "waggingtail_human") bodypart = "waggingtail" - var/used_color_src = S.color_src - - var/icon_state_name = S.icon_state - if(S.synthetic_icon_state) - var/obj/item/bodypart/attachment_point = H.get_bodypart(S.body_zone) - if(attachment_point && IS_ROBOTIC_LIMB(attachment_point)) - icon_state_name = S.synthetic_icon_state - if(S.synthetic_color_src) - used_color_src = S.synthetic_color_src if(S.gender_specific) - accessory_overlay.icon_state = "[g]_[bodypart]_[icon_state_name]_[layertext]" + accessory_overlay.icon_state = "[g]_[bodypart]_[S.icon_state]_[layertext]" else - accessory_overlay.icon_state = "m_[bodypart]_[icon_state_name]_[layertext]" + accessory_overlay.icon_state = "m_[bodypart]_[S.icon_state]_[layertext]" if(S.center) accessory_overlay = center_image(accessory_overlay, S.dimension_x, S.dimension_y) if(!(HAS_TRAIT(H, TRAIT_HUSK))) if(!forced_colour) - switch(used_color_src) + switch(S.color_src) if(MUTCOLORS) if(fixed_mut_color) accessory_overlay.color = "#[fixed_mut_color]" else accessory_overlay.color = "#[H.dna.features["mcolor"]]" - if(MUTCOLORS_SECONDARY) - accessory_overlay.color = "#[H.dna.features["mcolor2"]]" - if(SKINCOLORS) - accessory_overlay.color = "#[(skintone2hex(H.skin_tone))]" - if(HAIR) if(hair_color == "mutcolor") accessory_overlay.color = "#[H.dna.features["mcolor"]]" @@ -1029,17 +1020,17 @@ GLOBAL_LIST_EMPTY(roundstart_races) accessory_overlay.color = forced_colour standing += accessory_overlay - if(S.secondary_color) - var/mutable_appearance/secondary_color_overlay = mutable_appearance(S.icon, layer = -layer) + if(S.hasinner) + var/mutable_appearance/inner_accessory_overlay = mutable_appearance(S.icon, layer = -layer) if(S.gender_specific) - secondary_color_overlay.icon_state = "[g]_[bodypart]_secondary_[S.icon_state]_[layertext]" + inner_accessory_overlay.icon_state = "[g]_[bodypart]inner_[S.icon_state]_[layertext]" else - secondary_color_overlay.icon_state = "m_[bodypart]_secondary_[S.icon_state]_[layertext]" + inner_accessory_overlay.icon_state = "m_[bodypart]inner_[S.icon_state]_[layertext]" if(S.center) - secondary_color_overlay = center_image(secondary_color_overlay, S.dimension_x, S.dimension_y) - secondary_color_overlay.color = "#[H.dna.features["mcolor2"]]" - standing += secondary_color_overlay + inner_accessory_overlay = center_image(inner_accessory_overlay, S.dimension_x, S.dimension_y) + + standing += inner_accessory_overlay H.overlays_standing[layer] = standing.Copy() standing = list() diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index d8cc23f72ab..eb29eae3f67 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -6,12 +6,12 @@ default_color = "00FF00" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,NO_UNDERWEAR) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_REPTILE - mutant_bodyparts = list("tail_lizard", "face_markings", "spines", "horns", "frills", "body_markings", "legs") + mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs") mutanttongue = /obj/item/organ/tongue/lizard mutant_organs = list(/obj/item/organ/tail/lizard) coldmod = 1.5 heatmod = 0.67 - default_features = list("mcolor" = "0F0", "tail_lizard" = "Smooth", "face_markings" = "None", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs") + default_features = list("mcolor" = "0F0", "tail_lizard" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None", "legs" = "Normal Legs") changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT attack_verb = "slash" attack_sound = 'sound/weapons/slash.ogg' diff --git a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm index 91695b27bc8..2063fe84c7e 100644 --- a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm +++ b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm @@ -111,6 +111,7 @@ desc = "An marked patch of soil, showing signs of a burial long ago. You wouldn't disturb a grave... right?" icon = 'icons/obj/crates_new.dmi' icon_state = "grave" + base_icon_state = "grave" dense_when_open = TRUE material_drop = /obj/item/stack/ore/glass/basalt material_drop_amount = 5 @@ -203,6 +204,7 @@ desc = "Even in a place filled to the brim with graves, this one shows a level of preperation and planning that fills you with dread." icon = 'icons/obj/crates_new.dmi' icon_state = "grave_lead" + base_icon_state = "grave_lead" lead_tomb = TRUE first_open = TRUE diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index cf9dca9bf91..fbd719c93bf 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -17,7 +17,6 @@ var/bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC //List of bodytypes flags, important for fitting clothing. var/change_exempt_flags //Defines when a bodypart should not be changed. Example: BP_BLOCK_CHANGE_SPECIES prevents the limb from being overwritten on species gain - var/plantigrade_forced = FALSE //Whether the clothing being worn forces the limb into being "squished" to plantigrade/standard humanoid compliance var/is_husked = FALSE //Duh var/limb_id = SPECIES_HUMAN //This is effectively the icon_state for limbs. var/limb_gender //Defines what sprite the limb should use if it is also sexually dimorphic. @@ -25,11 +24,6 @@ var/is_dimorphic = FALSE //Is there a sprite difference between male and female? var/draw_color //Greyscale draw color - /// The icon state of the limb's overlay, colored with a different color - var/overlay_icon_state - /// The color of the limb's overlay - var/species_secondary_color - var/body_zone //BODY_ZONE_CHEST, BODY_ZONE_L_ARM, etc , used for def_zone var/aux_zone // used for hands var/aux_layer @@ -551,9 +545,6 @@ else species_color = null - if(overlay_icon_state) - species_secondary_color = H.dna.features["mcolor2"] - UnregisterSignal(owner, COMSIG_MOVABLE_MOVED) if(NO_BONES in S.species_traits) bone_status = BONE_FLAG_NO_BONES @@ -638,44 +629,18 @@ else limb.icon_state = "[limb_id]_[body_zone]" - if(aux_zone) //Hand shit - aux = image(limb.icon, "[limb_id]_[aux_zone]", -aux_layer, image_dir) - . += aux - if(overlay_icon_state) - var/image/overlay = image(limb.icon, "[limb_id]_[aux_zone]_overlay", -aux_layer, image_dir) - overlay.color = "#[species_secondary_color]" - . += overlay + if(aux_zone) //Hand shit + aux = image(limb.icon, "[limb_id]_[aux_zone]", -aux_layer, image_dir) + . += aux - draw_color = mutation_color - if(should_draw_greyscale) //Should the limb be colored? - draw_color ||= (species_color) || (skin_tone && skintone2hex(skin_tone)) + draw_color = mutation_color + if(should_draw_greyscale) //Should the limb be colored? + draw_color ||= (species_color) || (skin_tone && skintone2hex(skin_tone)) - if(draw_color) - limb.color = "#[draw_color]" - if(aux_zone) - aux.color = "#[draw_color]" - - if(overlay_icon_state) - var/image/overlay = image(limb.icon, "[limb.icon_state]_overlay", -BODY_ADJ_LAYER, image_dir) - overlay.color = "#[species_secondary_color]" - . += overlay - - /*if(!is_husked) - //Draw external organs like horns and frills - for(var/obj/item/organ/external/external_organ as anything in external_organs) - if(!dropped && !external_organ.can_draw_on_bodypart(owner)) - continue - //Some externals have multiple layers for background, foreground and between - for(var/external_layer in external_organ.all_layers) - if(external_organ.layers & external_layer) - external_organ.generate_and_retrieve_overlays( - ., - image_dir, - external_organ.bitflag_to_layer(external_layer), - limb_gender, - )*/ - - return + if(draw_color) + limb.color = "#[draw_color]" + if(aux_zone) + aux.color = "#[draw_color]" /obj/item/bodypart/deconstruct(disassembled = TRUE) drop_organs() diff --git a/icons/mob/mutant_bodyparts.dmi b/icons/mob/mutant_bodyparts.dmi index d2d1601af55..a7e020232a9 100644 Binary files a/icons/mob/mutant_bodyparts.dmi and b/icons/mob/mutant_bodyparts.dmi differ diff --git a/icons/mob/species/lizard/bodyparts.dmi b/icons/mob/species/lizard/bodyparts.dmi index dfe84b2f50e..25e385802ff 100644 Binary files a/icons/mob/species/lizard/bodyparts.dmi and b/icons/mob/species/lizard/bodyparts.dmi differ