From ed6508e9ffe1d5ea7bb5eefc7ae80cd1caa35f7b Mon Sep 17 00:00:00 2001 From: Jovaniph Date: Sat, 22 Apr 2017 12:04:56 -0400 Subject: [PATCH 001/147] I hate doing map changes --- _maps/map_files/cyberiad/cyberiad.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index fe0d5aaed3f..dcccc107ed1 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -8048,7 +8048,7 @@ "cYN" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/engine/engineering) "cYO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/wall/r_wall,/area/engine/engineering) "cYP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5; level = 1},/turf/simulated/wall/r_wall,/area/atmos) -"cYQ" = (/obj/structure/table,/obj/item/clothing/head/welding{pixel_x = -5; pixel_y = 3},/obj/item/stack/sheet/glass{amount = 50},/obj/item/clothing/head/welding{pixel_x = -5; pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 3; name = "Atmospherics Requests Console"; pixel_y = -30},/turf/simulated/floor/plasteel,/area/atmos) +"cYQ" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 3; name = "Atmospherics Requests Console"; pixel_y = -30},/obj/item/clothing/glasses/welding,/obj/item/stack/sheet/glass{amount = 50},/obj/item/clothing/glasses/welding,/turf/simulated/floor/plasteel,/area/atmos) "cYR" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/weapon/wrench,/obj/item/device/pipe_painter,/obj/item/device/pipe_painter,/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 9},/turf/simulated/floor/plasteel,/area/atmos) "cYS" = (/obj/structure/table,/obj/item/device/t_scanner,/obj/item/device/multitool{pixel_x = 5},/obj/item/device/radio/headset/headset_eng,/obj/item/weapon/cartridge/atmos,/obj/item/weapon/cartridge/atmos,/obj/item/device/t_scanner,/turf/simulated/floor/plasteel,/area/atmos) "cYT" = (/obj/machinery/atmospherics/trinary/tvalve/digital/flipped,/turf/simulated/floor/plasteel,/area/atmos) From 0e421900229c6bb71090d65cfab90a42ed94d52d Mon Sep 17 00:00:00 2001 From: Jovaniph Date: Sat, 29 Apr 2017 06:15:47 -0400 Subject: [PATCH 002/147] merge conflict test --- _maps/map_files/cyberiad/cyberiad.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 6588c0fd90e..7af520ccbf5 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -8056,7 +8056,7 @@ "cYV" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor/plasteel,/area/atmos) "cYW" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold4w/visible,/turf/simulated/floor/plasteel,/area/atmos) "cYX" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/engine/engineering) -"cYY" = (/obj/structure/table,/obj/item/clothing/head/welding{pixel_x = -5; pixel_y = 3},/obj/item/stack/sheet/glass{amount = 50},/obj/item/clothing/head/welding{pixel_x = -5; pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 3; name = "Atmospherics Requests Console"; pixel_y = -30},/turf/simulated/floor/plasteel,/area/atmos) +"cYY" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/visible/universal{dir = 4},/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 3; name = "Atmospherics Requests Console"; pixel_y = -30},/obj/item/clothing/glasses/welding,/obj/item/stack/sheet/glass{amount = 50},/obj/item/clothing/glasses/welding,/turf/simulated/floor/plasteel,/area/atmos) "cYZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5; level = 1},/turf/simulated/wall/r_wall,/area/atmos) "cZa" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/weapon/wrench,/obj/item/device/pipe_painter,/obj/item/device/pipe_painter,/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 9},/turf/simulated/floor/plasteel,/area/atmos) "cZb" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Waste to Port"},/turf/simulated/floor/plasteel,/area/atmos) From 8461b5375e80f7c2ffc25612e64a3daeedd075e0 Mon Sep 17 00:00:00 2001 From: FlattestGuitar Date: Fri, 5 May 2017 14:42:44 +0200 Subject: [PATCH 003/147] Fluffs --- code/modules/customitems/item_defines.dm | 79 +++++++++++++++++++++++ icons/mob/inhands/fluff_lefthand.dmi | Bin 528 -> 718 bytes icons/mob/inhands/fluff_righthand.dmi | Bin 568 -> 667 bytes icons/mob/species/plasmaman/helmet.dmi | Bin 35027 -> 33400 bytes icons/mob/species/plasmaman/suit.dmi | Bin 46186 -> 50532 bytes icons/mob/uniform.dmi | Bin 342050 -> 343798 bytes icons/obj/custom_items.dmi | Bin 72645 -> 76174 bytes 7 files changed, 79 insertions(+) diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index 7a9620a1d1a..5f0d2ca58cb 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -360,6 +360,75 @@ return to_chat(user, "You can't modify [target]!") +/obj/item/device/fluff/lighty_plasman_modkit // LightFire53: Ikelos + name = "plasmaman suit modkit" + desc = "A kit containing nanites that are able to modify the look of a plasmaman suit and helmet without exposing the wearer to hostile environments." + icon_state = "modkit" + w_class = 2 + force = 0 + throwforce = 0 + var/list/options = list("Blue", "Gold", "Red") + var/picked_color = null + +/obj/item/device/fluff/lighty_plasman_modkit/afterattack(atom/target, mob/user, proximity) + if(!proximity || !ishuman(user) || user.incapacitated()) + return + var/mob/living/carbon/human/H = user + + if(istype(target, /obj/item/clothing/head/helmet/space/eva/plasmaman)) + if(used & USED_MOD_HELM) + to_chat(H, "The kit's helmet modifier has already been used.") + return + + picked_color = input(H, "Which color would you like to paint [target]?", "Recolor") as null|anything in options + var/obj/item/clothing/head/helmet/space/eva/plasmaman/P = target + + switch(picked_color) + if("Blue") + P.icon_state = "plasmaman_ikelosdefault_helmet[P.on]" + P.base_state = "plasmaman_ikelosdefault_helmet" + if("Gold") + P.icon_state = "plasmaman_ikelosgold_helmet[P.on]" + P.base_state = "plasmaman_ikelosgold_helmet" + if("Red") + P.icon_state = "plasmaman_ikelossecurity_helmet[P.on]" + P.base_state = "plasmaman_ikelossecurity_helmet" + else + return + + to_chat(H, "You modify the appearance of [target].") + P.icon = 'icons/obj/custom_items.dmi' + used |= USED_MOD_HELM + + if(P == H.head) + H.update_inv_head() + return + if(istype(target, /obj/item/clothing/suit/space/eva/plasmaman)) + if(used & USED_MOD_SUIT) + to_chat(user, "The kit's suit modifier has already been used.") + return + picked_color = input(H, "Which color would you like to paint [target]?", "Recolor") as null|anything in options + var/obj/item/clothing/suit/space/eva/plasmaman/P = target + + switch(picked_color) + if("Blue") + P.icon_state = "plasmaman_ikelosdefault" + if("Gold") + P.icon_state = "plasmaman_ikelosgold" + if("Red") + P.icon_state = "plasmaman_ikelossecurity" + else + return + + to_chat(H, "You modify the appearance of [target].") + P.icon = 'icons/obj/custom_items.dmi' + used |= USED_MOD_SUIT + + if(P == H.wear_suit) + H.update_inv_wear_suit() + return + to_chat(user, "You can't modify [target]!") + #undef USED_MOD_HELM #undef USED_MOD_SUIT @@ -560,6 +629,16 @@ item_state = "castile_dress" item_color = "castile_dress" +/obj/item/clothing/under/fluff/xantholne //Xantholne: Meex Zwichsnicrur + name = "Stripped Shorts and Shirt" + desc = "A silky pair of dark shorts with a matching shirt. The shirt's collar has a tag on the inside that reads 'Meexy' on it." + icon = 'icons/obj/custom_items.dmi' + lefthand_file = 'icons/mob/inhands/fluff_lefthand.dmi' + righthand_file = 'icons/mob/inhands/fluff_righthand.dmi' + icon_state = "xantholne" + item_state = "xantholne" + item_color = "xantholne" + /obj/item/clothing/under/fluff/elishirt // FlattestGuitar9: Eli Randolph name = "casual dress shirt" desc = "A soft, white dress shirt paired up with black suit pants. The set looks comfortable." diff --git a/icons/mob/inhands/fluff_lefthand.dmi b/icons/mob/inhands/fluff_lefthand.dmi index 84380f038edc280645384c635a2e438ca514a7fa..209f7660781e0df6989f1e6b491bbde22f616b0e 100644 GIT binary patch delta 576 zcmV-G0>Ax`1kME|iBL{Q4GJ0x0000DNk~Le0001h0001B2m=5B0OF*IdjJ3cNRcHd zIl}+|?d|Of3JM<|AM5}C*x1-DEiDEH1~M`-OiWBHEG(%30iPRRX8-^I0d!JMQvg8b z*k%9#0F04kc7F*fu1L%)$;i*iOU0#9S;5uM1?+49k-<0ax**N>0004;NklLR$X+Kb@0p8l@>o+(^@=`yNus_MMLs9ylBT004j_$J4L*oQ|KT zRQX&h_4!uFmHQI>%*Q@Y`Tk;`M;E#BsZ-)2R_43bnSU%J_Zn3C=~bmxrW~L6%v+@d zX`fn~0000000000{8f|==d$Jxts>L=z1K61e%=;zT;H1@<{giW{IzH5*#Zg9(q^CXk+;KvL*_UM~(Bdmt*F*twe3WiA5Ams9)?@*4 ze3ZYce1A<;q9#g^<LAKSHU+u3AILM0##Vwq=^%b<*y*EAIMq1+)XZe2`F@I zm>P=r=jfHc0X`#b{BI@-eMefbKS$4fx>EcKhW-@#n*oyncIpB6*L(oBSQsp@y!x5| O0000T>_;5 delta 385 zcmV-{0e=3@1&{}g6hoSf zkKjcNdDoa{u*)?g6en!zY+f;ups2?06m82oV#8#Gx5qdeCVN3smJJ&wD?ZQjwUX?d z_J^aItlX0HswOLs^X0B4f*=SJ(hfMJHyyA8-gZDD?SKU7gx-~KPUscjoFKtEL4tIG f1nC6HFFD}}t&2S`tj+&`00000NkvXXu0mjfWu2l7 diff --git a/icons/mob/inhands/fluff_righthand.dmi b/icons/mob/inhands/fluff_righthand.dmi index d93ab0ffc683824209883a16dd27cefe19e38685..d048ff860034d2af5d4f584f893efa3ecbaa45af 100644 GIT binary patch delta 525 zcmdnNGMiPkGr-TCmrII^fq{Y7)59eQNH+j+0tYjYe6*yi8c2CeRMoIN%)s#W?OQG` zE_r$RHw+9nZrsq-)n#L2Gcq#r@$u2o(OJpJ7`OG*1fY7xk|4ie28U-i(twbK%&hu2mwV2|{PTHCaW_hV<~lGhFE0F2v#Pr6LjC@t{B<$k zUPQ+J-}~EtM#I(r-~T4PdD{PP=kL<}&kFx$*WWU~VtX$5x7MDv=RVPSwb^DL_SA>+ z15E*e2TMCPcmz(H`n{{_$0?exSYLCUpjVUSbHr#`>@W*Y5g~aZkBGBSJ$00001bW%=J06^y0W&i*HfsuxGe{m^RR&e!m0Xqf&C{QbWKo=t|0003p zNklo3kSZ2t zo{rWQ!f+QSw^T^=H=X|f&cB`E0^sqSgfXGrIQj$243h6dMvj0HQ3s9)JK(3L?r8|^ zf7%L5{x(vEU5C)k?;gjqIRp-mjJS0)Ty%tW`5uqwya>6A%(cI1T)zl9BH>1yniS#` ztKw*oL^;R;t1<_ynxp1WR_HKM=YUmBrl4LUD^v3URyEVRMop1Lt0w$l34A3|HP*Ii zws?S4HIb;QNl(@AyjVWSl@|FMz@tPA6 z)vHUj;0$b3`MBW>6o&!Um1bo*V|}KHlts!JxLRiSoPM~j!~<(!xZl0A2L2UaoYXm3 T^N)Q=00000NkvXXu0mjfJ8QCY diff --git a/icons/mob/species/plasmaman/helmet.dmi b/icons/mob/species/plasmaman/helmet.dmi index f4771885c778e1b3d26a2d8cb8494fea5c762339..2e5cce0425691d38d481a95e68de4aadcb02393c 100644 GIT binary patch literal 33400 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%0ARq-MPt$$MmKC?3 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 literal 35027 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%0AWmGYP%Gh4B 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 P2zV&UsmlJ4HVgh=6m4<*%auW{H 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 l2x!#)k3szZZ$I3 Date: Sun, 7 May 2017 14:49:36 +0200 Subject: [PATCH 004/147] Associative lists --- code/modules/customitems/item_defines.dm | 43 +++++++++++------------- 1 file changed, 19 insertions(+), 24 deletions(-) diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index 5f0d2ca58cb..f1b2937565c 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -367,8 +367,15 @@ w_class = 2 force = 0 throwforce = 0 - var/list/options = list("Blue", "Gold", "Red") var/picked_color = null + var/list/helmets = list( + "Blue" = "plasmaman_ikelosdefault_helmet", + "Gold" = "plasmaman_ikelosgold_helmet", + "Red" = "plasmaman_ikelossecurity_helmet") + var/list/suits = list( + "Blue" = "plasmaman_ikelosdefault", + "Gold" = "plasmaman_ikelosgold", + "Red" = "plasmaman_ikelossecurity") /obj/item/device/fluff/lighty_plasman_modkit/afterattack(atom/target, mob/user, proximity) if(!proximity || !ishuman(user) || user.incapacitated()) @@ -380,21 +387,14 @@ to_chat(H, "The kit's helmet modifier has already been used.") return - picked_color = input(H, "Which color would you like to paint [target]?", "Recolor") as null|anything in options + picked_color = input(H, "Which color would you like to paint [target]?", "Recolor") as null|anything in helmets var/obj/item/clothing/head/helmet/space/eva/plasmaman/P = target - switch(picked_color) - if("Blue") - P.icon_state = "plasmaman_ikelosdefault_helmet[P.on]" - P.base_state = "plasmaman_ikelosdefault_helmet" - if("Gold") - P.icon_state = "plasmaman_ikelosgold_helmet[P.on]" - P.base_state = "plasmaman_ikelosgold_helmet" - if("Red") - P.icon_state = "plasmaman_ikelossecurity_helmet[P.on]" - P.base_state = "plasmaman_ikelossecurity_helmet" - else - return + if(picked_color) + P.icon_state = helmets[picked_color] + "[P.on]" + P.base_state = helmets[picked_color] + else + return to_chat(H, "You modify the appearance of [target].") P.icon = 'icons/obj/custom_items.dmi' @@ -407,18 +407,13 @@ if(used & USED_MOD_SUIT) to_chat(user, "The kit's suit modifier has already been used.") return - picked_color = input(H, "Which color would you like to paint [target]?", "Recolor") as null|anything in options + picked_color = input(H, "Which color would you like to paint [target]?", "Recolor") as null|anything in suits var/obj/item/clothing/suit/space/eva/plasmaman/P = target - switch(picked_color) - if("Blue") - P.icon_state = "plasmaman_ikelosdefault" - if("Gold") - P.icon_state = "plasmaman_ikelosgold" - if("Red") - P.icon_state = "plasmaman_ikelossecurity" - else - return + if(picked_color) + P.icon_state = suits[picked_color] + else + return to_chat(H, "You modify the appearance of [target].") P.icon = 'icons/obj/custom_items.dmi' From 8d3dbec00e7b606fcdd570d059762a466b562b00 Mon Sep 17 00:00:00 2001 From: FreeStylaLT Date: Wed, 24 May 2017 16:52:55 +0300 Subject: [PATCH 005/147] tweaks hallway, fire alarm, windoor and areas --- _maps/map_files/cyberiad/cyberiad.dmm | 30 +++++++++++++-------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 094c6e6c12f..01d0a0c0df3 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -574,7 +574,7 @@ "alb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/permabrig) "alc" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/security/permabrig) "ald" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Prisoner Transfer Center"; req_access = null; req_access_txt = "1"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) -"ale" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch/gamma{locked = 1; req_access_txt = "1"; use_power = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/permabrig) +"ale" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch/gamma{locked = 1; req_access_txt = "1"; use_power = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/armoury) "alf" = (/obj/machinery/vending/security,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/item/device/radio/intercom/department/security{pixel_x = -28},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/armoury) "alg" = (/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/armoury) "alh" = (/obj/effect/decal/warning_stripes/red/hollow,/obj/structure/closet/l3closet/security,/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 4},/area/security/armoury) @@ -621,7 +621,7 @@ "alW" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable,/turf/simulated/floor/plating,/area/security/warden) "alX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/poddoor/shutters{dir = 2; id_tag = "Secure Armory"; name = "Secure Armory Shutters"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/securearmoury) "alY" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable,/turf/simulated/floor/plating,/area/security/securearmoury) -"alZ" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{dir = 2; name = "Secure Armory"; req_access_txt = "3"},/obj/machinery/door/window/brigdoor{dir = 1; name = "Secure Armory"; req_access_txt = "3"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/securearmoury) +"alZ" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor{dir = 2; name = "Secure Armory"; req_access_txt = "1"},/obj/machinery/door/window/brigdoor{dir = 1; name = "Secure Armory"; req_access_txt = "3"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/securearmoury) "ama" = (/obj/structure/closet/secure_closet/security,/obj/structure/window/reinforced{dir = 8},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/security/main) "amb" = (/obj/structure/table,/obj/item/clothing/suit/tracksuit/red,/obj/item/device/radio/intercom/department/security{pixel_x = -28},/obj/machinery/camera{c_tag = "Brig Security Equipment Lockers"; dir = 4; network = list("SS13")},/obj/machinery/requests_console{department = "Security"; departmentType = 5; name = "Security Requests Console"; pixel_x = 0; pixel_y = 30},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/main) "amc" = (/obj/structure/closet/secure_closet/security,/obj/structure/sign/goldenplaque{pixel_y = 30},/obj/machinery/light{dir = 1; on = 1},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/main) @@ -873,9 +873,9 @@ "aqO" = (/obj/structure/sign/poster/legit{pixel_x = 0; pixel_y = 32},/obj/machinery/camera{c_tag = "Firing Range"; dir = 2; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "red"},/area/security/range) "aqP" = (/obj/structure/closet/crate,/obj/item/target,/obj/item/target,/obj/item/target,/obj/item/target,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plasteel,/area/security/range) "aqQ" = (/obj/effect/decal/cleanable/dirt,/obj/item/device/radio/intercom{broadcasting = 0; name = "station intercom (General)"; pixel_y = 25},/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/security/range) -"aqR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/brig) -"aqS" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/security/brig) -"aqT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/brig) +"aqR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkredcorners"},/area/security/brig) +"aqS" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) +"aqT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) "aqU" = (/obj/machinery/light{dir = 1; on = 1},/obj/item/device/radio/intercom/department/security{pixel_x = 0; pixel_y = 25},/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkredcorners"},/area/security/brig) "aqV" = (/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 1; icon_state = "darkredcorners"},/area/security/brig) "aqW" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) @@ -924,10 +924,10 @@ "arN" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/range) "arO" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/security/range) "arP" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/range) -"arQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/plasteel,/area/security/brig) +"arQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) "arR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Firing Range"; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/security/range) -"arS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) -"arT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/security/brig) +"arS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/brig) +"arT" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) "arU" = (/turf/simulated/floor/plating/airless,/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk3"; icon_state = "catwalk3"},/area/solar/auxstarboard) "arV" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "burst_r"},/turf/space,/area/shuttle/trade/sol) "arW" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1450; master_tag = "trade_sol"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "160"},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol) @@ -988,9 +988,8 @@ "asZ" = (/obj/machinery/light,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/range) "ata" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/energy/laser/practice,/obj/machinery/recharger{pixel_y = 0},/turf/simulated/floor/plating,/area/security/range) "atb" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/range) -"atc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/brig) +"atc" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/fore) "atd" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable,/turf/simulated/floor/plating,/area/security/brig) -"ate" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/brig) "atf" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "darkredcorners"},/area/security/brig) "atg" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "darkredcorners"},/area/security/brig) "ath" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "darkredcorners"},/area/security/brig) @@ -1720,7 +1719,6 @@ "aHd" = (/obj/structure/stool/bed,/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aHe" = (/obj/machinery/camera{c_tag = "Fore Primary Hallway West"; dir = 4; network = list("SS13")},/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) "aHf" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) -"aHg" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) "aHh" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/wood,/area/crew_quarters/mrchangs) "aHi" = (/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/item/weapon/twohanded/required/kirbyplants,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5; level = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/civilian/barber) "aHj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/civilian/barber) @@ -9056,9 +9054,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanfangaomaocaobaoeaodaohaogaitapGaojaoiaonaokaopaooapFaoqaosaoraouaotaowaovaoxalWaozaoyaoBaoAaoDaoCaoJaoEaoGaoFaoFaoHaoLaoIaoIaoMaoPaoNalFaoQaoRaiYaiYaiYaoTaoSaihaabaaaaaaajbakyajwajwajwajwakzajyaaaaaaaaaaaaamWaaaaaaaoKaaaaaaaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanfaoUaomaoValEaoXaoWanlajJaigapGaoZaoYapbapaapdapcapFapeapgapfaphamyapjapiapkapSapAaplapCapBapEapDapIapHapJapJapLapKapNapMapOaoJapQaoJapRapNapTaiYapVapUapXapWaihaaaaabaabajbapYaqaapZaqcaqbajbalIaqeaaaaaaaaaamWaabappapnapqaabaabamWamWamWamWamWamWaqpamWamWamWamWamWamWamWamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapsaprapuaptapwapraprapxapraprapvaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaabapyaabalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBakBakBakBaslakWakZaomaomaomaomakUaqsapFapGapGapGaqtaquapGapFaqvalUaqwaqwalTaqxaqxapPapSapSaqyaqzapSapSapSanAaqAaqCaqBanxanAanAaqAaqDanxaqFaqEanxanAaqGaqGaqGaqGaqHaihaihaqIaqIaqIaqIajbalsaqJaqKalsajbaabaaaaaaaaaaaaamWaaaappaqdapqaaaaaaaabaabaabaabaabaabaabaabaqLaabaabaabaaaaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfaqhaqiaqgaqkaqlaqlaqlaqmaqjaqoaaaaaaaaaalwalwalwalvalvaabaabaaaaqnaaaaabaabalvalvalwalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBakXaqraqMaqNaqraqOapzaqQaqPakWaqRaqTaqSaqVaqUaqXaqWariaqYarjaqXaqXaqXaqXarkaqXaqXaqXarlarnarmarparoarrarqarsarsarsartarsaruarwarvarxaqXaryaqWaqXarzarBarAarCaqXariaqXaqXarDarEaqVaqXarFarHarGarJarIajbaabaaaaaaaaaaaaamWaaaappaqdapqaaaaaaaabaqZaraaraaraaraarbaraaraaraaraarcaabaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaardaqhareargaqlarharharharharharfaaaaaaaaaalwaaaaaaaabaaaaabaaaaaaaqnaaaaaaaabaaaaabaaaaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBalDarKalDarLalDarNarMarParOarRarQarTarSasdascaseaseasfaseasgaseaseaseasiashasiasjasiasiassaskasnasmaspasoasoasoasoasqasoasoasoasrastasAasvasuasxaswaszasyasAasAasCasBasBasDasEasEasEasFasHasGasIamRamVaaaaaaaaaaaaaaaamWaabappaqdapqaaaaaaaabarUaabaaaaaaaabarUaabaabaaaaaaarUaabaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarVaqharWarYarharharharharZasaaqoaaaaaaaaaalwaabarXarXarXarXarXaaaasbaaaarXarXarXarXarXaabalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBamoasYasXasZasYasYataatbalBakWatcateatdatgatfatiathatkatjatmatlatnatjatpatoatratqatratsatuattatwatvatyatxatAatzatCatBatEatDatAatOatRatQaFLaFLaFLaFLaFLaFLaFLaxeatSatSatSatTatSatSatSarFatVatUatXatWajbaaaaaaaaaaaaaabamWaaaappaqdapqaabaabappapnapqaabaabappapnapqaabaabappapnapqaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaqfaqhaqiaqgaqkaqlaqlaqlaqmaqjaqoaaaaaaaaaalwalwalwalvalvaabaabaaaaqnaaaaabaabalvalvalwalwalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBakXaqraqMaqNaqraqOapzaqQaqPakWaqRaqSaqXaqVaqUaqXaqWariaqYarjaqXaqXaqXaqXarkaqXaqXaqXarlarnarmarparoarrarqarsarsarsartarsaruarwarvarxaqXaryaqWaqXarzarBarAarCaqXariaqXaqXarDarEaqVaqXarFarHarGarJarIajbaabaaaaaaaaaaaaamWaaaappaqdapqaaaaaaaabaqZaraaraaraaraarbaraaraaraaraarcaabaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaardaqhareargaqlarharharharharharfaaaaaaaaaalwaaaaaaaabaaaaabaaaaaaaqnaaaaaaaabaaaaabaaaaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBalDarKalDarLalDarNarMarParOarRaqTarSarQasdascaseaseasfaseasgaseaseaseasiashasiasjasiasiassaskasnasmaspasoasoasoasoasqasoasoasoasrastasAasvasuasxaswaszasyasAasAasCasBasBasDasEasEasEasFasHasGasIamRamVaaaaaaaaaaaaaaaamWaabappaqdapqaaaaaaaabarUaabaaaaaaaabarUaabaabaaaaaaarUaabaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarVaqharWarYarharharharharZasaaqoaaaaaaaaaalwaabarXarXarXarXarXaaaasbaaaarXarXarXarXarXaabalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBamoasYasXasZasYasYataatbalBakWaryatgatgatgatfatiathatkatjatmatlatnatjatpatoatratqatratsatuattatwatvatyatxatAatzatCatBatEatDatAatOatRatQaFLaFLaFLaFLaFLaFLaFLaxeatSatSatSatTatSatSatSarFatVatUatXatWajbaaaaaaaaaaaaaabamWaaaappaqdapqaabaabappapnapqaabaabappapnapqaabaabappapnapqaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasJaprapraprapwapraprapxapraprasKaaaaaaaaaalwaaaasMasLasLasLasLasNasPasOasQasQasQasQasRaaaalwaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaakBakBakBakBakBakBakBatYauaatZakWaubaudapFaufaueawKaugauhawKawKawKawKaujaukaucatdaulatdaucaunaumawHawHawHawHauAauoawVauEauEawXauEauFauEauEaFLauGauHaFLauHauIaFLauJauLauKauNauMauPauOauQajbajbajbajbajbajbaaaaaaaaaaaaaaaamWaaaappaqdapqaaaaaaappaqdapqaaaaaaappaqdapqaaaaaaappaqdapqaabaqpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaabatFatFatFatFatFaaaatHaaaatFatFatFatFatFaabalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakBauRauTauSakWauUauVapGauXauWaucauYavaauZavcavbauZavdavfaveavhavgaviaveavjaAzavlavkavmavlavoavnavzavravBavAaAFavCaCyavDaFLauIavFavEavFauIaFLavGavHayVayVavIavKavJavLaHEaaaaabaaaaaaaaaaaaaaaaaaaaaaaaamWaaaappaqdapqaaaaaaappaqdapqaaaaaaappaqdapqaaaaaaappaqdapqaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaaaaaaaabaaaaaaaaaautaaaaaaaaaaabaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasUasTasWasVaaaaaaawBawBaudaudaudaudavMavNaucavOauWaucavPavRavQavTavSavUavdavfavVavXavWavZavYavjaAzawbawaawdawcawfaweawgaCyawhavAaAFawiawnawjaFLawAawDawCawEawAaFLawFawGayVawJawIawLawGawMaHEaabaabaaaaaaaaaaaaaaaaaaaaaaaaamWaaaappaqdapqaabaabappaqdapqaabaabappaqdapqaabaabappaqdapqaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9074,7 +9072,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxiaEbazgaEeaxiaaaaxkaEfaykaykaxkaabaaaaabaaaaaaaabaaaaDbaEgaEdaaaaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEiaEiaEiaEiaEiaEiaEiaAmaElaElaElaDtaElaElaElaDuaAmaAxaAxaAxaAxaAxaAxaEBaEBaDvaDgaFFaDhaDvaDvaDvaEpaEpaEpaEpaDxaDwaBsaDyaDAaDzaBsaDsaDNaELaEMaEKaDPaENaDBaEOaEQaDRaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaabaabaaaaabaabaabaabaabaaaaDSaERaDSaaaaabaaaaabaaaaaaaaaaabaabaaaaaaaaaaaaaaaaAfaETaESaCPaEUaEWaEVaEXaBgaEZaEYaFbaFaaAfaFdaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaFeaFfaFcaFfaFgaaaaFiaFhaykaFkaFiaabaaaaabaaaaaaaabaDbaDbaFjaFmaDbaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEiaFlaFoaDCaDDaFvaFwaFsaDFaDEaDDaDGaFvaFvaDIaDHaFBaFAaFyaFyaFyaFyaFyaFyaFyaDJaDLaGraDMaEjaDOavqavqavqavqavqaBsaDQaEkaEhaEnaEmaBsaEoaDNaFTaFUaFPaDPaFVaEqaFWaFYaDPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaabaabaDSaDSaFZaDSaDSaabaaaaabaaaaaaaaaaaaaabaabaaaaaaaaaaaaaAfaGbaGaaCPaAfaCPaCPaGdaGcaAfaAfaAfaAfaAfaAfaabaabaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaFeaGfaFgaaaaaaaGgaFiaGeaFiaGhaabaaaaabaaaaaaaabaGjaGiaGlaGkaGjaGnaGnaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGoaGmaEraGpaEtaEsaEuaEsaEvaEsaExaEwaGraGraEzaEyaGraGraGraGraGraGraGraGraGraECaEEaEDaEGaEFaEHaAQaASaEIaASaAQaBsaEJaFnaEPaFnaFnaBsaDsaDNaFpaGNaFqaDPaFraGRaGQaEQaDPaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaabaGTaGUaGSaGWaGTaabaaaaabaaaaaaaabaaaaaaaabaabaaaaaaaGXaAfaCPaAfaCPaGYaGVaGYaMzaGYaGYaGYaHbaGXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaGnaGnaGnaGnaGnaGnaGnaGnaabaabaGjaHcaHaaGZaGjaHdaGnaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGoaHeaHgaHfaFuaFtaFxaHnaFzaHnaFCaHqaHnaHnaFEaFDaHnaHnaHnaHnaHnaHnaHnaFHaFJaFIaFKaHvaHxaEjaFMaAQaFNaASaFOaAQaBsaBsaBsaBsaBsaBsaBsaFQaDNaHCaFUaFRaDPaFSaHGaFWaHHaDPaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaGTaHKaHIaHJaGTaabaaaaabaaaaaaaabaaaaaaaGXaHNaGXaHNaGXaHbaGYaGYaGYaGYaGYaGYaGYaGYaGYaHOaHPaGXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaGnaGnaGnaGnaGnaGnaGnaGnaabaabaGjaHcaHaaGZaGjaHdaGnaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGoaHearTaHfaFuaFtaFxaHnaFzaHnaFCaHqaHnaHnaFEaFDaHnaHnaHnaHnaHnaHnaHnaFHaFJaFIaFKaHvaHxaEjaFMaAQaFNaASaFOaAQaBsaBsaBsaBsaBsaBsaBsaFQaDNaHCaFUaFRaDPaFSaHGaFWaHHaDPaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaGTaHKaHIaHJaGTaabaaaaabaaaaaaaabaaaaaaaGXaHNaGXaHNaGXaHbaGYaGYaGYaGYaGYaGYaGYaGYaGYaHOaHPaGXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaHQaHLaHQaaaaaaaaaaGnaHSaHTaHSaHRaHMaHUaGnaaaaaaaGjaHVaHXaHWaIaaHSaGnaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIbaIcaIcaIeaIeaFXaLAaIhaIhaGqaLAaGsaIlaIiaIiaIlaGtaIlaIoaIoaIoaIoaIoaIoaImaIoaIoaInaIraIpaEjaGuavqaAQaAQaAQavqavqavqaydaGvaGwavqavqaGxaDNaIwaFUaGyaDPaGzaGRaGQaEQaDPaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaHQaIzaHQaaaaabaGTaIBaIAaICaGTaIFaIFaIFaIFaIFaHNaHNaHNaGXaIDaGYaHOaHPaMzaGYaMzaMzaMzaGXaIEaGXaGXaGXaGXaGXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaIIaIGaIIaaaaaaaabaGnaIHaILaHSaHSaIJaHSaGnaIIaIIaGjaGjaIMaIKaIaaHSaGnaGnaIIaIIaIIaGnaGnaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaIbaIPaGAaGCaGBaGDaLAaGFaGEaGGaLAaGHaIlaIWaIZaGJaGIaJbaJaaJdaJcaJfaJeaJhaJgaJjaJiaJkaFFaFGaEjaGKavqavqavqavqavqavqavqavqavqavqavqavqaGLaGOaGMaHhaGPaDPaHiaHjaJyaJBaDPaabaJEaJFaJFaJFaJFaJFaJGaabaabaaaaaaaaaaaaaHNaJCaHNaaaaIFaGTaGTaJDaJHaGTaJIaGYaGYaGYaMzaJJaGYaJMaGXaGYaGYaGYaJKaMzaGYaGXaJNaJLaGXaGYaJOaGXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJPaJSaJQaaaaJRaJVaJTaabaabaIIaHSaIIaaaaaaaabaGnaJXaJYaJZaJWaJUaKaaGnaKbaHSaKdaKcaKfaKeaKeaKeaKeaKeaKeaKeaKeaKgaGnaaaaKhaaaaaaaaaaaaaaaaaaaaaaaaaIbaKkaHkaKmaKnaHlaLAaHmaKraHoaLAaGHaIlaKtaKuaKvaGIaJbaKqaKsaKsaKsaKsaKsaJgaKwaJiaFyaFFaFGaEjaFMaLPaLPaLPaLPaLPaHpaKOaKOaKOaKOaKOaKOaKOaDNaDNaHraDNaDPaDPaHsaDPaDPaDPaKOaKPaKQaKQaKQaKQaKQaKPaKOaabaaaaaaaaaaaaaHNaKJaKMaaaaIFaKRaKTaKSaKWaGYaGYaGYaMzaGYaMzaKXaGYaGYaGXaGYaKVaKUaKXaIEaGYaGXaKZaKYaGXaGYaLcaGXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9085,7 +9083,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPVaSdaSdaLdaMsaPZaQaaLdaMsaPZaQaaLdaGnaLkaGnaGnaGnaGnaGnaHSaGnaHSaQbaPXaHSaHSaGnaLsaGnaPYaabaPYaGnaJYaOZaGnaQeaQcaGnaNAaKaaGnaLsaMAaMAaQgaQgaQgaQgaQgaQgaQgaQgaQgaPiaPiaPjaQhaQiaQjaQkaQlaQdaKEaKDaKFaKFaKFaKFaKFaKGaKIaKHaKFaKFaKFaKKaKKaKLaLzaKNaLBaEjaHBaLPaQzaKpaLNaLPaITaOpaPAaQEaQFaOpaMVaPCaPDaPDaPEaQGaOqaPGaPIaPIaPJaKBaKCaODaKQaKQaKQaKQaKQaODaQHaPMaODaaaaaaaGXaQIaGYaGYaQBaMzaQCaHOaQLaQJaHbaGXaOFaHbaGXaQKaGYaGXaQMaGYaGXaQOaQNaQPaOGaQQaOGaQSaQRaQUaQTaQVaQYaQWaMqaMraMrafOafOaMraMraMraMraabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaQXaRbaOQaRbaQZaQZaQZaRaaQZaQZaQZaRdaRcaReaReaReaReaRfaGnaHSaGnaRhaRgaRiaHSaRjaPcaLsaGnaGnaGnaGnaGnaGnaPcaGnaHSaRiaLkaHSaHSaHSaRkaRmaRlaRnaRnaRnaRnaRoaRnaRnaRpaRqaRlaRsaRraRraRraRraRraRraRraRtaRwaRwaRwaRwaRxaRwaRwaLDaRwaRwaRxaRwaRwaRwaRwaRzaLFaLKaLGaLLaLPaRDaLMaLWaLOaLXaOpaRJaRKaRLaOpaMVaRMaRNaRNaRGaMWaOqaRPaRQaRQaRIaLYaLZaOzaKQaKQaKQaKQaKQaOAaRVaRRaODaaaaaaaGXaGYaGYaGYaGYaGYaGYaQPaOGaOGaOGaOGaOGaOGaOGaKSaGYaGYaGYaGYaMnaGYaGYaMkaGYaRTaRSaRXaRWaRYaOLaOLaOLaRZaMqaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaaSdaSdaSbaSfaScaSgaSiaSjaShaSkaSjaSmaSlaSjaSjaSnaGnaHSaGnaSoaHSaHSaSpaSqaGnaNIaKgaHSaHSaHSaHSaHSaHSaPcaSsaHSaGnaNxaNxaGnaSraMAaSuaSwaSvaSvaSvaSxaSvaSvaSvaSyaSuaSzaSAaSAaSAaSAaSAaSAaSAaPiaRwaSBaSCaSEaSDaMdaMcaMDaMBaMEaSJaSLaSCaSMaRwaSNaFFaSOaEjaMFaLPaSRaMGaSTaSSaMHaSUaSXaSWaSWaMIaMJaSZaSYaTaaTaaTbaTeaTcaMVaMVaTdaKBaThaTfaKQaKQaKQaKQaKQaTfaKOaKOaKOaGXaGXaGXaHbaMzaMzaIEaGXaGXaMkaMzaGXaTgaMzaGXaIEaGXaMkaQIaMzaGXaIEaGXaGYaQIaMkaGYaTiaMqaTjaQRaTlaTkaTmaQRaTnaMqaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaMsaSdaRUaSdaToaSfaSfaTpaSdaRUaSdaTqaTraTsaTtaGnaHSaPcaPcaGnaGnaGnaTuaTuaTuaIfaTuaTuaTuaTuaTuaHSaGnaGnaGnaGnaGnaGnaGnaSraKbaStaaaaabaaaaabaaaaabaaaaabaaaaSuaSzaSAaTwaTvaTyaTxaTAaSAaPiaRwaTzaTzaTCaTBaTEaTDaTFaTDaMKaTGaTIaTzaTzaRwaSNaFFaTJaEjaMFaLPaOnaKpaLNaLPaMNaMLaMUaMTaMYaMXaNaaMZaNdaNcaNdaNeaNSaNRaNUaNTaNXaNVaKOaTfaKQaKQaKQaKQaKQaTfaGXaLcaGYaTXaUaaMzaGXaMzaLcaGYaGXaLcaMkaGXaTZaGYaGXaUbaGYaMzaUdaUcaGXaUeaGYaMzaIEaIEaMkaIEaUfaMqaUgaQRaUiaUhaUiaQRaUjaMqaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaMsaSdaRUaSdaToaSfaSfaTpaSdaRUaSdaTqaTraTsaTtaGnaHSaPcaPcaGnaGnaGnaTuaTuaTuaIfaTuaTuaTuaTuaTuaHSaGnaGnaGnaGnaGnaGnaGnaSraKbaStaaaaabaaaaabaaaaabaaaaabaaaaSuaSzaSAaTwaTvaTyaTxaTAaSAaPiaRwaTzaTzaTCaTBaTEaTDaTFaTDaMKaTGaTIaTzaTzaRwatcaFFaTJaEjaMFaLPaOnaKpaLNaLPaMNaMLaMUaMTaMYaMXaNaaMZaNdaNcaNdaNeaNSaNRaNUaNTaNXaNVaKOaTfaKQaKQaKQaKQaKQaTfaGXaLcaGYaTXaUaaMzaGXaMzaLcaGYaGXaLcaMkaGXaTZaGYaGXaUbaGYaMzaUdaUcaGXaUeaGYaMzaIEaIEaMkaIEaUfaMqaUgaQRaUiaUhaUiaQRaUjaMqaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaLdaLdaSdaOQaSdaUkaUoaUmaUlaSdaOQaSdaSdaLdaUnaUpaGnaHSaHSaHSaHSaHSaHSaTuaUuaUvaUqaUxaUsaUzaUuaTuaUwaUAaUyaUyaUyaUyaUyaUyaUBaNxaStaabaUEaUEaUEaUEaUEaUEaUEaabaSuaSzaSAaUFaUCaUHaUDaUFaSAaPiaRwaUJaUJaUJaUGaULaSCaUIaSCaULaUKaUJaUJaUJaRwaSNaFFaUMaEjaMFaLPaOjaKpaLNaLPaNYaUNaUQaUQaUQaUQaUQaUQaUQaNZaUQaUSaUSaUSaUSaUSaOaaGXaKOaTfaKQaKQaKQaKQaKQaTfaGXaGXaGYaURaUaaMzaUTaGXaGYaGYaGXaGYaMkaMzaGYaGYaGXaGYaGYaMzaMkaGVaGXaGYaGYaMzaUWaGYaMkaGYaUUaUYaUYaMqaMqaMqaMqaMqaMqaMqaMraMraMraMraMraabaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSdaRUaSdaSdaSdaSdaSdaSdaRUaSdaUZaLdaUVaUXaVcaVcaVcaVcaVcaVcaVaaTuaUuaVeaUqaVfaVeaVeaUuaTuaVgaVbaViaViaViaViaViaViaViaViaVjaaaaUEaVkaVdaVmaVlaVnaUEaaaaSuaSzaSAaVpaVoaVraVqaUFaSAaPiaRwaVsaVsaTCaVtaVuaTDaTFaTDaVuaVvaVwaTzaTzaRwaSNaFFaSOaEjaObaLPaOdaOcaLNaLPaOeaUNaUQaVzaVAaVCaVCaUQaVBaOfaVDaUSaVGaVFaVHaUSaOgaGXaaaaVKaVLaVLaVLaVLaVLaVMaaaaGXaGYaVNaVJaMzaMzaGXaGXaMzaMzaVOaVPaMzaGXaHPaGXaGXaMzaMzaVRaVQaGXaGXaGXaQLaUWaGYaMkaGYaUUaHOaHbaOFaYPbcDaVhbcDaYPaYPaYPaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVVaVSaVXaVSaVSaVYaVZaVSaVSaVXaWaaVWaLdaToaWbaVcaWdaWcaWfaWeaWhaWgaTuaUuaVeaUqaWjaVeaVeaUuaTuaWkaWlaWiaWnaWmaWoaWqaWraWpaWtaVjaabaUEaWuaWsaWwaWvaWxaUEaabaSuaSzaSAaWzaWAaWyaWCaWBaSAaPiaRwaSBaSCaWEaWDaULaSCaWFaSCaULaWGaSLaSCaSMaRwaSNaFFaWJaEjaMFaLPaISaOhaLNaLPaOiaWHaUQaWKaVEaVEaVEaWLaOlaOkaOmaUSaWQaWPaOxaOtaPgaHPaaaaaaaaaaaaaaaaaaaaaaaaaaaaGXaWVaWUaWXaWWaWYaGXaNhaGYaQIaMkaGYaGXaaaaGXaGYaGYaGYaGYaMkaXbaXaaWZaWZaWZaWZaXcaXeaXdaXhaXiaXfaXiaXgaVTaVTaVUaXkaXjaXlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 49f9b48d156ca990fd68267d785631690e24e889 Mon Sep 17 00:00:00 2001 From: Tayyyyyyy Date: Thu, 25 May 2017 15:17:38 -0700 Subject: [PATCH 006/147] Visibly message when someone points a gun at something --- code/modules/mob/living/living.dm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 525559e8e6c..7f0098bafac 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -59,6 +59,15 @@ return 0 if(!..()) return 0 + if(ishuman(src)) + var/obj/item/hand_item = src.get_active_hand() + if(hand_item && istype(hand_item, /obj/item/weapon/gun) && A != hand_item) + if(src.a_intent == I_HELP || !ismob(A)) + visible_message("[src] points to [A] with [hand_item]") + return 1 + A.visible_message("[src] points [hand_item] at [A]!", + "[src] points [hand_item] at you!") + return 1 visible_message("[src] points to [A]") return 1 From 4c276bb47f1046d1ffdd70c53301d09ede182c41 Mon Sep 17 00:00:00 2001 From: Tayyyyyyy Date: Thu, 25 May 2017 15:57:51 -0700 Subject: [PATCH 007/147] Fix bad style --- code/modules/mob/living/living.dm | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 7f0098bafac..1b49f5cd28b 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -59,15 +59,14 @@ return 0 if(!..()) return 0 - if(ishuman(src)) - var/obj/item/hand_item = src.get_active_hand() - if(hand_item && istype(hand_item, /obj/item/weapon/gun) && A != hand_item) - if(src.a_intent == I_HELP || !ismob(A)) - visible_message("[src] points to [A] with [hand_item]") - return 1 - A.visible_message("[src] points [hand_item] at [A]!", - "[src] points [hand_item] at you!") + var/obj/item/hand_item = get_active_hand() + if(istype(hand_item, /obj/item/weapon/gun) && A != hand_item) + if(a_intent == I_HELP || !ismob(A)) + visible_message("[src] points to [A] with [hand_item]") return 1 + A.visible_message("[src] points [hand_item] at [A]!", + "[src] points [hand_item] at you!") + return 1 visible_message("[src] points to [A]") return 1 From beec82745948a15bec86a47fa249329644c6e114 Mon Sep 17 00:00:00 2001 From: Tayyyyyyy Date: Thu, 25 May 2017 17:58:51 -0700 Subject: [PATCH 008/147] Add targetOn sound notification --- code/modules/mob/living/living.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 1b49f5cd28b..4394de1fa6b 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -66,6 +66,7 @@ return 1 A.visible_message("[src] points [hand_item] at [A]!", "[src] points [hand_item] at you!") + A << 'sound/weapons/TargetOn.ogg' return 1 visible_message("[src] points to [A]") return 1 From 6ce8612d667cc060915f97398b2344fea0ef2ea6 Mon Sep 17 00:00:00 2001 From: Xantholne Date: Fri, 26 May 2017 04:31:56 -0600 Subject: [PATCH 009/147] Loadout Requirement Fixes --- code/modules/client/preference/loadout/loadout_hat.dm | 2 +- code/modules/client/preference/loadout/loadout_racial.dm | 2 +- code/modules/client/preference/loadout/loadout_suit.dm | 2 +- code/modules/client/preference/loadout/loadout_uniform.dm | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/client/preference/loadout/loadout_hat.dm b/code/modules/client/preference/loadout/loadout_hat.dm index 1b1978f7d71..196f9f65ca0 100644 --- a/code/modules/client/preference/loadout/loadout_hat.dm +++ b/code/modules/client/preference/loadout/loadout_hat.dm @@ -137,7 +137,7 @@ /datum/gear/hat/med_beret display_name = "medical beret" path = /obj/item/clothing/head/beret/med - allowed_roles = list("Chief Medical Officer", "Medical Doctor" , "Virologist", "Brig Physician") + allowed_roles = list("Chief Medical Officer", "Medical Doctor" , "Virologist", "Brig Physician" , "Coroner") /datum/gear/hat/surgicalcap_purple display_name = "surgical cap, purple" diff --git a/code/modules/client/preference/loadout/loadout_racial.dm b/code/modules/client/preference/loadout/loadout_racial.dm index e9d89a31d34..f7d96011e5c 100644 --- a/code/modules/client/preference/loadout/loadout_racial.dm +++ b/code/modules/client/preference/loadout/loadout_racial.dm @@ -19,7 +19,7 @@ display_name = "lightweight veil" description = "A common traditional nano-fiber veil worn by many Tajaran, It is rare and offensive to see it on other races. This one has an in-built medical HUD." path = /obj/item/clothing/glasses/hud/health/tajblind - allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Psychiatrist", "Paramedic", "Virologist", "Brig Physician") + allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Psychiatrist", "Paramedic", "Virologist", "Brig Physician" , "Coroner") /datum/gear/racial/tajsci display_name = "hi-tech veil" diff --git a/code/modules/client/preference/loadout/loadout_suit.dm b/code/modules/client/preference/loadout/loadout_suit.dm index 2ac4b3bb7e9..ae43a10ee89 100644 --- a/code/modules/client/preference/loadout/loadout_suit.dm +++ b/code/modules/client/preference/loadout/loadout_suit.dm @@ -29,7 +29,7 @@ /datum/gear/suit/coat/job/med display_name = "winter coat, medical" path = /obj/item/clothing/suit/hooded/wintercoat/medical - allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Psychiatrist", "Paramedic", "Virologist", "Brig Physician") + allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Psychiatrist", "Paramedic", "Virologist", "Brig Physician" , "Coroner") /datum/gear/suit/coat/job/sci display_name = "winter coat, science" diff --git a/code/modules/client/preference/loadout/loadout_uniform.dm b/code/modules/client/preference/loadout/loadout_uniform.dm index 7ffb7e09516..4efd372a04b 100644 --- a/code/modules/client/preference/loadout/loadout_uniform.dm +++ b/code/modules/client/preference/loadout/loadout_uniform.dm @@ -61,17 +61,17 @@ /datum/gear/uniform/skirt/job/viro display_name = "skirt, virologist" path = /obj/item/clothing/under/rank/virologist/skirt - allowed_roles = list("Chief Medical Officer","Medical Doctor") + allowed_roles = list("Chief Medical Officer","Medical Doctor" , "Virologist") /datum/gear/uniform/skirt/job/med display_name = "skirt, medical" path = /obj/item/clothing/under/rank/medical/skirt - allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic","Brig Physician") + allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Psychiatrist","Paramedic","Brig Physician", "Virologist" , "Coroner") /datum/gear/uniform/skirt/job/phys display_name = "skirt, physician" path = /obj/item/clothing/under/rank/security/brigphys/skirt - allowed_roles = list("Brig Physician") + allowed_roles = list("Brig Physician" , "Chief Medical Officer") /datum/gear/uniform/skirt/job/sci display_name = "skirt, scientist" From d668cb7bf52ba25d12684fd753408aa26bff5e67 Mon Sep 17 00:00:00 2001 From: Sam Date: Fri, 26 May 2017 22:05:08 +0100 Subject: [PATCH 010/147] why are they bigger than the headsets they go in... --- code/game/objects/items/devices/radio/encryptionkey.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm index 7350f3965cc..9f3d57862e9 100644 --- a/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -5,6 +5,7 @@ icon = 'icons/obj/radio.dmi' icon_state = "cypherkey" item_state = "" + w_class = 1 var/translate_binary = 0 var/translate_hive = 0 var/syndie = 0 @@ -147,4 +148,4 @@ name = "AI Integrated Encryption Key" desc = "Integrated encryption key" icon_state = "cap_cypherkey" - channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1, "AI Private" = 1) \ No newline at end of file + channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1, "AI Private" = 1) From 743887387f03c6cf8835e3de8a4c224b103cd2cc Mon Sep 17 00:00:00 2001 From: GuppyLaxx Date: Fri, 26 May 2017 20:05:15 -0400 Subject: [PATCH 011/147] makes plasmaman helmets weld proof and flash proof? --- code/modules/clothing/spacesuits/plasmamen.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index 9ece7d54aa3..c7c093dd997 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -80,6 +80,7 @@ var/base_state = "plasmaman_helmet" var/brightness_on = 4 //luminosity when on var/on = 0 + flash_protect = 2 actions_types = list(/datum/action/item_action/toggle_helmet_light) /obj/item/clothing/head/helmet/space/eva/plasmaman/attack_self(mob/user) From 24eed4c7401c2fb86806b99bb838ada20bdef0c6 Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 27 May 2017 12:38:24 +0100 Subject: [PATCH 012/147] Using the defines --- code/game/objects/items/devices/radio/encryptionkey.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm index 9f3d57862e9..a31e09e896c 100644 --- a/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -5,7 +5,7 @@ icon = 'icons/obj/radio.dmi' icon_state = "cypherkey" item_state = "" - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/translate_binary = 0 var/translate_hive = 0 var/syndie = 0 From 07e0f768d608f1250bb7ee0bac6464552b59b674 Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 27 May 2017 16:34:49 +0100 Subject: [PATCH 013/147] Using Weight Defines --- code/game/gamemodes/antag_spawner.dm | 2 +- .../gamemodes/changeling/powers/mutations.dm | 2 +- code/game/gamemodes/cult/cult_items.dm | 8 +-- code/game/gamemodes/cult/cult_structures.dm | 2 +- code/game/gamemodes/cult/ritual.dm | 2 +- .../gamemodes/miniantags/revenant/revenant.dm | 2 +- code/game/gamemodes/nuclear/pinpointer.dm | 2 +- code/game/gamemodes/wizard/artefact.dm | 12 ++--- code/game/gamemodes/wizard/godhand.dm | 2 +- code/game/gamemodes/wizard/soulstone.dm | 4 +- code/game/gamemodes/wizard/spellbook.dm | 4 +- code/game/machinery/alarm.dm | 2 +- code/game/machinery/camera/camera_assembly.dm | 2 +- .../machinery/computer/HolodeckControl.dm | 10 ++-- code/game/machinery/computer/arcade.dm | 2 +- .../game/machinery/computer/buildandrepair.dm | 2 +- .../machinery/doors/airlock_electronics.dm | 7 ++- code/game/machinery/doors/firedoor.dm | 2 +- code/game/machinery/dye_generator.dm | 2 +- code/game/machinery/firealarm.dm | 2 +- code/game/machinery/newscaster.dm | 2 +- code/game/machinery/pipe/construction.dm | 6 +-- code/game/machinery/syndicatebomb.dm | 8 +-- code/game/mecha/mecha_control_console.dm | 2 +- code/game/mecha/mecha_parts.dm | 6 +-- code/game/objects/items.dm | 16 +++--- code/game/objects/items/blueprints.dm | 4 +- code/game/objects/items/bodybag.dm | 4 +- code/game/objects/items/candle.dm | 4 +- code/game/objects/items/control_wand.dm | 2 +- code/game/objects/items/crayons.dm | 2 +- code/game/objects/items/devices/aicard.dm | 2 +- code/game/objects/items/devices/camera_bug.dm | 2 +- .../objects/items/devices/chameleonproj.dm | 4 +- code/game/objects/items/devices/flash.dm | 2 +- code/game/objects/items/devices/flashlight.dm | 14 ++--- .../objects/items/devices/floor_painter.dm | 28 +++++----- .../objects/items/devices/laserpointer.dm | 2 +- code/game/objects/items/devices/megaphone.dm | 2 +- code/game/objects/items/devices/paicard.dm | 2 +- code/game/objects/items/devices/powersink.dm | 2 +- .../items/devices/radio/electropack.dm | 2 +- .../objects/items/devices/radio/intercom.dm | 4 +- .../game/objects/items/devices/radio/radio.dm | 2 +- code/game/objects/items/devices/scanners.dm | 16 +++--- .../objects/items/devices/sensor_device.dm | 4 +- .../objects/items/devices/taperecorder.dm | 4 +- .../objects/items/devices/traitordevices.dm | 4 +- .../objects/items/devices/transfer_valve.dm | 10 ++-- code/game/objects/items/devices/whistle.dm | 3 +- code/game/objects/items/documents.dm | 4 +- code/game/objects/items/flag.dm | 10 ++-- code/game/objects/items/latexballoon.dm | 4 +- code/game/objects/items/misc.dm | 4 +- code/game/objects/items/policetape.dm | 4 +- code/game/objects/items/stacks/medical.dm | 2 +- code/game/objects/items/stacks/rods.dm | 2 +- .../objects/items/stacks/sheets/leather.dm | 14 ++--- .../game/objects/items/stacks/sheets/light.dm | 2 +- .../objects/items/stacks/sheets/mineral.dm | 6 +-- .../items/stacks/sheets/sheet_types.dm | 2 +- .../objects/items/stacks/sheets/sheets.dm | 4 +- code/game/objects/items/stacks/telecrystal.dm | 2 +- .../objects/items/stacks/tiles/tile_types.dm | 4 +- code/game/objects/items/toys.dm | 52 +++++++++---------- code/game/objects/items/trash.dm | 2 +- code/game/objects/items/weapons/AI_modules.dm | 4 +- code/game/objects/items/weapons/RCD.dm | 2 +- code/game/objects/items/weapons/RSF.dm | 4 +- .../objects/items/weapons/alien_specific.dm | 4 +- .../objects/items/weapons/bee_briefcase.dm | 2 +- code/game/objects/items/weapons/cards_ids.dm | 2 +- code/game/objects/items/weapons/caution.dm | 2 +- .../objects/items/weapons/chrono_eraser.dm | 4 +- code/game/objects/items/weapons/cigs.dm | 8 +-- .../game/objects/items/weapons/clown_items.dm | 4 +- code/game/objects/items/weapons/cosmetics.dm | 4 +- code/game/objects/items/weapons/courtroom.dm | 6 +-- code/game/objects/items/weapons/defib.dm | 8 +-- code/game/objects/items/weapons/dice.dm | 2 +- code/game/objects/items/weapons/disks.dm | 2 +- .../objects/items/weapons/dna_injector.dm | 2 +- .../objects/items/weapons/extinguisher.dm | 4 +- .../objects/items/weapons/flamethrower.dm | 2 +- code/game/objects/items/weapons/garrote.dm | 2 +- .../items/weapons/grenades/bananade.dm | 2 +- .../items/weapons/grenades/chem_grenade.dm | 4 +- .../items/weapons/grenades/clowngrenade.dm | 4 +- .../items/weapons/grenades/ghettobomb.dm | 4 +- .../objects/items/weapons/grenades/grenade.dm | 2 +- code/game/objects/items/weapons/handcuffs.dm | 2 +- code/game/objects/items/weapons/holosign.dm | 2 +- .../objects/items/weapons/holy_weapons.dm | 24 ++++----- .../items/weapons/implants/implant_storage.dm | 8 +-- .../items/weapons/implants/implantcase.dm | 4 +- .../items/weapons/implants/implanter.dm | 4 +- .../items/weapons/implants/implantpad.dm | 2 +- code/game/objects/items/weapons/kitchen.dm | 12 ++--- code/game/objects/items/weapons/legcuffs.dm | 6 +-- code/game/objects/items/weapons/lighters.dm | 8 +-- .../objects/items/weapons/melee/energy.dm | 14 ++--- code/game/objects/items/weapons/melee/misc.dm | 10 ++-- code/game/objects/items/weapons/misc.dm | 10 ++-- code/game/objects/items/weapons/mop.dm | 2 +- code/game/objects/items/weapons/paint.dm | 4 +- .../objects/items/weapons/pneumaticCannon.dm | 4 +- code/game/objects/items/weapons/powerfist.dm | 2 +- code/game/objects/items/weapons/scissors.dm | 2 +- code/game/objects/items/weapons/scrolls.dm | 4 +- code/game/objects/items/weapons/shards.dm | 4 +- code/game/objects/items/weapons/shields.dm | 14 ++--- code/game/objects/items/weapons/signs.dm | 4 +- code/game/objects/items/weapons/soap.dm | 4 +- code/game/objects/items/weapons/staff.dm | 4 +- .../game/objects/items/weapons/stock_parts.dm | 12 ++--- .../objects/items/weapons/storage/backpack.dm | 12 ++--- .../objects/items/weapons/storage/bags.dm | 40 +++++++------- .../objects/items/weapons/storage/belt.dm | 24 ++++----- .../objects/items/weapons/storage/bible.dm | 2 +- .../objects/items/weapons/storage/boxes.dm | 6 +-- .../items/weapons/storage/briefcase.dm | 6 +-- .../objects/items/weapons/storage/fancy.dm | 8 +-- .../objects/items/weapons/storage/firstaid.dm | 6 +-- .../objects/items/weapons/storage/lockbox.dm | 10 ++-- .../objects/items/weapons/storage/secure.dm | 10 ++-- .../objects/items/weapons/storage/storage.dm | 6 +-- .../objects/items/weapons/storage/toolbox.dm | 6 +-- .../items/weapons/storage/uplink_kits.dm | 10 ++-- .../objects/items/weapons/storage/wallets.dm | 2 +- code/game/objects/items/weapons/stunbaton.dm | 4 +- .../objects/items/weapons/swords_axes_etc.dm | 8 +-- .../objects/items/weapons/syndie_uplink.dm | 6 +-- .../objects/items/weapons/tanks/jetpack.dm | 6 +-- .../objects/items/weapons/tanks/tank_types.dm | 2 +- .../game/objects/items/weapons/tanks/tanks.dm | 2 +- .../objects/items/weapons/tanks/watertank.dm | 6 +-- code/game/objects/items/weapons/tape.dm | 4 +- .../objects/items/weapons/teleportation.dm | 4 +- code/game/objects/items/weapons/twohanded.dm | 22 ++++---- .../objects/items/weapons/vending_items.dm | 3 +- code/game/objects/items/weapons/weaponry.dm | 12 ++--- code/game/objects/items/weapons/whetstone.dm | 4 +- code/game/objects/structures/bedsheet_bin.dm | 6 +-- code/game/objects/structures/flora.dm | 6 +-- code/game/objects/structures/inflatable.dm | 4 +- code/game/objects/structures/signs.dm | 3 +- .../structures/stool_bed_chair_nest/bed.dm | 4 +- .../structures/stool_bed_chair_nest/stools.dm | 2 +- code/game/objects/structures/watercloset.dm | 4 +- 149 files changed, 430 insertions(+), 436 deletions(-) diff --git a/code/game/gamemodes/antag_spawner.dm b/code/game/gamemodes/antag_spawner.dm index e0187e940e4..d85b3c91258 100644 --- a/code/game/gamemodes/antag_spawner.dm +++ b/code/game/gamemodes/antag_spawner.dm @@ -1,7 +1,7 @@ /obj/item/weapon/antag_spawner throw_speed = 1 throw_range = 5 - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/used = 0 /obj/item/weapon/antag_spawner/proc/spawn_antag(var/client/C, var/turf/T, var/type = "") diff --git a/code/game/gamemodes/changeling/powers/mutations.dm b/code/game/gamemodes/changeling/powers/mutations.dm index 9a6438853c0..c7d393b77a7 100644 --- a/code/game/gamemodes/changeling/powers/mutations.dm +++ b/code/game/gamemodes/changeling/powers/mutations.dm @@ -125,7 +125,7 @@ icon_state = "arm_blade" item_state = "arm_blade" flags = ABSTRACT | NODROP - w_class = 5 + w_class = WEIGHT_CLASS_HUGE sharp = 1 edge = 1 force = 25 diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 6ab24e1d8b4..97511414e7a 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -3,7 +3,7 @@ desc = "An arcane weapon wielded by the followers of a cult." icon_state = "cultblade" item_state = "cultblade" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 30 throwforce = 10 sharp = 1 @@ -38,7 +38,7 @@ desc = "A strange dagger said to be used by sinister groups for \"preparing\" a corpse before sacrificing it to their dark gods." icon = 'icons/obj/wizard.dmi' icon_state = "render" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL force = 15 throwforce = 25 var/cooldown = 0 @@ -123,7 +123,7 @@ icon_state = "cult_armour" item_state = "cult_armour" desc = "A bulky suit of armour, bristling with spikes. It looks space proof." - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade,/obj/item/weapon/tank) slowdown = 1 armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 30, bio = 30, rad = 30) @@ -133,7 +133,7 @@ desc = "Empowered garb which creates a powerful shield around the user." icon_state = "cult_armour" item_state = "cult_armour" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY armor = list(melee = 50, bullet = 40, laser = 50, energy = 30, bomb = 50, bio = 30, rad = 30) body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade) diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index 1f35890373c..60b9fcb2c85 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -261,7 +261,7 @@ var/list/blacklisted_pylon_turfs = typecacheof(list( /obj/item/weapon/storage/box/cult name = "Dark Forge Cache" can_hold = list("/obj/item/clothing/suit/space/cult", "/obj/item/clothing/head/helmet/space/cult") - max_w_class = 3 + max_w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/storage/box/cult/New() ..() diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index 3a48f472603..1553ec0aa94 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -24,7 +24,7 @@ icon_state ="tome" throw_speed = 2 throw_range = 5 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/scribereduct = 0 var/canbypass = 0 //ADMINBUS diff --git a/code/game/gamemodes/miniantags/revenant/revenant.dm b/code/game/gamemodes/miniantags/revenant/revenant.dm index 4a2a629c1d2..ca9e7b7ac28 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant.dm @@ -317,7 +317,7 @@ desc = "A pile of fine blue dust. Small tendrils of violet mist swirl around it." icon = 'icons/effects/effects.dmi' icon_state = "revenantEctoplasm" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/reforming = 1 var/essence = 75 //the maximum essence of the reforming revenant var/inert = 0 diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm index f118bf548f0..4ed35c5b707 100644 --- a/code/game/gamemodes/nuclear/pinpointer.dm +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -4,7 +4,7 @@ icon_state = "pinoff" flags = CONDUCT slot_flags = SLOT_PDA | SLOT_BELT - w_class = 2 + w_class = WEIGHT_CLASS_SMALL item_state = "electronic" throw_speed = 4 throw_range = 20 diff --git a/code/game/gamemodes/wizard/artefact.dm b/code/game/gamemodes/wizard/artefact.dm index d47610140ae..1dd20906704 100644 --- a/code/game/gamemodes/wizard/artefact.dm +++ b/code/game/gamemodes/wizard/artefact.dm @@ -7,7 +7,7 @@ icon_state ="scroll2" throw_speed = 1 throw_range = 5 - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/used = 0 @@ -119,7 +119,7 @@ item_state = "render" force = 15 throwforce = 10 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL hitsound = 'sound/weapons/bladeslice.ogg' var/charged = 1 var/spawn_type = /obj/singularity/narsie/wizard @@ -232,7 +232,7 @@ var/global/list/multiverse = list() throwforce = 10 sharp = 1 edge = 1 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") var/faction = list("unassigned") var/cooldown = 0 @@ -616,7 +616,7 @@ var/global/list/multiverse = list() icon_state = "necrostone" item_state = "electronic" origin_tech = "bluespace=4;materials=4" - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/list/spooky_scaries = list() var/unlimited = 0 var/heresy = 0 @@ -753,7 +753,7 @@ var/global/list/multiverse = list() icon_state = "nyacrostone" item_state = "electronic" origin_tech = "bluespace=4;materials=4" - w_class = 1 + w_class = WEIGHT_CLASS_TINY heresy = 1 unlimited = 1 @@ -793,7 +793,7 @@ var/global/list/multiverse = list() return if(!link) - if(I.loc == user && istype(I) && I.w_class <= 2) + if(I.loc == user && istype(I) && I.w_class <= WEIGHT_CLASS_SMALL) user.drop_item() I.loc = src link = I diff --git a/code/game/gamemodes/wizard/godhand.dm b/code/game/gamemodes/wizard/godhand.dm index 55afe36f1d2..95d804179cd 100644 --- a/code/game/gamemodes/wizard/godhand.dm +++ b/code/game/gamemodes/wizard/godhand.dm @@ -8,7 +8,7 @@ icon_state = "syndballoon" item_state = null flags = ABSTRACT | NODROP - w_class = 5 + w_class = WEIGHT_CLASS_HUGE force = 0 throwforce = 0 throw_range = 0 diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm index 7fcd9c198b4..cc3c1a131e9 100644 --- a/code/game/gamemodes/wizard/soulstone.dm +++ b/code/game/gamemodes/wizard/soulstone.dm @@ -4,7 +4,7 @@ icon_state = "soulstone" item_state = "electronic" desc = "A fragment of the legendary treasure known simply as the 'Soul Stone'. The shard still flickers with a fraction of the full artifact's power." - w_class = 1 + w_class = WEIGHT_CLASS_TINY slot_flags = SLOT_BELT origin_tech = "bluespace=4;materials=4" var/imprinted = "empty" @@ -347,4 +347,4 @@ T.unEquip(W) init_shade(T, U) qdel(T) - return 1 \ No newline at end of file + return 1 diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index 65843d0e0fc..4f3e7fe9001 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -497,7 +497,7 @@ icon_state ="book" throw_speed = 2 throw_range = 5 - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/uses = 10 var/temp = null var/op = 1 @@ -863,4 +863,4 @@ spell = /obj/effect/proc_holder/spell/targeted/sacred_flame spellname = "sacred flame" icon_state ="booksacredflame" - desc = "Become one with the flames that burn within... and invite others to do so as well." \ No newline at end of file + desc = "Become one with the flames that burn within... and invite others to do so as well." diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index b5612389def..02a815c096f 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -1070,7 +1070,7 @@ Just an object used in constructing air alarms icon = 'icons/obj/doors/door_assembly.dmi' icon_state = "door_electronics" desc = "Looks like a circuit. Probably is." - w_class = 2 + w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=50, MAT_GLASS=50) toolspeed = 1 usesound = 'sound/items/Deconstruct.ogg' diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm index 7c888aa2a3d..a8d16939944 100644 --- a/code/game/machinery/camera/camera_assembly.dm +++ b/code/game/machinery/camera/camera_assembly.dm @@ -3,7 +3,7 @@ desc = "A pre-fabricated security camera kit, ready to be assembled and mounted to a surface." icon = 'icons/obj/monitors.dmi' icon_state = "cameracase" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL anchored = 0 materials = list(MAT_METAL=400, MAT_GLASS=250) diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index 886dac328de..ba7aadc3054 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -423,7 +423,7 @@ hitsound = 'sound/weapons/bladeslice.ogg' force = 40 throwforce = 10 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") block_chance = 50 @@ -442,7 +442,7 @@ throw_speed = 1 throw_range = 5 throwforce = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL armour_penetration = 50 block_chance = 50 var/active = 0 @@ -466,13 +466,13 @@ if(active) force = 30 icon_state = "sword[item_color]" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY playsound(user, 'sound/weapons/saberon.ogg', 50, 1) to_chat(user, "[src] is now active.") else force = 3 icon_state = "sword0" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL playsound(user, 'sound/weapons/saberoff.ogg', 50, 1) to_chat(user, "[src] can now be concealed.") if(istype(user,/mob/living/carbon/human)) @@ -489,7 +489,7 @@ name = "basketball" item_state = "basketball" desc = "Here's your chance, do your dance at the Space Jam." - w_class = 4 //Stops people from hiding it in their bags/pockets + w_class = WEIGHT_CLASS_BULKY //Stops people from hiding it in their bags/pockets /obj/structure/holohoop name = "basketball hoop" diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 603c0483129..b0dde9e20cd 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -991,7 +991,7 @@ desc = "A model spaceship, it looks like those used back in the day when travelling to Orion! It even has a miniature FX-293 reactor, which was renowned for its instability and tendency to explode..." icon = 'icons/obj/toy.dmi' icon_state = "ship" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/active = 0 //if the ship is on /obj/item/weapon/orion_ship/examine(mob/user) diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 1dc88f9663d..22355ed4fbc 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -13,7 +13,7 @@ /obj/item/weapon/circuitboard density = 0 anchored = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL name = "circuit board" icon = 'icons/obj/module.dmi' icon_state = "id_mod" diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index b39e3798ae1..186d4c9705a 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -4,7 +4,7 @@ name = "airlock electronics" icon = 'icons/obj/doors/door_assembly.dmi' icon_state = "door_electronics" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=50, MAT_GLASS=50) req_access = list(access_engine) @@ -64,10 +64,10 @@ /obj/item/weapon/airlock_electronics/Topic(href, href_list) ..() - + if(usr.incapacitated() || (!ishuman(usr) && !isrobot(usr))) return 1 - + if(href_list["close"]) usr << browse(null, "window=airlock") return @@ -106,4 +106,3 @@ conf_access -= req if(!conf_access.len) conf_access = null - diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index dbbe53055a4..477bc4b1e98 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -259,7 +259,7 @@ icon = 'icons/obj/doors/door_assembly.dmi' icon_state = "door_electronics" desc = "A circuit board used in construction of firelocks." - w_class = 2 + w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=50, MAT_GLASS=50) toolspeed = 1 usesound = 'sound/items/Deconstruct.ogg' diff --git a/code/game/machinery/dye_generator.dm b/code/game/machinery/dye_generator.dm index 73e590361a7..a4d70d78023 100644 --- a/code/game/machinery/dye_generator.dm +++ b/code/game/machinery/dye_generator.dm @@ -74,7 +74,7 @@ throw_speed = 4 throw_range = 7 force = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/dye_color = "#FFFFFF" /obj/item/hair_dye_bottle/New() diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index da85a864214..710dde7ebda 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -267,7 +267,7 @@ Just a object used in constructing fire alarms icon = 'icons/obj/doors/door_assembly.dmi' icon_state = "door_electronics" desc = "A circuit. It has a label on it, it says \"Can handle heat levels up to 40 degrees celsius!\"" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=50, MAT_GLASS=50) toolspeed = 1 usesound = 'sound/items/Deconstruct.ogg' diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 6040f72ab6b..65cd281340c 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -607,7 +607,7 @@ var/list/obj/machinery/newscaster/allCasters = list() //Global list that will co desc = "An issue of The Griffon, the newspaper circulating aboard Nanotrasen Space Stations." icon = 'icons/obj/bureaucracy.dmi' icon_state = "newspaper" - w_class = 2 //Let's make it fit in trashbags! + w_class = WEIGHT_CLASS_SMALL //Let's make it fit in trashbags! attack_verb = list("bapped") var/screen = 0 var/pages = 0 diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index 5bd7861623b..c83d32e7ac7 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -49,7 +49,7 @@ icon = 'icons/obj/pipe-item.dmi' icon_state = "simple" item_state = "buildpipe" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL level = 2 var/flipped = 0 @@ -635,7 +635,7 @@ icon = 'icons/obj/pipe-item.dmi' icon_state = "meter" item_state = "buildpipe" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY /obj/item/pipe_meter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob, params) ..() @@ -656,7 +656,7 @@ icon = 'icons/obj/stationobjs.dmi' icon_state = "gsensor0" item_state = "buildpipe" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY /obj/item/pipe_gsensor/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) ..() diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index 8fb2d173b6f..193c311e012 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -192,7 +192,7 @@ icon = 'icons/obj/assemblies.dmi' icon_state = "bombcore" item_state = "eshield0" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL origin_tech = "syndicate=6;combat=5" burn_state = FLAMMABLE //Burnable (but the casing isn't) var/adminlog = null @@ -296,7 +296,7 @@ /obj/item/weapon/bombcore/miniature name = "small bomb core" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL /obj/item/weapon/bombcore/miniature/detonate() explosion(src.loc,1,2,4,flame_range = 2) //Identical to a minibomb @@ -310,7 +310,7 @@ icon = 'icons/obj/assemblies.dmi' icon_state = "bigred" item_state = "electronic" - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "syndicate=2" var/cooldown = 0 var/detonated = 0 @@ -335,4 +335,4 @@ detonated = 0 existant = 0 cooldown = 1 - spawn(30) cooldown = 0 \ No newline at end of file + spawn(30) cooldown = 0 diff --git a/code/game/mecha/mecha_control_console.dm b/code/game/mecha/mecha_control_console.dm index 2bb73e2c636..1e2868673c0 100644 --- a/code/game/mecha/mecha_control_console.dm +++ b/code/game/mecha/mecha_control_console.dm @@ -71,7 +71,7 @@ desc = "Device used to transmit exosuit data." icon = 'icons/obj/device.dmi' icon_state = "motion2" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL origin_tech = "programming=2;magnets=2" var/ai_beacon = FALSE //If this beacon allows for AI control. Exists to avoid using istype() on checking. diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm index 9250dfa4839..0516d8bf659 100644 --- a/code/game/mecha/mecha_parts.dm +++ b/code/game/mecha/mecha_parts.dm @@ -6,7 +6,7 @@ name = "mecha part" icon = 'icons/mecha/mech_construct.dmi' icon_state = "blank" - w_class = 6 + w_class = WEIGHT_CLASS_GIGANTIC flags = CONDUCT origin_tech = "programming=2;materials=2" @@ -379,7 +379,7 @@ board_type = "other" flags = CONDUCT force = 5.0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throwforce = 5.0 throw_speed = 3 throw_range = 15 @@ -487,5 +487,3 @@ /obj/item/weapon/circuitboard/mecha/pod name = "Circuit board (Space Pod Mainboard)" icon_state = "mainboard" - - diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index f56ada78145..cca6f9d9265 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -20,7 +20,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d var/health = null var/hitsound = null var/usesound = null - var/w_class = 3 + var/w_class = WEIGHT_CLASS_NORMAL var/slot_flags = 0 //This is used to determine on which slots an item can fit. pass_flags = PASSTABLE pressure_resistance = 3 @@ -146,16 +146,18 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d /obj/item/examine(mob/user, var/distance = -1) var/size switch(src.w_class) - if(1.0) + if(WEIGHT_CLASS_TINY) size = "tiny" - if(2.0) + if(WEIGHT_CLASS_SMALL) size = "small" - if(3.0) + if(WEIGHT_CLASS_NORMAL) size = "normal-sized" - if(4.0) + if(WEIGHT_CLASS_BULKY) size = "bulky" - if(5.0) + if(WEIGHT_CLASS_HUGE) size = "huge" + if(WEIGHT_CLASS_GIGANTIC) + size = "gigantic" . = ..(user, distance, "", "It is a [size] item.") @@ -519,7 +521,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d /obj/item/throw_impact(atom/A) if(A && !qdeleted(A)) var/itempush = 1 - if(w_class < 4) + if(w_class < WEIGHT_CLASS_BULKY) itempush = 0 // too light to push anything return A.hitby(src, 0, itempush) diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm index 3cc0f9b6023..315eacb8f95 100644 --- a/code/game/objects/items/blueprints.dm +++ b/code/game/objects/items/blueprints.dm @@ -51,7 +51,7 @@ desc = "This is a one-use permit that allows the user to officially declare a built room as new addition to the station." fluffnotice = "Nanotrasen Engineering requires all on-station construction projects to be approved by a head of staff, as detailed in Nanotrasen Company Regulation 512-C (Mid-Shift Modifications to Company Property). \ By submitting this form, you accept any fines, fees, or personal injury/death that may occur during construction." - w_class = 1 + w_class = WEIGHT_CLASS_TINY /obj/item/areaeditor/permit/attack_self(mob/user) . = ..() @@ -76,7 +76,7 @@ icon = 'icons/obj/items.dmi' icon_state = "blueprints" fluffnotice = "Property of Nanotrasen. For heads of staff only. Store in high-secure storage." - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL var/list/showing = list() var/client/viewing diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index c52aa0e1792..4108fe85ddd 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -5,7 +5,7 @@ desc = "A folded bag designed for the storage and transportation of cadavers." icon = 'icons/obj/bodybag.dmi' icon_state = "bodybag_folded" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL attack_self(mob/user) var/obj/structure/closet/body_bag/R = new /obj/structure/closet/body_bag(user.loc) @@ -136,4 +136,4 @@ to_chat(user, "The controls are now [src.locked ? "locked." : "unlocked."]") else to_chat(user, "Access denied.") - return \ No newline at end of file + return diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm index 46ee95d119b..801f74770ba 100644 --- a/code/game/objects/items/candle.dm +++ b/code/game/objects/items/candle.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/candle.dmi' icon_state = "candle1" item_state = "candle1" - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/wax = 200 var/lit = 0 var/infinite = 0 @@ -91,4 +91,4 @@ /obj/item/candle/eternal desc = "A candle. This one seems to have an odd quality about the wax." - infinite = 1 \ No newline at end of file + infinite = 1 diff --git a/code/game/objects/items/control_wand.dm b/code/game/objects/items/control_wand.dm index 95cf94a3a1e..0fe6cf48631 100644 --- a/code/game/objects/items/control_wand.dm +++ b/code/game/objects/items/control_wand.dm @@ -8,7 +8,7 @@ icon = 'icons/obj/device.dmi' name = "control wand" desc = "Remotely controls airlocks." - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/mode = WAND_OPEN var/region_access = 1 //See access.dm var/obj/item/weapon/card/id/ID diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index 3852d67e6ff..a3d302f1326 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -7,7 +7,7 @@ desc = "A colourful crayon. Looks tasty. Mmmm..." icon = 'icons/obj/crayons.dmi' icon_state = "crayonred" - w_class = 1 + w_class = WEIGHT_CLASS_TINY slot_flags = SLOT_BELT | SLOT_EARS attack_verb = list("attacked", "coloured") toolspeed = 1 diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm index 0d02add30a3..542d3cd3fb4 100644 --- a/code/game/objects/items/devices/aicard.dm +++ b/code/game/objects/items/devices/aicard.dm @@ -3,7 +3,7 @@ icon = 'icons/obj/aicards.dmi' icon_state = "aicard" // aicard-full item_state = "electronic" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL slot_flags = SLOT_BELT flags = NOBLUDGEON var/flush = null diff --git a/code/game/objects/items/devices/camera_bug.dm b/code/game/objects/items/devices/camera_bug.dm index af745b97f1f..5554fd4f0f4 100644 --- a/code/game/objects/items/devices/camera_bug.dm +++ b/code/game/objects/items/devices/camera_bug.dm @@ -9,7 +9,7 @@ desc = "For illicit snooping through the camera network." icon = 'icons/obj/device.dmi' icon_state = "camera_bug" - w_class = 1.0 + w_class = WEIGHT_CLASS_TINY item_state = "camera_bug" throw_speed = 4 throw_range = 20 diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm index d3f13c284c1..ff7eb0ac2cc 100644 --- a/code/game/objects/items/devices/chameleonproj.dm +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -7,7 +7,7 @@ throwforce = 5.0 throw_speed = 3 throw_range = 5 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL origin_tech = "syndicate=4;magnets=4" var/can_use = 1 var/obj/effect/dummy/chameleon/active_dummy = null @@ -150,4 +150,4 @@ /obj/effect/dummy/chameleon/Destroy() master.disrupt(0) - return ..() \ No newline at end of file + return ..() diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index fefb20e90e4..e309cae9bbe 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -4,7 +4,7 @@ icon_state = "flash" item_state = "flashtool" //looks exactly like a flash (and nothing like a flashbang) throwforce = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 3 throw_range = 7 flags = CONDUCT diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 9ac4897c8f3..f82e8ab2cee 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/lighting.dmi' icon_state = "flashlight" item_state = "flashlight" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL flags = CONDUCT slot_flags = SLOT_BELT materials = list(MAT_METAL=50, MAT_GLASS=20) @@ -88,7 +88,7 @@ desc = "A pen-sized light, used by medical staff." icon_state = "penlight" item_state = "" - w_class = 1 + w_class = WEIGHT_CLASS_TINY slot_flags = SLOT_BELT | SLOT_EARS flags = CONDUCT brightness_on = 2 @@ -109,7 +109,7 @@ item_state = "" flags = CONDUCT brightness_on = 2 - w_class = 1 + w_class = WEIGHT_CLASS_TINY // the desk lamps are a bit special /obj/item/device/flashlight/lamp @@ -118,7 +118,7 @@ icon_state = "lamp" item_state = "lamp" brightness_on = 5 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY flags = CONDUCT materials = list() on = 1 @@ -153,7 +153,7 @@ obj/item/device/flashlight/lamp/bananalamp /obj/item/device/flashlight/flare name = "flare" desc = "A red Nanotrasen issued flare. There are instructions on the side, it reads 'pull cord, make light'." - w_class = 2 + w_class = WEIGHT_CLASS_SMALL brightness_on = 8 // Made it brighter (from 7 to 8). light_color = "#ff0000" // changed colour to a more brighter red. icon_state = "flare" @@ -214,7 +214,7 @@ obj/item/device/flashlight/lamp/bananalamp /obj/item/device/flashlight/flare/torch name = "torch" desc = "A torch fashioned from some leaves and a log." - w_class = 4 + w_class = WEIGHT_CLASS_BULKY brightness_on = 7 icon_state = "torch" item_state = "torch" @@ -227,7 +227,7 @@ obj/item/device/flashlight/lamp/bananalamp icon = 'icons/obj/lighting.dmi' icon_state = "floor1" //not a slime extract sprite but... something close enough! item_state = "slime" - w_class = 1 + w_class = WEIGHT_CLASS_TINY brightness_on = 6 light_color = "#FFBF00" materials = list() diff --git a/code/game/objects/items/devices/floor_painter.dm b/code/game/objects/items/devices/floor_painter.dm index c278a1be72a..74b119c7b62 100644 --- a/code/game/objects/items/devices/floor_painter.dm +++ b/code/game/objects/items/devices/floor_painter.dm @@ -3,37 +3,37 @@ /obj/item/device/floor_painter name = "floor painter" icon_state = "floor_painter" - + var/floor_icon var/floor_state = "floor" var/floor_dir = SOUTH - - w_class = 1 + + w_class = WEIGHT_CLASS_TINY item_state = "electronic" flags = CONDUCT slot_flags = SLOT_BELT - - var/static/list/allowed_states = list("arrival", "arrivalcorner", "bar", "barber", "blackcorner", "blue", "bluecorner", + + var/static/list/allowed_states = list("arrival", "arrivalcorner", "bar", "barber", "blackcorner", "blue", "bluecorner", "bluefull", "bluered", "blueyellow", "blueyellowfull", "bot", "brown", "browncorner", "browncornerold", "brownold", "cafeteria", "caution", "cautioncorner", "chapel", "cmo", "dark", "delivery", "escape", "escapecorner", "floor", "freezerfloor", "green", "greenblue", "greenbluefull", "greencorner", "greenfull", "greenyellow", "greenyellowfull", "grimy", "loadingarea", "neutral", "neutralcorner", "neutralfull", "orange", "orangecorner", "orangefull", "purple", "purplecorner", "purplefull", "rampbottom", "ramptop", "red", "redblue", "redbluefull", - "redcorner", "redfull", "redgreen", "redgreenfull", "redyellow", "redyellowfull", "warning", "warningcorner", "warnwhite", - "warnwhitecorner", "white", "whiteblue", "whitebluecorner", "whitebluefull", "whitebot", "whitecorner", "whitedelivery", - "whitegreen", "whitegreencorner", "whitegreenfull", "whitehall", "whitepurple", "whitepurplecorner", "whitepurplefull", - "whitered", "whiteredcorner", "whiteredfull", "whiteyellow", "whiteyellowcorner", "whiteyellowfull", "yellow", + "redcorner", "redfull", "redgreen", "redgreenfull", "redyellow", "redyellowfull", "warning", "warningcorner", "warnwhite", + "warnwhitecorner", "white", "whiteblue", "whitebluecorner", "whitebluefull", "whitebot", "whitecorner", "whitedelivery", + "whitegreen", "whitegreencorner", "whitegreenfull", "whitehall", "whitepurple", "whitepurplecorner", "whitepurplefull", + "whitered", "whiteredcorner", "whiteredfull", "whiteyellow", "whiteyellowcorner", "whiteyellowfull", "yellow", "yellowcorner", "yellowcornersiding", "yellowsiding") /obj/item/device/floor_painter/afterattack(var/atom/A, var/mob/user, proximity, params) if(!proximity) return - + var/turf/simulated/floor/plasteel/F = A if(!istype(F)) to_chat(user, "\The [src] can only be used on station flooring.") return - + F.icon_state = floor_state F.icon_regular_floor = floor_state F.dir = floor_dir @@ -60,7 +60,7 @@ Choose Direction

Direction: [dir2text(floor_dir)]
"} - + var/datum/browser/popup = new(user, "floor_painter", name, 225, 300) popup.set_content(dat) popup.open() @@ -68,7 +68,7 @@ /obj/item/device/floor_painter/Topic(href, href_list) if(..()) return - + if(href_list["choose_state"]) var/state = input("Please select a style", "[src]") as null|anything in allowed_states if(state) @@ -92,7 +92,7 @@ index = 1 floor_state = allowed_states[index] floor_dir = SOUTH - + floor_icon = icon('icons/turf/floors.dmi', floor_state, floor_dir) if(usr) attack_self(usr) diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index b172ea052f0..ee49962cfe7 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -8,7 +8,7 @@ flags = CONDUCT slot_flags = SLOT_BELT materials = list(MAT_METAL=500, MAT_GLASS=500) - w_class = 2 //Increased to 2, because diodes are w_class 2. Conservation of matter. + w_class = WEIGHT_CLASS_SMALL //Increased to 2, because diodes are w_class 2. Conservation of matter. origin_tech = "combat=1" origin_tech = "magnets=2" var/energy = 5 diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index d38ac3b71ff..c59e39a2043 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -3,7 +3,7 @@ desc = "A device used to project your voice. Loudly." icon_state = "megaphone" item_state = "radio" - w_class = 1 + w_class = WEIGHT_CLASS_SMALL flags = CONDUCT var/spamcheck = 0 diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index feb288d327d..1d42bf70108 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -3,7 +3,7 @@ icon = 'icons/obj/aicards.dmi' icon_state = "pai" item_state = "electronic" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL slot_flags = SLOT_BELT origin_tech = "programming=2" var/request_cooldown = 5 // five seconds diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index 65093361197..7c81ca0e6e9 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -5,7 +5,7 @@ desc = "A nulling power sink which drains energy from electrical systems." icon_state = "powersink0" item_state = "electronic" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY flags = CONDUCT throwforce = 5 throw_speed = 1 diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index 35848bdc087..7c01d03ca36 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -6,7 +6,7 @@ frequency = 1449 flags = CONDUCT slot_flags = SLOT_BACK - w_class = 5 + w_class = WEIGHT_CLASS_HUGE materials = list(MAT_METAL=10000, MAT_GLASS=2500) var/code = 2 diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 43289678591..4cf20378443 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -3,7 +3,7 @@ desc = "Talk through this." icon_state = "intercom" anchored = 1 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY canhear_range = 2 flags = CONDUCT var/number = 0 @@ -231,7 +231,7 @@ icon = 'icons/obj/doors/door_assembly.dmi' icon_state = "door_electronics" desc = "Looks like a circuit. Probably is." - w_class = 2 + w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=50, MAT_GLASS=50) toolspeed = 1 usesound = 'sound/items/Deconstruct.ogg' diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index c14fba68606..99096ac2649 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -44,7 +44,7 @@ var/global/list/default_medbay_channels = list( slot_flags = SLOT_BELT throw_speed = 2 throw_range = 9 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=75) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index ca4da5b2107..eebda5d242b 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -14,7 +14,7 @@ REAGENT SCANNER icon_state = "t-ray0" var/on = 0 slot_flags = SLOT_BELT - w_class = 2 + w_class = WEIGHT_CLASS_SMALL item_state = "electronic" materials = list(MAT_METAL=150) origin_tech = "magnets=1;engineering=1" @@ -117,7 +117,7 @@ REAGENT SCANNER flags = CONDUCT slot_flags = SLOT_BELT throwforce = 3 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 5 throw_range = 10 materials = list(MAT_METAL=200) @@ -294,7 +294,7 @@ REAGENT SCANNER name = "Health Analyzer Upgrade" icon_state = "healthupgrade" desc = "An upgrade unit that can be installed on a health analyzer for expanded functionality." - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "magnets=2;biotech=2" usesound = 'sound/items/Deconstruct.ogg' @@ -303,7 +303,7 @@ REAGENT SCANNER name = "analyzer" icon_state = "atmos" item_state = "analyzer" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL flags = CONDUCT slot_flags = SLOT_BELT throwforce = 0 @@ -369,7 +369,7 @@ REAGENT SCANNER name = "mass-spectrometer" icon_state = "spectrometer" item_state = "analyzer" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL flags = CONDUCT | OPENCONTAINER slot_flags = SLOT_BELT throwforce = 5 @@ -470,7 +470,7 @@ REAGENT SCANNER desc = "A hand-held reagent scanner which identifies chemical agents." icon_state = "spectrometer" item_state = "analyzer" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL flags = CONDUCT slot_flags = SLOT_BELT throwforce = 5 @@ -552,7 +552,7 @@ REAGENT SCANNER icon_state = "adv_spectrometer_s" item_state = "analyzer" origin_tech = "biotech=1" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL flags = CONDUCT throwforce = 0 throw_speed = 3 @@ -588,4 +588,4 @@ REAGENT SCANNER user.show_message("Genetic destability: [T.mutation_chance]% chance of mutation on splitting", 1) if(T.cores > 1) user.show_message("Anomalous slime core amount detected", 1) - user.show_message("Growth progress: [T.amount_grown]/10", 1) \ No newline at end of file + user.show_message("Growth progress: [T.amount_grown]/10", 1) diff --git a/code/game/objects/items/devices/sensor_device.dm b/code/game/objects/items/devices/sensor_device.dm index 79fc2f92457..b063682f770 100644 --- a/code/game/objects/items/devices/sensor_device.dm +++ b/code/game/objects/items/devices/sensor_device.dm @@ -3,7 +3,7 @@ desc = "A miniature machine that tracks suit sensors across the station." icon = 'icons/obj/device.dmi' icon_state = "scanner" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL slot_flags = SLOT_BELT origin_tech = "biotech=3;materials=3;magnets=3" var/datum/nano_module/crew_monitor/crew_monitor @@ -19,4 +19,4 @@ ui_interact(user) /obj/item/device/sensor_device/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) - crew_monitor.ui_interact(user, ui_key, ui, force_open) \ No newline at end of file + crew_monitor.ui_interact(user, ui_key, ui, force_open) diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm index 1d8c92662e8..9f773c0d402 100644 --- a/code/game/objects/items/devices/taperecorder.dm +++ b/code/game/objects/items/devices/taperecorder.dm @@ -3,7 +3,7 @@ desc = "A device that can record to cassette tapes, and play them. It automatically translates the content in playback." icon_state = "taperecorder_empty" item_state = "analyzer" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL slot_flags = SLOT_BELT materials = list(MAT_METAL=60, MAT_GLASS=30) force = 2 @@ -249,7 +249,7 @@ desc = "A magnetic tape that can hold up to ten minutes of content." icon_state = "tape_white" item_state = "analyzer" - w_class = 1 + w_class = WEIGHT_CLASS_TINY materials = list(MAT_METAL=20, MAT_GLASS=5) force = 1 throwforce = 0 diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 0b38b3f9e18..5f140f05d03 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -19,7 +19,7 @@ effective or pretty fucking useless. desc = "A strange device with twin antennas." icon_state = "batterer" throwforce = 5 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 4 throw_range = 10 flags = CONDUCT @@ -79,7 +79,7 @@ effective or pretty fucking useless. flags = CONDUCT slot_flags = SLOT_BELT throwforce = 3 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 3 throw_range = 7 materials = list(MAT_METAL=400) diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index 877cb1a5fc9..9c293bd6073 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -122,16 +122,16 @@ tank_one.forceMove(get_turf(src)) tank_one = null update_icon() - if((!tank_two || tank_two.w_class < 4) && (w_class > 3)) - w_class = 3 + if((!tank_two || tank_two.w_class < WEIGHT_CLASS_BULKY) && (w_class > WEIGHT_CLASS_NORMAL)) + w_class = WEIGHT_CLASS_NORMAL else if(tank_two && href_list["tanktwo"]) split_gases() valve_open = 0 tank_two.forceMove(get_turf(src)) tank_two = null update_icon() - if((!tank_one || tank_one.w_class < 4) && (w_class > 3)) - w_class = 3 + if((!tank_one || tank_one.w_class < WEIGHT_CLASS_BULKY) && (w_class > WEIGHT_CLASS_NORMAL)) + w_class = WEIGHT_CLASS_NORMAL else if(href_list["open"]) toggle_valve() else if(attached_device) @@ -217,4 +217,4 @@ else if(valve_open && tank_one && tank_two) split_gases() valve_open = 0 - update_icon() \ No newline at end of file + update_icon() diff --git a/code/game/objects/items/devices/whistle.dm b/code/game/objects/items/devices/whistle.dm index 359dfd82efa..d9aae300360 100644 --- a/code/game/objects/items/devices/whistle.dm +++ b/code/game/objects/items/devices/whistle.dm @@ -3,7 +3,7 @@ desc = "Used by obese officers to save their breath for running." icon_state = "voice0" item_state = "flashtool" //looks exactly like a flash (and nothing like a flashbang) - w_class = 1 + w_class = WEIGHT_CLASS_TINY flags = CONDUCT var/spamcheck = 0 @@ -28,4 +28,3 @@ if(!emagged) to_chat(user, "You overload \the [src]'s voice synthesizer.") emagged = 1 - diff --git a/code/game/objects/items/documents.dm b/code/game/objects/items/documents.dm index f76a4942195..9540dcbb966 100644 --- a/code/game/objects/items/documents.dm +++ b/code/game/objects/items/documents.dm @@ -5,7 +5,7 @@ icon_state = "docs_generic" item_state = "paper" throwforce = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_range = 1 throw_speed = 1 layer = 4 @@ -26,4 +26,4 @@ /obj/item/documents/syndicate/blue name = "'Blue' secret documents" desc = "\"Top Secret\" documents printed on special copy-protected paper. It details sensitive Syndicate operational intelligence. These documents are marked \"Blue\"." - icon_state = "docs_blue" \ No newline at end of file + icon_state = "docs_blue" diff --git a/code/game/objects/items/flag.dm b/code/game/objects/items/flag.dm index e05182bf3c1..0117f1b9f19 100644 --- a/code/game/objects/items/flag.dm +++ b/code/game/objects/items/flag.dm @@ -1,6 +1,6 @@ /obj/item/flag icon = 'icons/obj/flag.dmi' - w_class = 4 + w_class = WEIGHT_CLASS_BULKY burntime = 20 burn_state = FLAMMABLE @@ -156,7 +156,7 @@ name = "Nar'Sie Cultist flag" desc = "A flag proudly boasting the logo of the cultists, sworn enemies of NT." icon_state = "cultflag" - + //Chameleon /obj/item/flag/chameleon @@ -165,7 +165,7 @@ icon_state = "ntflag" origin_tech = "materials=3;magnets=4;syndicate=4" var/used = 0 - + /obj/item/flag/chameleon/attack_self(mob/user) if(used) return @@ -190,7 +190,7 @@ icon_state = chosen_flag.icon_state desc = chosen_flag.desc used = 1 - + /obj/item/flag/chameleon/burn() explosion(loc,1,2,4,4, flame_range = 4) - qdel(src) \ No newline at end of file + qdel(src) diff --git a/code/game/objects/items/latexballoon.dm b/code/game/objects/items/latexballoon.dm index a7a45de8cb8..5f55a5acdcc 100644 --- a/code/game/objects/items/latexballoon.dm +++ b/code/game/objects/items/latexballoon.dm @@ -5,7 +5,7 @@ item_state = "lgloves" force = 0 throwforce = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 1 throw_range = 7 var/state @@ -60,4 +60,4 @@ blow(T, user) return if(is_sharp(W) || is_hot(W) || can_puncture(W)) - burst() \ No newline at end of file + burst() diff --git a/code/game/objects/items/misc.dm b/code/game/objects/items/misc.dm index f2fa9596375..67b1523db8d 100644 --- a/code/game/objects/items/misc.dm +++ b/code/game/objects/items/misc.dm @@ -16,9 +16,9 @@ item_state = "beachball" density = 0 anchored = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY force = 0.0 throwforce = 0.0 throw_speed = 1 throw_range = 20 - flags = CONDUCT \ No newline at end of file + flags = CONDUCT diff --git a/code/game/objects/items/policetape.dm b/code/game/objects/items/policetape.dm index 26b0e8772af..127f3f82c41 100644 --- a/code/game/objects/items/policetape.dm +++ b/code/game/objects/items/policetape.dm @@ -3,7 +3,7 @@ name = "tape roll" icon = 'icons/policetape.dmi' icon_state = "rollstart" - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/turf/start var/turf/end var/tape_type = /obj/item/tape @@ -201,5 +201,3 @@ var/list/tape_roll_applications = list() qdel(src) return - - diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 4c2bbfa3bcd..e50c51ba100 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/items.dmi' amount = 6 max_amount = 6 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 3 throw_range = 7 var/heal_brute = 0 diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 1b63eaae7f0..96d5d381a72 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -9,7 +9,7 @@ var/global/list/datum/stack_recipe/rod_recipes = list ( \ icon_state = "rods" item_state = "rods" flags = CONDUCT - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL force = 9.0 throwforce = 10.0 throw_speed = 3 diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index 3a2d07aa2f6..e222f1627cd 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -108,8 +108,8 @@ var/global/list/datum/stack_recipe/human_recipes = list( \ desc = "Long stringy filaments which presumably came from a watcher's wings." singular_name = "watcher sinew" icon_state = "sinew" - origin_tech = "biotech=4" - + origin_tech = "biotech=4" + var/global/list/datum/stack_recipe/sinew_recipes = list ( \ new/datum/stack_recipe("sinew restraints", /obj/item/weapon/restraints/handcuffs/sinew, 1, on_floor = 1), \ ) @@ -117,7 +117,7 @@ var/global/list/datum/stack_recipe/sinew_recipes = list ( \ /obj/item/stack/sheet/sinew/New(var/loc, var/amount=null) recipes = sinew_recipes return ..() - + /obj/item/stack/sheet/animalhide/goliath_hide name = "goliath hide plates" desc = "Pieces of a goliath's rocky hide, these might be able to make your suit a bit more durable to attack from the local fauna." @@ -125,7 +125,7 @@ var/global/list/datum/stack_recipe/sinew_recipes = list ( \ icon_state = "goliath_hide" singular_name = "hide plate" flags = NOBLUDGEON - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL layer = MOB_LAYER /obj/item/stack/sheet/animalhide/ashdrake @@ -135,9 +135,9 @@ var/global/list/datum/stack_recipe/sinew_recipes = list ( \ icon_state = "dragon_hide" singular_name = "drake plate" flags = NOBLUDGEON - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL layer = MOB_LAYER - + //Step one - dehairing. /obj/item/stack/sheet/animalhide/attackby(obj/item/weapon/W as obj, mob/user as mob, params) @@ -177,4 +177,4 @@ var/global/list/datum/stack_recipe/sinew_recipes = list ( \ var/obj/item/stack/sheet/leather/HS = new(src.loc) HS.amount = 1 wetness = initial(wetness) - src.use(1) \ No newline at end of file + src.use(1) diff --git a/code/game/objects/items/stacks/sheets/light.dm b/code/game/objects/items/stacks/sheets/light.dm index 9ca562b50ce..d399e152bbe 100644 --- a/code/game/objects/items/stacks/sheets/light.dm +++ b/code/game/objects/items/stacks/sheets/light.dm @@ -5,7 +5,7 @@ desc = "A glass tile, which is wired, somehow." icon = 'icons/obj/tiles.dmi' icon_state = "glass_wire" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL force = 3.0 throwforce = 5.0 throw_speed = 5 diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index ef9781f9a0d..fc933a14f20 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -104,7 +104,7 @@ var/global/list/datum/stack_recipe/abductor_recipes = list ( \ /obj/item/stack/sheet/mineral force = 5.0 throwforce = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL throw_speed = 3 throw_range = 3 @@ -240,7 +240,7 @@ var/global/list/datum/stack_recipe/abductor_recipes = list ( \ singular_name = "alien alloy sheet" force = 5 throwforce = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL throw_speed = 1 throw_range = 3 origin_tech = "materials=6;abductor=1" @@ -248,4 +248,4 @@ var/global/list/datum/stack_recipe/abductor_recipes = list ( \ /obj/item/stack/sheet/mineral/abductor/New(loc, amount=null) recipes = abductor_recipes - ..() \ No newline at end of file + ..() diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 02031404360..858365f6d29 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -298,7 +298,7 @@ var/global/list/datum/stack_recipe/runed_metal_recipes = list ( \ desc = "Someone's been drinking their milk." force = 7 throwforce = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL throw_speed = 1 throw_range = 3 origin_tech = "materials=2;biotech=2" diff --git a/code/game/objects/items/stacks/sheets/sheets.dm b/code/game/objects/items/stacks/sheets/sheets.dm index 4e5a0e9fdc8..3a92d0f7662 100644 --- a/code/game/objects/items/stacks/sheets/sheets.dm +++ b/code/game/objects/items/stacks/sheets/sheets.dm @@ -1,6 +1,6 @@ /obj/item/stack/sheet name = "sheet" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL force = 5 throwforce = 5 max_amount = 50 @@ -24,4 +24,4 @@ else for(var/obj/item/stack/sheet/stack in locate(src.x,src.y,src.z)) S.add(stack,user) - ..()*/ \ No newline at end of file + ..()*/ diff --git a/code/game/objects/items/stacks/telecrystal.dm b/code/game/objects/items/stacks/telecrystal.dm index 0c6c3d42cf3..d2fb50bd385 100644 --- a/code/game/objects/items/stacks/telecrystal.dm +++ b/code/game/objects/items/stacks/telecrystal.dm @@ -5,7 +5,7 @@ singular_name = "telecrystal" icon = 'icons/obj/telescience.dmi' icon_state = "telecrystal" - w_class = 1 + w_class = WEIGHT_CLASS_TINY max_amount = 50 flags = NOBLUDGEON origin_tech = "materials=6;syndicate=1" diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index b8078bfebcb..1fec38f491b 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -5,7 +5,7 @@ icon = 'icons/obj/tiles.dmi' icon_state = "tile" item_state = "tile" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL force = 1 throwforce = 1 throw_speed = 5 @@ -160,4 +160,4 @@ singular_name = "pod floor tile" desc = "A grooved floor tile." icon_state = "tile_pod" - turf_type = /turf/simulated/floor/pod \ No newline at end of file + turf_type = /turf/simulated/floor/pod diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 87da0987487..575cf09a6b1 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -113,7 +113,7 @@ icon = 'icons/obj/weapons.dmi' icon_state = "syndballoon" item_state = "syndballoon" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY /* * Fake telebeacon @@ -144,7 +144,7 @@ icon_state = "sword0" item_state = "sword0" var/active = 0.0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL attack_verb = list("attacked", "struck", "hit") /obj/item/toy/sword/attack_self(mob/user as mob) @@ -154,13 +154,13 @@ playsound(user, 'sound/weapons/saberon.ogg', 50, 1) icon_state = "swordblue" item_state = "swordblue" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY else to_chat(user, "You push the plastic blade back down into the handle.") playsound(user, 'sound/weapons/saberoff.ogg', 50, 1) icon_state = "sword0" item_state = "sword0" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL if(istype(user,/mob/living/carbon/human)) var/mob/living/carbon/human/H = user @@ -218,7 +218,7 @@ slot_flags = SLOT_BELT | SLOT_BACK force = 5 throwforce = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL attack_verb = list("attacked", "slashed", "stabbed", "sliced") hitsound = 'sound/weapons/bladeslice.ogg' @@ -239,7 +239,7 @@ throwforce = 5.0 throw_speed = 10 throw_range = 30 - w_class = 1 + w_class = WEIGHT_CLASS_TINY /obj/item/toy/snappop/virus/throw_impact(atom/hit_atom) @@ -260,7 +260,7 @@ desc = "Wow!" icon = 'icons/obj/toy.dmi' icon_state = "snappop" - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/ash_type = /obj/effect/decal/cleanable/ash /obj/item/toy/snappop/proc/pop_burst(var/n=3, var/c=1) @@ -403,7 +403,7 @@ slot_flags = SLOT_BELT | SLOT_BACK force = 5 throwforce = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL attack_verb = list("attacked", "slashed", "stabbed", "sliced") @@ -438,7 +438,7 @@ obj/item/toy/cards/deck icon = 'icons/obj/toy.dmi' deckstyle = "nanotrasen" icon_state = "deck_nanotrasen_full" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/cooldown = 0 var/list/cards = list() @@ -568,7 +568,7 @@ obj/item/toy/cards/cardhand desc = "A number of cards not in a deck, customarily held in ones hand." icon = 'icons/obj/toy.dmi' icon_state = "nanotrasen_hand2" - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/list/currenthand = list() var/choice = null @@ -661,7 +661,7 @@ obj/item/toy/cards/singlecard desc = "a card" icon = 'icons/obj/toy.dmi' icon_state = "singlecard_nanotrasen_down" - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/cardname = null var/flipped = 0 pixel_x = -5 @@ -787,7 +787,7 @@ obj/item/toy/cards/deck/syndicate/black desc = "A plastic model of a Nuclear Fission Explosive." icon = 'icons/obj/toy.dmi' icon_state = "nuketoyidle" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/cooldown = 0 /obj/item/toy/nuke/attack_self(mob/user) @@ -810,7 +810,7 @@ obj/item/toy/cards/deck/syndicate/black desc = "A toy for therapeutic and recreational purposes." icon_state = "therapyred" item_state = "egg4" - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/cooldown = 0 /obj/item/toy/therapy/New() @@ -863,7 +863,7 @@ obj/item/toy/cards/deck/syndicate/black name = "toddler" desc = "This baby looks almost real. Wait, did it just burp?" force = 5 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY slot_flags = SLOT_BACK @@ -886,7 +886,7 @@ obj/item/toy/cards/deck/syndicate/black desc = "Relive the excitement of a meteor shower! SweetMeat-eor. Co is not responsible for any injuries, headaches or hearing loss caused by Mini-Meteor." icon = 'icons/obj/toy.dmi' icon_state = "minimeteor" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL /obj/item/toy/minimeteor/throw_impact(atom/hit_atom) ..() @@ -1095,7 +1095,7 @@ obj/item/toy/cards/deck/syndicate/black icon_state = "foamblade" item_state = "arm_blade" attack_verb = list("pricked", "absorbed", "gored") - w_class = 2 + w_class = WEIGHT_CLASS_SMALL burn_state = FLAMMABLE /* @@ -1107,7 +1107,7 @@ obj/item/toy/cards/deck/syndicate/black icon = 'icons/obj/device.dmi' icon_state = "flash" item_state = "flashtool" - w_class = 1 + w_class = WEIGHT_CLASS_TINY /obj/item/toy/flash/attack(mob/living/M, mob/user) playsound(src.loc, 'sound/weapons/flash.ogg', 100, 1) @@ -1123,7 +1123,7 @@ obj/item/toy/cards/deck/syndicate/black desc = "A big, plastic red button. Reads 'From HonkCo Pranks?' on the back." icon = 'icons/obj/assemblies.dmi' icon_state = "bigred" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/cooldown = 0 /obj/item/toy/redbutton/attack_self(mob/user) @@ -1148,7 +1148,7 @@ obj/item/toy/cards/deck/syndicate/black desc = "A little toy model AI core with real law announcing action!" icon = 'icons/obj/toy.dmi' icon_state = "AI" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/cooldown = 0 /obj/item/toy/AI/attack_self(mob/user) @@ -1167,7 +1167,7 @@ obj/item/toy/cards/deck/syndicate/black desc = "An action figure modeled after 'The Owl', defender of justice." icon = 'icons/obj/toy.dmi' icon_state = "owlprize" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/cooldown = 0 /obj/item/toy/owl/attack_self(mob/user) @@ -1186,7 +1186,7 @@ obj/item/toy/cards/deck/syndicate/black desc = "An action figure modeled after 'The Griffin', criminal mastermind." icon = 'icons/obj/toy.dmi' icon_state = "griffinprize" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/cooldown = 0 /obj/item/toy/griffin/attack_self(mob/user) @@ -1203,7 +1203,7 @@ obj/item/toy/cards/deck/syndicate/black // DND Character minis. Use the naming convention (type)character for the icon states. /obj/item/toy/character icon = 'icons/obj/toy.dmi' - w_class = 2 + w_class = WEIGHT_CLASS_SMALL pixel_z = 5 /obj/item/toy/character/alien @@ -1256,7 +1256,7 @@ obj/item/toy/cards/deck/syndicate/black desc = "The perfect pet!" icon = 'icons/obj/toy.dmi' icon_state = "pet_rock" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL force = 5 throwforce = 5 attack_verb = list("attacked", "bashed", "smashed", "stoned") @@ -1280,7 +1280,7 @@ obj/item/toy/cards/deck/syndicate/black icon = 'icons/obj/toy.dmi' icon_state = "minigibber" attack_verb = list("grinded", "gibbed") - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/cooldown = 0 var/obj/stored_minature = null @@ -1322,7 +1322,7 @@ obj/item/toy/cards/deck/syndicate/black icon_state = "toy_xeno" name = "xenomorph action figure" desc = "MEGA presents the new Xenos Isolated action figure! Comes complete with realistic sounds! Pull back string to use." - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/cooldown = 0 /obj/item/toy/toy_xeno/attack_self(mob/user) @@ -1352,7 +1352,7 @@ obj/item/toy/cards/deck/syndicate/black flags = CONDUCT slot_flags = SLOT_BELT materials = list(MAT_METAL=2000) - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL throwforce = 5 throw_speed = 4 throw_range = 5 diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index dc538674993..30a75b310b6 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -4,7 +4,7 @@ //Added by Jack Rost /obj/item/trash icon = 'icons/obj/trash.dmi' - w_class = 1 + w_class = WEIGHT_CLASS_TINY desc = "This is rubbish." burn_state = FLAMMABLE diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm index cca1464d6e7..17d40971804 100755 --- a/code/game/objects/items/weapons/AI_modules.dm +++ b/code/game/objects/items/weapons/AI_modules.dm @@ -14,7 +14,7 @@ AI MODULES desc = "An AI Module for transmitting encrypted instructions to the AI." flags = CONDUCT force = 5.0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throwforce = 5.0 throw_speed = 3 throw_range = 15 @@ -397,4 +397,4 @@ AI MODULES laws[1] = generate_ion_law() to_chat(user, "You press the button on [src].") playsound(user, 'sound/machines/click.ogg', 20, 1) - src.loc.visible_message("[bicon(src)] [laws[1]]") \ No newline at end of file + src.loc.visible_message("[bicon(src)] [laws[1]]") diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index 5598a42cc8f..595f1c42160 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -17,7 +17,7 @@ RCD throwforce = 10.0 throw_speed = 3 throw_range = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL = 30000) origin_tech = "engineering=4;materials=2" toolspeed = 1 diff --git a/code/game/objects/items/weapons/RSF.dm b/code/game/objects/items/weapons/RSF.dm index 07a489490e1..ddeefa002b0 100644 --- a/code/game/objects/items/weapons/RSF.dm +++ b/code/game/objects/items/weapons/RSF.dm @@ -13,7 +13,7 @@ RSF anchored = 0.0 var/matter = 0 var/mode = 1 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/rsf/New() desc = "A RSF. It currently holds [matter]/30 fabrication-units." @@ -231,4 +231,4 @@ RSF matter-- to_chat(user, "The RSF now holds [matter]/30 fabrication-units.") desc = "A RSF. It currently holds [matter]/30 fabrication-units." - return \ No newline at end of file + return diff --git a/code/game/objects/items/weapons/alien_specific.dm b/code/game/objects/items/weapons/alien_specific.dm index 922f4004714..49258c05c4e 100644 --- a/code/game/objects/items/weapons/alien_specific.dm +++ b/code/game/objects/items/weapons/alien_specific.dm @@ -12,8 +12,8 @@ throwforce_on = 5 throw_speed = 1 throw_range = 5 - w_class = 2 - w_class_on = 2 + w_class = WEIGHT_CLASS_SMALL + w_class_on = WEIGHT_CLASS_SMALL attack_verb = list("attacked", "slashed", "gored", "sliced", "torn", "ripped", "butchered", "cut") attack_verb_on = list() diff --git a/code/game/objects/items/weapons/bee_briefcase.dm b/code/game/objects/items/weapons/bee_briefcase.dm index 3252fe4d856..229a025a18f 100644 --- a/code/game/objects/items/weapons/bee_briefcase.dm +++ b/code/game/objects/items/weapons/bee_briefcase.dm @@ -11,7 +11,7 @@ force = 10 throw_speed = 2 throw_range = 4 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") var/bees_left = 10 var/list/blood_list = list() diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 27d659dcbe2..826cd386f3c 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -15,7 +15,7 @@ name = "card" desc = "A card." icon = 'icons/obj/card.dmi' - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/associated_account_number = 0 var/list/files = list( ) diff --git a/code/game/objects/items/weapons/caution.dm b/code/game/objects/items/weapons/caution.dm index 44a357a6d92..250aff951fd 100644 --- a/code/game/objects/items/weapons/caution.dm +++ b/code/game/objects/items/weapons/caution.dm @@ -7,7 +7,7 @@ throwforce = 3.0 throw_speed = 1 throw_range = 5 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL attack_verb = list("warned", "cautioned", "smashed") proximity_sign diff --git a/code/game/objects/items/weapons/chrono_eraser.dm b/code/game/objects/items/weapons/chrono_eraser.dm index 71e09a3cf0d..ef1e2c91498 100644 --- a/code/game/objects/items/weapons/chrono_eraser.dm +++ b/code/game/objects/items/weapons/chrono_eraser.dm @@ -6,7 +6,7 @@ icon = 'icons/obj/chronos.dmi' icon_state = "chronobackpack" item_state = "backpack" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY slot_flags = SLOT_BACK slowdown = 1 actions_types = list(/datum/action/item_action/equip_unequip_TED_Gun) @@ -46,7 +46,7 @@ icon = 'icons/obj/chronos.dmi' icon_state = "chronogun" item_state = "chronogun" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL flags = NODROP ammo_type = list(/obj/item/ammo_casing/energy/chrono_beam) can_charge = 0 diff --git a/code/game/objects/items/weapons/cigs.dm b/code/game/objects/items/weapons/cigs.dm index 2b46e8de101..766fe92c1ee 100644 --- a/code/game/objects/items/weapons/cigs.dm +++ b/code/game/objects/items/weapons/cigs.dm @@ -20,7 +20,7 @@ LIGHTERS ARE IN LIGHTERS.DM throw_speed = 0.5 item_state = "cigoff" slot_flags = SLOT_EARS|SLOT_MASK - w_class = 1 + w_class = WEIGHT_CLASS_TINY body_parts_covered = null attack_verb = list("burnt", "singed") var/lit = 0 @@ -285,7 +285,7 @@ LIGHTERS ARE IN LIGHTERS.DM desc = "A manky old cigarette butt." icon = 'icons/obj/clothing/masks.dmi' icon_state = "cigbutt" - w_class = 1 + w_class = WEIGHT_CLASS_TINY throwforce = 1 /obj/item/weapon/cigbutt/New() @@ -389,7 +389,7 @@ LIGHTERS ARE IN LIGHTERS.DM desc = "A thin piece of paper used to make fine smokeables." icon = 'icons/obj/cigarettes.dmi' icon_state = "cig_paper" - w_class = 1 + w_class = WEIGHT_CLASS_TINY /obj/item/weapon/rollingpaper/afterattack(atom/target, mob/user, proximity) if(!proximity) @@ -410,4 +410,4 @@ LIGHTERS ARE IN LIGHTERS.DM else to_chat(user, "You need to dry this first!") else - ..() \ No newline at end of file + ..() diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm index 3312c6555d4..bb69ffaee50 100644 --- a/code/game/objects/items/weapons/clown_items.dm +++ b/code/game/objects/items/weapons/clown_items.dm @@ -60,7 +60,7 @@ item_state = "bike_horn" hitsound = null throwforce = 3 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 3 throw_range = 15 attack_verb = list("HONKED") @@ -112,4 +112,4 @@ var/mob/living/carbon/human/H = M if(istype(H.l_ear, /obj/item/clothing/ears/earmuffs) || istype(H.r_ear, /obj/item/clothing/ears/earmuffs) || H.ear_deaf) continue - M.emote("flip") \ No newline at end of file + M.emote("flip") diff --git a/code/game/objects/items/weapons/cosmetics.dm b/code/game/objects/items/weapons/cosmetics.dm index a5a2438771e..d480f8f4010 100644 --- a/code/game/objects/items/weapons/cosmetics.dm +++ b/code/game/objects/items/weapons/cosmetics.dm @@ -3,7 +3,7 @@ desc = "A generic brand of lipstick." icon = 'icons/obj/items.dmi' icon_state = "lipstick" - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/colour = "red" var/open = 0 @@ -86,7 +86,7 @@ icon = 'icons/obj/items.dmi' icon_state = "razor" flags = CONDUCT - w_class = 1 + w_class = WEIGHT_CLASS_TINY usesound = 'sound/items/Welder2.ogg' toolspeed = 1 diff --git a/code/game/objects/items/weapons/courtroom.dm b/code/game/objects/items/weapons/courtroom.dm index 055faa03a8c..0f5671f8e1a 100644 --- a/code/game/objects/items/weapons/courtroom.dm +++ b/code/game/objects/items/weapons/courtroom.dm @@ -9,7 +9,7 @@ icon_state = "gavelhammer" force = 5.0 throwforce = 6.0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL attack_verb = list("bashed", "battered", "judged", "whacked") burn_state = FLAMMABLE @@ -25,7 +25,7 @@ icon_state = "gavelblock" force = 2.0 throwforce = 2.0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY burn_state = FLAMMABLE /obj/item/weapon/gavelblock/attackby(obj/item/I, mob/user, params) @@ -33,4 +33,4 @@ playsound(loc, 'sound/items/gavel.ogg', 100, 1) user.visible_message("[user] strikes \the [src] with \the [I].") else - return \ No newline at end of file + return diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index 5d0dcebcacc..0586e8b23d1 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -9,7 +9,7 @@ slot_flags = SLOT_BACK force = 5 throwforce = 6 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY origin_tech = "biotech=4" actions_types = list(/datum/action/item_action/toggle_paddles) species_fit = list("Vox") @@ -206,7 +206,7 @@ desc = "A belt-equipped defibrillator that can be rapidly deployed." icon_state = "defibcompact" item_state = "defibcompact" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL slot_flags = SLOT_BELT origin_tech = "biotech=4" @@ -251,7 +251,7 @@ item_state = "defibpaddles" force = 0 throwforce = 6 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY toolspeed = 1 var/revivecost = 1000 @@ -446,7 +446,7 @@ icon_state = "defibpaddles0" item_state = "defibpaddles0" force = 0 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY var/revivecost = 1000 var/cooldown = 0 var/busy = 0 diff --git a/code/game/objects/items/weapons/dice.dm b/code/game/objects/items/weapons/dice.dm index 80274a4d7ca..7871f19e91a 100644 --- a/code/game/objects/items/weapons/dice.dm +++ b/code/game/objects/items/weapons/dice.dm @@ -29,7 +29,7 @@ desc = "A die with six sides. Basic and servicable." icon = 'icons/obj/dice.dmi' icon_state = "d6" - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/sides = 6 var/result = null var/list/special_faces = list() //entries should match up to sides var if used diff --git a/code/game/objects/items/weapons/disks.dm b/code/game/objects/items/weapons/disks.dm index 2c3f71f5cf3..58f590dc629 100644 --- a/code/game/objects/items/weapons/disks.dm +++ b/code/game/objects/items/weapons/disks.dm @@ -1,5 +1,5 @@ /obj/item/weapon/disk icon = 'icons/obj/module.dmi' - w_class = 1 + w_class = WEIGHT_CLASS_TINY item_state = "card-id" icon_state = "datadisk0" diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index b4d0e0b5eaa..b583b3e2c25 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -8,7 +8,7 @@ var/datum/dna2/record/buf = null throw_speed = 3 throw_range = 5 - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "biotech=1" var/damage_coeff = 1 diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm index 0767e26fbdb..42874e05cf4 100644 --- a/code/game/objects/items/weapons/extinguisher.dm +++ b/code/game/objects/items/weapons/extinguisher.dm @@ -7,7 +7,7 @@ hitsound = 'sound/weapons/smash.ogg' flags = CONDUCT throwforce = 10 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL throw_speed = 2 throw_range = 7 force = 10 @@ -29,7 +29,7 @@ hitsound = null //it is much lighter, after all. flags = null //doesn't CONDUCT throwforce = 2 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL force = 3.0 materials = list() max_water = 30 diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index 70fbde22224..9adb05f15a7 100644 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -11,7 +11,7 @@ throwforce = 10.0 throw_speed = 1 throw_range = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL=500) origin_tech = "combat=1;plasmatech=1" var/status = 0 diff --git a/code/game/objects/items/weapons/garrote.dm b/code/game/objects/items/weapons/garrote.dm index 196b0d269a0..be96e29f97a 100644 --- a/code/game/objects/items/weapons/garrote.dm +++ b/code/game/objects/items/weapons/garrote.dm @@ -8,7 +8,7 @@ name = "fiber wire" desc = "A length of razor-thin wire with an elegant wooden handle on either end.
You suspect you'd have to be behind the target to use this weapon effectively." icon_state = "garrot_wrap" - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/mob/living/carbon/human/strangling var/improvised = 0 var/garrote_time diff --git a/code/game/objects/items/weapons/grenades/bananade.dm b/code/game/objects/items/weapons/grenades/bananade.dm index 580cb993a63..6c672193bb6 100644 --- a/code/game/objects/items/weapons/grenades/bananade.dm +++ b/code/game/objects/items/weapons/grenades/bananade.dm @@ -4,7 +4,7 @@ var/turf/T /obj/item/weapon/grenade/bananade name = "bananade" desc = "A yellow grenade." - w_class = 2 + w_class = WEIGHT_CLASS_SMALL icon = 'icons/obj/grenade.dmi' icon_state = "banana" item_state = "flashbang" diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index 5dc0e8d4199..4221528e100 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -9,7 +9,7 @@ item_state = "flashbang" var/bomb_state = "chembomb" var/payload_name = null // used for spawned grenades - w_class = 2 + w_class = WEIGHT_CLASS_SMALL force = 2 var/prime_sound = 'sound/items/Screwdriver2.ogg' var/stage = EMPTY @@ -539,4 +539,4 @@ #undef EMPTY #undef WIRED -#undef READY \ No newline at end of file +#undef READY diff --git a/code/game/objects/items/weapons/grenades/clowngrenade.dm b/code/game/objects/items/weapons/grenades/clowngrenade.dm index 0fcdceff9ac..0d24bd80a95 100644 --- a/code/game/objects/items/weapons/grenades/clowngrenade.dm +++ b/code/game/objects/items/weapons/grenades/clowngrenade.dm @@ -3,7 +3,7 @@ desc = "HONK! brand Bananas. In a special applicator for rapid slipping of wide areas." icon_state = "banana" item_state = "flashbang" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL force = 2.0 var/stage = 0 var/state = 0 @@ -74,4 +74,4 @@ if(istype(hit_atom ,/mob/living)) var/mob/living/M = hit_atom M.take_organ_damage(0, burned) - return ..() \ No newline at end of file + return ..() diff --git a/code/game/objects/items/weapons/grenades/ghettobomb.dm b/code/game/objects/items/weapons/grenades/ghettobomb.dm index 745afd967ee..13b0f0b8140 100644 --- a/code/game/objects/items/weapons/grenades/ghettobomb.dm +++ b/code/game/objects/items/weapons/grenades/ghettobomb.dm @@ -17,7 +17,7 @@ /obj/item/weapon/grenade/iedcasing name = "improvised explosive assembly" desc = "An igniter stuffed into an aluminum shell." - w_class = 2 + w_class = WEIGHT_CLASS_SMALL icon = 'icons/obj/grenade.dmi' icon_state = "improvised_grenade" item_state = "flashbang" @@ -67,7 +67,7 @@ /obj/item/weapon/grenade/iedcasing/filled name = "improvised firebomb" desc = "A weak, improvised incendiary device." - w_class = 2 + w_class = WEIGHT_CLASS_SMALL icon = 'icons/obj/grenade.dmi' icon_state = "improvised_grenade" item_state = "flashbang" diff --git a/code/game/objects/items/weapons/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm index af855e63016..88abd66913f 100644 --- a/code/game/objects/items/weapons/grenades/grenade.dm +++ b/code/game/objects/items/weapons/grenades/grenade.dm @@ -1,7 +1,7 @@ /obj/item/weapon/grenade name = "grenade" desc = "A hand held grenade, with an adjustable timer." - w_class = 2 + w_class = WEIGHT_CLASS_SMALL icon = 'icons/obj/grenade.dmi' icon_state = "grenade" item_state = "flashbang" diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 723920e7a5c..e802916de27 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -7,7 +7,7 @@ flags = CONDUCT slot_flags = SLOT_BELT throwforce = 5 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 2 throw_range = 5 materials = list(MAT_METAL=500) diff --git a/code/game/objects/items/weapons/holosign.dm b/code/game/objects/items/weapons/holosign.dm index bfd16e71003..47547ec543a 100644 --- a/code/game/objects/items/weapons/holosign.dm +++ b/code/game/objects/items/weapons/holosign.dm @@ -5,7 +5,7 @@ icon_state = "signmaker" item_state = "electronic" force = 5 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throwforce = 0 throw_speed = 3 throw_range = 7 diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm index a6a1039f1c7..c4c4175d2fa 100644 --- a/code/game/objects/items/weapons/holy_weapons.dm +++ b/code/game/objects/items/weapons/holy_weapons.dm @@ -7,7 +7,7 @@ throw_speed = 3 throw_range = 4 throwforce = 10 - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/reskinned = FALSE var/reskin_selectable = TRUE //set to FALSE if a subtype is meant to not normally be available as a reskin option (fluff ones will get re-added through their list) var/list/fluff_transformations = list() //does it have any special transformations only accessible to it? Should only be subtypes of /obj/item/weapon/nullrod @@ -71,7 +71,7 @@ item_state = "disintegrate" desc = "This hand of yours glows with an awesome power!" flags = ABSTRACT | NODROP - w_class = 5 + w_class = WEIGHT_CLASS_HUGE hitsound = 'sound/weapons/sear.ogg' damtype = BURN attack_verb = list("punched", "cross countered", "pummeled") @@ -81,7 +81,7 @@ icon_state = "godstaff-red" item_state = "godstaff-red" desc = "It has a mysterious, protective aura." - w_class = 5 + w_class = WEIGHT_CLASS_HUGE force = 5 slot_flags = SLOT_BACK block_chance = 50 @@ -96,7 +96,7 @@ icon_state = "claymore" item_state = "claymore" desc = "A weapon fit for a crusade!" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY slot_flags = SLOT_BACK|SLOT_BELT block_chance = 30 sharp = 1 @@ -183,7 +183,7 @@ icon_state = "scythe0" item_state = "scythe0" desc = "Ask not for whom the bell tolls..." - w_class = 4 + w_class = WEIGHT_CLASS_BULKY armour_penetration = 35 slot_flags = SLOT_BACK sharp = 1 @@ -255,7 +255,7 @@ item_state = "hammeron" desc = "This war hammer cost the chaplain fourty thousand space dollars." slot_flags = SLOT_BELT - w_class = 5 + w_class = WEIGHT_CLASS_HUGE attack_verb = list("smashed", "bashed", "hammered", "crunched") /obj/item/weapon/nullrod/chainsaw @@ -263,7 +263,7 @@ desc = "Good? Bad? You're the guy with the chainsaw hand." icon_state = "chainsaw1" item_state = "mounted_chainsaw" - w_class = 5 + w_class = WEIGHT_CLASS_HUGE flags = NODROP | ABSTRACT sharp = 1 edge = 1 @@ -322,7 +322,7 @@ icon_state = "arm_blade" item_state = "arm_blade" flags = ABSTRACT | NODROP - w_class = 5 + w_class = WEIGHT_CLASS_HUGE sharp = 1 edge = 1 @@ -349,7 +349,7 @@ /obj/item/weapon/nullrod/claymore/bostaff //May as well make it a "claymore" and inherit the blocking name = "monk's staff" desc = "A long, tall staff made of polished wood. Traditionally used in ancient old-Earth martial arts, now used to harass the clown." - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 13 block_chance = 40 slot_flags = SLOT_BACK @@ -365,7 +365,7 @@ name = "arrhythmic knife" icon_state = "crysknife" item_state = "crysknife" - w_class = 5 + w_class = WEIGHT_CLASS_HUGE desc = "They say fear is the true mind killer, but stabbing them in the head works too. Honour compels you to not sheathe it once drawn." sharp = 1 edge = 1 @@ -389,7 +389,7 @@ name = "unholy pitchfork" icon_state = "pitchfork0" item_state = "pitchfork0" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL desc = "Holding this makes you look absolutely devilish." attack_verb = list("poked", "impaled", "pierced", "jabbed") hitsound = 'sound/weapons/bladeslice.ogg' @@ -518,7 +518,7 @@ reskin_selectable = FALSE icon_state = "godstaff-red" item_state = "godstaff-red" - w_class = 5 + w_class = WEIGHT_CLASS_HUGE force = 5 slot_flags = SLOT_BACK block_chance = 50 diff --git a/code/game/objects/items/weapons/implants/implant_storage.dm b/code/game/objects/items/weapons/implants/implant_storage.dm index fba9c1377ef..acbed742159 100644 --- a/code/game/objects/items/weapons/implants/implant_storage.dm +++ b/code/game/objects/items/weapons/implants/implant_storage.dm @@ -1,9 +1,9 @@ /obj/item/weapon/storage/hidden/implant name = "bluespace pocket" storage_slots = 2 - max_w_class = 3 - max_combined_w_class = 6 - w_class = 4 + max_w_class = WEIGHT_CLASS_NORMAL + max_combined_w_class = WEIGHT_CLASS_GIGANTIC + w_class = WEIGHT_CLASS_BULKY cant_hold = list(/obj/item/weapon/disk/nuclear) silent = 1 @@ -58,4 +58,4 @@ /obj/item/weapon/implanter/storage/New() imp = new /obj/item/weapon/implant/storage(src) - ..() \ No newline at end of file + ..() diff --git a/code/game/objects/items/weapons/implants/implantcase.dm b/code/game/objects/items/weapons/implants/implantcase.dm index 41354136648..b35fecf77b1 100644 --- a/code/game/objects/items/weapons/implants/implantcase.dm +++ b/code/game/objects/items/weapons/implants/implantcase.dm @@ -6,7 +6,7 @@ item_state = "implantcase" throw_speed = 2 throw_range = 5 - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "materials=1;biotech=2" materials = list(MAT_GLASS=500) var/obj/item/weapon/implant/imp = null @@ -98,4 +98,4 @@ /obj/item/weapon/implantcase/death_alarm/New() imp = new /obj/item/weapon/implant/death_alarm(src) - ..() \ No newline at end of file + ..() diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm index 8209de8da80..d055c7f1bb4 100644 --- a/code/game/objects/items/weapons/implants/implanter.dm +++ b/code/game/objects/items/weapons/implants/implanter.dm @@ -6,7 +6,7 @@ item_state = "syringe_0" throw_speed = 3 throw_range = 5 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL origin_tech = "materials=1;biotech=3;programming=2" materials = list(MAT_METAL=600, MAT_GLASS=200) toolspeed = 1 @@ -86,4 +86,4 @@ /obj/item/weapon/implanter/death_alarm/New() imp = new /obj/item/weapon/implant/death_alarm(src) - ..() \ No newline at end of file + ..() diff --git a/code/game/objects/items/weapons/implants/implantpad.dm b/code/game/objects/items/weapons/implants/implantpad.dm index cd988d6310e..2e427638fd1 100644 --- a/code/game/objects/items/weapons/implants/implantpad.dm +++ b/code/game/objects/items/weapons/implants/implantpad.dm @@ -8,7 +8,7 @@ item_state = "electronic" throw_speed = 3 throw_range = 5 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/obj/item/weapon/implantcase/case = null /obj/item/weapon/implantpad/Destroy() diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index 069bf06ddfb..c2bb92d4f89 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -18,7 +18,7 @@ */ /obj/item/weapon/kitchen/utensil force = 5.0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throwforce = 0.0 throw_speed = 3 throw_range = 5 @@ -91,7 +91,7 @@ desc = "A general purpose Chef's Knife made by SpaceCook Incorporated. Guaranteed to stay sharp for years to come." flags = CONDUCT force = 10 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throwforce = 10 hitsound = 'sound/weapons/bladeslice.ogg' throw_speed = 3 @@ -122,7 +122,7 @@ desc = "The unearthly energies that once powered this blade are now dormant." icon = 'icons/obj/wizard.dmi' icon_state = "render" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/kitchen/knife/butcher name = "butcher's cleaver" @@ -132,7 +132,7 @@ force = 15 throwforce = 8 attack_verb = list("cleaved", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/kitchen/knife/butcher/meatcleaver name = "Meat Cleaver" @@ -175,7 +175,7 @@ throwforce = 10.0 throw_speed = 3 throw_range = 7 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") /* Trays moved to /obj/item/weapon/storage/bag */ @@ -192,7 +192,7 @@ throwforce = 5 throw_speed = 3 throw_range = 3 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "smashed") /obj/item/weapon/kitchen/mould/bear diff --git a/code/game/objects/items/weapons/legcuffs.dm b/code/game/objects/items/weapons/legcuffs.dm index 3bec7f32f9e..4592ff67cc2 100644 --- a/code/game/objects/items/weapons/legcuffs.dm +++ b/code/game/objects/items/weapons/legcuffs.dm @@ -6,7 +6,7 @@ icon_state = "handcuff" flags = CONDUCT throwforce = 0 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL origin_tech = "materials=1" slowdown = 7 breakouttime = 300 //Deciseconds = 30s = 0.5 minute @@ -196,7 +196,7 @@ desc = "A specialized hard-light bola designed to ensnare fleeing criminals and aid in arrests." icon_state = "ebola" hitsound = 'sound/weapons/tase.ogg' - w_class = 2 + w_class = WEIGHT_CLASS_SMALL breakouttime = 60 /obj/item/weapon/restraints/legcuffs/bola/energy/throw_impact(atom/hit_atom) @@ -204,4 +204,4 @@ var/obj/item/weapon/restraints/legcuffs/beartrap/B = new /obj/item/weapon/restraints/legcuffs/beartrap/energy/cyborg(get_turf(hit_atom)) B.Crossed(hit_atom) qdel(src) - ..() \ No newline at end of file + ..() diff --git a/code/game/objects/items/weapons/lighters.dm b/code/game/objects/items/weapons/lighters.dm index 307ec829072..6525351fd67 100644 --- a/code/game/objects/items/weapons/lighters.dm +++ b/code/game/objects/items/weapons/lighters.dm @@ -9,7 +9,7 @@ item_state = "lighter-g" var/icon_on = "lighter-g-on" var/icon_off = "lighter-g" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throwforce = 4 flags = CONDUCT slot_flags = SLOT_BELT @@ -35,7 +35,7 @@ if(user.r_hand == src || user.l_hand == src || isrobot(user)) if(!lit) lit = 1 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY icon_state = icon_on item_state = icon_on if(istype(src, /obj/item/weapon/lighter/zippo) ) @@ -59,7 +59,7 @@ processing_objects.Add(src) else lit = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY icon_state = icon_off item_state = icon_off if(istype(src, /obj/item/weapon/lighter/zippo) ) @@ -147,7 +147,7 @@ icon_state = "match_unlit" var/lit = 0 var/smoketime = 5 - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "materials=1" attack_verb = list("burnt", "singed") diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index afc5dbd93ad..e0c4ec435fa 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -2,8 +2,8 @@ var/active = 0 var/force_on = 30 //force when active var/throwforce_on = 20 - w_class = 2 - var/w_class_on = 4 + w_class = WEIGHT_CLASS_SMALL + var/w_class_on = WEIGHT_CLASS_BULKY var/icon_state_on = "axe1" var/list/attack_verb_on = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") no_embed = 1 // Physically impossible for energy weapons to embed themselves into people, this should fix that. -- Dave @@ -61,8 +61,8 @@ throwforce_on = 30 throw_speed = 3 throw_range = 5 - w_class = 3 - w_class_on = 5 + w_class = WEIGHT_CLASS_NORMAL + w_class_on = WEIGHT_CLASS_HUGE hitsound = "swing_hit" flags = CONDUCT armour_penetration = 100 @@ -129,7 +129,7 @@ icon_state_on = "esaw_1" hitcost = 75 //Costs more than a standard cyborg esword item_color = null - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/melee/energy/sword/cyborg/saw/New() ..() @@ -207,7 +207,7 @@ throwforce = 1//Throwing or dropping the item deletes it. throw_speed = 3 throw_range = 1 - w_class = 4//So you can't hide it in your pocket or some such. + w_class = WEIGHT_CLASS_BULKY //So you can't hide it in your pocket or some such. armour_penetration = 50 attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") var/datum/effect/system/spark_spread/spark_system @@ -223,4 +223,4 @@ qdel(src) /obj/item/weapon/melee/energy/blade/attack_self(mob/user) - return \ No newline at end of file + return diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index 7a05ca00cb6..6f0de4720e3 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -10,7 +10,7 @@ slot_flags = SLOT_BELT force = 10 throwforce = 7 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL origin_tech = "combat=4" attack_verb = list("flogged", "whipped", "lashed", "disciplined") hitsound = 'sound/weapons/slash.ogg' //pls replace @@ -28,7 +28,7 @@ flags = CONDUCT force = 15 throwforce = 10 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY block_chance = 50 armour_penetration = 75 sharp = 1 @@ -50,7 +50,7 @@ item_state = "icepick" force = 15 throwforce = 10 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL attack_verb = list("stabbed", "jabbed", "iced,") /obj/item/weapon/melee/candy_sword @@ -60,5 +60,5 @@ item_state = "candy_sword" force = 10 throwforce = 7 - w_class = 3 - attack_verb = list("slashed", "stabbed", "sliced", "caned") \ No newline at end of file + w_class = WEIGHT_CLASS_NORMAL + attack_verb = list("slashed", "stabbed", "sliced", "caned") diff --git a/code/game/objects/items/weapons/misc.dm b/code/game/objects/items/weapons/misc.dm index ffd021aae4b..cd86a04a377 100644 --- a/code/game/objects/items/weapons/misc.dm +++ b/code/game/objects/items/weapons/misc.dm @@ -30,7 +30,7 @@ flags = CONDUCT force = 5.0 throwforce = 7.0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=50) attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed", "Vaudevilled") @@ -43,7 +43,7 @@ icon = 'icons/obj/items.dmi' icon_state = "c_tube" throwforce = 1 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 4 throw_range = 5 @@ -65,7 +65,7 @@ var/data = "" var/base_url = "http://svn.slurm.us/public/spacestation13/misc/game_kit" item_state = "sheet-metal" - w_class = 5 + w_class = WEIGHT_CLASS_HUGE */ /obj/item/weapon/gift @@ -76,7 +76,7 @@ var/size = 3.0 var/obj/item/gift = null item_state = "gift" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY /obj/item/weapon/kidanglobe name = "Kidan homeworld globe" @@ -134,7 +134,7 @@ throwforce = 2 throw_speed = 1 throw_range = 4 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL attack_verb = list("called", "rang") hitsound = 'sound/weapons/ring.ogg' var/cooldown = 0 diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm index 4495f637e56..59db57459b9 100644 --- a/code/game/objects/items/weapons/mop.dm +++ b/code/game/objects/items/weapons/mop.dm @@ -9,7 +9,7 @@ throwforce = 5.0 throw_speed = 3 throw_range = 7 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL attack_verb = list("mopped", "bashed", "bludgeoned", "whacked") burn_state = FLAMMABLE var/mopping = 0 diff --git a/code/game/objects/items/weapons/paint.dm b/code/game/objects/items/weapons/paint.dm index 67d4f078264..dc5c4d048b5 100644 --- a/code/game/objects/items/weapons/paint.dm +++ b/code/game/objects/items/weapons/paint.dm @@ -7,7 +7,7 @@ icon_state = "paint_neutral" item_state = "paintcan" materials = list(MAT_METAL=200) - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL burn_state = FLAMMABLE burntime = 5 amount_per_transfer_from_this = 5 @@ -63,4 +63,4 @@ /obj/item/weapon/reagent_containers/glass/paint/remover name = "paint remover bucket" - list_reagents = list("paint_remover" = 70) \ No newline at end of file + list_reagents = list("paint_remover" = 70) diff --git a/code/game/objects/items/weapons/pneumaticCannon.dm b/code/game/objects/items/weapons/pneumaticCannon.dm index 307da253e64..116391803bd 100644 --- a/code/game/objects/items/weapons/pneumaticCannon.dm +++ b/code/game/objects/items/weapons/pneumaticCannon.dm @@ -1,7 +1,7 @@ /obj/item/weapon/pneumatic_cannon name = "pneumatic cannon" desc = "A gas-powered cannon that can fire any object loaded into it." - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 8 //Very heavy attack_verb = list("bludgeoned", "smashed", "beaten") icon = 'icons/obj/pneumaticCannon.dmi' @@ -132,7 +132,7 @@ name = "improvised pneumatic cannon" desc = "A gas-powered, object-firing cannon made out of common parts." force = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL maxWeightClass = 7 gasPerThrow = 5 diff --git a/code/game/objects/items/weapons/powerfist.dm b/code/game/objects/items/weapons/powerfist.dm index 9ee2c46728e..218fe47ed6b 100644 --- a/code/game/objects/items/weapons/powerfist.dm +++ b/code/game/objects/items/weapons/powerfist.dm @@ -8,7 +8,7 @@ force = 12 throwforce = 10 throw_range = 7 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL origin_tech = "combat=5;powerstorage=3;syndicate=3" var/click_delay = 1.5 var/fisto_setting = 1 diff --git a/code/game/objects/items/weapons/scissors.dm b/code/game/objects/items/weapons/scissors.dm index 6cfb677bd21..5571640f08f 100644 --- a/code/game/objects/items/weapons/scissors.dm +++ b/code/game/objects/items/weapons/scissors.dm @@ -6,7 +6,7 @@ force = 5 sharp = 1 edge = 1 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL hitsound = 'sound/weapons/bladeslice.ogg' attack_verb = list("slices", "cuts", "stabs", "jabs") toolspeed = 1 diff --git a/code/game/objects/items/weapons/scrolls.dm b/code/game/objects/items/weapons/scrolls.dm index 0b45cd4a42e..254b936ed46 100644 --- a/code/game/objects/items/weapons/scrolls.dm +++ b/code/game/objects/items/weapons/scrolls.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/wizard.dmi' icon_state = "scroll" var/uses = 4.0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL item_state = "paper" throw_speed = 4 throw_range = 20 @@ -96,4 +96,4 @@ user.loc = pick(L) smoke.start() - src.uses -= 1 \ No newline at end of file + src.uses -= 1 diff --git a/code/game/objects/items/weapons/shards.dm b/code/game/objects/items/weapons/shards.dm index 70073b38123..554347224eb 100644 --- a/code/game/objects/items/weapons/shards.dm +++ b/code/game/objects/items/weapons/shards.dm @@ -7,7 +7,7 @@ sharp = 1 edge = 1 desc = "Could probably be used as ... a throwing weapon?" - w_class = 1 + w_class = WEIGHT_CLASS_TINY force = 5.0 throwforce = 10.0 item_state = "shard-glass" @@ -112,4 +112,4 @@ src.pixel_x = rand(-5, 5) src.pixel_y = rand(-5, 5) else - return \ No newline at end of file + return diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm index 479cb278e91..d801ec7d460 100644 --- a/code/game/objects/items/weapons/shields.dm +++ b/code/game/objects/items/weapons/shields.dm @@ -19,7 +19,7 @@ throwforce = 5 throw_speed = 2 throw_range = 3 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY materials = list(MAT_GLASS=7500, MAT_METAL=1000) origin_tech = "materials=2" attack_verb = list("shoved", "bashed") @@ -58,7 +58,7 @@ throwforce = 3 throw_speed = 3 throw_range = 5 - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "materials=4;magnets=3;syndicate=4" attack_verb = list("shoved", "bashed") var/active = 0 @@ -80,14 +80,14 @@ force = 10 throwforce = 8 throw_speed = 2 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY playsound(user, 'sound/weapons/saberon.ogg', 35, 1) to_chat(user, "[src] is now active.") else force = 3 throwforce = 3 throw_speed = 3 - w_class = 1 + w_class = WEIGHT_CLASS_TINY playsound(user, 'sound/weapons/saberoff.ogg', 35, 1) to_chat(user, "[src] can now be concealed.") if(istype(user,/mob/living/carbon/human)) @@ -107,7 +107,7 @@ throwforce = 3 throw_speed = 3 throw_range = 4 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL var/active = 0 /obj/item/weapon/shield/riot/tele/hit_reaction(mob/living/carbon/human/owner, attack_text, final_block_chance) @@ -124,14 +124,14 @@ force = 8 throwforce = 5 throw_speed = 2 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY slot_flags = SLOT_BACK to_chat(user, "You extend \the [src].") else force = 3 throwforce = 3 throw_speed = 3 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL slot_flags = null to_chat(user, "[src] can now be concealed.") if(istype(user,/mob/living/carbon/human)) diff --git a/code/game/objects/items/weapons/signs.dm b/code/game/objects/items/weapons/signs.dm index fa68b09135e..006ad92dcf5 100644 --- a/code/game/objects/items/weapons/signs.dm +++ b/code/game/objects/items/weapons/signs.dm @@ -4,7 +4,7 @@ name = "blank picket sign" desc = "It's blank" force = 5 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY attack_verb = list("bashed","smacked") burn_state = FLAMMABLE @@ -42,4 +42,4 @@ reqs = list(/obj/item/stack/rods = 1, /obj/item/stack/sheet/cardboard = 2) time = 80 - category = CAT_MISC \ No newline at end of file + category = CAT_MISC diff --git a/code/game/objects/items/weapons/soap.dm b/code/game/objects/items/weapons/soap.dm index f21c0581888..e4183b5bafd 100644 --- a/code/game/objects/items/weapons/soap.dm +++ b/code/game/objects/items/weapons/soap.dm @@ -4,7 +4,7 @@ gender = PLURAL icon = 'icons/obj/items.dmi' icon_state = "soap" - w_class = 1 + w_class = WEIGHT_CLASS_TINY throwforce = 0 throw_speed = 4 throw_range = 20 @@ -53,4 +53,4 @@ /obj/item/weapon/soap/syndie desc = "An untrustworthy bar of soap made of strong chemical agents that dissolve blood faster." icon_state = "soapsyndie" - cleanspeed = 10 //much faster than mop so it is useful for traitors who want to clean crime scenes \ No newline at end of file + cleanspeed = 10 //much faster than mop so it is useful for traitors who want to clean crime scenes diff --git a/code/game/objects/items/weapons/staff.dm b/code/game/objects/items/weapons/staff.dm index 19c771873ce..b9d1896f70c 100644 --- a/code/game/objects/items/weapons/staff.dm +++ b/code/game/objects/items/weapons/staff.dm @@ -7,7 +7,7 @@ throwforce = 5.0 throw_speed = 1 throw_range = 5 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL armour_penetration = 100 attack_verb = list("bludgeoned", "whacked", "disciplined") burn_state = FLAMMABLE @@ -73,4 +73,4 @@ throwforce = 5.0 throw_speed = 1 throw_range = 5 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL diff --git a/code/game/objects/items/weapons/stock_parts.dm b/code/game/objects/items/weapons/stock_parts.dm index 74fc3a5be6c..3615d6848c2 100644 --- a/code/game/objects/items/weapons/stock_parts.dm +++ b/code/game/objects/items/weapons/stock_parts.dm @@ -5,7 +5,7 @@ desc = "Special mechanical module made to store, sort, and apply standard machine parts." icon_state = "RPED" item_state = "RPED" - w_class = 5 + w_class = WEIGHT_CLASS_HUGE can_hold = list(/obj/item/weapon/stock_parts) storage_slots = 50 use_to_pickup = 1 @@ -13,7 +13,7 @@ allow_quick_empty = 1 collection_mode = 1 display_contents_with_number = 1 - max_w_class = 3 + max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = 100 var/works_from_distance = 0 var/primary_sound = 'sound/items/rped.ogg' @@ -36,9 +36,9 @@ name = "bluespace rapid part exchange device" desc = "A version of the RPED that allows for replacement of parts and scanning from a distance, along with higher capacity for parts." icon_state = "BS_RPED" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL storage_slots = 400 - max_w_class = 3 + max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = 800 works_from_distance = 1 primary_sound = 'sound/items/PSHOOM.ogg' @@ -63,11 +63,11 @@ desc = "What?" gender = PLURAL icon = 'icons/obj/stock_parts.dmi' - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/rating = 1 toolspeed = 1 usesound = 'sound/items/Deconstruct.ogg' - + /obj/item/weapon/stock_parts/New() src.pixel_x = rand(-5.0, 5) src.pixel_y = rand(-5.0, 5) diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index d0dee297cd7..6a5f9b80ae3 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -10,9 +10,9 @@ item_state = "backpack" lefthand_file = 'icons/mob/inhands/clothing_lefthand.dmi' righthand_file = 'icons/mob/inhands/clothing_righthand.dmi' - w_class = 4 + w_class = WEIGHT_CLASS_BULKY slot_flags = SLOT_BACK //ERROOOOO - max_w_class = 3 + max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = 21 storage_slots = 21 burn_state = FLAMMABLE @@ -35,7 +35,7 @@ desc = "A backpack that opens into a localized pocket of Blue Space." origin_tech = "bluespace=4" icon_state = "holdingpack" - max_w_class = 5 + max_w_class = WEIGHT_CLASS_HUGE max_combined_w_class = 35 burn_state = FIRE_PROOF @@ -88,8 +88,8 @@ desc = "Space Santa uses this to deliver toys to all the nice children in space on Christmas! Wow, it's pretty big!" icon_state = "giftbag0" item_state = "giftbag" - w_class = 4 - max_w_class = 3 + w_class = WEIGHT_CLASS_BULKY + max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = 400 // can store a ton of shit! /obj/item/weapon/storage/backpack/cultpack @@ -243,7 +243,7 @@ name = "smuggler's satchel" desc = "A very slim satchel that can easily fit into tight spaces." icon_state = "satchel-flat" - w_class = 3 //Can fit in backpacks itself. + w_class = WEIGHT_CLASS_NORMAL //Can fit in backpacks itself. max_combined_w_class = 15 level = 1 cant_hold = list(/obj/item/weapon/storage/backpack/satchel_flat) //muh recursive backpacks diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index b90d11a543e..0cff8d89ea4 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -33,8 +33,8 @@ icon_state = "trashbag" item_state = "trashbag" - w_class = 1 - max_w_class = 2 + w_class = WEIGHT_CLASS_TINY + max_w_class = WEIGHT_CLASS_SMALL storage_slots = 30 can_hold = list() // any cant_hold = list(/obj/item/weapon/disk/nuclear) @@ -46,16 +46,16 @@ /obj/item/weapon/storage/bag/trash/update_icon() if(contents.len == 0) - w_class = 1 + w_class = WEIGHT_CLASS_TINY icon_state = "[initial(icon_state)]" else if(contents.len < 12) - w_class = 4 + w_class = WEIGHT_CLASS_BULKY icon_state = "[initial(icon_state)]1" else if(contents.len < 21) - w_class = 4 + w_class = WEIGHT_CLASS_BULKY icon_state = "[initial(icon_state)]2" else - w_class = 4 + w_class = WEIGHT_CLASS_BULKY icon_state = "[initial(icon_state)]3" /obj/item/weapon/storage/bag/trash/cyborg @@ -88,8 +88,8 @@ item_state = "plasticbag" slot_flags = SLOT_HEAD|SLOT_BELT throwforce = 0 - w_class = 4 - max_w_class = 2 + w_class = WEIGHT_CLASS_BULKY + max_w_class = WEIGHT_CLASS_SMALL storage_slots = 7 display_contents_with_number = 0 //or else this will lead to stupid behavior. can_hold = list() // any @@ -132,10 +132,10 @@ icon = 'icons/obj/mining.dmi' icon_state = "satchel" slot_flags = SLOT_BELT | SLOT_POCKET - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL storage_slots = 50 max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class - max_w_class = 3 + max_w_class = WEIGHT_CLASS_NORMAL can_hold = list(/obj/item/weapon/ore) /obj/item/weapon/storage/bag/ore/cyborg @@ -164,8 +164,8 @@ icon_state = "plantbag" storage_slots = 100 //the number of plant pieces it can carry. max_combined_w_class = 100 //Doesn't matter what this is, so long as it's more or equal to storage_slots * plants.w_class - max_w_class = 3 - w_class = 1 + max_w_class = WEIGHT_CLASS_NORMAL + w_class = WEIGHT_CLASS_TINY can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/grown,/obj/item/seeds,/obj/item/weapon/grown,/obj/item/weapon/reagent_containers/food/snacks/ash_flora) burn_state = FLAMMABLE @@ -202,7 +202,7 @@ desc = "A patented Nanotrasen storage system designed for any kind of mineral sheet." var/capacity = 300; //the number of sheets it can carry. - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL allow_quick_empty = 1 // this function is superceded New() @@ -343,8 +343,8 @@ desc = "A bag for carrying lots of cash. It's got a big dollar sign printed on the front." storage_slots = 50; //the number of cash pieces it can carry. max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * cash.w_class - max_w_class = 3 - w_class = 1 + max_w_class = WEIGHT_CLASS_NORMAL + w_class = WEIGHT_CLASS_TINY can_hold = list(/obj/item/weapon/coin,/obj/item/stack/spacecash) // ----------------------------- @@ -359,8 +359,8 @@ display_contents_with_number = 0 //This would look really stupid otherwise storage_slots = 7 max_combined_w_class = 21 - max_w_class = 3 - w_class = 4 //Bigger than a book because physics + max_w_class = WEIGHT_CLASS_NORMAL + w_class = WEIGHT_CLASS_BULKY //Bigger than a book because physics can_hold = list(/obj/item/weapon/book, /obj/item/weapon/storage/bible, /obj/item/weapon/tome, /obj/item/weapon/spellbook) burn_state = FLAMMABLE @@ -376,7 +376,7 @@ throwforce = 10.0 throw_speed = 3 throw_range = 5 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY flags = CONDUCT materials = list(MAT_METAL=3000) @@ -469,7 +469,7 @@ desc = "A bag for storing pills, patches, and bottles." storage_slots = 50 max_combined_w_class = 200 - w_class = 1 + w_class = WEIGHT_CLASS_TINY can_hold = list(/obj/item/weapon/reagent_containers/food/pill,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/glass/bottle) burn_state = FLAMMABLE /* @@ -483,6 +483,6 @@ desc = "A bag for the safe transportation and disposal of biowaste and other biological materials." storage_slots = 25 max_combined_w_class = 200 - w_class = 1 + w_class = WEIGHT_CLASS_TINY can_hold = list(/obj/item/slime_extract,/obj/item/weapon/reagent_containers/food/snacks/monkeycube,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/blood,/obj/item/weapon/reagent_containers/hypospray/autoinjector) burn_state = FLAMMABLE diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 609edd2961f..dd1af4c6ea4 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -176,7 +176,7 @@ icon_state = "securitybelt" item_state = "security"//Could likely use a better one. storage_slots = 5 - max_w_class = 3 + max_w_class = WEIGHT_CLASS_NORMAL use_item_overlays = 1 can_hold = list( /obj/item/weapon/grenade/flashbang, @@ -249,7 +249,7 @@ icon_state = "militarybelt" item_state = "military" max_w_class = WEIGHT_CLASS_SMALL - + /obj/item/weapon/storage/belt/military/abductor name = "agent belt" desc = "A belt used by abductor agents." @@ -280,7 +280,7 @@ icon_state = "janibelt" item_state = "janibelt" storage_slots = 6 - max_w_class = 4 // Set to this so the light replacer can fit. + max_w_class = WEIGHT_CLASS_BULKY // Set to this so the light replacer can fit. use_item_overlays = 1 can_hold = list( /obj/item/weapon/grenade/chem_grenade/cleaner, @@ -306,8 +306,8 @@ desc = "For the mining master, holds your lazarus capsules." icon_state = "lazarusbelt" item_state = "lazbelt" - w_class = 4 - max_w_class = 1 + w_class = WEIGHT_CLASS_BULKY + max_w_class = WEIGHT_CLASS_TINY max_combined_w_class = 6 storage_slots = 6 can_hold = list(/obj/item/device/mobcapsule) @@ -379,7 +379,7 @@ icon_state = "holster" item_state = "holster" storage_slots = 1 - max_w_class = 3 + max_w_class = WEIGHT_CLASS_NORMAL can_hold = list( /obj/item/weapon/gun/projectile/automatic/pistol, /obj/item/weapon/gun/projectile/revolver/detective @@ -417,7 +417,7 @@ icon_state = "fannypack_leather" item_state = "fannypack_leather" storage_slots = 3 - max_w_class = 2 + max_w_class = WEIGHT_CLASS_SMALL /obj/item/weapon/storage/belt/fannypack/black name = "black fannypack" @@ -475,8 +475,8 @@ icon_state = "sheath" item_state = "sheath" storage_slots = 1 - w_class = 4 - max_w_class = 4 + w_class = WEIGHT_CLASS_BULKY + max_w_class = WEIGHT_CLASS_BULKY can_hold = list(/obj/item/weapon/melee/rapier) /obj/item/weapon/storage/belt/rapier/update_icon() @@ -506,8 +506,8 @@ icon_state = "holdingbelt" item_state = "holdingbelt" storage_slots = 14 - w_class = 4 - max_w_class = 2 + w_class = WEIGHT_CLASS_BULKY + max_w_class = WEIGHT_CLASS_SMALL max_combined_w_class = 21 // = 14 * 1.5, not 14 * 2. This is deliberate origin_tech = "bluespace=4" can_hold = list() @@ -530,7 +530,7 @@ icon_state = "securitybelt" item_state = "security" storage_slots = 6 - max_w_class = 3 + max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = 18 origin_tech = "bluespace=4;syndicate=2" allow_quick_empty = 1 diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm index f005f2f8b8e..17bf8fcac8e 100644 --- a/code/game/objects/items/weapons/storage/bible.dm +++ b/code/game/objects/items/weapons/storage/bible.dm @@ -4,7 +4,7 @@ icon_state ="bible" throw_speed = 1 throw_range = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL burn_state = FLAMMABLE var/mob/affecting = null var/deity_name = "Christ" diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 8a487289e35..594028e4f1f 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -634,8 +634,8 @@ icon_state = "matchbox" item_state = "zippo" storage_slots = 10 - w_class = 1 - max_w_class = 1 + w_class = WEIGHT_CLASS_TINY + max_w_class = WEIGHT_CLASS_TINY slot_flags = SLOT_BELT can_hold = list(/obj/item/weapon/match) @@ -810,4 +810,4 @@ #undef NANOTRASEN #undef SYNDI #undef HEART -#undef SMILE \ No newline at end of file +#undef SMILE diff --git a/code/game/objects/items/weapons/storage/briefcase.dm b/code/game/objects/items/weapons/storage/briefcase.dm index 7f2a91054c1..89122d1a337 100644 --- a/code/game/objects/items/weapons/storage/briefcase.dm +++ b/code/game/objects/items/weapons/storage/briefcase.dm @@ -8,12 +8,12 @@ force = 8.0 throw_speed = 2 throw_range = 4 - w_class = 4 - max_w_class = 3 + w_class = WEIGHT_CLASS_BULKY + max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = 21 attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") burn_state = FLAMMABLE burntime = 20 /obj/item/weapon/storage/briefcase/New() - ..() \ No newline at end of file + ..() diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index a3f2a21a5fa..d8de4ee7c53 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -115,7 +115,7 @@ desc = "A box of crayons for all your rune drawing needs." icon = 'icons/obj/crayons.dmi' icon_state = "crayonbox" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL storage_slots = 6 icon_type = "crayon" can_hold = list( @@ -158,7 +158,7 @@ icon = 'icons/obj/cigarettes.dmi' icon_state = "cigpacket" item_state = "cigpacket" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throwforce = 2 slot_flags = SLOT_BELT storage_slots = 6 @@ -318,7 +318,7 @@ /obj/item/weapon/storage/fancy/rollingpapers name = "rolling paper pack" desc = "A pack of NanoTrasen brand rolling papers." - w_class = 1 + w_class = WEIGHT_CLASS_TINY icon = 'icons/obj/cigarettes.dmi' icon_state = "cig_paper_pack" storage_slots = 10 @@ -360,7 +360,7 @@ icon = 'icons/obj/vialbox.dmi' icon_state = "vialbox0" item_state = "syringe_kit" - max_w_class = 3 + max_w_class = WEIGHT_CLASS_NORMAL can_hold = list(/obj/item/weapon/reagent_containers/glass/beaker/vial) max_combined_w_class = 14 //The sum of the w_classes of all the items in this storage item. storage_slots = 6 diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index 5ab8713a49a..8794c09014b 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -155,7 +155,7 @@ name = "first-aid kit" icon_state = "bezerk" desc = "I hope you've got insurance." - max_w_class = 3 + max_w_class = WEIGHT_CLASS_NORMAL treatment_oxy = "perfluorodecalin" treatment_brute = "styptic_powder" treatment_fire = "silver_sulfadiazine" @@ -181,7 +181,7 @@ name = "field surgery kit" icon_state = "duffel-med" desc = "A kit for surgery in the field." - max_w_class = 4 + max_w_class = WEIGHT_CLASS_BULKY max_combined_w_class = 21 storage_slots = 10 can_hold = list(/obj/item/roller,/obj/item/weapon/bonesetter,/obj/item/weapon/bonegel, /obj/item/weapon/scalpel, /obj/item/weapon/hemostat, @@ -209,7 +209,7 @@ icon_state = "pill_canister" icon = 'icons/obj/chemical.dmi' item_state = "contsolid" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL can_hold = list(/obj/item/weapon/reagent_containers/food/pill, /obj/item/weapon/dice, /obj/item/weapon/paper) allow_quick_gather = 1 use_to_pickup = 1 diff --git a/code/game/objects/items/weapons/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm index b622e469124..2f4a3b2e5ac 100644 --- a/code/game/objects/items/weapons/storage/lockbox.dm +++ b/code/game/objects/items/weapons/storage/lockbox.dm @@ -5,8 +5,8 @@ desc = "A locked box." icon_state = "lockbox+l" item_state = "syringe_kit" - w_class = 4 - max_w_class = 3 + w_class = WEIGHT_CLASS_BULKY + max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = 14 //The sum of the w_classes of all the items in this storage item. storage_slots = 4 req_access = list(access_armory) @@ -76,7 +76,7 @@ /obj/item/weapon/storage/lockbox/large name = "Large lockbox" desc = "A large lockbox" - max_w_class = 4 + max_w_class = WEIGHT_CLASS_BULKY max_combined_w_class = 4 //The sum of the w_classes of all the items in this storage item. storage_slots = 1 @@ -105,8 +105,8 @@ desc = "A locked box used to store medals of honor." icon_state = "medalbox+l" item_state = "syringe_kit" - w_class = 3 - max_w_class = 2 + w_class = WEIGHT_CLASS_NORMAL + max_w_class = WEIGHT_CLASS_SMALL max_combined_w_class = 20 storage_slots = 12 req_access = list(access_captain) diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm index e06cbb91255..7619fd953d7 100644 --- a/code/game/objects/items/weapons/storage/secure.dm +++ b/code/game/objects/items/weapons/storage/secure.dm @@ -23,8 +23,8 @@ var/l_hacking = 0 var/emagged = 0 var/open = 0 - w_class = 3 - max_w_class = 2 + w_class = WEIGHT_CLASS_NORMAL + max_w_class = WEIGHT_CLASS_SMALL max_combined_w_class = 14 /obj/item/weapon/storage/secure/examine(mob/user) @@ -180,8 +180,8 @@ force = 8 throw_speed = 2 throw_range = 4 - w_class = 4 - max_w_class = 3 + w_class = WEIGHT_CLASS_BULKY + max_w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = 21 attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "whacked") @@ -228,7 +228,7 @@ icon_locking = "safeb" icon_sparking = "safespark" force = 8 - w_class = 5 + w_class = WEIGHT_CLASS_HUGE max_w_class = 8 anchored = 1 density = 0 diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index adeb8fadcd3..21ea7c33993 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -8,11 +8,11 @@ /obj/item/weapon/storage name = "storage" icon = 'icons/obj/storage.dmi' - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL var/silent = 0 // No message on putting items in var/list/can_hold = new/list() //List of objects which this item can store (if set, it can't store anything else) var/list/cant_hold = new/list() //List of objects which this item can't store (in effect only if can_hold isn't set) - var/max_w_class = 2 //Max size of objects that this object can store (in effect only if can_hold isn't set) + var/max_w_class = WEIGHT_CLASS_SMALL //Max size of objects that this object can store (in effect only if can_hold isn't set) var/max_combined_w_class = 14 //The sum of the w_classes of all the items in this storage item. var/storage_slots = 7 //The number of storage slots in this container. var/obj/screen/storage/boxes = null @@ -304,7 +304,7 @@ to_chat(usr, "You put the [W] into [src].") else if(M in range(1)) //If someone is standing close enough, they can tell what it is... M.show_message("[usr] puts [W] into [src].") - else if(W && W.w_class >= 3.0) //Otherwise they can only see large or normal items from a distance... + else if(W && W.w_class >= WEIGHT_CLASS_NORMAL) //Otherwise they can only see large or normal items from a distance... M.show_message("[usr] puts [W] into [src].") src.orient2hud(usr) diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm index a6ecd3d45ac..3c7bcee7ab4 100644 --- a/code/game/objects/items/weapons/storage/toolbox.dm +++ b/code/game/objects/items/weapons/storage/toolbox.dm @@ -9,7 +9,7 @@ throwforce = 10.0 throw_speed = 2 throw_range = 7 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY materials = list(MAT_METAL = 500) origin_tech = "combat=1" attack_verb = list("robusted") @@ -85,7 +85,7 @@ new /obj/item/weapon/wirecutters(src, "red") new /obj/item/device/multitool(src) new /obj/item/clothing/gloves/combat(src) - + /obj/item/weapon/storage/toolbox/drone name = "mechanical toolbox" icon_state = "blue" @@ -119,4 +119,4 @@ new /obj/item/weapon/wirecutters/brass(src) new /obj/item/weapon/wrench/brass(src) new /obj/item/weapon/crowbar/brass(src) - new /obj/item/weapon/weldingtool/experimental/brass(src) \ No newline at end of file + new /obj/item/weapon/weldingtool/experimental/brass(src) diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 03fc0a7b742..d721cb46271 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -69,7 +69,7 @@ new /obj/item/clothing/suit/hooded/chaplain_hoodie(src) new /obj/item/weapon/card/id/syndicate(src) return - + if("gadgets") new /obj/item/clothing/gloves/color/yellow/power(src) new /obj/item/weapon/pen/sleepy(src) @@ -88,7 +88,7 @@ /obj/item/weapon/storage/box/syndie_kit/space name = "Boxed Space Suit and Helmet" can_hold = list(/obj/item/clothing/suit/space/syndicate/black/red, /obj/item/clothing/head/helmet/space/syndicate/black/red) - max_w_class = 3 + max_w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/storage/box/syndie_kit/space/New() ..() @@ -99,7 +99,7 @@ /obj/item/weapon/storage/box/syndie_kit/hardsuit name = "Boxed Blood Red Suit and Helmet" can_hold = list(/obj/item/clothing/suit/space/hardsuit/syndi, /obj/item/clothing/head/helmet/space/hardsuit/syndi) - max_w_class = 3 + max_w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/storage/box/syndie_kit/hardsuit/New() ..() @@ -110,7 +110,7 @@ /obj/item/weapon/storage/box/syndie_kit/elite_hardsuit name = "Boxed Elite Syndicate Hardsuit and Helmet" can_hold = list(/obj/item/clothing/suit/space/hardsuit/syndi/elite, /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite) - max_w_class = 3 + max_w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/storage/box/syndie_kit/elite_hardsuit/New() ..() @@ -120,7 +120,7 @@ /obj/item/weapon/storage/box/syndie_kit/shielded_hardsuit name = "Boxed Shielded Syndicate Hardsuit and Helmet" can_hold = list(/obj/item/clothing/suit/space/hardsuit/shielded/syndi, /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi) - max_w_class = 4 + max_w_class = WEIGHT_CLASS_BULKY /obj/item/weapon/storage/box/syndie_kit/shielded_hardsuit/New() ..() diff --git a/code/game/objects/items/weapons/storage/wallets.dm b/code/game/objects/items/weapons/storage/wallets.dm index 0d9712ed43f..667b2ca7605 100644 --- a/code/game/objects/items/weapons/storage/wallets.dm +++ b/code/game/objects/items/weapons/storage/wallets.dm @@ -4,7 +4,7 @@ storage_slots = 10 icon = 'icons/obj/wallets.dmi' icon_state = "wallet" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL burn_state = FLAMMABLE can_hold = list( /obj/item/stack/spacecash, diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index 1de82690573..ca91b988442 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -7,7 +7,7 @@ slot_flags = SLOT_BELT force = 10 throwforce = 7 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL origin_tech = "combat=2" attack_verb = list("beaten") var/stunforce = 7 @@ -190,7 +190,7 @@ icon_state = "stunprod_nocell" base_icon = "stunprod" item_state = "prod" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL force = 3 throwforce = 5 stunforce = 5 diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm index 786b980d38f..e55b2451347 100644 --- a/code/game/objects/items/weapons/swords_axes_etc.dm +++ b/code/game/objects/items/weapons/swords_axes_etc.dm @@ -25,7 +25,7 @@ item_state = "classic_baton" slot_flags = SLOT_BELT force = 12 //9 hit crit - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL var/cooldown = 0 var/on = 1 @@ -90,7 +90,7 @@ icon_state = "telebaton_0" item_state = null slot_flags = SLOT_BELT - w_class = 2 + w_class = WEIGHT_CLASS_SMALL needs_permit = 0 force = 0 on = 0 @@ -101,7 +101,7 @@ to_chat(user, "You extend the baton.") icon_state = "telebaton_1" item_state = "nullrod" - w_class = 4 //doesnt fit in backpack when its on for balance + w_class = WEIGHT_CLASS_BULKY //doesnt fit in backpack when its on for balance force = 10 //stunbaton damage attack_verb = list("smacked", "struck", "cracked", "beaten") else @@ -109,7 +109,7 @@ icon_state = "telebaton_0" item_state = null //no sprite for concealment even when in hand slot_flags = SLOT_BELT - w_class = 2 + w_class = WEIGHT_CLASS_SMALL force = 0 //not so robust now attack_verb = list("hit", "poked") if(istype(user,/mob/living/carbon/human)) diff --git a/code/game/objects/items/weapons/syndie_uplink.dm b/code/game/objects/items/weapons/syndie_uplink.dm index 3dd9a230ad1..0515dd41dd3 100644 --- a/code/game/objects/items/weapons/syndie_uplink.dm +++ b/code/game/objects/items/weapons/syndie_uplink.dm @@ -10,7 +10,7 @@ var/mob/currentUser = null var/obj/item/device/radio/origradio = null flags = CONDUCT | ONBELT - w_class = 2 + w_class = WEIGHT_CLASS_SMALL item_state = "radio" throw_speed = 4 throw_range = 20 @@ -31,8 +31,8 @@ slot_flags = SLOT_BELT item_state = "radio" throwforce = 5 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 4 throw_range = 20 materials = list(MAT_METAL=100) - origin_tech = "magnets=1" \ No newline at end of file + origin_tech = "magnets=1" diff --git a/code/game/objects/items/weapons/tanks/jetpack.dm b/code/game/objects/items/weapons/tanks/jetpack.dm index 1bd8d8b761c..eef5475bdcd 100644 --- a/code/game/objects/items/weapons/tanks/jetpack.dm +++ b/code/game/objects/items/weapons/tanks/jetpack.dm @@ -4,7 +4,7 @@ name = "Jetpack (Empty)" desc = "A tank of compressed gas for use as propulsion in zero-gravity areas. Use with caution." icon_state = "jetpack" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY item_state = "jetpack" distribute_pressure = ONE_ATMOSPHERE*O2STANDARD var/datum/effect/system/ion_trail_follow/ion_trail @@ -116,7 +116,7 @@ item_state = "jetpack-mini" volume = 40 throw_range = 8 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/tank/jetpack/oxygenblack name = "Jetpack (Oxygen)" @@ -174,4 +174,4 @@ var/turf/T = get_turf(user) T.assume_air(removed) - return 1 \ No newline at end of file + return 1 diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm index 428c4885814..4778a53c28b 100644 --- a/code/game/objects/items/weapons/tanks/tank_types.dm +++ b/code/game/objects/items/weapons/tanks/tank_types.dm @@ -126,7 +126,7 @@ icon_state = "emergency" flags = CONDUCT slot_flags = SLOT_BELT - w_class = 2 + w_class = WEIGHT_CLASS_SMALL force = 4.0 distribute_pressure = ONE_ATMOSPHERE*O2STANDARD volume = 3 //Tiny. Real life equivalents only have 21 breaths of oxygen in them. They're EMERGENCY tanks anyway -errorage (dangercon 2011) diff --git a/code/game/objects/items/weapons/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm index bd62357ba76..3b99936b0a8 100644 --- a/code/game/objects/items/weapons/tanks/tanks.dm +++ b/code/game/objects/items/weapons/tanks/tanks.dm @@ -7,7 +7,7 @@ flags = CONDUCT slot_flags = SLOT_BACK hitsound = 'sound/weapons/smash.ogg' - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL pressure_resistance = ONE_ATMOSPHERE*5 diff --git a/code/game/objects/items/weapons/tanks/watertank.dm b/code/game/objects/items/weapons/tanks/watertank.dm index e8cf034a5b5..5229a59fe5f 100644 --- a/code/game/objects/items/weapons/tanks/watertank.dm +++ b/code/game/objects/items/weapons/tanks/watertank.dm @@ -5,7 +5,7 @@ icon = 'icons/obj/watertank.dmi' icon_state = "waterbackpack" item_state = "waterbackpack" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY slot_flags = SLOT_BACK slowdown = 1 actions_types = list(/datum/action/item_action/toggle_mister) @@ -112,7 +112,7 @@ icon = 'icons/obj/watertank.dmi' icon_state = "mister" item_state = "mister" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY amount_per_transfer_from_this = 50 possible_transfer_amounts = list(25,50,100) volume = 500 @@ -220,7 +220,7 @@ power = 8 precision = 1 cooling_power = 5 - w_class = 5 + w_class = WEIGHT_CLASS_HUGE flags = NODROP //Necessary to ensure that the nozzle and tank never seperate var/obj/item/weapon/watertank/tank var/nozzle_mode = 0 diff --git a/code/game/objects/items/weapons/tape.dm b/code/game/objects/items/weapons/tape.dm index 067bacaef4b..05486c9d85f 100644 --- a/code/game/objects/items/weapons/tape.dm +++ b/code/game/objects/items/weapons/tape.dm @@ -3,7 +3,7 @@ desc = "A roll of sticky tape. Possibly for taping ducks... or was that ducts?" icon = 'icons/obj/bureaucracy.dmi' icon_state = "taperoll" - w_class = 1 + w_class = WEIGHT_CLASS_TINY amount = 10 max_amount = 10 @@ -76,7 +76,7 @@ desc = "A piece of sticky tape." icon = 'icons/obj/bureaucracy.dmi' icon_state = "tape" - w_class = 1 + w_class = WEIGHT_CLASS_TINY layer = 4 anchored = 1 //it's sticky, no you cant move it diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm index 87309c5927c..dafda733396 100644 --- a/code/game/objects/items/weapons/teleportation.dm +++ b/code/game/objects/items/weapons/teleportation.dm @@ -17,7 +17,7 @@ var/broadcasting = null var/listening = 1.0 flags = CONDUCT - w_class = 2 + w_class = WEIGHT_CLASS_SMALL item_state = "electronic" throw_speed = 4 throw_range = 20 @@ -98,7 +98,7 @@ Frequency: icon_state = "hand_tele" item_state = "electronic" throwforce = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 5 materials = list(MAT_METAL=10000) diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index ce2b5965c6c..a79ddf37341 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -109,7 +109,7 @@ ///////////OFFHAND/////////////// /obj/item/weapon/twohanded/offhand - w_class = 5 + w_class = WEIGHT_CLASS_HUGE icon_state = "offhand" name = "offhand" flags = ABSTRACT @@ -123,7 +123,7 @@ ///////////Two hand required objects/////////////// //This is for objects that require two hands to even pick up /obj/item/weapon/twohanded/required/ - w_class = 5 + w_class = WEIGHT_CLASS_HUGE /obj/item/weapon/twohanded/required/attack_self() return @@ -163,7 +163,7 @@ throwforce = 15 sharp = 1 edge = 1 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY slot_flags = SLOT_BACK force_unwielded = 5 force_wielded = 24 @@ -199,7 +199,7 @@ throwforce = 5.0 throw_speed = 1 throw_range = 5 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL force_unwielded = 3 force_wielded = 34 wieldsound = 'sound/weapons/saberon.ogg' @@ -286,7 +286,7 @@ name = "spear" desc = "A haphazardly-constructed yet still deadly weapon of ancient design." force = 10 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY slot_flags = SLOT_BACK force_unwielded = 10 force_wielded = 18 @@ -433,7 +433,7 @@ flags = CONDUCT force = 13 var/force_on = 21 - w_class = 5 + w_class = WEIGHT_CLASS_HUGE throwforce = 13 throw_speed = 2 throw_range = 4 @@ -490,7 +490,7 @@ throwforce = 15 throw_speed = 1 throw_range = 5 - w_class = 4 // can't fit in backpacks + w_class = WEIGHT_CLASS_BULKY // can't fit in backpacks force_unwielded = 15 //still pretty robust force_wielded = 40 //you'll gouge their eye out! Or a limb...maybe even their entire body! wieldsound = 'sound/weapons/chainsawstart.ogg' @@ -545,7 +545,7 @@ force_wielded = 20 throwforce = 15 throw_range = 1 - w_class = 5 + w_class = WEIGHT_CLASS_HUGE var/charged = 5 origin_tech = "combat=5;bluespace=4" @@ -610,7 +610,7 @@ force_wielded = 25 throwforce = 30 throw_range = 7 - w_class = 5 + w_class = WEIGHT_CLASS_HUGE //var/charged = 5 origin_tech = "combat=5;powerstorage=5" @@ -658,7 +658,7 @@ force_wielded = 30 throwforce = 15 throw_range = 1 - w_class = 5 + w_class = WEIGHT_CLASS_HUGE var/charged = 5 origin_tech = "combat=5;bluespace=4" @@ -719,7 +719,7 @@ throwforce = 15 sharp = 1 edge = 1 - w_class = 5 + w_class = WEIGHT_CLASS_HUGE armour_penetration = 20 slot_flags = SLOT_BACK force_unwielded = 5 diff --git a/code/game/objects/items/weapons/vending_items.dm b/code/game/objects/items/weapons/vending_items.dm index 3fb54c16609..34c4cd6c6d0 100644 --- a/code/game/objects/items/weapons/vending_items.dm +++ b/code/game/objects/items/weapons/vending_items.dm @@ -10,7 +10,7 @@ throwforce = 10.0 throw_speed = 1 throw_range = 7 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY var/charges = 0 //how many restocking "charges" the refill has @@ -86,4 +86,3 @@ /obj/item/weapon/vending_refill/chinese machine_name = "MrChangs" charges = 8// of 24 - diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index d5b679fde56..95317b7f0a6 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -5,7 +5,7 @@ icon_state = "toyhammer" slot_flags = SLOT_BELT throwforce = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 7 throw_range = 15 attack_verb = list("banned") @@ -23,7 +23,7 @@ slot_flags = SLOT_BELT force = 2 throwforce = 1 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL hitsound = 'sound/weapons/bladeslice.ogg' attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") @@ -44,7 +44,7 @@ throwforce = 10 sharp = 1 edge = 1 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") block_chance = 50 @@ -68,7 +68,7 @@ throwforce = 10 sharp = 1 edge = 1 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL hitsound = 'sound/weapons/bladeslice.ogg' attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") block_chance = 50 @@ -89,7 +89,7 @@ item_state = "harpoon" force = 20 throwforce = 15 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL attack_verb = list("jabbed","stabbed","ripped") obj/item/weapon/wirerod @@ -100,7 +100,7 @@ obj/item/weapon/wirerod flags = CONDUCT force = 9 throwforce = 10 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL=1150, MAT_GLASS=75) attack_verb = list("hit", "bludgeoned", "whacked", "bonked") diff --git a/code/game/objects/items/weapons/whetstone.dm b/code/game/objects/items/weapons/whetstone.dm index d498d4c75e8..b268540f92a 100644 --- a/code/game/objects/items/weapons/whetstone.dm +++ b/code/game/objects/items/weapons/whetstone.dm @@ -3,7 +3,7 @@ icon = 'icons/obj/kitchen.dmi' icon_state = "whetstone" desc = "A block of stone used to sharpen things." - w_class = 2 + w_class = WEIGHT_CLASS_SMALL usesound = 'sound/items/Screwdriver.ogg' var/used = 0 var/increment = 4 @@ -63,4 +63,4 @@ increment = 200 max = 200 prefix = "super-sharpened" - requires_sharpness = 0 \ No newline at end of file + requires_sharpness = 0 diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 10f09401ba5..3190a69177d 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -14,7 +14,7 @@ LINEN BINS throwforce = 1 throw_speed = 1 throw_range = 2 - w_class = 1 + w_class = WEIGHT_CLASS_TINY item_color = "white" burn_state = FLAMMABLE slot_flags = SLOT_BACK @@ -204,7 +204,7 @@ LINEN BINS sheets.Add(I) amount++ to_chat(user, "You put [I] in [src].") - else if(amount && !hidden && I.w_class < 4) //make sure there's sheets to hide it among, make sure nothing else is hidden in there. + else if(amount && !hidden && I.w_class < WEIGHT_CLASS_BULKY) //make sure there's sheets to hide it among, make sure nothing else is hidden in there. user.drop_item() I.loc = src hidden = I @@ -255,4 +255,4 @@ LINEN BINS if(hidden) hidden.loc = loc - hidden = null \ No newline at end of file + hidden = null diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index ed690192098..c93a481189d 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -43,7 +43,7 @@ /obj/structure/flora/tree/palm/New() ..() icon_state = pick("palm1","palm2") - pixel_x = 0 + pixel_x = 0 //grass /obj/structure/flora/grass @@ -209,7 +209,7 @@ icon_state = "plant-1" anchored = 0 layer = 5 - w_class = 5 + w_class = WEIGHT_CLASS_HUGE force = 10 throwforce = 13 throw_speed = 2 @@ -333,4 +333,4 @@ else qdel(src) else - return ..() \ No newline at end of file + return ..() diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm index 265d1d1c236..14f1357af87 100644 --- a/code/game/objects/structures/inflatable.dm +++ b/code/game/objects/structures/inflatable.dm @@ -3,7 +3,7 @@ desc = "A folded membrane which rapidly expands into a large cubical shape on activation." icon = 'icons/obj/inflatable.dmi' icon_state = "folded_wall" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL /obj/item/inflatable/attack_self(mob/user) playsound(loc, 'sound/items/zip.ogg', 75, 1) @@ -279,7 +279,7 @@ icon_state = "inf_box" item_state = "syringe_kit" max_combined_w_class = 21 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/storage/briefcase/inflatable/New() ..() diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm index bfb5d584965..3f4eea3dbf4 100644 --- a/code/game/objects/structures/signs.dm +++ b/code/game/objects/structures/signs.dm @@ -40,7 +40,7 @@ name = "sign" desc = "" icon = 'icons/obj/decals.dmi' - w_class = 3 //big + w_class = WEIGHT_CLASS_NORMAL burn_state = FLAMMABLE var/sign_state = "" @@ -225,4 +225,3 @@ name = "\improper Escape Arm" desc = "A direction sign, pointing out which way escape shuttle dock is." icon_state = "direction_evac" - diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index 1835a1bb31a..56c6861e4fc 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -93,7 +93,7 @@ desc = "A collapsed roller bed that can be carried around." icon = 'icons/obj/rollerbed.dmi' icon_state = "folded" - w_class = 4 // Can't be put in backpacks. + w_class = WEIGHT_CLASS_BULKY // Can't be put in backpacks. /obj/item/roller/attack_self(mob/user) var/obj/structure/stool/bed/roller/R = new /obj/structure/stool/bed/roller(user.loc) @@ -140,4 +140,4 @@ var/obj/structure/stool/bed/roller/R = new /obj/structure/stool/bed/roller(user.loc) R.add_fingerprint(user) qdel(held) - held = null \ No newline at end of file + held = null diff --git a/code/game/objects/structures/stool_bed_chair_nest/stools.dm b/code/game/objects/structures/stool_bed_chair_nest/stools.dm index 6de3c88981d..6000b361aa5 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/stools.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/stools.dm @@ -54,7 +54,7 @@ icon_state = "stool" force = 10 throwforce = 10 - w_class = 5 + w_class = WEIGHT_CLASS_HUGE var/obj/structure/stool/origin = null /obj/item/weapon/stool/attack_self(mob/user as mob) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 767d934c7dd..a43406eb3c7 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -106,10 +106,10 @@ to_chat(user, "You need a tighter grip!") if(cistern) - if(I.w_class > 3) + if(I.w_class > WEIGHT_CLASS_NORMAL) to_chat(user, "[I] does not fit!") return - if(w_items + I.w_class > 5) + if(w_items + I.w_class > WEIGHT_CLASS_HUGE) to_chat(user, "The cistern is full!") return if(!user.drop_item()) From 9943df05fd7879e59ff4d64834129ff5b48f026e Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 27 May 2017 20:07:39 +0100 Subject: [PATCH 014/147] Fixes small issue --- code/game/objects/items/devices/megaphone.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index c59e39a2043..09b02e5082c 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -3,7 +3,7 @@ desc = "A device used to project your voice. Loudly." icon_state = "megaphone" item_state = "radio" - w_class = WEIGHT_CLASS_SMALL + w_class = WEIGHT_CLASS_TINY flags = CONDUCT var/spamcheck = 0 From 3bc135b825426016b853b48bc5f5257e480e2519 Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 27 May 2017 22:11:51 +0100 Subject: [PATCH 015/147] Reverts Megaphone change Will do in separate PR. --- code/game/objects/items/devices/megaphone.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index 09b02e5082c..d38ac3b71ff 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -3,7 +3,7 @@ desc = "A device used to project your voice. Loudly." icon_state = "megaphone" item_state = "radio" - w_class = WEIGHT_CLASS_TINY + w_class = 1 flags = CONDUCT var/spamcheck = 0 From cc207e2e547b57fa95b113c896b2badcaa62b566 Mon Sep 17 00:00:00 2001 From: Sam Date: Sat, 27 May 2017 22:54:13 +0100 Subject: [PATCH 016/147] Enlarges megaphones --- code/game/objects/items/devices/megaphone.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index d38ac3b71ff..c59e39a2043 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -3,7 +3,7 @@ desc = "A device used to project your voice. Loudly." icon_state = "megaphone" item_state = "radio" - w_class = 1 + w_class = WEIGHT_CLASS_SMALL flags = CONDUCT var/spamcheck = 0 From 2d13e2f7bfd4d7c1bcc9077599095c901c2d8260 Mon Sep 17 00:00:00 2001 From: Sam Date: Sun, 28 May 2017 01:25:09 +0100 Subject: [PATCH 017/147] Converts /modules/ to using WEIGHT_CLASS_x --- code/modules/arcade/arcade_prize.dm | 4 ++-- code/modules/arcade/mob_hunt/mob_cards.dm | 4 ++-- code/modules/assembly/assembly.dm | 2 +- code/modules/assembly/bomb.dm | 4 ++-- code/modules/assembly/holder.dm | 9 ++----- code/modules/assembly/shock_kit.dm | 2 +- code/modules/clothing/clothing.dm | 10 ++++---- code/modules/clothing/head/misc.dm | 2 +- code/modules/clothing/masks/boxing.dm | 6 ++--- code/modules/clothing/masks/breath.dm | 2 +- code/modules/clothing/masks/gasmask.dm | 5 ++-- code/modules/clothing/masks/miscellaneous.dm | 24 +++++++++---------- code/modules/clothing/spacesuits/alien.dm | 2 +- code/modules/clothing/spacesuits/ert.dm | 2 +- code/modules/clothing/spacesuits/hardsuit.dm | 4 ++-- .../clothing/spacesuits/miscellaneous.dm | 6 ++--- code/modules/clothing/spacesuits/plasmamen.dm | 2 +- code/modules/clothing/spacesuits/rig/rig.dm | 2 +- code/modules/clothing/spacesuits/syndi.dm | 4 ++-- code/modules/clothing/suits/armor.dm | 4 ++-- code/modules/clothing/suits/bio.dm | 4 ++-- code/modules/clothing/suits/miscellaneous.dm | 4 ++-- code/modules/clothing/suits/storage.dm | 2 +- code/modules/clothing/suits/utility.dm | 10 ++++---- .../clothing/under/accessories/accessory.dm | 2 +- .../clothing/under/accessories/holster.dm | 4 ++-- .../clothing/under/accessories/storage.dm | 4 ++-- code/modules/clothing/under/miscellaneous.dm | 2 +- code/modules/customitems/item_defines.dm | 14 +++++------ code/modules/detective_work/evidence.dm | 10 ++++---- .../detective_work/footprints_and_rag.dm | 2 +- code/modules/detective_work/scanner.dm | 2 +- code/modules/fish/fish_eggs.dm | 3 +-- code/modules/fish/fish_items.dm | 10 ++++---- code/modules/food_and_drinks/drinks/drinks.dm | 10 ++++---- .../food_and_drinks/drinks/drinks/bottle.dm | 2 +- code/modules/food_and_drinks/food/snacks.dm | 4 ++-- code/modules/hydroponics/grown/banana.dm | 2 +- code/modules/hydroponics/grown/corn.dm | 6 ++--- code/modules/hydroponics/grown/flowers.dm | 4 ++-- code/modules/hydroponics/grown/melon.dm | 2 +- code/modules/hydroponics/grown/nettle.dm | 2 +- code/modules/hydroponics/grown/towercap.dm | 4 ++-- code/modules/hydroponics/hydroitemdefines.dm | 22 ++++++++--------- code/modules/hydroponics/seeds.dm | 2 +- code/modules/library/lib_items.dm | 6 ++--- code/modules/martial_arts/martial.dm | 2 +- code/modules/mining/coins.dm | 4 ++-- code/modules/mining/equipment_locker.dm | 22 ++++++++--------- code/modules/mining/lavaland/ash_flora.dm | 4 ++-- .../mining/lavaland/loot/ashdragon_loot.dm | 14 +++++------ .../mining/lavaland/loot/hierophant_loot.dm | 4 ++-- .../mining/lavaland/loot/legion_loot.dm | 4 ++-- .../mining/lavaland/loot/tendril_loot.dm | 6 ++--- code/modules/mining/mine_items.dm | 12 +++++----- code/modules/mining/money_bag.dm | 4 ++-- code/modules/mining/ore.dm | 2 +- .../living/carbon/alien/humanoid/inventory.dm | 6 ++--- .../living/carbon/alien/special/facehugger.dm | 4 ++-- code/modules/mob/living/carbon/brain/MMI.dm | 2 +- .../mob/living/carbon/brain/brain_item.dm | 2 +- .../mob/living/carbon/brain/posibrain.dm | 4 ++-- .../mob/living/carbon/human/inventory.dm | 6 ++--- .../mob/living/silicon/robot/component.dm | 2 +- .../mob/living/silicon/robot/drone/drone.dm | 2 +- .../living/simple_animal/bot/construction.dm | 10 ++++---- .../simple_animal/friendly/spiderbot.dm | 2 +- .../simple_animal/hostile/mining_mobs.dm | 2 +- .../mob/living/simple_animal/parrot.dm | 14 +++++------ code/modules/mob/mob.dm | 6 ++--- code/modules/mob/mob_grab.dm | 2 +- code/modules/paperwork/clipboard.dm | 2 +- code/modules/paperwork/folders.dm | 3 +-- code/modules/paperwork/paper.dm | 2 +- code/modules/paperwork/paper_bundle.dm | 4 ++-- code/modules/paperwork/paperbin.dm | 2 +- code/modules/paperwork/pen.dm | 6 ++--- code/modules/paperwork/photography.dm | 8 +++---- code/modules/paperwork/stamps.dm | 4 ++-- code/modules/pda/PDA.dm | 2 +- code/modules/pda/cart.dm | 4 ++-- code/modules/power/apc.dm | 4 ++-- code/modules/power/cable.dm | 6 ++--- code/modules/power/lighting.dm | 4 ++-- code/modules/power/solar.dm | 2 +- code/modules/power/supermatter/sm_shard.dm | 4 ++-- code/modules/power/tracker.dm | 2 +- code/modules/projectiles/ammunition.dm | 6 ++--- code/modules/projectiles/gun.dm | 2 +- code/modules/projectiles/guns/alien.dm | 4 ++-- code/modules/projectiles/guns/energy/laser.dm | 4 ++-- .../projectiles/guns/energy/nuclear.dm | 4 ++-- code/modules/projectiles/guns/energy/pulse.dm | 10 ++++---- .../projectiles/guns/energy/special.dm | 18 +++++++------- .../projectiles/guns/grenade_launcher.dm | 2 +- code/modules/projectiles/guns/magic.dm | 2 +- code/modules/projectiles/guns/magic/wand.dm | 2 +- code/modules/projectiles/guns/medbeam.dm | 2 +- code/modules/projectiles/guns/mounted.dm | 4 ++-- code/modules/projectiles/guns/projectile.dm | 8 +++---- .../projectiles/guns/projectile/automatic.dm | 8 +++---- .../projectiles/guns/projectile/launchers.dm | 4 ++-- .../projectiles/guns/projectile/pistol.dm | 6 ++--- .../projectiles/guns/projectile/revolver.dm | 6 ++--- .../projectiles/guns/projectile/saw.dm | 2 +- .../projectiles/guns/projectile/shotgun.dm | 6 ++--- .../projectiles/guns/projectile/sniper.dm | 2 +- .../projectiles/guns/projectile/toy.dm | 6 ++--- code/modules/projectiles/guns/rocket.dm | 2 +- code/modules/projectiles/guns/syringe_gun.dm | 4 ++-- .../projectiles/guns/throw/crossbow.dm | 2 +- .../projectiles/guns/throw/pielauncher.dm | 2 +- code/modules/reagents/reagent_containers.dm | 2 +- .../reagent_containers/glass_containers.dm | 4 ++-- .../reagents/reagent_containers/spray.dm | 6 ++--- .../reagents/reagent_containers/syringes.dm | 4 ++-- code/modules/recycling/conveyor2.dm | 4 ++-- code/modules/recycling/sortingmachinery.dm | 4 ++-- .../research/xenoarchaeology/chemistry.dm | 4 ++-- .../research/xenoarchaeology/geosample.dm | 2 +- .../research/xenoarchaeology/tools/tools.dm | 6 ++--- .../xenoarchaeology/tools/tools_anoscanner.dm | 2 +- .../tools/tools_coresampler.dm | 4 ++-- .../tools/tools_depthscanner.dm | 2 +- .../xenoarchaeology/tools/tools_pickaxe.dm | 20 ++++++++-------- .../research/xenobiology/xenobiology.dm | 8 +++---- code/modules/spacepods/equipment.dm | 2 +- code/modules/surgery/organs/augments_eyes.dm | 2 +- code/modules/surgery/organs/autoimplanter.dm | 2 +- code/modules/surgery/organs/organ_internal.dm | 8 +++---- .../modules/surgery/organs/subtypes/skrell.dm | 2 +- .../surgery/organs/subtypes/standard.dm | 14 +++++------ code/modules/surgery/organs/subtypes/xenos.dm | 6 ++--- code/modules/surgery/tools.dm | 20 ++++++++-------- code/modules/telesci/bscrystal.dm | 2 +- code/modules/telesci/gps.dm | 16 ++++++------- code/modules/vehicle/vehicle.dm | 4 ++-- 137 files changed, 350 insertions(+), 358 deletions(-) diff --git a/code/modules/arcade/arcade_prize.dm b/code/modules/arcade/arcade_prize.dm index d3457696268..6af1ca30f36 100644 --- a/code/modules/arcade/arcade_prize.dm +++ b/code/modules/arcade/arcade_prize.dm @@ -67,7 +67,7 @@ throwforce = 0 throw_speed = 1 throw_range = 1 - w_class = 1 + w_class = WEIGHT_CLASS_TINY max_amount = 9999 //Dang that's a lot of tickets /obj/item/stack/tickets/New(var/loc, var/amount=null) @@ -86,4 +86,4 @@ else if(amount >= 4) icon_state = "tickets_2" else - icon_state = "tickets_1" \ No newline at end of file + icon_state = "tickets_1" diff --git a/code/modules/arcade/mob_hunt/mob_cards.dm b/code/modules/arcade/mob_hunt/mob_cards.dm index 0479644ad85..26393e8e370 100644 --- a/code/modules/arcade/mob_hunt/mob_cards.dm +++ b/code/modules/arcade/mob_hunt/mob_cards.dm @@ -7,7 +7,7 @@ icon_state = "trade_card" force = 0 throwforce = 1 - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/datum/mob_hunt/mob_data /obj/item/weapon/nanomob_card/proc/update_info() @@ -40,4 +40,4 @@ /obj/item/weapon/storage/box/nanomob_booster_pack/New() ..() for(var/i in 1 to 6) - new /obj/item/weapon/nanomob_card/booster(src) \ No newline at end of file + new /obj/item/weapon/nanomob_card/booster(src) diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index bd981e99076..8092d768ad0 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/assemblies/new_assemblies.dmi' icon_state = "" flags = CONDUCT - w_class = 2 + w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=100) throwforce = 2 throw_speed = 3 diff --git a/code/modules/assembly/bomb.dm b/code/modules/assembly/bomb.dm index f6019ace266..41a67a43560 100644 --- a/code/modules/assembly/bomb.dm +++ b/code/modules/assembly/bomb.dm @@ -3,7 +3,7 @@ icon = 'icons/obj/tank.dmi' item_state = "assembly" throwforce = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL throw_speed = 2 throw_range = 4 flags = CONDUCT //Copied this from old code, so this may or may not be necessary @@ -171,4 +171,4 @@ if(!T) return T.assume_air(removed) - air_update_turf() \ No newline at end of file + air_update_turf() diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index 47d33a1e5ce..f4a71a77ced 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -5,7 +5,7 @@ item_state = "assembly" flags = CONDUCT throwforce = 5 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 10 @@ -100,7 +100,7 @@ a_left.hear_talk(M, msg) if(a_right) a_right.hear_talk(M, msg) - + hear_message(mob/living/M as mob, msg) if(a_left) a_left.hear_message(M, msg) @@ -210,8 +210,3 @@ qdel(src) return return - - - - - diff --git a/code/modules/assembly/shock_kit.dm b/code/modules/assembly/shock_kit.dm index 6ffe6f42d12..aa8bc299e66 100644 --- a/code/modules/assembly/shock_kit.dm +++ b/code/modules/assembly/shock_kit.dm @@ -6,7 +6,7 @@ var/obj/item/clothing/head/helmet/part1 = null var/obj/item/device/radio/electropack/part2 = null var/status = 0 - w_class = 5 + w_class = WEIGHT_CLASS_HUGE flags = CONDUCT /obj/item/assembly/shock_kit/Destroy() diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 914b3ed9209..2142d336fac 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -85,7 +85,7 @@ //Ears: currently only used for headsets and earmuffs /obj/item/clothing/ears name = "ears" - w_class = 1 + w_class = WEIGHT_CLASS_TINY throwforce = 2 slot_flags = SLOT_EARS burn_state = FIRE_PROOF @@ -128,7 +128,7 @@ /obj/item/clothing/ears/offear name = "Other ear" - w_class = 5 + w_class = WEIGHT_CLASS_HUGE icon = 'icons/mob/screen_gen.dmi' icon_state = "block" slot_flags = SLOT_EARS | SLOT_TWOEARS @@ -145,7 +145,7 @@ /obj/item/clothing/glasses name = "glasses" icon = 'icons/obj/clothing/glasses.dmi' - w_class = 2 + w_class = WEIGHT_CLASS_SMALL flags_cover = GLASSESCOVERSEYES slot_flags = SLOT_EYES materials = list(MAT_GLASS = 250) @@ -177,7 +177,7 @@ BLIND // can't see anything /obj/item/clothing/gloves name = "gloves" gender = PLURAL //Carn: for grammarically correct text-parsing - w_class = 2 + w_class = WEIGHT_CLASS_SMALL icon = 'icons/obj/clothing/gloves.dmi' siemens_coefficient = 0.50 body_parts_covered = HANDS @@ -543,7 +543,7 @@ BLIND // can't see anything desc = "A suit that protects against low pressure environments. Has a big 13 on the back." icon_state = "space" item_state = "s_suit" - w_class = 4//bulky item + w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.01 permeability_coefficient = 0.02 flags = STOPSPRESSUREDMAGE | THICKMATERIAL diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 5ddb28359e6..6d46eb7b061 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -380,7 +380,7 @@ throwforce = 3.0 throw_speed = 2 throw_range = 5 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL attack_verb = list("warned", "cautioned", "smashed") burn_state = FIRE_PROOF diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index 25cdc259f92..59081cf3d00 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -5,7 +5,7 @@ item_state = "balaclava" flags = BLOCKHAIR flags_inv = HIDEFACE - w_class = 2 + w_class = WEIGHT_CLASS_SMALL actions_types = list(/datum/action/item_action/adjust) adjusted_flags = SLOT_HEAD species_fit = list("Vox", "Unathi", "Tajaran", "Vulpkanin") @@ -27,7 +27,7 @@ item_state = "luchag" flags = BLOCKHAIR flags_inv = HIDEFACE - w_class = 2 + w_class = WEIGHT_CLASS_SMALL species_fit = list("Vox", "Unathi", "Tajaran", "Vulpkanin") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/mask.dmi', @@ -47,4 +47,4 @@ name = "Rudos Mask" desc = "Worn by robust fighters who are willing to do anything to win." icon_state = "luchar" - item_state = "luchar" \ No newline at end of file + item_state = "luchar" diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index c0ebe33a796..851c10db354 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -5,7 +5,7 @@ item_state = "breath" flags = AIRTIGHT flags_cover = MASKCOVERSMOUTH - w_class = 2 + w_class = WEIGHT_CLASS_SMALL gas_transfer_coefficient = 0.10 permeability_coefficient = 0.50 actions_types = list(/datum/action/item_action/adjust) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 0a3ee36ebbb..908397f990e 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -5,7 +5,7 @@ flags = BLOCK_GAS_SMOKE_EFFECT | AIRTIGHT flags_inv = HIDEEARS|HIDEEYES|HIDEFACE flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL item_state = "gas_alt" gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 @@ -70,7 +70,7 @@ flags = BLOCK_GAS_SMOKE_EFFECT | AIRTIGHT flags_inv = HIDEEARS|HIDEEYES|HIDEFACE flags_cover = MASKCOVERSMOUTH | MASKCOVERSEYES - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL item_state = "bane_mask" gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 @@ -494,4 +494,3 @@ // ******************************************************************** - diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 8d031476931..d524d87e3d8 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -4,7 +4,7 @@ icon_state = "muzzle" item_state = "muzzle" flags_cover = MASKCOVERSMOUTH - w_class = 2 + w_class = WEIGHT_CLASS_SMALL gas_transfer_coefficient = 0.90 put_on_delay = 20 var/resist_time = 0 //deciseconds of how long you need to gnaw to get rid of the gag, 0 to make it impossible to remove @@ -24,14 +24,14 @@ name = "gag" desc = "Stick this in their mouth to stop the noise." icon_state = "gag" - w_class = 1 + w_class = WEIGHT_CLASS_TINY /obj/item/clothing/mask/muzzle/tapegag name = "tape gag" desc = "MHPMHHH!" icon_state = "tapegag" item_state = null - w_class = 1 + w_class = WEIGHT_CLASS_TINY resist_time = 150 mute = 0 species_fit = list("Vox", "Unathi", "Tajaran", "Vulpkanin") @@ -59,7 +59,7 @@ desc = "A sterile mask designed to help prevent the spread of diseases." icon_state = "sterile" item_state = "sterile" - w_class = 1 + w_class = WEIGHT_CLASS_TINY flags_cover = MASKCOVERSMOUTH gas_transfer_coefficient = 0.90 permeability_coefficient = 0.01 @@ -109,7 +109,7 @@ icon_state = "blueneckscarf" item_state = "blueneckscarf" flags_cover = MASKCOVERSMOUTH - w_class = 2 + w_class = WEIGHT_CLASS_SMALL gas_transfer_coefficient = 0.90 /obj/item/clothing/mask/redscarf @@ -118,7 +118,7 @@ icon_state = "redwhite_scarf" item_state = "redwhite_scarf" flags_cover = MASKCOVERSMOUTH - w_class = 2 + w_class = WEIGHT_CLASS_SMALL gas_transfer_coefficient = 0.90 /obj/item/clothing/mask/greenscarf @@ -127,7 +127,7 @@ icon_state = "green_scarf" item_state = "green_scarf" flags_cover = MASKCOVERSMOUTH - w_class = 2 + w_class = WEIGHT_CLASS_SMALL gas_transfer_coefficient = 0.90 /obj/item/clothing/mask/ninjascarf @@ -136,7 +136,7 @@ icon_state = "ninja_scarf" item_state = "ninja_scarf" flags_cover = MASKCOVERSMOUTH - w_class = 2 + w_class = WEIGHT_CLASS_SMALL gas_transfer_coefficient = 0.90 @@ -147,7 +147,7 @@ item_state = "pig" flags = BLOCKHAIR flags_inv = HIDEFACE - w_class = 2 + w_class = WEIGHT_CLASS_SMALL /obj/item/clothing/mask/horsehead @@ -157,7 +157,7 @@ item_state = "horsehead" flags = BLOCKHAIR flags_inv = HIDEFACE - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/voicechange = 0 var/temporaryname = " the Horse" var/originalname = "" @@ -247,7 +247,7 @@ icon_state = "fawkes" item_state = "fawkes" flags_inv = HIDEFACE - w_class = 2 + w_class = WEIGHT_CLASS_SMALL /obj/item/clothing/mask/gas/clown_hat/pennywise name = "Pennywise Mask" @@ -263,7 +263,7 @@ desc = "A colorful bandana." flags_inv = HIDEFACE flags_cover = MASKCOVERSMOUTH - w_class = 1 + w_class = WEIGHT_CLASS_TINY slot_flags = SLOT_MASK adjusted_flags = SLOT_HEAD icon_state = "bandbotany" diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm index 33e08206fd1..69ecd6eca0e 100644 --- a/code/modules/clothing/spacesuits/alien.dm +++ b/code/modules/clothing/spacesuits/alien.dm @@ -74,7 +74,7 @@ // Vox space gear (vaccuum suit, low pressure armour) // Can't be equipped by any other species due to bone structure and vox cybernetics. /obj/item/clothing/suit/space/vox - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank) armor = list(melee = 40, bullet = 40, laser = 30, energy = 15, bomb = 30, bio = 30, rad = 30) heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS diff --git a/code/modules/clothing/spacesuits/ert.dm b/code/modules/clothing/spacesuits/ert.dm index 82c4a832c6c..80257cda101 100644 --- a/code/modules/clothing/spacesuits/ert.dm +++ b/code/modules/clothing/spacesuits/ert.dm @@ -29,7 +29,7 @@ desc = "A suit worn by members of the Nanotrasen Emergency Response Team. Armoured, space ready, and fire resistant." icon_state = "ert_commander" item_state = "suit-command" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank) armor = list(melee = 45, bullet = 25, laser = 30, energy = 10, bomb = 25, bio = 100, rad = 50) allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank, /obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/crowbar, \ diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index ab601821ef8..802f39ad361 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -352,7 +352,7 @@ icon_state = "hardsuit1-syndi" item_state = "syndie_hardsuit" item_color = "syndi" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL var/on = 1 actions_types = list(/datum/action/item_action/toggle_hardsuit_mode) armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50) @@ -447,7 +447,7 @@ name = "gem-encrusted hardsuit" desc = "A bizarre gem-encrusted suit that radiates magical energies." item_state = "wiz_hardsuit" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL unacidable = 1 armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50) allowed = list(/obj/item/weapon/teleportation_scroll,/obj/item/weapon/tank) diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 54aa39a305e..20d9809f2b2 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -27,7 +27,7 @@ desc = "A bulky, heavy-duty piece of exclusive Nanotrasen armor. YOU are in charge!" icon_state = "caparmor" item_state = "capspacesuit" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY allowed = list(/obj/item/weapon/tank, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50) species_restricted = list("exclude", "Diona", "Wryn") @@ -86,7 +86,7 @@ blood_overlay_type = "coat" flags_inv = 0 slowdown = 0 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL //Space santa outfit suit /obj/item/clothing/head/helmet/space/santahat @@ -123,7 +123,7 @@ desc = "Yarr." icon_state = "pirate" item_state = "pirate" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank) slowdown = 0 armor = list(melee = 30, bullet = 50, laser = 30, energy = 15, bomb = 30, bio = 30, rad = 30) diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index 9ece7d54aa3..4e43aaf61b4 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -62,7 +62,7 @@ flags = null //non-conductive force = 0 throwforce = 0 - w_class = 2 //Fits in boxes. + w_class = WEIGHT_CLASS_SMALL //Fits in boxes. materials = list() attack_verb = list("tapped") diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index 24f5a340760..da181368cc5 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -14,7 +14,7 @@ slot_flags = SLOT_BACK req_one_access = list() req_access = list() - w_class = 4 + w_class = WEIGHT_CLASS_BULKY // These values are passed on to all component pieces. armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75) diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm index 4b8f32f5a74..37aa5b776ba 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -12,7 +12,7 @@ icon_state = "syndicate" item_state = "space_suit_syndicate" desc = "Has a tag on it: Totally not property of of a hostile corporation, honest!" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank) armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 30, bio = 30, rad = 30) @@ -173,4 +173,4 @@ obj/item/clothing/suit/space/syndicate/black/red/strike /obj/item/clothing/suit/space/syndicate/black/engie name = "Black Engineering Space Suit" icon_state = "syndicate-black-engie" - item_state = "syndicate-black" \ No newline at end of file + item_state = "syndicate-black" diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index c9d3ccac27b..7a2fa10db07 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -376,7 +376,7 @@ desc = "A suit that protects against some damage." icon_state = "centcom" item_state = "centcom" - w_class = 4//bulky item + w_class = WEIGHT_CLASS_BULKY body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/emergency_oxygen) flags = THICKMATERIAL @@ -393,7 +393,7 @@ icon_state = "heavy" item_state = "swat_suit" armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100) - w_class = 4//bulky item + w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.90 flags = THICKMATERIAL body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index f0fbfca0cbd..49f8a8ea8d1 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -15,7 +15,7 @@ desc = "A suit that protects against biological contamination." icon_state = "bio" item_state = "bio_suit" - w_class = 4//bulky item + w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 flags = THICKMATERIAL @@ -93,4 +93,4 @@ strip_delay = 40 put_on_delay = 20 species_fit = null - sprite_sheets = null \ No newline at end of file + sprite_sheets = null diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 5d25cf95c2d..8b6e4d2e0d3 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -135,7 +135,7 @@ icon_state = "syndicate-black-red" item_state = "syndicate-black-red" desc = "A plastic replica of the syndicate space suit, you'll look just like a real murderous syndicate agent in this! This is a toy, it is not made for use in space!" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/toy) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT burn_state = FIRE_PROOF @@ -714,7 +714,7 @@ desc = "A soft white robe made of a synthetic fiber that provides improved protection against biohazards. Possessing multiple overlapping layers, yet light enough to allow complete freedom of movement, it denotes its wearer as a master physician." icon_state = "mercy_hoodie" item_state = "mercy_hoodie" - w_class = 4//bulky item + w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 flags_size = ONESIZEFITSALL diff --git a/code/modules/clothing/suits/storage.dm b/code/modules/clothing/suits/storage.dm index 70fa8a30227..5e73af7aa39 100644 --- a/code/modules/clothing/suits/storage.dm +++ b/code/modules/clothing/suits/storage.dm @@ -5,7 +5,7 @@ ..() pockets = new/obj/item/weapon/storage/internal(src) pockets.storage_slots = 2 //two slots - pockets.max_w_class = 2 //fit only pocket sized items + pockets.max_w_class = WEIGHT_CLASS_SMALL //fit only pocket sized items pockets.max_combined_w_class = 4 /obj/item/clothing/suit/storage/Destroy() diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 81cc172d0e2..3d31af6230b 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -14,7 +14,7 @@ desc = "A suit that protects against fire and heat." icon_state = "fire" item_state = "fire_suit" - w_class = 4//bulky item + w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.90 permeability_coefficient = 0.50 body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS @@ -43,7 +43,7 @@ desc = "A suit that protects against extreme fire and heat." //icon_state = "thermal" item_state = "ro_suit" - w_class = 4//bulky item + w_class = WEIGHT_CLASS_BULKY slowdown = 1.5 /obj/item/clothing/suit/fire/atmos @@ -85,7 +85,7 @@ desc = "A suit designed for safety when handling explosives." icon_state = "bombsuit" item_state = "bombsuit" - w_class = 4//bulky item + w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 flags = THICKMATERIAL @@ -142,7 +142,7 @@ desc = "A suit that protects against radiation. Label: Made with lead, do not eat insulation." icon_state = "rad" item_state = "rad_suit" - w_class = 4//bulky item + w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.90 permeability_coefficient = 0.50 flags = THICKMATERIAL @@ -157,4 +157,4 @@ species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/suit.dmi' - ) \ No newline at end of file + ) diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm index f0da2e141a0..5f358ac58f4 100644 --- a/code/modules/clothing/under/accessories/accessory.dm +++ b/code/modules/clothing/under/accessories/accessory.dm @@ -6,7 +6,7 @@ item_state = "" //no inhands item_color = "bluetie" slot_flags = SLOT_TIE - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/slot = "decor" var/obj/item/clothing/under/has_suit = null //the suit the tie may be attached to var/image/inv_overlay = null //overlay used when attached to clothing. diff --git a/code/modules/clothing/under/accessories/holster.dm b/code/modules/clothing/under/accessories/holster.dm index cab12cba542..4c53d9c3c8d 100644 --- a/code/modules/clothing/under/accessories/holster.dm +++ b/code/modules/clothing/under/accessories/holster.dm @@ -7,7 +7,7 @@ var/holster_allow = /obj/item/weapon/gun var/obj/item/weapon/gun/holstered = null actions_types = list(/datum/action/item_action/accessory/holster) - w_class = 3 // so it doesn't fit in pockets + w_class = WEIGHT_CLASS_NORMAL // so it doesn't fit in pockets /obj/item/clothing/accessory/holster/Destroy() QDEL_NULL(holstered) @@ -140,4 +140,4 @@ name = "shoulder holster" desc = "A handgun holster. Made of expensive leather." icon_state = "holster" - item_color = "holster_low" \ No newline at end of file + item_color = "holster_low" diff --git a/code/modules/clothing/under/accessories/storage.dm b/code/modules/clothing/under/accessories/storage.dm index fd335f43fb7..a306864cbfc 100644 --- a/code/modules/clothing/under/accessories/storage.dm +++ b/code/modules/clothing/under/accessories/storage.dm @@ -7,7 +7,7 @@ var/slots = 3 var/obj/item/weapon/storage/internal/hold actions_types = list(/datum/action/item_action/accessory/storage) - w_class = 3 // so it doesn't fit in pockets + w_class = WEIGHT_CLASS_NORMAL // so it doesn't fit in pockets /obj/item/clothing/accessory/storage/New() ..() @@ -110,4 +110,4 @@ hold.can_hold = list(/obj/item/weapon/hatchet/unathiknife, /obj/item/weapon/kitchen/knife) new /obj/item/weapon/hatchet/unathiknife(hold) - new /obj/item/weapon/hatchet/unathiknife(hold) \ No newline at end of file + new /obj/item/weapon/hatchet/unathiknife(hold) diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 7494f559383..41111585072 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -167,7 +167,7 @@ icon_state = "black" item_state = "bl_suit" item_color = "black" - w_class = 4//bulky item + w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.01 permeability_coefficient = 0.02 body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index ee6747b39d3..807f49153c5 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -20,7 +20,7 @@ icon_state = "tatgun" force = 0 throwforce = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/tattoo_name = "tiger stripe tattoo" // Tat name for visible messages var/tattoo_icon = "Tiger-stripe Tattoo" // body_accessory.dmi, new icons defined in sprite_accessories.dm var/tattoo_r = 1 // RGB values for the body markings @@ -221,7 +221,7 @@ item_state = "lunch_box" force = 5 throwforce = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL max_combined_w_class = 9 storage_slots = 3 @@ -248,7 +248,7 @@ hitsound = 'sound/weapons/tap.ogg' force = 0 throwforce = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/used = 0 /obj/item/fluff/wingler_comb/attack_self(mob/user) @@ -268,7 +268,7 @@ desc = "Some sci-fi looking parts for a stun baton." icon = 'icons/obj/custom_items.dmi' icon_state = "scifikit" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL /obj/item/device/fluff/desolate_baton_kit/afterattack(atom/target, mob/user, proximity) if(!proximity || !ishuman(user) || user.incapacitated()) @@ -293,7 +293,7 @@ name = "welding helmet modkit" desc = "Some spraypaint and a stencil, perfect for painting flames onto a welding helmet!" icon_state = "modkit" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL force = 0 throwforce = 0 @@ -318,7 +318,7 @@ name = "plasmaman suit modkit" desc = "A kit containing nanites that are able to modify the look of a plasmaman suit and helmet without exposing the wearer to hostile environments." icon_state = "modkit" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL force = 0 throwforce = 0 @@ -367,7 +367,7 @@ name = "sallet modkit" desc = "A modkit that can make most helmets look like a steel sallet." icon_state = "modkit" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL force = 0 throwforce = 0 diff --git a/code/modules/detective_work/evidence.dm b/code/modules/detective_work/evidence.dm index e457d73fb87..cb4e2604771 100644 --- a/code/modules/detective_work/evidence.dm +++ b/code/modules/detective_work/evidence.dm @@ -6,7 +6,7 @@ icon = 'icons/obj/storage.dmi' icon_state = "evidenceobj" item_state = "" - w_class = 1 + w_class = WEIGHT_CLASS_TINY /obj/item/weapon/evidencebag/afterattack(obj/item/I, mob/user,proximity) if(!proximity || loc == I) @@ -29,7 +29,7 @@ to_chat(user, "You find putting an evidence bag in another evidence bag to be slightly absurd.") return 1 //now this is podracing - if(I.w_class > 3) + if(I.w_class > WEIGHT_CLASS_NORMAL) to_chat(user, "[I] won't fit in [src].") return @@ -76,7 +76,7 @@ "You hear someone rustle around in a plastic bag, and remove something.") overlays.Cut() //remove the overlays user.put_in_hands(I) - w_class = 1 + w_class = WEIGHT_CLASS_TINY icon_state = "evidenceobj" desc = "An empty evidence bag." @@ -87,7 +87,7 @@ /obj/item/weapon/storage/box/evidence name = "evidence bag box" desc = "A box claiming to contain evidence bags." - + /obj/item/weapon/storage/box/evidence/New() new /obj/item/weapon/evidencebag(src) new /obj/item/weapon/evidencebag(src) @@ -95,4 +95,4 @@ new /obj/item/weapon/evidencebag(src) new /obj/item/weapon/evidencebag(src) new /obj/item/weapon/evidencebag(src) - ..() \ No newline at end of file + ..() diff --git a/code/modules/detective_work/footprints_and_rag.dm b/code/modules/detective_work/footprints_and_rag.dm index cc93863cc95..cc6a463a0ee 100644 --- a/code/modules/detective_work/footprints_and_rag.dm +++ b/code/modules/detective_work/footprints_and_rag.dm @@ -17,7 +17,7 @@ /obj/item/weapon/reagent_containers/glass/rag name = "damp rag" desc = "For cleaning up messes, you suppose." - w_class = 1 + w_class = WEIGHT_CLASS_TINY icon = 'icons/obj/toy.dmi' icon_state = "rag" amount_per_transfer_from_this = 5 diff --git a/code/modules/detective_work/scanner.dm b/code/modules/detective_work/scanner.dm index 69aeb643263..bb1a79f13ad 100644 --- a/code/modules/detective_work/scanner.dm +++ b/code/modules/detective_work/scanner.dm @@ -7,7 +7,7 @@ desc = "Used to remotely scan objects and biomass for DNA and fingerprints. Can print a report of the findings." icon = 'icons/goonstation/objects/objects.dmi' icon_state = "detscanner" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL item_state = "electronic" flags = CONDUCT | NOBLUDGEON slot_flags = SLOT_BELT diff --git a/code/modules/fish/fish_eggs.dm b/code/modules/fish/fish_eggs.dm index 5255859b704..756093fbd01 100644 --- a/code/modules/fish/fish_eggs.dm +++ b/code/modules/fish/fish_eggs.dm @@ -4,7 +4,7 @@ desc = "Eggs laid by a fish. This cluster seems... empty?" icon = 'icons/obj/fish_items.dmi' icon_state = "eggs" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/datum/fish/fish_type = null //Holds the datum of the fish that the egg is for, null means dud eggs /obj/item/fish_eggs/goldfish @@ -66,4 +66,3 @@ desc = "A cluster of bright neon eggs belonging to a bio-luminescent species of fish." icon_state = "glofish_eggs" fish_type = /datum/fish/glofish - diff --git a/code/modules/fish/fish_items.dm b/code/modules/fish/fish_items.dm index 9f58d58942e..64ca8269298 100644 --- a/code/modules/fish/fish_items.dm +++ b/code/modules/fish/fish_items.dm @@ -10,7 +10,7 @@ icon_state = "egg_scoop" slot_flags = SLOT_BELT throwforce = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 7 @@ -21,7 +21,7 @@ icon_state = "net" slot_flags = SLOT_BELT throwforce = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 7 @@ -35,7 +35,7 @@ icon = 'icons/obj/fish_items.dmi' icon_state = "fish_food" throwforce = 1 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 7 @@ -46,7 +46,7 @@ icon_state = "brush" slot_flags = SLOT_BELT throwforce = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 7 attack_verb = list("scrubbed", "brushed", "scraped") @@ -90,7 +90,7 @@ icon = 'icons/obj/fish_items.dmi' icon_state = "fish" throwforce = 1 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 7 force = 1 diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 23ae568af9b..0b5b2171f86 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -141,7 +141,7 @@ name = "pewter cup" desc = "Everyone gets a trophy." icon_state = "pewter_cup" - w_class = 1 + w_class = WEIGHT_CLASS_TINY force = 1 throwforce = 1 amount_per_transfer_from_this = 5 @@ -154,7 +154,7 @@ name = "gold cup" desc = "You're winner!" icon_state = "golden_cup" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 14 throwforce = 10 amount_per_transfer_from_this = 20 @@ -165,7 +165,7 @@ name = "silver cup" desc = "Best loser!" icon_state = "silver_cup" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL force = 10 throwforce = 8 amount_per_transfer_from_this = 15 @@ -176,7 +176,7 @@ name = "bronze cup" desc = "At least you ranked!" icon_state = "bronze_cup" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL force = 5 throwforce = 4 amount_per_transfer_from_this = 10 @@ -349,4 +349,4 @@ desc = "A bowl made out of mushrooms. Not food, though it might have contained some at some point." icon = 'icons/obj/lavaland/ash_flora.dmi' icon_state = "mushroom_bowl" - w_class = 2 \ No newline at end of file + w_class = WEIGHT_CLASS_SMALL diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 75f9c9a776f..e1a517caaf3 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -130,7 +130,7 @@ throwforce = 5 throw_speed = 3 throw_range = 5 - w_class = 1 + w_class = WEIGHT_CLASS_TINY item_state = "beer" hitsound = 'sound/weapons/bladeslice.ogg' attack_verb = list("stabbed", "slashed", "attacked") diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index 3a079e99da4..cbb049c883c 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -130,7 +130,7 @@ istype(W, /obj/item/weapon/hatchet) \ ) inaccurate = 1 - else if(W.w_class <= 2 && istype(src,/obj/item/weapon/reagent_containers/food/snacks/sliceable)) + else if(W.w_class <= WEIGHT_CLASS_SMALL && istype(src,/obj/item/weapon/reagent_containers/food/snacks/sliceable)) if(!iscarbon(user)) return 1 to_chat(user, "You slip [W] inside [src].") @@ -2477,4 +2477,4 @@ desc = "A large fried potato nugget that may or may not try to valid you." icon_state = "tatortot" list_reagents = list("nutriment" = 4) - filling_color = "FFD700" \ No newline at end of file + filling_color = "FFD700" diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm index dbdffffda29..8301b021cc4 100644 --- a/code/modules/hydroponics/grown/banana.dm +++ b/code/modules/hydroponics/grown/banana.dm @@ -43,7 +43,7 @@ desc = "A peel from a banana." icon_state = "banana_peel" item_state = "banana_peel" - w_class = 1 + w_class = WEIGHT_CLASS_TINY throwforce = 0 throw_speed = 3 throw_range = 7 diff --git a/code/modules/hydroponics/grown/corn.dm b/code/modules/hydroponics/grown/corn.dm index a7ef947a5ce..d2dac1decfe 100644 --- a/code/modules/hydroponics/grown/corn.dm +++ b/code/modules/hydroponics/grown/corn.dm @@ -30,7 +30,7 @@ desc = "A reminder of meals gone by." icon_state = "corncob" item_state = "corncob" - w_class = 1 + w_class = WEIGHT_CLASS_TINY throwforce = 0 throw_speed = 3 throw_range = 7 @@ -62,7 +62,7 @@ desc = "A cob with snap pops" icon_state = "snapcorn" item_state = "corncob" - w_class = 1 + w_class = WEIGHT_CLASS_TINY throwforce = 0 throw_speed = 3 throw_range = 7 @@ -81,4 +81,4 @@ snap_pops -= 1 if(!snap_pops) new /obj/item/weapon/grown/corncob(user.loc) - qdel(src) \ No newline at end of file + qdel(src) diff --git a/code/modules/hydroponics/grown/flowers.dm b/code/modules/hydroponics/grown/flowers.dm index 7deb961e67a..1752cda7567 100644 --- a/code/modules/hydroponics/grown/flowers.dm +++ b/code/modules/hydroponics/grown/flowers.dm @@ -117,7 +117,7 @@ force = 0 slot_flags = SLOT_HEAD throwforce = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 1 throw_range = 3 @@ -167,7 +167,7 @@ force = 0 slot_flags = SLOT_HEAD throwforce = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 1 throw_range = 3 attack_verb = list("roasted", "scorched", "burned") diff --git a/code/modules/hydroponics/grown/melon.dm b/code/modules/hydroponics/grown/melon.dm index 5a229148a17..06bb153e47f 100644 --- a/code/modules/hydroponics/grown/melon.dm +++ b/code/modules/hydroponics/grown/melon.dm @@ -22,7 +22,7 @@ slice_path = /obj/item/weapon/reagent_containers/food/snacks/watermelonslice slices_num = 5 dried_type = null - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL filling_color = "#008000" bitesize_mod = 3 diff --git a/code/modules/hydroponics/grown/nettle.dm b/code/modules/hydroponics/grown/nettle.dm index f6d9be51b4a..52f60d06b18 100644 --- a/code/modules/hydroponics/grown/nettle.dm +++ b/code/modules/hydroponics/grown/nettle.dm @@ -37,7 +37,7 @@ force = 15 hitsound = 'sound/weapons/bladeslice.ogg' throwforce = 5 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 1 throw_range = 3 origin_tech = "combat=3" diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm index 961fe7c4096..339459669be 100644 --- a/code/modules/hydroponics/grown/towercap.dm +++ b/code/modules/hydroponics/grown/towercap.dm @@ -37,7 +37,7 @@ icon_state = "logs" force = 5 throwforce = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL throw_speed = 2 throw_range = 3 origin_tech = "materials=1" @@ -191,4 +191,4 @@ /obj/structure/bonfire/unbuckle_mob(force=0) if(buckled_mob) buckled_mob.pixel_y -= 13 - . = ..() \ No newline at end of file + . = ..() diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 608c52bfcb4..9a93d1a9673 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -5,7 +5,7 @@ icon = 'icons/obj/device.dmi' icon_state = "hydro" item_state = "analyzer" - w_class = 1 + w_class = WEIGHT_CLASS_TINY slot_flags = SLOT_BELT origin_tech = "magnets=2;biotech=2" materials = list(MAT_METAL=30, MAT_GLASS=20) @@ -24,7 +24,7 @@ flags = OPENCONTAINER slot_flags = SLOT_BELT throwforce = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 10 @@ -46,7 +46,7 @@ flags = OPENCONTAINER slot_flags = SLOT_BELT throwforce = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 10 @@ -68,7 +68,7 @@ flags = CONDUCT force = 5 throwforce = 7 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=50) attack_verb = list("slashed", "sliced", "cut", "clawed") hitsound = 'sound/weapons/bladeslice.ogg' @@ -80,7 +80,7 @@ icon_state = "hatchet" flags = CONDUCT force = 12 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throwforce = 15 throw_speed = 3 throw_range = 4 @@ -111,7 +111,7 @@ throwforce = 5 throw_speed = 2 throw_range = 3 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY flags = CONDUCT armour_penetration = 20 slot_flags = SLOT_BACK @@ -140,7 +140,7 @@ force = 3 sharp = 0 edge = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL extend = 0 slot_flags = SLOT_BELT origin_tech = "materials=3;combat=3" @@ -154,7 +154,7 @@ icon_state = "tscythe1" item_state = "scythe0" //use the normal scythe in-hands slot_flags = SLOT_BACK //won't fit on belt, but can be worn on belt when extended - w_class = 4 //won't fit in backpacks while extended + w_class = WEIGHT_CLASS_BULKY //won't fit in backpacks while extended force = 15 //slightly better than normal scythe damage attack_verb = list("chopped", "sliced", "cut", "reaped") hitsound = 'sound/weapons/bladeslice.ogg' @@ -165,7 +165,7 @@ icon_state = "tscythe0" item_state = null //no sprite for folded version, like a tele-baton slot_flags = SLOT_BELT //can be worn on belt again, but no longer makes sense to wear on the back - w_class = 2 + w_class = WEIGHT_CLASS_SMALL force = 3 attack_verb = list("hit", "poked") hitsound = "swing_hit" @@ -200,7 +200,7 @@ icon = 'icons/obj/chemical.dmi' icon_state = "bottle16" volume = 50 - w_class = 1 + w_class = WEIGHT_CLASS_TINY amount_per_transfer_from_this = 10 possible_transfer_amounts = list(1,2,5,10,15,25,50) @@ -249,7 +249,7 @@ icon = 'icons/obj/chemical.dmi' icon_state = "bottle16" volume = 50 - w_class = 1 + w_class = WEIGHT_CLASS_TINY amount_per_transfer_from_this = 10 possible_transfer_amounts = list(1,2,5,10,15,25,50) diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index ae79eda23d3..093cd2114a4 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -5,7 +5,7 @@ /obj/item/seeds icon = 'icons/obj/hydroponics/seeds.dmi' icon_state = "seed" // Unknown plant seed - these shouldn't exist in-game. - w_class = 1 + w_class = WEIGHT_CLASS_TINY burn_state = FLAMMABLE var/plantname = "Plants" // Name of plant when planted. var/product // A type path. The thing that is created when the plant is harvested. diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index a32b31611cc..96f88f3d9c4 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -167,7 +167,7 @@ icon_state ="book" throw_speed = 1 throw_range = 5 - w_class = 3 //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever) + w_class = WEIGHT_CLASS_NORMAL //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever) attack_verb = list("bashed", "whacked", "educated") burn_state = FLAMMABLE @@ -201,7 +201,7 @@ /obj/item/weapon/book/attackby(obj/item/weapon/W as obj, mob/user as mob, params) if(carved) if(!store) - if(W.w_class < 3) + if(W.w_class < WEIGHT_CLASS_NORMAL) user.drop_item() W.forceMove(src) store = W @@ -293,7 +293,7 @@ icon_state ="scanner" throw_speed = 1 throw_range = 5 - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/obj/machinery/computer/library/checkout/computer // Associated computer - Modes 1 to 3 use this var/obj/item/weapon/book/book // Currently scanned book var/mode = 0 // 0 - Scan only, 1 - Scan and Set Buffer, 2 - Scan and Attempt to Check In, 3 - Scan and Attempt to Add to Inventory diff --git a/code/modules/martial_arts/martial.dm b/code/modules/martial_arts/martial.dm index 971dc69a1b6..3f1705f4651 100644 --- a/code/modules/martial_arts/martial.dm +++ b/code/modules/martial_arts/martial.dm @@ -172,7 +172,7 @@ name = "bo staff" desc = "A long, tall staff made of polished wood. Traditionally used in ancient old-Earth martial arts. Can be wielded to both kill and incapacitate." force = 10 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY slot_flags = SLOT_BACK force_unwielded = 10 force_wielded = 24 diff --git a/code/modules/mining/coins.dm b/code/modules/mining/coins.dm index 00ea7632900..2ce3f8d6195 100644 --- a/code/modules/mining/coins.dm +++ b/code/modules/mining/coins.dm @@ -7,7 +7,7 @@ flags = CONDUCT force = 1 throwforce = 2 - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/string_attached var/list/sideslist = list("heads","tails") var/cmineral = null @@ -149,4 +149,4 @@ if(do_after(user, 15, target = src)) user.visible_message("[user] has flipped [src]. It lands on [coinflip].", \ "You flip [src]. It lands on [coinflip].", \ - "You hear the clattering of loose change.") \ No newline at end of file + "You hear the clattering of loose change.") diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm index d6c375c2832..8bb891834a9 100644 --- a/code/modules/mining/equipment_locker.dm +++ b/code/modules/mining/equipment_locker.dm @@ -521,7 +521,7 @@ desc = "A token to redeem a piece of equipment. Use it on a mining equipment vendor." icon = 'icons/obj/items.dmi' icon_state = "mining_voucher" - w_class = 1 + w_class = WEIGHT_CLASS_TINY /**********************Mining Point Card**********************/ @@ -555,7 +555,7 @@ icon_state = "Jaunter" item_state = "electronic" throwforce = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 5 origin_tech = "bluespace=2" @@ -615,7 +615,7 @@ icon_state = "resonator" item_state = "resonator" desc = "A handheld device that creates small fields of energy that resonate until they detonate, crushing rock. It can also be activated without a target to create a field at the user's location, to act as a delayed time trap. It's more effective in a vaccuum." - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL force = 8 throwforce = 10 var/cooldown = 0 @@ -711,7 +711,7 @@ /obj/item/weapon/mining_drone_cube name = "mining drone cube" desc = "Compressed mining drone, ready for deployment. Just press the button to activate!" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL icon = 'icons/obj/aibots.dmi' icon_state = "minedronecube" item_state = "electronic" @@ -728,7 +728,7 @@ name = "Drone Kit" desc = "A boxed kit that includes one mining drone cube and a welding tool with an increased capacity." icon_state = "implant" - max_w_class = 3 + max_w_class = WEIGHT_CLASS_NORMAL storage_slots = 2 can_hold = list(/obj/item/weapon/mining_drone_cube, /obj/item/weapon/weldingtool/hugetank) @@ -746,7 +746,7 @@ icon_state = "lazarus_hypo" item_state = "hypo" throwforce = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 5 var/loaded = 1 @@ -806,7 +806,7 @@ name = "manual mining scanner" icon_state = "mining1" item_state = "analyzer" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL flags = CONDUCT slot_flags = SLOT_BELT var/cooldown = 0 @@ -838,7 +838,7 @@ name = "advanced automatic mining scanner" icon_state = "mining0" item_state = "analyzer" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL flags = CONDUCT slot_flags = SLOT_BELT var/cooldown = 35 @@ -931,7 +931,7 @@ desc = "A tank of compressed carbon dioxide for miners to use as propulsion in local space. The compact size allows for easy storage at the cost of capacity." volume = 40 throw_range = 7 - w_class = 3 //same as syndie harness + w_class = WEIGHT_CLASS_NORMAL //same as syndie harness /*********************Hivelord stabilizer****************/ @@ -940,7 +940,7 @@ icon = 'icons/obj/chemical.dmi' icon_state = "bottle19" desc = "Inject a hivelord core with this stabilizer to preserve its healing powers indefinitely." - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "biotech=1" /obj/item/weapon/hivelordstabilizer/afterattack(obj/item/organ/internal/M, mob/user) @@ -963,7 +963,7 @@ \nMark a mob with the destabilizing force, then hit them in melee to activate it for extra damage. Extra damage if backstabbed in this fashion. \ This weapon is only particularly effective against large creatures." force = 20 //As much as a bone spear, but this is significantly more annoying to carry around due to requiring the use of both hands at all times - w_class = 4 + w_class = WEIGHT_CLASS_BULKY slot_flags = SLOT_BACK force_unwielded = 20 //It's never not wielded so these are the same force_wielded = 20 diff --git a/code/modules/mining/lavaland/ash_flora.dm b/code/modules/mining/lavaland/ash_flora.dm index 922dd34a166..6289333549b 100644 --- a/code/modules/mining/lavaland/ash_flora.dm +++ b/code/modules/mining/lavaland/ash_flora.dm @@ -155,7 +155,7 @@ icon = 'icons/obj/lavaland/ash_flora.dmi' icon_state = "mushroom_shavings" list_reagents = list("sugar" = 3, "ethanol" = 2, "stabilizing_agent" = 3, "minttoxin" = 2) - w_class = 1 + w_class = WEIGHT_CLASS_TINY /obj/item/weapon/reagent_containers/food/snacks/ash_flora/New() ..() @@ -194,7 +194,7 @@ desc = "A bowl made out of mushrooms. Not food, though it might have contained some at some point." icon = 'icons/obj/lavaland/ash_flora.dmi' icon_state = "mushroom_bowl" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL //what you can craft with these things /datum/crafting_recipe/mushroom_bowl diff --git a/code/modules/mining/lavaland/loot/ashdragon_loot.dm b/code/modules/mining/lavaland/loot/ashdragon_loot.dm index 4565039d52e..418d00c6f19 100644 --- a/code/modules/mining/lavaland/loot/ashdragon_loot.dm +++ b/code/modules/mining/lavaland/loot/ashdragon_loot.dm @@ -15,8 +15,8 @@ if(4) new /obj/item/weapon/dragons_blood(src) -// Spectral Blade - +// Spectral Blade + /obj/item/weapon/melee/ghost_sword name = "spectral blade" desc = "A rusted and dulled blade. It doesn't look like it'd do much damage. It glows weakly." @@ -25,7 +25,7 @@ flags = CONDUCT sharp = 1 edge = 1 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 1 throwforce = 1 hitsound = 'sound/effects/ghost2.ogg' @@ -71,7 +71,7 @@ var/turf/T = get_turf(src) var/list/contents = T.GetAllContents() var/mob/dead/observer/current_spirits = list() - + for(var/mob/dead/observer/O in player_list) if(is_type_in_list(O.following, contents)) ghost_counter++ @@ -145,7 +145,7 @@ stage4 = list("Your blood burns.") stage5 = list("You're a fucking dragon. However, any previous allegiances you held still apply. It'd be incredibly rude to eat your still human friends for no reason.") new_form = /mob/living/simple_animal/hostile/megafauna/dragon/lesser - + //Lava Staff /obj/item/weapon/lava_staff @@ -156,7 +156,7 @@ icon = 'icons/obj/guns/magic.dmi' slot_flags = SLOT_BACK item_state = "staffofstorms" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 25 damtype = BURN hitsound = 'sound/weapons/sear.ogg' @@ -214,4 +214,4 @@ /obj/effect/overlay/temp/lavastaff icon_state = "lavastaff_warn" - duration = 50 \ No newline at end of file + duration = 50 diff --git a/code/modules/mining/lavaland/loot/hierophant_loot.dm b/code/modules/mining/lavaland/loot/hierophant_loot.dm index f06fd25d428..64689a3a535 100644 --- a/code/modules/mining/lavaland/loot/hierophant_loot.dm +++ b/code/modules/mining/lavaland/loot/hierophant_loot.dm @@ -5,7 +5,7 @@ item_state = "hierophant_staff" icon = 'icons/obj/guns/magic.dmi' slot_flags = SLOT_BACK - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 20 hitsound = "swing_hit" //hitsound = 'sound/weapons/sonic_jackhammer.ogg' @@ -185,4 +185,4 @@ //playsound(T,'sound/effects/bin_close.ogg', 200, 1) sleep(2) for(var/t in RANGE_TURFS(1, T)) - new /obj/effect/overlay/temp/hierophant/blast(t, user, friendly_fire_check) \ No newline at end of file + new /obj/effect/overlay/temp/hierophant/blast(t, user, friendly_fire_check) diff --git a/code/modules/mining/lavaland/loot/legion_loot.dm b/code/modules/mining/lavaland/loot/legion_loot.dm index 49e64f3349e..f85a6a57aac 100644 --- a/code/modules/mining/lavaland/loot/legion_loot.dm +++ b/code/modules/mining/lavaland/loot/legion_loot.dm @@ -6,7 +6,7 @@ icon = 'icons/obj/guns/magic.dmi' slot_flags = SLOT_BACK item_state = "staffofstorms" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 25 damtype = BURN hitsound = 'sound/weapons/sear.ogg' @@ -49,4 +49,4 @@ "You hold [src] skyward, calling down a terrible storm!") playsound(user, 'sound/magic/Staff_Change.ogg', 200, 0) A.telegraph() - storm_cooldown = world.time + 200 \ No newline at end of file + storm_cooldown = world.time + 200 diff --git a/code/modules/mining/lavaland/loot/tendril_loot.dm b/code/modules/mining/lavaland/loot/tendril_loot.dm index dec8712eb74..1c2093ce8c2 100644 --- a/code/modules/mining/lavaland/loot/tendril_loot.dm +++ b/code/modules/mining/lavaland/loot/tendril_loot.dm @@ -5,7 +5,7 @@ name = "paradox bag" desc = "Somehow, it's in two places at once." max_combined_w_class = 60 - max_w_class = 3 + max_w_class = WEIGHT_CLASS_NORMAL //External /obj/item/device/shared_storage @@ -144,7 +144,7 @@ item_state = "rods" desc = "Not to be confused with the kind Research hassles you for." force = 12 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL burn_state = LAVA_PROOF | FIRE_PROOF /datum/crafting_recipe/oar @@ -391,4 +391,4 @@ if(!can_destroy && !force) return QDEL_HINT_LETMELIVE else - . = ..() \ No newline at end of file + . = ..() diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index a9151609f74..fba1c56fac0 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -79,7 +79,7 @@ force = 15.0 throwforce = 10.0 item_state = "pickaxe" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY materials = list(MAT_METAL=2000) //one sheet, but where can you make them? var/digspeed = 40 //moving the delay to an item var so R&D can make improved picks. --NEO origin_tech = "materials=1;engineering=1" @@ -152,7 +152,7 @@ icon_state = "smdrill" origin_tech = "materials=6;powerstorage=4;engineering=5;syndicate=3" desc = "Microscopic supermatter crystals cover the head of this tiny drill." - w_class = 2 + w_class = WEIGHT_CLASS_SMALL /obj/item/weapon/pickaxe/drill/cyborg/diamond //This is the BORG version! name = "diamond-tipped cyborg mining drill" //To inherit the NODROP flag, and easier to change borg specific drill mechanics. @@ -184,7 +184,7 @@ force = 8.0 throwforce = 4.0 item_state = "shovel" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL=50) origin_tech = "materials=1;engineering=1" attack_verb = list("bashed", "bludgeoned", "thrashed", "whacked") @@ -198,7 +198,7 @@ item_state = "spade" force = 5.0 throwforce = 7.0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL toolspeed = 2 @@ -219,7 +219,7 @@ desc = "It allows you to store and deploy lazarus-injected creatures easier." icon = 'icons/obj/mobcap.dmi' icon_state = "mobcap0" - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_range = 20 var/mob/living/simple_animal/captured = null var/colorindex = 0 @@ -282,7 +282,7 @@ desc = "An emergency shelter stored within a pocket of bluespace." icon_state = "capsule" icon = 'icons/obj/mining.dmi' - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "engineering=3;bluespace=3" var/template_id = "shelter_alpha" var/datum/map_template/shelter/template diff --git a/code/modules/mining/money_bag.dm b/code/modules/mining/money_bag.dm index 3fa8d1c1edf..30fca5f2f95 100644 --- a/code/modules/mining/money_bag.dm +++ b/code/modules/mining/money_bag.dm @@ -9,7 +9,7 @@ throwforce = 0 burn_state = FLAMMABLE burntime = 20 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY /obj/item/weapon/moneybag/attack_hand(user as mob) var/amt_gold = 0 @@ -119,4 +119,4 @@ new /obj/item/weapon/coin/silver(src) new /obj/item/weapon/coin/gold(src) new /obj/item/weapon/coin/gold(src) - new /obj/item/weapon/coin/adamantine(src) \ No newline at end of file + new /obj/item/weapon/coin/adamantine(src) diff --git a/code/modules/mining/ore.dm b/code/modules/mining/ore.dm index cc50f46b9e5..873b6c798d1 100644 --- a/code/modules/mining/ore.dm +++ b/code/modules/mining/ore.dm @@ -153,7 +153,7 @@ icon = 'icons/obj/mining.dmi' icon_state = "Gibtonite ore" item_state = "Gibtonite ore" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY throw_range = 0 anchored = 1 //Forces people to carry it by hand, no pulling! var/primed = 0 diff --git a/code/modules/mob/living/carbon/alien/humanoid/inventory.dm b/code/modules/mob/living/carbon/alien/humanoid/inventory.dm index 223b6a512ae..08017da0b76 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/inventory.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/inventory.dm @@ -22,7 +22,7 @@ if(slot_l_store) if(l_store) return - if(W.w_class > 3) + if(W.w_class > WEIGHT_CLASS_NORMAL) return unEquip(W) l_store = W @@ -30,7 +30,7 @@ if(slot_r_store) if(r_store) return - if(W.w_class > 3) + if(W.w_class > WEIGHT_CLASS_NORMAL) return unEquip(W) r_store = W @@ -44,4 +44,4 @@ if(slot_l_store) if(l_store) l_store.attack_alien(src) if(slot_r_store) - if(r_store) r_store.attack_alien(src) \ No newline at end of file + if(r_store) r_store.attack_alien(src) diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index 98d1bec775c..38ea99834b0 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -14,7 +14,7 @@ var/const/MAX_ACTIVE_TIME = 400 icon = 'icons/mob/alien.dmi' icon_state = "facehugger" item_state = "facehugger" - w_class = 1 //note: can be picked up by aliens unlike most other items of w_class below 4 + w_class = WEIGHT_CLASS_TINY //note: can be picked up by aliens unlike most other items of w_class below 4 throw_range = 5 tint = 3 flags = AIRTIGHT @@ -249,4 +249,4 @@ var/const/MAX_ACTIVE_TIME = 400 gender = FEMALE /obj/item/clothing/mask/facehugger/lamarr/New()//to prevent deleting it if aliums are disabled - return \ No newline at end of file + return diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm index 15c52d2693c..ec77d1be3bf 100644 --- a/code/modules/mob/living/carbon/brain/MMI.dm +++ b/code/modules/mob/living/carbon/brain/MMI.dm @@ -5,7 +5,7 @@ desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity." icon = 'icons/obj/assemblies.dmi' icon_state = "mmi_empty" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL origin_tech = "biotech=3" //Revised. Brainmob is now contained directly within object of transfer. MMI in this case. diff --git a/code/modules/mob/living/carbon/brain/brain_item.dm b/code/modules/mob/living/carbon/brain/brain_item.dm index 56a98142f80..5a62ead4952 100644 --- a/code/modules/mob/living/carbon/brain/brain_item.dm +++ b/code/modules/mob/living/carbon/brain/brain_item.dm @@ -4,7 +4,7 @@ max_damage = 200 icon_state = "brain2" force = 1.0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throwforce = 1.0 throw_speed = 3 throw_range = 5 diff --git a/code/modules/mob/living/carbon/brain/posibrain.dm b/code/modules/mob/living/carbon/brain/posibrain.dm index 565dd250fd8..8dd6e14e427 100644 --- a/code/modules/mob/living/carbon/brain/posibrain.dm +++ b/code/modules/mob/living/carbon/brain/posibrain.dm @@ -3,7 +3,7 @@ desc = "A cube of shining metal, four inches to a side and covered in shallow grooves." icon = 'icons/obj/assemblies.dmi' icon_state = "posibrain" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL origin_tech = "biotech=3;programming=2" var/searching = 0 @@ -37,7 +37,7 @@ silenced = !silenced to_chat(user, "You toggle the speaker [silenced ? "off" : "on"].") if(brainmob && brainmob.key) - to_chat(brainmob, "Your internal speaker has been toggled [silenced ? "off" : "on"].") + to_chat(brainmob, "Your internal speaker has been toggled [silenced ? "off" : "on"].") /obj/item/device/mmi/posibrain/proc/request_player() for(var/mob/dead/observer/O in player_list) diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index bb297513ef5..8e1c32f931a 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -546,7 +546,7 @@ return 0 if(I.slot_flags & SLOT_DENYPOCKET) return - if(I.w_class <= 2 || (I.slot_flags & SLOT_POCKET)) + if(I.w_class <= WEIGHT_CLASS_SMALL || (I.slot_flags & SLOT_POCKET)) return 1 if(slot_r_store) if(I.flags & NODROP) @@ -559,7 +559,7 @@ return 0 if(I.slot_flags & SLOT_DENYPOCKET) return 0 - if(I.w_class <= 2 || (I.slot_flags & SLOT_POCKET)) + if(I.w_class <= WEIGHT_CLASS_SMALL || (I.slot_flags & SLOT_POCKET)) return 1 return 0 if(slot_s_store) @@ -575,7 +575,7 @@ if(!disable_warning) to_chat(src, "You somehow have a suit with no defined allowed items for suit storage, stop that.") return 0 - if(I.w_class > 4) + if(I.w_class > WEIGHT_CLASS_BULKY) if(!disable_warning) to_chat(src, "The [name] is too big to attach.") return 0 diff --git a/code/modules/mob/living/silicon/robot/component.dm b/code/modules/mob/living/silicon/robot/component.dm index d399db99515..2c9ab233eda 100644 --- a/code/modules/mob/living/silicon/robot/component.dm +++ b/code/modules/mob/living/silicon/robot/component.dm @@ -171,7 +171,7 @@ flags = CONDUCT slot_flags = SLOT_BELT throwforce = 3 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 5 throw_range = 10 origin_tech = "magnets=1;biotech=1" diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index bbda7a05318..282f97c4dc4 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -327,7 +327,7 @@ ..() else if(istype(AM,/obj/item)) var/obj/item/O = AM - if(O.w_class > 2) + if(O.w_class > WEIGHT_CLASS_SMALL) to_chat(src, "You are too small to pull that.") return else diff --git a/code/modules/mob/living/simple_animal/bot/construction.dm b/code/modules/mob/living/simple_animal/bot/construction.dm index d524ffd8e06..a7d297d0bdc 100644 --- a/code/modules/mob/living/simple_animal/bot/construction.dm +++ b/code/modules/mob/living/simple_animal/bot/construction.dm @@ -10,7 +10,7 @@ throwforce = 5 throw_speed = 2 throw_range = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL var/created_name = "Cleanbot" /obj/item/weapon/bucket_sensor/attackby(obj/item/W, mob/user as mob, params) @@ -204,7 +204,7 @@ throwforce = 10 throw_speed = 2 throw_range = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL var/created_name = "Floorbot" /obj/item/weapon/toolbox_tiles_sensor @@ -216,7 +216,7 @@ throwforce = 10 throw_speed = 2 throw_range = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL var/created_name = "Floorbot" /obj/item/weapon/storage/toolbox/mechanical/attackby(obj/item/stack/tile/plasteel/T, mob/user, params) @@ -286,7 +286,7 @@ var/build_step = 0 var/created_name = "Medibot" //To preserve the name if it's a unique medbot I guess var/skin = null //Same as medbot, set to tox or ointment for the respective kits. - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL var/treatment_brute = "salglu_solution" var/treatment_oxy = "salbutamol" var/treatment_fire = "salglu_solution" @@ -478,4 +478,4 @@ overlays -= "hs_arm" new /obj/item/robot_parts/l_arm(get_turf(src)) to_chat(user, "You remove the robot arm from [src].") - build_step-- \ No newline at end of file + build_step-- diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm index 5b2419bf7e8..bc75bd554e5 100644 --- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm @@ -260,7 +260,7 @@ var/list/items = list() for(var/obj/item/I in view(1,src)) - if(I.loc != src && I.w_class <= 2) + if(I.loc != src && I.w_class <= WEIGHT_CLASS_SMALL) items.Add(I) var/obj/selection = input("Select an item.", "Pickup") in items diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm index 80227526cbc..3298e334bd2 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm @@ -222,7 +222,7 @@ icon = 'icons/obj/items.dmi' icon_state = "goliath_hide" flags = NOBLUDGEON - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL layer = 4 /obj/item/asteroid/goliath_hide/afterattack(atom/target, mob/user, proximity_flag) diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index 2c1fb61be2f..bd484903aa9 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -515,12 +515,12 @@ if(istype(AM, /obj/item)) var/obj/item/I = AM - if(I.w_class < 2) + if(I.w_class < WEIGHT_CLASS_SMALL) return I if(iscarbon(AM)) var/mob/living/carbon/C = AM - if((C.l_hand && C.l_hand.w_class <= 2) || (C.r_hand && C.r_hand.w_class <= 2)) + if((C.l_hand && C.l_hand.w_class <= WEIGHT_CLASS_SMALL) || (C.r_hand && C.r_hand.w_class <= WEIGHT_CLASS_SMALL)) return C return null @@ -544,12 +544,12 @@ if(istype(AM, /obj/item)) var/obj/item/I = AM - if(I.w_class <= 2) + if(I.w_class <= WEIGHT_CLASS_SMALL) return I if(iscarbon(AM)) var/mob/living/carbon/C = AM - if(C.l_hand && C.l_hand.w_class <= 2 || C.r_hand && C.r_hand.w_class <= 2) + if(C.l_hand && C.l_hand.w_class <= WEIGHT_CLASS_SMALL || C.r_hand && C.r_hand.w_class <= WEIGHT_CLASS_SMALL) return C return null @@ -571,7 +571,7 @@ for(var/obj/item/I in view(1,src)) //Make sure we're not already holding it and it's small enough - if(I.loc != src && I.w_class <= 2) + if(I.loc != src && I.w_class <= WEIGHT_CLASS_SMALL) //If we have a perch and the item is sitting on it, continue if(!client && parrot_perch && I.loc == parrot_perch.loc) @@ -600,10 +600,10 @@ var/obj/item/stolen_item = null for(var/mob/living/carbon/C in view(1,src)) - if(C.l_hand && C.l_hand.w_class <= 2) + if(C.l_hand && C.l_hand.w_class <= WEIGHT_CLASS_SMALL) stolen_item = C.l_hand - if(C.r_hand && C.r_hand.w_class <= 2) + if(C.r_hand && C.r_hand.w_class <= WEIGHT_CLASS_SMALL) stolen_item = C.r_hand if(stolen_item) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index a1b6c652913..99d7a7a1fa6 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -424,7 +424,7 @@ var/list/slot_equipment_priority = list( \ return 0 if(slot_flags & SLOT_DENYPOCKET) return - if( w_class <= 2 || (slot_flags & SLOT_POCKET) ) + if( w_class <= WEIGHT_CLASS_SMALL || (slot_flags & SLOT_POCKET) ) return 1 if(slot_r_store) if(H.r_store) @@ -435,7 +435,7 @@ var/list/slot_equipment_priority = list( \ return 0 if(slot_flags & SLOT_DENYPOCKET) return 0 - if( w_class <= 2 || (slot_flags & SLOT_POCKET) ) + if( w_class <= WEIGHT_CLASS_SMALL || (slot_flags & SLOT_POCKET) ) return 1 return 0 if(slot_s_store) @@ -447,7 +447,7 @@ var/list/slot_equipment_priority = list( \ if(!disable_warning) to_chat(usr, "You somehow have a suit with no defined allowed items for suit storage, stop that.") return 0 - if(src.w_class > 4) + if(src.w_class > WEIGHT_CLASS_BULKY) if(!disable_warning) to_chat(usr, "The [name] is too big to attach.") return 0 diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 624ec318f03..fffd02adf0a 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -26,7 +26,7 @@ plane = HUD_PLANE item_state = "nothing" icon = 'icons/mob/screen_gen.dmi' - w_class = 5 + w_class = WEIGHT_CLASS_BULKY /obj/item/weapon/grab/New(var/mob/user, var/mob/victim) diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm index a5c64adc7ea..da26fc96fec 100644 --- a/code/modules/paperwork/clipboard.dm +++ b/code/modules/paperwork/clipboard.dm @@ -4,7 +4,7 @@ icon_state = "clipboard" item_state = "clipboard" throwforce = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 10 var/obj/item/weapon/pen/haspen //The stored pen. diff --git a/code/modules/paperwork/folders.dm b/code/modules/paperwork/folders.dm index 00458df575c..214c284f206 100644 --- a/code/modules/paperwork/folders.dm +++ b/code/modules/paperwork/folders.dm @@ -3,7 +3,7 @@ desc = "A folder." icon = 'icons/obj/bureaucracy.dmi' icon_state = "folder" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL pressure_resistance = 2 burn_state = FLAMMABLE @@ -121,4 +121,3 @@ ..() new /obj/item/documents/syndicate/blue(src) update_icon() - diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 60a501f1ecf..250abe3d682 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -10,7 +10,7 @@ icon_state = "paper" item_state = "paper" throwforce = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_range = 1 throw_speed = 1 layer = 4 diff --git a/code/modules/paperwork/paper_bundle.dm b/code/modules/paperwork/paper_bundle.dm index da20ed65dde..2a7c7e113e1 100644 --- a/code/modules/paperwork/paper_bundle.dm +++ b/code/modules/paperwork/paper_bundle.dm @@ -5,7 +5,7 @@ icon_state = "paper" item_state = "paper" throwforce = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_range = 2 throw_speed = 1 layer = 4 @@ -241,4 +241,4 @@ if(photo) desc += "\nThere is a photo attached to it." overlays += image('icons/obj/bureaucracy.dmi', "clip") - return \ No newline at end of file + return diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm index 89ba611f33c..efcce443d6c 100644 --- a/code/modules/paperwork/paperbin.dm +++ b/code/modules/paperwork/paperbin.dm @@ -4,7 +4,7 @@ icon_state = "paper_bin1" item_state = "sheet-metal" throwforce = 1 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL throw_speed = 3 throw_range = 7 pressure_resistance = 8 diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 3b8a10ffbc0..89bd843467a 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -17,7 +17,7 @@ item_state = "pen" slot_flags = SLOT_BELT | SLOT_EARS throwforce = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 3 throw_range = 7 materials = list(MAT_METAL=10) @@ -167,7 +167,7 @@ force = 18 sharp = 1 edge = 1 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL name = "energy dagger" hitsound = 'sound/weapons/blade1.ogg' throwforce = 35 @@ -200,4 +200,4 @@ add_logs(user, P, "used poison pen on") to_chat(user, "You apply the poison to [P].") else - to_chat(user, "[src] clicks. It seems to be depleted.") \ No newline at end of file + to_chat(user, "[src] clicks. It seems to be depleted.") diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index a9e232560fc..dc86ce2299a 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -15,7 +15,7 @@ desc = "A camera film cartridge. Insert it into a camera to reload it." icon_state = "film" item_state = "electropack" - w_class = 1 + w_class = WEIGHT_CLASS_TINY burn_state = FLAMMABLE @@ -27,7 +27,7 @@ icon = 'icons/obj/items.dmi' icon_state = "photo" item_state = "paper" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL burn_state = FLAMMABLE burntime = 5 var/blueprints = 0 // Does this have the blueprints? @@ -146,7 +146,7 @@ desc = "A polaroid camera. 10 photos left." icon_state = "camera" item_state = "electropack" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL slot_flags = SLOT_BELT var/list/matter = list("metal" = 2000) var/pictures_max = 10 @@ -508,7 +508,7 @@ var/list/SpookyGhosts = list("ghost","shade","shade2","ghost-narsie","horror","s desc = "video camera that can send live feed to the entertainment network." icon_state = "videocam" item_state = "videocam" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL slot_flags = SLOT_BELT materials = list(MAT_METAL=2000) var/on = 0 diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm index 26e397039d8..2ca25bf185f 100644 --- a/code/modules/paperwork/stamps.dm +++ b/code/modules/paperwork/stamps.dm @@ -5,7 +5,7 @@ icon_state = "stamp-ok" item_state = "stamp" throwforce = 0 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 3 throw_range = 7 materials = list(MAT_METAL=60) @@ -105,4 +105,4 @@ if(chosen_stamp) name = chosen_stamp.name icon_state = chosen_stamp.icon_state - item_color = chosen_stamp.item_color \ No newline at end of file + item_color = chosen_stamp.item_color diff --git a/code/modules/pda/PDA.dm b/code/modules/pda/PDA.dm index d5208a01b8f..9da781b1ab1 100755 --- a/code/modules/pda/PDA.dm +++ b/code/modules/pda/PDA.dm @@ -10,7 +10,7 @@ var/global/list/obj/item/device/pda/PDAs = list() icon = 'icons/obj/pda.dmi' icon_state = "pda" item_state = "electronic" - w_class = 1 + w_class = WEIGHT_CLASS_TINY slot_flags = SLOT_ID | SLOT_BELT | SLOT_PDA //Main variables diff --git a/code/modules/pda/cart.dm b/code/modules/pda/cart.dm index 459ae09835a..b432effb8be 100644 --- a/code/modules/pda/cart.dm +++ b/code/modules/pda/cart.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/pda.dmi' icon_state = "cart" item_state = "electronic" - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/obj/item/radio/integrated/radio = null @@ -322,4 +322,4 @@ my_game.hacked = 1 to_chat(user, "TR4P_M45T3R.mod successfully initialized. ToS violated. User Agreement nullified. Gotta pwn them all.") to_chat(user, "You can now create trapped versions of any mob in your collection that will damage hunters who attempt to capture it.") - description_antag = "This copy of Nano-Mob Hunter GO! has been hacked to allow the creation of trap mobs which will cause any PDA that attempts to capture it to shock anyone holding it. Hacked copies of the game will not trigger the trap." \ No newline at end of file + description_antag = "This copy of Nano-Mob Hunter GO! has been hacked to allow the creation of trap mobs which will cause any PDA that attempts to capture it to shock anyone holding it. Hacked copies of the game will not trigger the trap." diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 03a84d161e5..0b2c6f8b165 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -122,7 +122,7 @@ desc = "Heavy-duty switching circuits for power control." icon = 'icons/obj/module.dmi' icon_state = "power_mod" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL item_state = "electronic" flags = CONDUCT usesound = 'sound/items/Deconstruct.ogg' @@ -621,7 +621,7 @@ if(((stat & BROKEN) || malfhack) \ && !opened \ && ( \ - (W.force >= 5 && W.w_class >= 3.0) \ + (W.force >= 5 && W.w_class >= WEIGHT_CLASS_NORMAL) \ || istype(W,/obj/item/weapon/crowbar) \ ) \ && prob(20) ) diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 33aa4931fcc..b70e847cab4 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -485,7 +485,7 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list( color = COLOR_RED desc = "A coil of power cable." throwforce = 10 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 2 throw_range = 5 materials = list(MAT_METAL=10, MAT_GLASS=5) @@ -568,9 +568,9 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list( /obj/item/stack/cable_coil/proc/update_wclass() if(amount == 1) - w_class = 1 + w_class = WEIGHT_CLASS_TINY else - w_class = 2 + w_class = WEIGHT_CLASS_SMALL /obj/item/stack/cable_coil/examine(mob/user) if(!..(user, 1)) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index a1e97bf58d2..3f42b4d58ce 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -592,7 +592,7 @@ icon = 'icons/obj/lighting.dmi' force = 2 throwforce = 5 - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/status = 0 // LIGHT_OK, LIGHT_BURNED or LIGHT_BROKEN var/base_state var/switchcount = 0 // number of times switched @@ -612,7 +612,7 @@ brightness_range = 8 /obj/item/weapon/light/tube/large - w_class = 2 + w_class = WEIGHT_CLASS_SMALL name = "large light tube" brightness_range = 15 brightness_power = 2 diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index dea4c4797e8..fa9b61c8059 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -204,7 +204,7 @@ icon = 'icons/obj/power.dmi' icon_state = "sp_base" item_state = "electropack" - w_class = 4 // Pretty big! + w_class = WEIGHT_CLASS_BULKY // Pretty big! anchored = 0 var/tracker = 0 var/glass_type = null diff --git a/code/modules/power/supermatter/sm_shard.dm b/code/modules/power/supermatter/sm_shard.dm index 2ffd5b040ec..d4c1109e16e 100644 --- a/code/modules/power/supermatter/sm_shard.dm +++ b/code/modules/power/supermatter/sm_shard.dm @@ -7,7 +7,7 @@ icon_state = "supermatter" sharp = 1 edge = 1 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL flags = CONDUCT light_color = "#8A8A00" var/brightness = 2 @@ -85,7 +85,7 @@ icon = 'icons/obj/weapons.dmi' icon_state = "tongs" edge = 1 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL flags = CONDUCT var/obj/item/held = null // The item currently being held diff --git a/code/modules/power/tracker.dm b/code/modules/power/tracker.dm index 7b4b7a0d02e..ffaffd5ea81 100644 --- a/code/modules/power/tracker.dm +++ b/code/modules/power/tracker.dm @@ -81,4 +81,4 @@ name = "tracker electronics" icon = 'icons/obj/doors/door_assembly.dmi' icon_state = "door_electronics" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index 924dcac3b4c..71400802ee2 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -6,7 +6,7 @@ flags = CONDUCT slot_flags = SLOT_BELT throwforce = 1 - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/fire_sound = null //What sound should play when this ammo is fired var/caliber = null //Which kind of guns it can be loaded into var/projectile_type = null //The bullet type to create when New() is called @@ -87,7 +87,7 @@ item_state = "syringe_kit" materials = list(MAT_METAL=30000) throwforce = 2 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throw_speed = 4 throw_range = 10 var/list/stored_ammo = list() @@ -192,4 +192,4 @@ var/turf_mag = get_turf(src) for(var/obj/item/ammo in stored_ammo) ammo.forceMove(turf_mag) - stored_ammo -= ammo \ No newline at end of file + stored_ammo -= ammo diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index bba922624f1..0304f4a48a9 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -7,7 +7,7 @@ flags = CONDUCT slot_flags = SLOT_BELT materials = list(MAT_METAL=2000) - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL throwforce = 5 throw_speed = 3 throw_range = 5 diff --git a/code/modules/projectiles/guns/alien.dm b/code/modules/projectiles/guns/alien.dm index de217a9715d..f541ca2a94a 100644 --- a/code/modules/projectiles/guns/alien.dm +++ b/code/modules/projectiles/guns/alien.dm @@ -3,7 +3,7 @@ desc = "A vicious alien projectile weapon. Parts of it quiver gelatinously, as though the thing is insectile and alive." icon_state = "spikethrower" item_state = "spikethrower" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL fire_sound_text = "a strange noise" mag_type = /obj/item/ammo_box/magazine/internal/spikethrower burst_size = 2 @@ -52,7 +52,7 @@ sharp = 1 edge = 0 throwforce = 5 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL caliber = "spike" icon_state = "bolt" fire_sound = 'sound/weapons/bladeslice.ogg' diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 40356f8a7d9..fc14b32a09c 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -3,7 +3,7 @@ desc = "A basic energy-based laser gun that fires concentrated beams of light which pass through glass and thin metal." icon_state = "laser" item_state = "laser" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL=2000) origin_tech = "combat=3;magnets=2" ammo_type = list(/obj/item/ammo_casing/energy/lasergun) @@ -66,7 +66,7 @@ desc = "An advanced laser cannon that does more damage the farther away the target is." icon_state = "lasercannon" item_state = "laser" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 10 flags = CONDUCT slot_flags = SLOT_BACK diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index 727ebdd7082..379a8af70d8 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -31,7 +31,7 @@ desc = "A small, pistol-sized energy gun with a built-in flashlight. It has two settings: stun and kill." icon_state = "mini" item_state = "gun" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL ammo_x_offset = 2 charge_sections = 3 can_flashlight = 0 // Can't attach or detach the flashlight, and override it's icon update @@ -71,7 +71,7 @@ icon_state = "turretlaser" item_state = "turretlaser" slot_flags = null - w_class = 5 + w_class = WEIGHT_CLASS_HUGE ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser) weapon_weight = WEAPON_MEDIUM can_flashlight = 0 diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index 456627398ce..7ded54f6690 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -3,7 +3,7 @@ desc = "A heavy-duty, multifaceted energy rifle with three modes. Preferred by front-line combat personnel." icon_state = "pulse" item_state = null - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 10 flags = CONDUCT slot_flags = SLOT_BACK @@ -25,7 +25,7 @@ /obj/item/weapon/gun/energy/pulse/carbine name = "pulse carbine" desc = "A compact variant of the pulse rifle with less firepower but easier storage." - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL slot_flags = SLOT_BELT icon_state = "pulse_carbine" item_state = "pulse" @@ -37,7 +37,7 @@ /obj/item/weapon/gun/energy/pulse/pistol name = "pulse pistol" desc = "A pulse rifle in an easily concealed handgun package with low capacity." - w_class = 2 + w_class = WEIGHT_CLASS_SMALL slot_flags = SLOT_BELT icon_state = "pulse_pistol" item_state = "gun" @@ -77,9 +77,9 @@ icon_state = "turretlaser" item_state = "turretlaser" slot_flags = null - w_class = 5 + w_class = WEIGHT_CLASS_HUGE ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser/pulse) weapon_weight = WEAPON_MEDIUM can_flashlight = 0 trigger_guard = TRIGGER_GUARD_NONE - ammo_x_offset = 2 \ No newline at end of file + ammo_x_offset = 2 diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 3595b9c7ea8..009d2c6c5e8 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -5,7 +5,7 @@ item_state = null //so the human update icon uses the icon_state instead. fire_sound = 'sound/weapons/IonRifle.ogg' origin_tech = "combat=2;magnets=4" - w_class = 5 + w_class = WEIGHT_CLASS_HUGE flags = CONDUCT slot_flags = SLOT_BACK ammo_type = list(/obj/item/ammo_casing/energy/ion) @@ -21,7 +21,7 @@ desc = "The MK.II Prototype Ion Projector is a lightweight carbine version of the larger ion rifle, built to be ergonomic and efficient." icon_state = "ioncarbine" origin_tech = "combat=4;magnets=4;materials=4" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL slot_flags = SLOT_BELT ammo_x_offset = 2 flight_x_offset = 18 @@ -60,7 +60,7 @@ icon = 'icons/obj/guns/projectile.dmi' icon_state = "riotgun" item_state = "c20r" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY ammo_type = list(/obj/item/ammo_casing/energy/meteor) cell_type = /obj/item/weapon/stock_parts/cell/potato clumsy_check = 0 //Admin spawn only, might as well let clowns use it. @@ -74,7 +74,7 @@ item_state = "pen" lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' righthand_file = 'icons/mob/inhands/items_righthand.dmi' - w_class = 1 + w_class = WEIGHT_CLASS_TINY /obj/item/weapon/gun/energy/mindflayer name = "\improper Mind Flayer" @@ -89,7 +89,7 @@ desc = "A weapon favored by syndicate stealth specialists." icon_state = "crossbow" item_state = "crossbow" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL materials = list(MAT_METAL=2000) origin_tech = "combat=2;magnets=2;syndicate=5" suppressed = 1 @@ -111,7 +111,7 @@ name = "energy crossbow" desc = "A reverse engineered weapon using syndicate technology." icon_state = "crossbowlarge" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL=4000) origin_tech = "combat=2;magnets=2;syndicate=3" //can be further researched for more syndie tech suppressed = 0 @@ -280,7 +280,7 @@ desc = "A specialized firearm designed to fire lethal bolts of toxins." icon_state = "toxgun" fire_sound = 'sound/effects/stealthoff.ogg' - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL origin_tech = "combat=4;plasmatech=3" ammo_type = list(/obj/item/ammo_casing/energy/toxplasma) shaded_charge = 1 @@ -292,7 +292,7 @@ origin_tech = "combat=6;materials=5;powerstorage=4" ammo_type = list(/obj/item/ammo_casing/energy/sniper) slot_flags = SLOT_BACK - w_class = 4 + w_class = WEIGHT_CLASS_BULKY zoomable = TRUE zoom_amt = 7 //Long range, enough to see in front of you, but no tiles behind you. shaded_charge = 1 @@ -303,7 +303,7 @@ icon_state = "tempgun_4" item_state = "tempgun_4" slot_flags = SLOT_BACK - w_class = 4 + w_class = WEIGHT_CLASS_BULKY fire_sound = 'sound/weapons/pulse3.ogg' desc = "A gun that changes the body temperature of its targets." var/temperature = 300 diff --git a/code/modules/projectiles/guns/grenade_launcher.dm b/code/modules/projectiles/guns/grenade_launcher.dm index 5abac9ebad9..ad49c99bfc4 100644 --- a/code/modules/projectiles/guns/grenade_launcher.dm +++ b/code/modules/projectiles/guns/grenade_launcher.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/guns/projectile.dmi' icon_state = "riotgun" item_state = "riotgun" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY throw_speed = 2 throw_range = 10 force = 5 diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm index 860d52d2550..f26583bbe0d 100644 --- a/code/modules/projectiles/guns/magic.dm +++ b/code/modules/projectiles/guns/magic.dm @@ -7,7 +7,7 @@ fire_sound = 'sound/weapons/emitter.ogg' fire_sound_text = "energy blast" flags = CONDUCT - w_class = 5 + w_class = WEIGHT_CLASS_HUGE var/max_charges = 6 var/charges = 0 var/recharge_rate = 4 diff --git a/code/modules/projectiles/guns/magic/wand.dm b/code/modules/projectiles/guns/magic/wand.dm index 20461c08acf..ac804ab9192 100644 --- a/code/modules/projectiles/guns/magic/wand.dm +++ b/code/modules/projectiles/guns/magic/wand.dm @@ -4,7 +4,7 @@ ammo_type = /obj/item/ammo_casing/magic icon_state = "nothingwand" item_state = "wand" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL can_charge = 0 max_charges = 100 //100, 50, 50, 34 (max charge distribution by 25%ths) var/variable_charges = 1 diff --git a/code/modules/projectiles/guns/medbeam.dm b/code/modules/projectiles/guns/medbeam.dm index a556d4572a2..59a24533e80 100644 --- a/code/modules/projectiles/guns/medbeam.dm +++ b/code/modules/projectiles/guns/medbeam.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/chronos.dmi' icon_state = "chronogun" item_state = "chronogun" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL var/mob/living/current_target var/last_check = 0 diff --git a/code/modules/projectiles/guns/mounted.dm b/code/modules/projectiles/guns/mounted.dm index ae9c8f06d09..8fec6cd8b8e 100644 --- a/code/modules/projectiles/guns/mounted.dm +++ b/code/modules/projectiles/guns/mounted.dm @@ -4,7 +4,7 @@ icon_state = "armcannon" force = 5 flags = NODROP - w_class = 5 + w_class = WEIGHT_CLASS_HUGE can_flashlight = 0 selfcharge = 1 trigger_guard = TRIGGER_GUARD_ALLOW_ALL // Has no trigger at all, uses neural signals instead @@ -20,7 +20,7 @@ item_state = "armcannonlase" force = 5 flags = NODROP - w_class = 5 + w_class = WEIGHT_CLASS_HUGE materials = null selfcharge = 1 trigger_guard = TRIGGER_GUARD_ALLOW_ALL diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index 961a7b91e05..7575e9b92f8 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -3,7 +3,7 @@ name = "projectile gun" icon_state = "pistol" origin_tech = "combat=2;materials=2" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL=1000) var/mag_type = /obj/item/ammo_box/magazine/m10mm //Removes the need for max_ammo and caliber info @@ -77,7 +77,7 @@ S.oldsound = fire_sound S.initial_w_class = w_class fire_sound = 'sound/weapons/Gunshot_silenced.ogg' - w_class = 3 //so pistols do not fit in pockets when suppressed + w_class = WEIGHT_CLASS_NORMAL //so pistols do not fit in pockets when suppressed A.loc = src update_icon() return @@ -169,7 +169,7 @@ user.visible_message("[user] shortens \the [src]!", "You shorten \the [src].") name = "sawn-off [name]" desc = sawn_desc - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL item_state = "gun"//phil235 is it different with different skin? slot_flags &= ~SLOT_BACK //you can't sling it on your back slot_flags |= SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) @@ -191,7 +191,7 @@ icon = 'icons/obj/guns/projectile.dmi' icon_state = "suppressor" item_state = "suppressor" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL var/oldsound = null var/initial_w_class = null diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index 0b174c635b0..1b666a88953 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -1,5 +1,5 @@ /obj/item/weapon/gun/projectile/automatic - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL var/alarmed = 0 var/select = 1 can_suppress = 1 @@ -194,7 +194,7 @@ desc = "A genuine 'Chicago Typewriter'." icon_state = "tommygun" item_state = "shotgun" - w_class = 5 + w_class = WEIGHT_CLASS_HUGE slot_flags = 0 origin_tech = "combat=5;materials=1;syndicate=2" mag_type = /obj/item/ammo_box/magazine/tommygunm45 @@ -222,7 +222,7 @@ desc = "A compact, mag-fed semi-automatic shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines." icon_state = "bulldog" item_state = "bulldog" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL origin_tech = "combat=5;materials=4;syndicate=6" mag_type = /obj/item/ammo_box/magazine/m12g fire_sound = 'sound/weapons/Gunshot4.ogg' @@ -255,7 +255,7 @@ desc = "An experimental carbine. Uses encased laser projectors as ammunition."//we need to uncouple the toroidal resistance dejammers icon_state = "lasercarbine" item_state = "laser" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL origin_tech = "combat=5;materials=5" mag_type = /obj/item/ammo_box/magazine/laser fire_sound = 'sound/weapons/emitter2.ogg' diff --git a/code/modules/projectiles/guns/projectile/launchers.dm b/code/modules/projectiles/guns/projectile/launchers.dm index 462341fdc36..e8dd43d1501 100644 --- a/code/modules/projectiles/guns/projectile/launchers.dm +++ b/code/modules/projectiles/guns/projectile/launchers.dm @@ -8,7 +8,7 @@ item_state = "gun" mag_type = /obj/item/ammo_box/magazine/internal/grenadelauncher fire_sound = 'sound/weapons/grenadelaunch.ogg' - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/gun/projectile/revolver/grenadelauncher/attackby(var/obj/item/A, mob/user, params) ..() @@ -57,7 +57,7 @@ desc = "A weapon favored by carp hunters. Fires specialized spears using kinetic energy." icon_state = "speargun" item_state = "speargun" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 10 can_suppress = 0 mag_type = /obj/item/ammo_box/magazine/internal/speargun diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm index 5de627d7933..4db9d3175d7 100644 --- a/code/modules/projectiles/guns/projectile/pistol.dm +++ b/code/modules/projectiles/guns/projectile/pistol.dm @@ -2,7 +2,7 @@ name = "stechkin pistol" desc = "A small, easily concealable 10mm handgun. Has a threaded barrel for suppressors." icon_state = "pistol" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL origin_tech = "combat=2;materials=2;syndicate=2" mag_type = /obj/item/ammo_box/magazine/m10mm can_suppress = 1 @@ -22,7 +22,7 @@ name = "\improper M1911" desc = "A classic .45 handgun with a small magazine capacity." icon_state = "m1911" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL mag_type = /obj/item/ammo_box/magazine/m45 can_suppress = 0 @@ -66,7 +66,7 @@ name = "stechkin APS pistol" desc = "The original russian version of a widely used Syndicate sidearm. Uses 9mm ammo." icon_state = "aps" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL origin_tech = "combat=3;materials=2;syndicate=3" mag_type = /obj/item/ammo_box/magazine/pistolm9mm can_suppress = 0 diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index 80192a3091d..2efc6cda7e0 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -270,7 +270,7 @@ desc = "A true classic." icon_state = "dshotgun" item_state = "shotgun" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 10 flags = CONDUCT slot_flags = SLOT_BACK @@ -325,7 +325,7 @@ desc = "Essentially a tube that aims shotgun shells." icon_state = "ishotgun" item_state = "shotgun" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 10 slot_flags = null origin_tech = "combat=2;materials=2" @@ -373,7 +373,7 @@ icon_state = "cane" item_state = "stick" sawn_state = SAWN_OFF - w_class = 2 + w_class = WEIGHT_CLASS_SMALL force = 10 can_unsuppress = 0 slot_flags = null diff --git a/code/modules/projectiles/guns/projectile/saw.dm b/code/modules/projectiles/guns/projectile/saw.dm index cfe8ffbb0a5..3c80b241613 100644 --- a/code/modules/projectiles/guns/projectile/saw.dm +++ b/code/modules/projectiles/guns/projectile/saw.dm @@ -3,7 +3,7 @@ desc = "A heavily modified 5.56 light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the receiver below the designation." icon_state = "l6closed100" item_state = "l6closedmag" - w_class = 5 + w_class = WEIGHT_CLASS_HUGE slot_flags = 0 origin_tech = "combat=5;materials=1;syndicate=2" mag_type = /obj/item/ammo_box/magazine/mm556x45 diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index 35cde243c20..970f874c334 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -3,7 +3,7 @@ desc = "A traditional shotgun with wood furniture and a four-shell capacity underneath." icon_state = "shotgun" item_state = "shotgun" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY force = 10 flags = CONDUCT slot_flags = SLOT_BACK @@ -173,7 +173,7 @@ icon_state = "cshotgun" origin_tech = "combat=5;materials=2" mag_type = /obj/item/ammo_box/magazine/internal/shot/com - w_class = 5 + w_class = WEIGHT_CLASS_HUGE //Dual Feed Shotgun @@ -183,7 +183,7 @@ icon_state = "cycler" origin_tech = "combat=4;materials=2" mag_type = /obj/item/ammo_box/magazine/internal/shot/tube - w_class = 5 + w_class = WEIGHT_CLASS_HUGE var/toggled = 0 var/obj/item/ammo_box/magazine/internal/shot/alternate_magazine diff --git a/code/modules/projectiles/guns/projectile/sniper.dm b/code/modules/projectiles/guns/projectile/sniper.dm index bf26dad78b3..5d4078e666d 100644 --- a/code/modules/projectiles/guns/projectile/sniper.dm +++ b/code/modules/projectiles/guns/projectile/sniper.dm @@ -11,7 +11,7 @@ origin_tech = "combat=8" can_unsuppress = 1 can_suppress = 1 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL zoomable = TRUE zoom_amt = 7 //Long range, enough to see in front of you, but no tiles behind you. slot_flags = SLOT_BACK diff --git a/code/modules/projectiles/guns/projectile/toy.dm b/code/modules/projectiles/guns/projectile/toy.dm index 809647e4186..8a191f06b97 100644 --- a/code/modules/projectiles/guns/projectile/toy.dm +++ b/code/modules/projectiles/guns/projectile/toy.dm @@ -20,7 +20,7 @@ name = "foam force pistol" desc = "A small, easily concealable toy handgun. Ages 8 and up." icon_state = "pistol" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL mag_type = /obj/item/ammo_box/magazine/toy/pistol fire_sound = 'sound/weapons/Gunshot.ogg' can_suppress = 0 @@ -65,7 +65,7 @@ mag_type = /obj/item/ammo_box/magazine/internal/shot/toy/crossbow fire_sound = 'sound/items/syringeproj.ogg' slot_flags = SLOT_BELT - w_class = 2 + w_class = WEIGHT_CLASS_SMALL /obj/item/weapon/gun/projectile/automatic/c20r/toy name = "donksoft SMG" @@ -96,4 +96,4 @@ icon_state = "tommygun" item_state = "shotgun" mag_type = /obj/item/ammo_box/magazine/internal/shot/toy/tommygun - w_class = 2 + w_class = WEIGHT_CLASS_SMALL diff --git a/code/modules/projectiles/guns/rocket.dm b/code/modules/projectiles/guns/rocket.dm index f9a8d00bdb1..0bb44409acd 100644 --- a/code/modules/projectiles/guns/rocket.dm +++ b/code/modules/projectiles/guns/rocket.dm @@ -4,7 +4,7 @@ desc = "Say hello to my little friend" icon_state = "rocket" item_state = "rocket" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY throw_speed = 2 throw_range = 10 force = 5.0 diff --git a/code/modules/projectiles/guns/syringe_gun.dm b/code/modules/projectiles/guns/syringe_gun.dm index 332d279376b..e9d79fe42c4 100644 --- a/code/modules/projectiles/guns/syringe_gun.dm +++ b/code/modules/projectiles/guns/syringe_gun.dm @@ -3,7 +3,7 @@ desc = "A spring loaded rifle designed to fit syringes, used to incapacitate unruly patients from a distance." icon_state = "syringegun" item_state = "syringegun" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL throw_speed = 3 throw_range = 7 force = 4 @@ -88,7 +88,7 @@ desc = "A small spring-loaded sidearm that functions identically to a syringe gun." icon_state = "syringe_pistol" item_state = "gun" //Smaller inhand - w_class = 2 + w_class = WEIGHT_CLASS_SMALL origin_tech = "combat=2;syndicate=2" force = 2 //Also very weak because it's smaller suppressed = 1 //Softer fire sound diff --git a/code/modules/projectiles/guns/throw/crossbow.dm b/code/modules/projectiles/guns/throw/crossbow.dm index 11d39bf2a38..77d3e89eade 100644 --- a/code/modules/projectiles/guns/throw/crossbow.dm +++ b/code/modules/projectiles/guns/throw/crossbow.dm @@ -153,7 +153,7 @@ icon_state = "bolt" item_state = "bolt" throwforce = 20 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL sharp = 1 edge = 0 diff --git a/code/modules/projectiles/guns/throw/pielauncher.dm b/code/modules/projectiles/guns/throw/pielauncher.dm index f6405f47194..3af48788134 100644 --- a/code/modules/projectiles/guns/throw/pielauncher.dm +++ b/code/modules/projectiles/guns/throw/pielauncher.dm @@ -2,7 +2,7 @@ name = "pie cannon" desc = "A projectile weapon that fires pies." icon_state = "piecannon" - w_class = 5 + w_class = WEIGHT_CLASS_HUGE throw_speed = 2 throw_range = 3 force = 5 diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index c441ab97805..009828543ce 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -3,7 +3,7 @@ desc = "..." icon = 'icons/obj/chemical.dmi' icon_state = null - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/amount_per_transfer_from_this = 5 var/possible_transfer_amounts = list(5,10,15,25,30) var/volume = 30 diff --git a/code/modules/reagents/reagent_containers/glass_containers.dm b/code/modules/reagents/reagent_containers/glass_containers.dm index b170f6b0867..5d22a21aa4a 100644 --- a/code/modules/reagents/reagent_containers/glass_containers.dm +++ b/code/modules/reagents/reagent_containers/glass_containers.dm @@ -330,7 +330,7 @@ icon_state = "bucket" item_state = "bucket" materials = list(MAT_METAL=200) - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL amount_per_transfer_from_this = 20 possible_transfer_amounts = list(5,10,15,20,25,30,50,80,100,120) volume = 120 @@ -353,4 +353,4 @@ user.unEquip(src) qdel(src) else - ..() \ No newline at end of file + ..() diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index cc4bf75ea45..8674ba75a09 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -7,7 +7,7 @@ flags = OPENCONTAINER | NOBLUDGEON slot_flags = SLOT_BELT throwforce = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 7 var/spray_maxrange = 3 //what the sprayer will set spray_currentrange to in the attack_self. @@ -145,7 +145,7 @@ icon_state = "chemsprayer" item_state = "chemsprayer" throwforce = 0 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL spray_maxrange = 7 spray_currentrange = 7 amount_per_transfer_from_this = 10 @@ -204,4 +204,4 @@ icon_state = "plantbgone" item_state = "plantbgone" volume = 100 - list_reagents = list("glyphosate" = 100) \ No newline at end of file + list_reagents = list("glyphosate" = 100) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 0f2b766bb3c..ebb13f0830c 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -14,7 +14,7 @@ amount_per_transfer_from_this = 5 possible_transfer_amounts = null //list(5,10,15) volume = 15 - w_class = 1 + w_class = WEIGHT_CLASS_TINY sharp = 1 var/mode = SYRINGE_DRAW var/projectile_type = /obj/item/projectile/bullet/dart/syringe @@ -398,4 +398,4 @@ /obj/item/weapon/reagent_containers/syringe/bioterror name = "bioterror syringe" desc = "Contains several paralyzing reagents." - list_reagents = list("neurotoxin" = 5, "capulettium_plus" = 5, "sodium_thiopental" = 5) \ No newline at end of file + list_reagents = list("neurotoxin" = 5, "capulettium_plus" = 5, "sodium_thiopental" = 5) diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 209edb809b2..8896d939e2f 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -334,7 +334,7 @@ icon_state = "conveyor0" name = "conveyor belt assembly" desc = "A conveyor belt assembly." - w_class = 4 + w_class = WEIGHT_CLASS_BULKY var/id = "" //inherited by the belt /obj/item/conveyor_construct/attackby(obj/item/I, mob/user, params) @@ -361,7 +361,7 @@ desc = "A conveyor control switch assembly." icon = 'icons/obj/recycling.dmi' icon_state = "switch-off" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY var/id = "" //inherited by the switch /obj/item/conveyor_switch_construct/New() diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index a8d3902e6f3..52db1f8d30c 100755 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -216,7 +216,7 @@ //The whole system for the sorttype var is determined based on the order of this list, //disposals must always be 1, since anything that's untagged will automatically go to disposals, or sorttype = 1 --Superxpdude - w_class = 1 + w_class = WEIGHT_CLASS_TINY item_state = "electronic" flags = CONDUCT slot_flags = SLOT_BELT @@ -430,4 +430,4 @@ /obj/item/shippingPackage/Destroy() QDEL_NULL(wrapped) - return ..() \ No newline at end of file + return ..() diff --git a/code/modules/research/xenoarchaeology/chemistry.dm b/code/modules/research/xenoarchaeology/chemistry.dm index b198bd02459..7094f2d00f4 100644 --- a/code/modules/research/xenoarchaeology/chemistry.dm +++ b/code/modules/research/xenoarchaeology/chemistry.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/device.dmi' icon_state = "solution_tray" materials = list(MAT_GLASS=5) - w_class = 1 + w_class = WEIGHT_CLASS_TINY amount_per_transfer_from_this = 1 possible_transfer_amounts = list(1, 2) volume = 2 @@ -51,4 +51,4 @@ obj/item/weapon/reagent_containers/glass/solution_tray/attackby(obj/item/weapon/ /obj/item/weapon/reagent_containers/glass/beaker/fuel name = "beaker 'fuel'" - list_reagents = list("fuel" = 50) \ No newline at end of file + list_reagents = list("fuel" = 50) diff --git a/code/modules/research/xenoarchaeology/geosample.dm b/code/modules/research/xenoarchaeology/geosample.dm index e4aaa4a554b..6d32b4e0ca9 100644 --- a/code/modules/research/xenoarchaeology/geosample.dm +++ b/code/modules/research/xenoarchaeology/geosample.dm @@ -19,7 +19,7 @@ desc = "It looks extremely delicate." icon = 'icons/obj/xenoarchaeology.dmi' icon_state = "sliver1" //0-4 - w_class = 1 + w_class = WEIGHT_CLASS_TINY sharp = 1 //item_state = "electronic" var/source_rock = "/turf/simulated/mineral/" diff --git a/code/modules/research/xenoarchaeology/tools/tools.dm b/code/modules/research/xenoarchaeology/tools/tools.dm index 6ac7aee6a2b..b17569da383 100644 --- a/code/modules/research/xenoarchaeology/tools/tools.dm +++ b/code/modules/research/xenoarchaeology/tools/tools.dm @@ -7,7 +7,7 @@ desc = "A coiled metallic tape used to check dimensions and lengths." icon = 'icons/obj/xenoarchaeology.dmi' icon_state = "measuring" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL //todo: dig site tape @@ -17,8 +17,8 @@ icon = 'icons/obj/mining.dmi' icon_state = "satchel" slot_flags = SLOT_BELT | SLOT_POCKET - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL storage_slots = 50 max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class - max_w_class = 3 + max_w_class = WEIGHT_CLASS_NORMAL can_hold = list(/obj/item/weapon/fossil) diff --git a/code/modules/research/xenoarchaeology/tools/tools_anoscanner.dm b/code/modules/research/xenoarchaeology/tools/tools_anoscanner.dm index d020845784c..4edf8f69d9a 100644 --- a/code/modules/research/xenoarchaeology/tools/tools_anoscanner.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_anoscanner.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/xenoarchaeology.dmi' icon_state = "flashgun" item_state = "lampgreen" - w_class = 1 + w_class = WEIGHT_CLASS_TINY slot_flags = SLOT_BELT var/nearest_artifact_id = "unknown" var/nearest_artifact_distance = -1 diff --git a/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm b/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm index 72f85146df1..8c4ec23004c 100644 --- a/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_coresampler.dm @@ -19,7 +19,7 @@ icon = 'icons/obj/device.dmi' icon_state = "sampler0" item_state = "screwdriver_brown" - w_class = 1 + w_class = WEIGHT_CLASS_TINY //slot_flags = SLOT_BELT var/sampled_turf = "" var/num_stored_bags = 10 @@ -73,7 +73,7 @@ filled_bag.icon_state = "evidence" var/image/I = image("icon"=R, "layer"=FLOAT_LAYER) filled_bag.underlays += I - filled_bag.w_class = 1 + filled_bag.w_class = WEIGHT_CLASS_TINY to_chat(user, "You take a core sample of the [item_to_sample].") else diff --git a/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm b/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm index 83429d509bc..ad195a0a141 100644 --- a/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_depthscanner.dm @@ -9,7 +9,7 @@ icon = 'icons/obj/pda.dmi' icon_state = "crap" item_state = "analyzer" - w_class = 1 + w_class = WEIGHT_CLASS_TINY slot_flags = SLOT_BELT var/list/positive_locations = list() var/datum/depth_scan/current diff --git a/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm b/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm index 4e6e48b49b5..ec00023ab29 100644 --- a/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm +++ b/code/modules/research/xenoarchaeology/tools/tools_pickaxe.dm @@ -12,7 +12,7 @@ excavation_amount = 0.5 digsound = list('sound/weapons/thudswoosh.ogg') drill_verb = "brushing" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL /obj/item/weapon/pickaxe/one_pick name = "1/6 pick" @@ -24,7 +24,7 @@ excavation_amount = 1 digsound = list('sound/items/Screwdriver.ogg') drill_verb = "delicately picking" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL /obj/item/weapon/pickaxe/two_pick name = "1/3 pick" @@ -36,7 +36,7 @@ excavation_amount = 2 digsound = list('sound/items/Screwdriver.ogg') drill_verb = "delicately picking" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL /obj/item/weapon/pickaxe/three_pick name = "1/2 pick" @@ -48,7 +48,7 @@ excavation_amount = 3 digsound = list('sound/items/Screwdriver.ogg') drill_verb = "delicately picking" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL /obj/item/weapon/pickaxe/four_pick name = "2/3 pick" @@ -60,7 +60,7 @@ excavation_amount = 4 digsound = list('sound/items/Screwdriver.ogg') drill_verb = "delicately picking" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL /obj/item/weapon/pickaxe/five_pick name = "5/6 pick" @@ -72,7 +72,7 @@ excavation_amount = 5 digsound = list('sound/items/Screwdriver.ogg') drill_verb = "delicately picking" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL /obj/item/weapon/pickaxe/six_pick name = "1/1 pick" @@ -84,7 +84,7 @@ excavation_amount = 6 digsound = list('sound/items/Screwdriver.ogg') drill_verb = "delicately picking" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL /obj/item/weapon/pickaxe/hand name = "hand pickaxe" @@ -96,7 +96,7 @@ excavation_amount = 15 digsound = list('sound/items/Crowbar.ogg') drill_verb = "clearing" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL /obj/item/weapon/pickaxe/robotic name = "robotic pickaxe" @@ -125,7 +125,7 @@ item_state = "syringe_kit" foldable = /obj/item/stack/sheet/cardboard //BubbleWrap storage_slots = 7 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL can_hold = list(/obj/item/weapon/pickaxe/brush,\ /obj/item/weapon/pickaxe/one_pick,\ /obj/item/weapon/pickaxe/two_pick,\ @@ -134,7 +134,7 @@ /obj/item/weapon/pickaxe/five_pick,\ /obj/item/weapon/pickaxe/six_pick) max_combined_w_class = 17 - max_w_class = 4 + max_w_class = WEIGHT_CLASS_BULKY use_to_pickup = 1 // for picking up broken bulbs, not that most people will try /obj/item/weapon/storage/box/excavation/New() diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index c42b6e8286c..6846548ee6d 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -7,7 +7,7 @@ icon = 'icons/mob/slimes.dmi' icon_state = "grey slime extract" force = 1 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throwforce = 0 throw_speed = 3 throw_range = 6 @@ -121,7 +121,7 @@ /obj/item/slimepotion name = "slime potion" desc = "A hard yet gelatinous capsule excreted by a slime, containing mysterious substances." - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "biotech=4" /obj/item/slimepotion/afterattack(obj/item/weapon/reagent_containers/target, mob/user, proximity_flag) @@ -552,7 +552,7 @@ singular_name = "floor tile" desc = "Through a series of micro-teleports, these tiles let people move at incredible speeds." icon_state = "tile-bluespace" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL force = 6 materials = list(MAT_METAL=500) throwforce = 10 @@ -575,7 +575,7 @@ singular_name = "floor tile" desc = "Time seems to flow very slowly around these tiles." icon_state = "tile-sepia" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL force = 6 materials = list(MAT_METAL=500) throwforce = 10 diff --git a/code/modules/spacepods/equipment.dm b/code/modules/spacepods/equipment.dm index 65b3b9232b8..d1f78ffdf28 100644 --- a/code/modules/spacepods/equipment.dm +++ b/code/modules/spacepods/equipment.dm @@ -269,7 +269,7 @@ desc = "A key for a spacepod lock." icon = 'icons/vehicles/spacepod.dmi' icon_state = "podkey" - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/id = 0 // Key - Lock Interactions diff --git a/code/modules/surgery/organs/augments_eyes.dm b/code/modules/surgery/organs/augments_eyes.dm index 1c66bd2c31b..873f1332216 100644 --- a/code/modules/surgery/organs/augments_eyes.dm +++ b/code/modules/surgery/organs/augments_eyes.dm @@ -5,7 +5,7 @@ implant_overlay = "eye_implant_overlay" slot = "eye_sight" parent_organ = "eyes" - w_class = 1 + w_class = WEIGHT_CLASS_TINY var/vision_flags = 0 var/dark_view = 0 diff --git a/code/modules/surgery/organs/autoimplanter.dm b/code/modules/surgery/organs/autoimplanter.dm index 4af88abc52f..6f72deca2e1 100644 --- a/code/modules/surgery/organs/autoimplanter.dm +++ b/code/modules/surgery/organs/autoimplanter.dm @@ -3,7 +3,7 @@ desc = "A device that automatically injects a cyber-implant into the user without the hassle of extensive surgery. It has a slot to insert implants and a screwdriver slot for removing accidentally added implants." icon_state = "autoimplanter" item_state = "walkietalkie"//left as this so as to intentionally not have inhands - w_class = 2 + w_class = WEIGHT_CLASS_SMALL usesound = 'sound/weapons/circsawhit.ogg' var/obj/item/organ/internal/cyberimp/storedorgan diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 7bea9c480af..eb503b77f16 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -3,7 +3,7 @@ /obj/item/organ/internal origin_tech = "biotech=2" force = 1 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throwforce = 0 var/zone = "chest" var/slot @@ -500,7 +500,7 @@ desc = "A tiny black mass with red tendrils trailing from it. It seems to shrivel in the light." icon_state = "blacktumor" origin_tech = "biotech=4" - w_class = 1 + w_class = WEIGHT_CLASS_TINY parent_organ = "head" slot = "brain_tumor" health = 3 @@ -532,7 +532,7 @@ desc = "A tiny yellow mass shaped like..a banana?" icon_state = "honktumor" origin_tech = "biotech=1" - w_class = 1 + w_class = WEIGHT_CLASS_TINY parent_organ = "head" slot = "brain_tumor" health = 3 @@ -619,7 +619,7 @@ desc = "Let they who is worthy wear the beard of Thorbjorndottir." icon_state = "liver" origin_tech = "biotech=1" - w_class = 1 + w_class = WEIGHT_CLASS_TINY parent_organ = "head" slot = "hair_organ" diff --git a/code/modules/surgery/organs/subtypes/skrell.dm b/code/modules/surgery/organs/subtypes/skrell.dm index b8debe746e7..842088f2937 100644 --- a/code/modules/surgery/organs/subtypes/skrell.dm +++ b/code/modules/surgery/organs/subtypes/skrell.dm @@ -21,7 +21,7 @@ // Allow adjacency calculation to work properly loc = owner // Fit only pocket sized items - pocket.max_w_class = 2 + pocket.max_w_class = WEIGHT_CLASS_SMALL pocket.max_combined_w_class = 2 /obj/item/organ/internal/headpocket/on_life() diff --git a/code/modules/surgery/organs/subtypes/standard.dm b/code/modules/surgery/organs/subtypes/standard.dm index 62ae8c78d66..a6467584963 100644 --- a/code/modules/surgery/organs/subtypes/standard.dm +++ b/code/modules/surgery/organs/subtypes/standard.dm @@ -8,7 +8,7 @@ icon_name = "torso" max_damage = 100 min_broken_damage = 35 - w_class = 5 + w_class = WEIGHT_CLASS_HUGE body_part = UPPER_TORSO vital = 1 amputation_point = "spine" @@ -42,7 +42,7 @@ icon_name = "groin" max_damage = 100 min_broken_damage = 35 - w_class = 4 + w_class = WEIGHT_CLASS_BULKY // if you know what I mean ;) body_part = LOWER_TORSO vital = 1 parent_organ = "chest" @@ -55,7 +55,7 @@ icon_name = "l_arm" max_damage = 50 min_broken_damage = 30 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL body_part = ARM_LEFT parent_organ = "chest" amputation_point = "left shoulder" @@ -74,7 +74,7 @@ icon_name = "l_leg" max_damage = 50 min_broken_damage = 30 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL body_part = LEG_LEFT icon_position = LEFT parent_organ = "groin" @@ -95,7 +95,7 @@ icon_name = "l_foot" max_damage = 30 min_broken_damage = 15 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL body_part = FOOT_LEFT icon_position = LEFT parent_organ = "l_leg" @@ -121,7 +121,7 @@ icon_name = "l_hand" max_damage = 30 min_broken_damage = 15 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL body_part = HAND_LEFT parent_organ = "l_arm" amputation_point = "left wrist" @@ -152,7 +152,7 @@ name = "head" max_damage = 75 min_broken_damage = 35 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL body_part = HEAD vital = 1 parent_organ = "chest" diff --git a/code/modules/surgery/organs/subtypes/xenos.dm b/code/modules/surgery/organs/subtypes/xenos.dm index 5e771931165..19e9335a61b 100644 --- a/code/modules/surgery/organs/subtypes/xenos.dm +++ b/code/modules/surgery/organs/subtypes/xenos.dm @@ -37,7 +37,7 @@ name = "xeno plasma vessel" icon_state = "plasma" origin_tech = "biotech=5;plasmatech=2" - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL parent_organ = "chest" slot = "plasmavessel" alien_powers = list(/mob/living/carbon/alien/humanoid/verb/plant, /mob/living/carbon/alien/humanoid/verb/transfer_plasma) @@ -127,7 +127,7 @@ parent_organ = "head" slot = "hivenode" origin_tech = "biotech=5;magnets=4;bluespace=3" - w_class = 1 + w_class = WEIGHT_CLASS_TINY alien_powers = list(/mob/living/carbon/alien/humanoid/verb/whisp) /obj/item/organ/internal/xenos/hivenode/insert(mob/living/carbon/M, special = 0) @@ -163,6 +163,6 @@ icon_state = "eggsac" parent_organ = "groin" slot = "eggsac" - w_class = 4 + w_class = WEIGHT_CLASS_BULKY origin_tech = "biotech=8" alien_powers = list(/mob/living/carbon/alien/humanoid/queen/verb/lay_egg) diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index b0014a391a3..06b9def9c00 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -5,7 +5,7 @@ icon_state = "retractor" materials = list(MAT_METAL=6000, MAT_GLASS=3000) flags = CONDUCT - w_class = 2 + w_class = WEIGHT_CLASS_SMALL origin_tech = "materials=1;biotech=1" @@ -16,7 +16,7 @@ icon_state = "hemostat" materials = list(MAT_METAL=5000, MAT_GLASS=2500) flags = CONDUCT - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "materials=1;biotech=1" attack_verb = list("attacked", "pinched") @@ -28,7 +28,7 @@ icon_state = "cautery" materials = list(MAT_METAL=2500, MAT_GLASS=750) flags = CONDUCT - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "materials=1;biotech=1" attack_verb = list("burnt") @@ -44,7 +44,7 @@ force = 15.0 sharp = 1 edge = 1 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL origin_tech = "materials=1;biotech=1" attack_verb = list("drilled") @@ -64,7 +64,7 @@ force = 10.0 sharp = 1 edge = 1 - w_class = 1 + w_class = WEIGHT_CLASS_TINY throwforce = 5.0 throw_speed = 3 throw_range = 5 @@ -124,7 +124,7 @@ force = 15.0 sharp = 1 edge = 1 - w_class = 3 + w_class = WEIGHT_CLASS_NORMAL throwforce = 9.0 throw_speed = 3 throw_range = 5 @@ -138,7 +138,7 @@ icon = 'icons/obj/surgery.dmi' icon_state = "bone-gel" force = 0 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL throwforce = 1.0 origin_tech = "materials=1;biotech=1" @@ -149,7 +149,7 @@ force = 0 throwforce = 1.0 origin_tech = "materials=1;biotech=1" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL /obj/item/weapon/bonesetter name = "bone setter" @@ -159,7 +159,7 @@ throwforce = 9.0 throw_speed = 3 throw_range = 5 - w_class = 2 + w_class = WEIGHT_CLASS_SMALL attack_verb = list("attacked", "hit", "bludgeoned") origin_tech = "materials=1;biotech=1" @@ -168,6 +168,6 @@ desc = "Nanotrasen brand surgical drapes provide optimal safety and infection control." icon = 'icons/obj/surgery.dmi' icon_state = "surgical_drapes" - w_class = 1 + w_class = WEIGHT_CLASS_SMALL origin_tech = "biotech=1" attack_verb = list("slapped") diff --git a/code/modules/telesci/bscrystal.dm b/code/modules/telesci/bscrystal.dm index 113d2abd751..d6cdd0e3b5d 100644 --- a/code/modules/telesci/bscrystal.dm +++ b/code/modules/telesci/bscrystal.dm @@ -4,7 +4,7 @@ desc = "A glowing bluespace crystal, not much is known about how they work. It looks very delicate." icon = 'icons/obj/telescience.dmi' icon_state = "bluespace_crystal" - w_class = 1 + w_class = WEIGHT_CLASS_TINY origin_tech = "bluespace=4;materials=3" points = 50 var/blink_range = 8 // The teleport range when crushed/thrown at someone. diff --git a/code/modules/telesci/gps.dm b/code/modules/telesci/gps.dm index 7558fd602ee..b042453eec4 100644 --- a/code/modules/telesci/gps.dm +++ b/code/modules/telesci/gps.dm @@ -4,7 +4,7 @@ var/list/GPS_list = list() desc = "Helping lost spacemen find their way through the planets since 2016." icon = 'icons/obj/telescience.dmi' icon_state = "gps-c" - w_class = 2 + w_class = WEIGHT_CLASS_SMALL slot_flags = SLOT_BELT origin_tech = "programming=2;engineering=2" var/gpstag = "COM0" @@ -32,7 +32,7 @@ var/list/GPS_list = list() emped = FALSE overlays -= "emp" overlays += "working" - + /obj/item/device/gps/AltClick(mob/user) if(CanUseTopic(user, inventory_state) != STATUS_INTERACTIVE) return 1 //user not valid to use gps @@ -51,7 +51,7 @@ var/list/GPS_list = list() if(!tracking) to_chat(user, "[src] is turned off. Use alt+click to toggle it back on.") return - + var/obj/item/device/gps/t = "" var/gps_window_height = 110 + GPS_list.len * 20 // Variable window height, depending on how many GPS units there are to show if(emped) @@ -82,12 +82,12 @@ var/list/GPS_list = list() /obj/item/device/gps/Topic(href, href_list) if(..(state = inventory_state)) return 1 - + if(href_list["tag"] ) var/a = input("Please enter desired tag.", name, gpstag) as text|null if(!a || ..(state = inventory_state)) return 1 - + a = uppertext(sanitize(copytext(a, 1, 5))) if(src.loc == usr) gpstag = a @@ -112,8 +112,8 @@ var/list/GPS_list = list() gpstag = "BORG0" desc = "A mining cyborg internal positioning system. Used as a recovery beacon for damaged cyborg assets, or a collaboration tool for mining teams." flags = NODROP - -/obj/item/device/gps/internal + +/obj/item/device/gps/internal icon_state = null flags = ABSTRACT gpstag = "Eerie Signal" @@ -162,4 +162,4 @@ var/list/GPS_list = list() clear() tagged = null fast_processing.Remove(src) - . = ..() \ No newline at end of file + . = ..() diff --git a/code/modules/vehicle/vehicle.dm b/code/modules/vehicle/vehicle.dm index 2a1ea4c7d64..bdd8ca39c90 100644 --- a/code/modules/vehicle/vehicle.dm +++ b/code/modules/vehicle/vehicle.dm @@ -61,7 +61,7 @@ desc = "A small grey key." icon = 'icons/obj/vehicles.dmi' icon_state = "key" - w_class = 1 + w_class = WEIGHT_CLASS_TINY //BUCKLE HOOKS @@ -159,4 +159,4 @@ spaceworthy = TRUE /obj/vehicle/space/Process_Spacemove(direction) - return 1 \ No newline at end of file + return 1 From 8394efeeac0763983f41f06436116a273e9ef872 Mon Sep 17 00:00:00 2001 From: Xantholne Date: Sat, 27 May 2017 21:17:53 -0600 Subject: [PATCH 018/147] Removes CMO from Physician --- code/modules/client/preference/loadout/loadout_uniform.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/preference/loadout/loadout_uniform.dm b/code/modules/client/preference/loadout/loadout_uniform.dm index 4efd372a04b..700e86725e9 100644 --- a/code/modules/client/preference/loadout/loadout_uniform.dm +++ b/code/modules/client/preference/loadout/loadout_uniform.dm @@ -71,7 +71,7 @@ /datum/gear/uniform/skirt/job/phys display_name = "skirt, physician" path = /obj/item/clothing/under/rank/security/brigphys/skirt - allowed_roles = list("Brig Physician" , "Chief Medical Officer") + allowed_roles = list("Brig Physician") /datum/gear/uniform/skirt/job/sci display_name = "skirt, scientist" From 8cd77f2935a7286170e894b8a44970004fd8b8cc Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sun, 28 May 2017 01:38:29 -0400 Subject: [PATCH 019/147] Fixes Movement for Some Mobs --- .../carbon/alien/humanoid/caste/drone.dm | 3 + .../carbon/alien/humanoid/caste/hunter.dm | 4 ++ .../carbon/alien/humanoid/caste/sentinel.dm | 5 +- .../living/carbon/alien/humanoid/empress.dm | 1 - .../living/carbon/alien/humanoid/humanoid.dm | 12 +--- .../mob/living/carbon/alien/humanoid/queen.dm | 3 + .../mob/living/carbon/human/human_movement.dm | 69 +------------------ .../living/carbon/human/species/species.dm | 66 ++++++++++++++++++ code/modules/mob/living/carbon/slime/slime.dm | 7 +- code/modules/mob/living/living.dm | 1 - code/modules/mob/living/silicon/pai/pai.dm | 14 ++++ .../living/silicon/robot/robot_movement.dm | 7 +- .../mob/living/simple_animal/parrot.dm | 3 +- .../mob/living/simple_animal/simple_animal.dm | 6 +- code/modules/mob/mob.dm | 7 +- 15 files changed, 111 insertions(+), 97 deletions(-) diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm index 1249c0f462c..8f84e57f36b 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm @@ -15,6 +15,9 @@ alien_organs += new /obj/item/organ/internal/xenos/resinspinner ..() +/mob/living/carbon/alien/humanoid/drone/movement_delay() + . = ..() + //Drones use the same base as generic humanoids. //Drone verbs diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index cdd1b55bcf9..3782806db33 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -13,6 +13,10 @@ alien_organs += new /obj/item/organ/internal/xenos/plasmavessel/hunter ..() +/mob/living/carbon/alien/humanoid/hunter/movement_delay() + . = -1 //hunters are sanic + . += ..() //but they still need to slow down on stun + /mob/living/carbon/alien/humanoid/hunter/handle_regular_hud_updates() ..() //-Yvarov diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm index 8d8f8894234..71026ecaa96 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm @@ -12,14 +12,12 @@ pixel_x = -16 maxHealth = 200 health = 200 - move_delay_add = 1 large = 1 /mob/living/carbon/alien/humanoid/sentinel/praetorian name = "alien praetorian" maxHealth = 200 health = 200 - move_delay_add = 1 large = 1 /mob/living/carbon/alien/humanoid/sentinel/large/update_icons() @@ -44,6 +42,9 @@ alien_organs += new /obj/item/organ/internal/xenos/neurotoxin ..() +/mob/living/carbon/alien/humanoid/sentinel/movement_delay() + . = ..() + /mob/living/carbon/alien/humanoid/sentinel/handle_regular_hud_updates() ..() //-Yvarov diff --git a/code/modules/mob/living/carbon/alien/humanoid/empress.dm b/code/modules/mob/living/carbon/alien/humanoid/empress.dm index 287974b610f..7db3ea5b1c5 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/empress.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/empress.dm @@ -6,7 +6,6 @@ icon_state = "alienq_s" status_flags = CANPARALYSE mob_size = MOB_SIZE_LARGE - move_delay_add = 3 large = 1 ventcrawler = 0 diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 735b4ccb777..fff315c90e3 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -26,16 +26,8 @@ /mob/living/carbon/alien/humanoid/movement_delay() - var/tally = 0 - if(istype(src, /mob/living/carbon/alien/humanoid/queen)) - tally += 4 - if(istype(src, /mob/living/carbon/alien/humanoid/drone)) - tally += 0 - if(istype(src, /mob/living/carbon/alien/humanoid/sentinel)) - tally += 0 - if(istype(src, /mob/living/carbon/alien/humanoid/hunter)) - tally = -2 // hunters go supersuperfast - return (tally + move_delay_add + config.alien_delay) + . = ..() + . += move_delay_add + config.alien_delay //move_delay_add is used to slow aliens with stuns /mob/living/carbon/alien/humanoid/Process_Spacemove(var/check_drift = 0) if(..()) diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 11914d3c0ee..94dc0432ca2 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -28,6 +28,9 @@ alien_organs += new /obj/item/organ/internal/xenos/neurotoxin ..() +/mob/living/carbon/alien/humanoid/queen/movement_delay() + . += 4 + . = ..() /mob/living/carbon/alien/humanoid/queen/handle_regular_hud_updates() ..() //-Yvarov diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index c65e5f70f99..87176a7a02a 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -1,75 +1,8 @@ /mob/living/carbon/human/movement_delay() . = 0 . += ..() - - var/gravity = 1 - - if(!has_gravity(src)) - gravity = 0 - - if(flying) - gravity = 0 - - if(embedded_flag) - handle_embedded_objects() //Moving with objects stuck in you can cause bad times. - - if(slowed) - . += 10 - - if(gravity) - if(species.slowdown) - . = species.slowdown - - var/health_deficiency = (maxHealth - health + staminaloss) - if(reagents) - for(var/datum/reagent/R in reagents.reagent_list) - if(R.shock_reduction) - health_deficiency -= R.shock_reduction - if(health_deficiency >= 40) - . += (health_deficiency / 25) - - var/hungry = (500 - nutrition)/5 // So overeat would be 100 and default level would be 80 - if(hungry >= 70) - . += hungry/50 - - if(wear_suit) - . += wear_suit.slowdown - - if(!buckled) - if(shoes) - . += shoes.slowdown - - if(shock_stage >= 10) - . += 3 - - if(back) - . += back.slowdown - - if(l_hand && (l_hand.flags & HANDSLOW)) - . += l_hand.slowdown - if(r_hand && (r_hand.flags & HANDSLOW)) - . += r_hand.slowdown - - if(FAT in src.mutations) - . += 1.5 - - if(bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT) - . += (BODYTEMP_COLD_DAMAGE_LIMIT - bodytemperature) / COLD_SLOWDOWN_FACTOR - - . += 2 * stance_damage //damaged/missing feet or legs is slow - - if(RUN in mutations) - . = -1 - - if(status_flags & IGNORESLOWDOWN) // make sure this is always at the end so we don't have ignore slowdown getting ignored itself - . = -1 - - if(status_flags & GOTTAGOFAST) - . -= 1 - if(status_flags & GOTTAGOREALLYFAST) - . -= 2 - . += config.human_delay + . += species.movement_delay(src) /mob/living/carbon/human/Process_Spacemove(movement_dir = 0) diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index d2d44757705..c1d1a169c1d 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -380,6 +380,72 @@ if(heat_level_3_breathe to INFINITY) H.apply_damage(hot_env_multiplier*HEAT_GAS_DAMAGE_LEVEL_3, BURN, "head", used_weapon = "Excessive Heat") +//////////////// +// MOVE SPEED // +//////////////// + +/datum/species/proc/movement_delay(mob/living/carbon/human/H) + . = 0 //We start at 0. + var/flight = 0 //Check for flight and flying items + var/ignoreslow = 0 + var/gravity = 0 + + if(H.flying) + flight = 1 + + if((H.status_flags & IGNORESLOWDOWN) || (RUN in H.mutations)) + ignoreslow = 1 + + if(has_gravity(H)) + gravity = 1 + + if(H.embedded_flag) + H.handle_embedded_objects() //Moving with objects stuck in you can cause bad times. + + if(!ignoreslow && gravity) + if(slowdown) + . = slowdown + + if(H.wear_suit) + . += H.wear_suit.slowdown + if(!H.buckled) + if(H.shoes) + . += H.shoes.slowdown + if(H.back) + . += H.back.slowdown + if(H.l_hand && (H.l_hand.flags & HANDSLOW)) + . += H.l_hand.slowdown + if(H.r_hand && (H.r_hand.flags & HANDSLOW)) + . += H.r_hand.slowdown + + var/health_deficiency = (H.maxHealth - H.health + H.staminaloss) + var/hungry = (500 - H.nutrition)/5 // So overeat would be 100 and default level would be 80 + if(H.reagents) + for(var/datum/reagent/R in H.reagents.reagent_list) + if(R.shock_reduction) + health_deficiency -= R.shock_reduction + if(health_deficiency >= 40) + if(flight) + . += (health_deficiency / 75) + else + . += (health_deficiency / 25) + if(H.shock_stage >= 10) + . += 3 + . += 2 * H.stance_damage //damaged/missing feet or legs is slow + + if((hungry >= 70) && !flight) + . += hungry/50 + if(FAT in H.mutations) + . += (1.5 - flight) + if(H.bodytemperature < BODYTEMP_COLD_DAMAGE_LIMIT) + . += (BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR + + if(H.status_flags & GOTTAGOFAST) + . -= 1 + if(H.status_flags & GOTTAGOREALLYFAST) + . -= 2 + return . + /datum/species/proc/handle_post_spawn(var/mob/living/carbon/C) //Handles anything not already covered by basic species assignment. grant_abilities(C) return diff --git a/code/modules/mob/living/carbon/slime/slime.dm b/code/modules/mob/living/carbon/slime/slime.dm index 9031a77311c..85fed33c156 100644 --- a/code/modules/mob/living/carbon/slime/slime.dm +++ b/code/modules/mob/living/carbon/slime/slime.dm @@ -83,10 +83,11 @@ if(bodytemperature >= 330.23) // 135 F return -1 // slimes become supercharged at high temperatures - . = ..(1) + . = ..() var/health_deficiency = (100 - health) - if(health_deficiency >= 45) . += (health_deficiency / 25) + if(health_deficiency >= 45) + . += (health_deficiency / 25) if(bodytemperature < 183.222) . += (283.222 - bodytemperature) / 10 * 1.75 @@ -101,7 +102,7 @@ if(health <= 0) // if damaged, the slime moves twice as slow . *= 2 - return . + config.slime_delay + . += config.slime_delay /mob/living/carbon/slime/ObjBump(obj/O) if(!client && powerlevel > 0) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 5e1dab9874b..6fd8a08e1e1 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -919,7 +919,6 @@ /mob/living/movement_delay(ignorewalk = 0) . = ..() - if(isturf(loc)) var/turf/T = loc . += T.slowdown diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 202984fd14e..97d0d55adba 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -82,6 +82,7 @@ var/current_pda_messaging = null var/custom_sprite = 0 + var/slowdown = 0 /mob/living/silicon/pai/New(var/obj/item/device/paicard) loc = paicard @@ -117,6 +118,19 @@ C.toff = 1 ..() +/mob/living/silicon/pai/movement_delay() + . = ..() + . += slowdown + . += 1 //A bit slower than humans, so they're easier to smash + +/mob/living/silicon/pai/Process_Spacemove(movement_dir = 0) + . = ..() + if(!.) + slowdown = 2 + return TRUE + slowdown = initial(slowdown) + return TRUE + /mob/living/silicon/pai/update_icons() if(stat == DEAD) icon_state = "[chassis]_dead" diff --git a/code/modules/mob/living/silicon/robot/robot_movement.dm b/code/modules/mob/living/silicon/robot/robot_movement.dm index 5ccc6e9585c..e896e7c9473 100644 --- a/code/modules/mob/living/silicon/robot/robot_movement.dm +++ b/code/modules/mob/living/silicon/robot/robot_movement.dm @@ -7,14 +7,11 @@ //No longer needed, but I'll leave it here incase we plan to re-use it. /mob/living/silicon/robot/movement_delay() - . = ..(1) //Incase I need to add stuff other than "speed" later - + . = ..() . += speed - if(module_active && istype(module_active,/obj/item/borg/combat/mobility)) . -= 3 - - return . + config.robot_delay + . += config.robot_delay /mob/living/silicon/robot/mob_negates_gravity() return magpulse diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index 2c1fb61be2f..2de7a6af9b3 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -505,7 +505,8 @@ /mob/living/simple_animal/parrot/movement_delay() if(client && stat == CONSCIOUS && parrot_state != "parrot_fly") icon_state = "parrot_fly" - ..() + //Because the most appropriate place to set icon_state is movement_delay(), clearly + return ..() /mob/living/simple_animal/parrot/proc/search_for_item() for(var/atom/movable/AM in view(src)) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index bd6ed65a979..1aa6c82b4a8 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -434,11 +434,11 @@ /mob/living/simple_animal/movement_delay() - var/tally = 0 //Incase I need to add stuff other than "speed" later + . = ..() - tally = speed + . = speed - return tally+config.animal_delay + . += config.animal_delay /mob/living/simple_animal/Stat() ..() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index a1b6c652913..c37bb6eb0fe 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1008,9 +1008,10 @@ var/list/slot_equipment_priority = list( \ drop_l_hand() drop_r_hand() -/mob/proc/facedir(var/ndir) - if(!canface()) return 0 - dir = ndir +/mob/proc/facedir(ndir) + if(!canface()) + return 0 + setDir(ndir) client.move_delay += movement_delay() return 1 From 2501e6a5e8f5b38a58163889a2ba0ca38f7b39a1 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sun, 28 May 2017 11:13:39 -0400 Subject: [PATCH 020/147] tweaks --- .../mob/living/carbon/alien/humanoid/caste/drone.dm | 3 --- .../mob/living/carbon/alien/humanoid/caste/sentinel.dm | 3 --- code/modules/mob/living/carbon/alien/humanoid/queen.dm | 2 +- code/modules/mob/living/silicon/pai/pai.dm | 9 +-------- code/modules/mob/living/simple_animal/friendly/sloth.dm | 2 +- .../mob/living/simple_animal/hostile/faithless.dm | 1 - .../mob/living/simple_animal/hostile/retaliate/undead.dm | 4 ++-- 7 files changed, 5 insertions(+), 19 deletions(-) diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm index 8f84e57f36b..1249c0f462c 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm @@ -15,9 +15,6 @@ alien_organs += new /obj/item/organ/internal/xenos/resinspinner ..() -/mob/living/carbon/alien/humanoid/drone/movement_delay() - . = ..() - //Drones use the same base as generic humanoids. //Drone verbs diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm index 71026ecaa96..6a9565fc449 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm @@ -42,9 +42,6 @@ alien_organs += new /obj/item/organ/internal/xenos/neurotoxin ..() -/mob/living/carbon/alien/humanoid/sentinel/movement_delay() - . = ..() - /mob/living/carbon/alien/humanoid/sentinel/handle_regular_hud_updates() ..() //-Yvarov diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 94dc0432ca2..a8f17714b0e 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -29,8 +29,8 @@ ..() /mob/living/carbon/alien/humanoid/queen/movement_delay() - . += 4 . = ..() + . += 3 /mob/living/carbon/alien/humanoid/queen/handle_regular_hud_updates() ..() //-Yvarov diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 97d0d55adba..3f1799c7c9f 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -122,14 +122,7 @@ . = ..() . += slowdown . += 1 //A bit slower than humans, so they're easier to smash - -/mob/living/silicon/pai/Process_Spacemove(movement_dir = 0) - . = ..() - if(!.) - slowdown = 2 - return TRUE - slowdown = initial(slowdown) - return TRUE + . += config.robot_delay /mob/living/silicon/pai/update_icons() if(stat == DEAD) diff --git a/code/modules/mob/living/simple_animal/friendly/sloth.dm b/code/modules/mob/living/simple_animal/friendly/sloth.dm index 1066b2a0d39..bf12b07de2e 100644 --- a/code/modules/mob/living/simple_animal/friendly/sloth.dm +++ b/code/modules/mob/living/simple_animal/friendly/sloth.dm @@ -21,7 +21,7 @@ melee_damage_upper = 18 health = 50 maxHealth = 50 - speed = 1 + speed = 2 //Cargo Sloth diff --git a/code/modules/mob/living/simple_animal/hostile/faithless.dm b/code/modules/mob/living/simple_animal/hostile/faithless.dm index a14efc6d279..35926a602f2 100644 --- a/code/modules/mob/living/simple_animal/hostile/faithless.dm +++ b/code/modules/mob/living/simple_animal/hostile/faithless.dm @@ -22,7 +22,6 @@ atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 - speed = 4 faction = list("faithless") gold_core_spawnable = CHEM_MOB_SPAWN_HOSTILE diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/undead.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/undead.dm index 66972b06d2e..e5beb60097e 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/undead.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/undead.dm @@ -31,7 +31,7 @@ response_disarm = "shoves" response_harm = "hits" turns_per_move = 10 - speed = -1 + speed = 0 maxHealth = 20 health = 20 @@ -74,7 +74,7 @@ response_help = "shakes hands with" response_disarm = "shoves" response_harm = "hits" - speed = -1 + speed = 0 maxHealth = 20 health = 20 From 249dacf136ed35b554458454d2a38aeb29109395 Mon Sep 17 00:00:00 2001 From: Sam Date: Sun, 28 May 2017 18:53:57 +0100 Subject: [PATCH 021/147] Logs use of one-click-antag --- code/modules/admin/verbs/one_click_antag.dm | 38 +++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 04f8b29da0c..8d201d6ee8a 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -35,6 +35,9 @@ client/proc/one_click_antag() var/list/mob/living/carbon/human/candidates = list() var/mob/living/carbon/human/H = null + log_admin("[key_name(owner)] tried making Traitors with One-Click-Antag") + message_admins("[key_name_admin(owner)] tried making Traitors with One-Click-Antag") + for(var/mob/living/carbon/human/applicant in player_list) if(ROLE_TRAITOR in applicant.client.prefs.be_special) if(player_old_enough_antag(applicant.client,ROLE_TRAITOR)) @@ -69,6 +72,9 @@ client/proc/one_click_antag() var/list/mob/living/carbon/human/candidates = list() var/mob/living/carbon/human/H = null + log_admin("[key_name(owner)] tried making Changelings with One-Click-Antag") + message_admins("[key_name_admin(owner)] tried making Changelings with One-Click-Antag") + for(var/mob/living/carbon/human/applicant in player_list) if(ROLE_CHANGELING in applicant.client.prefs.be_special) if(player_old_enough_antag(applicant.client,ROLE_CHANGELING)) @@ -101,6 +107,9 @@ client/proc/one_click_antag() var/list/mob/living/carbon/human/candidates = list() var/mob/living/carbon/human/H = null + log_admin("[key_name(owner)] tried making Revolutionaries with One-Click-Antag") + message_admins("[key_name_admin(owner)] tried making Revolutionaries with One-Click-Antag") + for(var/mob/living/carbon/human/applicant in player_list) if(ROLE_REV in applicant.client.prefs.be_special) if(player_old_enough_antag(applicant.client,ROLE_REV)) @@ -127,6 +136,9 @@ client/proc/one_click_antag() var/list/candidates = pollCandidates("Do you wish to be considered for the position of a Wizard Foundation 'diplomat'?", "wizard") + log_admin("[key_name(owner)] tried making a Wizard with One-Click-Antag") + message_admins("[key_name_admin(owner)] tried making a Wizard with One-Click-Antag") + if(candidates.len) var/mob/dead/observer/selected = pick(candidates) candidates -= selected @@ -146,6 +158,9 @@ client/proc/one_click_antag() var/list/mob/living/carbon/human/candidates = list() var/mob/living/carbon/human/H = null + log_admin("[key_name(owner)] tried making a Cult with One-Click-Antag") + message_admins("[key_name_admin(owner)] tried making a Cult with One-Click-Antag") + for(var/mob/living/carbon/human/applicant in player_list) if(ROLE_CULTIST in applicant.client.prefs.be_special) if(player_old_enough_antag(applicant.client,ROLE_CULTIST)) @@ -177,6 +192,9 @@ client/proc/one_click_antag() var/mob/theghost = null var/time_passed = world.time + log_admin("[key_name(owner)] tried making a Nuke Op Team with One-Click-Antag") + message_admins("[key_name_admin(owner)] tried making a Nuke Op Team with One-Click-Antag") + for(var/mob/G in respawnable_list) if(istype(G) && G.client && (ROLE_OPERATIVE in G.client.prefs.be_special)) if(!jobban_isbanned(G, "operative") && !jobban_isbanned(G, "Syndicate")) @@ -265,10 +283,18 @@ client/proc/one_click_antag() //Abductors /datum/admins/proc/makeAbductorTeam() new /datum/event/abductor + + log_admin("[key_name(owner)] tried making Abductors with One-Click-Antag") + message_admins("[key_name_admin(owner)] tried making Abductors with One-Click-Antag") + return 1 /datum/admins/proc/makeAliens() var/datum/event/alien_infestation/E = new /datum/event/alien_infestation + + log_admin("[key_name(owner)] tried making Aliens with One-Click-Antag") + message_admins("[key_name_admin(owner)] tried making Aliens with One-Click-Antag") + E.spawncount = 3 // TODO The fact we have to do this rather than just have events start // when we ask them to, is bad. @@ -289,6 +315,9 @@ client/proc/one_click_antag() if(prob(10)) input = "Save Runtime and any other cute things on the station." + log_admin("[key_name(owner)] tried making a Death Squad with One-Click-Antag") + message_admins("[key_name_admin(owner)] tried making a Death Squad with One-Click-Antag") + var/syndicate_leader_selected = 0 //when the leader is chosen. The last person spawned. //Generates a list of commandos from active ghosts. Then the user picks which characters to respawn as the commandos. @@ -400,6 +429,9 @@ client/proc/one_click_antag() var/leader_chosen = 0 //when the leader is chosen. The last person spawned. + log_admin("[key_name(owner)] tried making Vox Raiders with One-Click-Antag") + message_admins("[key_name_admin(owner)] tried making Vox Raiders with One-Click-Antag") + //Generates a list of candidates from active ghosts. for(var/mob/G in respawnable_list) if(istype(G) && G.client && (ROLE_RAIDER in G.client.prefs.be_special)) @@ -502,6 +534,9 @@ client/proc/one_click_antag() var/list/mob/living/carbon/human/candidates = list() var/mob/living/carbon/human/H = null + log_admin("[key_name(owner)] tried making Vampires with One-Click-Antag") + message_admins("[key_name_admin(owner)] tried making Vampires with One-Click-Antag") + for(var/mob/living/carbon/human/applicant in player_list) if(ROLE_VAMPIRE in applicant.client.prefs.be_special) if(player_old_enough_antag(applicant.client,ROLE_VAMPIRE)) @@ -533,6 +568,9 @@ client/proc/one_click_antag() var/mob/theghost = null var/time_passed = world.time + log_admin("[key_name(owner)] tried making Thunderdome Teams with One-Click-Antag") + message_admins("[key_name_admin(owner)] tried making Thunderdone Teams with One-Click-Antag") + //Generates a list of candidates from active ghosts. for(var/mob/G in respawnable_list) spawn(0) From adf9de06c55ff39bef0970d63c92e8a03408f4b7 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 28 May 2017 14:49:51 -0400 Subject: [PATCH 022/147] Automatic changelog generation for PR #7407 [ci skip] --- html/changelogs/AutoChangeLog-pr-7407.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7407.yml diff --git a/html/changelogs/AutoChangeLog-pr-7407.yml b/html/changelogs/AutoChangeLog-pr-7407.yml new file mode 100644 index 00000000000..553b3810291 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7407.yml @@ -0,0 +1,4 @@ +author: "Fox McCloud" +delete-after: True +changes: + - bugfix: "Fixes various mobs moving around faster than intended" From d60a4e7f6d0a82effae0b0cdc02550933d6e7237 Mon Sep 17 00:00:00 2001 From: ParadiseSS13-Bot Date: Sun, 28 May 2017 15:42:08 -0400 Subject: [PATCH 023/147] Automatic changelog compile, [ci skip] --- html/changelog.html | 6 ++++++ html/changelogs/.all_changelog.yml | 3 +++ html/changelogs/AutoChangeLog-pr-7407.yml | 4 ---- 3 files changed, 9 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-7407.yml diff --git a/html/changelog.html b/html/changelog.html index aafd6723606..1fd9488c696 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,12 @@ -->
+

28 May 2017

+

Fox McCloud updated:

+
    +
  • Fixes various mobs moving around faster than intended
  • +
+

27 May 2017

Crazylemon64 updated: