diff --git a/SQL/database_changelog.txt b/SQL/database_changelog.txt index 6e6bd7f7ca..83bc78050d 100644 --- a/SQL/database_changelog.txt +++ b/SQL/database_changelog.txt @@ -2,14 +2,22 @@ Any time you make a change to the schema files, remember to increment the databa The latest database version is 4.1; The query to update the schema revision table is: -INSERT INTO `schema_revision` (`major`, `minor`) VALUES (4, 1); +INSERT INTO `schema_revision` (`major`, `minor`) VALUES (4, 2); or -INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (4, 1); +INSERT INTO `SS13_schema_revision` (`major`, `minor`) VALUES (4, 2); In any query remember to add a prefix to the table names if you use one. ---------------------------------------------------- +Version 4.2, 17 April 2018, by Jordie0608 +Modified table 'admin', adding the columns 'round_id' and 'target' +ALTER TABLE `admin_log` + ADD COLUMN `round_id` INT UNSIGNED NOT NULL AFTER `datetime`, + ADD COLUMN `target` VARCHAR(32) NOT NULL AFTER `operation`; + +---------------------------------------------------- + Version 4.1, 3 February 2018, by Jordie0608 Modified tables 'admin', 'admin_log' and 'admin_rank', removing unnecessary columns and adding support for excluding rights flags from admin ranks. This change was made to enable use of sql-based admin loading. @@ -41,7 +49,6 @@ ALTER TABLE `admin_ranks` DROP PRIMARY KEY, ADD PRIMARY KEY (`rank`); - ---------------------------------------------------- Version 4.0, 12 November 2017, by Jordie0608 diff --git a/SQL/tgstation_schema.sql b/SQL/tgstation_schema.sql index ddd31a7e80..92411ea895 100644 --- a/SQL/tgstation_schema.sql +++ b/SQL/tgstation_schema.sql @@ -33,9 +33,11 @@ DROP TABLE IF EXISTS `admin_log`; CREATE TABLE `admin_log` ( `id` int(11) NOT NULL AUTO_INCREMENT, `datetime` datetime NOT NULL, + `round_id` int(11) unsigned NOT NULL, `adminckey` varchar(32) NOT NULL, `adminip` int(10) unsigned NOT NULL, `operation` enum('add admin','remove admin','change admin rank','add rank','remove rank','change rank flags') NOT NULL, + `target` varchar(32) NOT NULL, `log` varchar(1000) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; diff --git a/SQL/tgstation_schema_prefixed.sql b/SQL/tgstation_schema_prefixed.sql index 01e0ed150b..de9d67e335 100644 --- a/SQL/tgstation_schema_prefixed.sql +++ b/SQL/tgstation_schema_prefixed.sql @@ -33,9 +33,11 @@ DROP TABLE IF EXISTS `SS13_admin_log`; CREATE TABLE `SS13_admin_log` ( `id` int(11) NOT NULL AUTO_INCREMENT, `datetime` datetime NOT NULL, + `round_id` int(11) unsigned NOT NULL, `adminckey` varchar(32) NOT NULL, `adminip` int(10) unsigned NOT NULL, `operation` enum('add admin','remove admin','change admin rank','add rank','remove rank','change rank flags') NOT NULL, + `target` varchar(32) NOT NULL, `log` varchar(1000) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index a1a1a25724..a05aaf3265 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -56,6 +56,8 @@ #define FIRE_SPREAD_RADIOSITY_SCALE 0.85 #define FIRE_GROWTH_RATE 40000 //For small fires #define PLASMA_MINIMUM_BURN_TEMPERATURE (100+T0C) +#define PLASMA_UPPER_TEMPERATURE (1370+T0C) +#define PLASMA_OXYGEN_FULLBURN 10 //GASES #define MIN_TOXIC_GAS_DAMAGE 1 diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index f871ac6a44..8513f40577 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -10,13 +10,9 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define DF_USE_TAG (1<<0) #define DF_VAR_EDITED (1<<1) -//FLAGS BITMASK -#define STOPSPRESSUREDMAGE_1 (1<<0) //This flag is used on the flags_1 variable for SUIT and HEAD items which stop pressure damage. Note that the flag 1 was previous used as ONBACK, so it is possible for some code to use (flags & 1) when checking if something can be put on your back. Replace this code with (inv_flags & SLOT_BACK) if you see it anywhere -//To successfully stop you taking all pressure damage you must have both a suit and head item with this flag. - #define NODROP_1 (1<<1) // This flag makes it so that an item literally cannot be removed at all, or at least that's how it should be. Only deleted. #define NOBLUDGEON_1 (1<<2) // when an item has this it produces no "X has been hit by Y with Z" message in the default attackby() -#define MASKINTERNALS_1 (1<<3) // mask allows internals + #define HEAR_1 (1<<4) // This flag is what recursive_hear_check() uses to determine wether to add an item to the hearer list or not. #define CHECK_RICOCHET_1 (1<<5) // Projectiels will check ricochet on things impacted that have this. #define CONDUCT_1 (1<<6) // conducts electricity (metal etc.) @@ -25,11 +21,6 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define OVERLAY_QUEUED_1 (1<<8) // atom queued to SSoverlay #define ON_BORDER_1 (1<<9) // item has priority to check when entering or leaving -#define NOSLIP_1 (1<<10) //prevents from slipping on wet floors, in space etc - -// BLOCK_GAS_SMOKE_EFFECT_1 only used in masks at the moment. -#define BLOCK_GAS_SMOKE_EFFECT_1 (1<<12) // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY! -#define THICKMATERIAL_1 (1<<13) //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body. #define DROPDEL_1 (1<<14) // When dropped, it calls qdel on itself #define PREVENT_CLICK_UNDER_1 (1<<15) //Prevent clicking things below it on the same turf eg. doors/ fulltile windows @@ -57,9 +48,6 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 // Stops you from putting things like an RCD or other items into an ORM or protolathe for materials. #define NO_MAT_REDEMPTION_2 (1<<10) -// LAVA_PROTECT used on the flags_2 variable for both SUIT and HEAD items, and stops lava damage. Must be present in both to stop lava damage. -#define LAVA_PROTECT_2 (1<<11) - //turf-only flags #define NOJAUNT_1 (1<<0) #define UNUSED_TRANSIT_TURF_1 (1<<1) diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index beea132890..7ad5041344 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -14,76 +14,76 @@ #define STORAGE_VIEW_DEPTH 2 //ITEM INVENTORY SLOT BITMASKS -#define SLOT_OCLOTHING (1<<0) -#define SLOT_ICLOTHING (1<<1) -#define SLOT_GLOVES (1<<2) -#define SLOT_EYES (1<<3) -#define SLOT_EARS (1<<4) -#define SLOT_MASK (1<<5) -#define SLOT_HEAD (1<<6) -#define SLOT_FEET (1<<7) -#define SLOT_ID (1<<8) -#define SLOT_BELT (1<<9) -#define SLOT_BACK (1<<10) -#define SLOT_POCKET (1<<11) // this is to allow items with a w_class of WEIGHT_CLASS_NORMAL or WEIGHT_CLASS_BULKY to fit in pockets. -#define SLOT_DENYPOCKET (1<<12) // this is to deny items with a w_class of WEIGHT_CLASS_SMALL or WEIGHT_CLASS_TINY to fit in pockets. -#define SLOT_NECK (1<<13) +#define ITEM_SLOT_OCLOTHING (1<<0) +#define ITEM_SLOT_ICLOTHING (1<<1) +#define ITEM_SLOT_GLOVES (1<<2) +#define ITEM_SLOT_EYES (1<<3) +#define ITEM_SLOT_EARS (1<<4) +#define ITEM_SLOT_MASK (1<<5) +#define ITEM_SLOT_HEAD (1<<6) +#define ITEM_SLOT_FEET (1<<7) +#define ITEM_SLOT_ID (1<<8) +#define ITEM_SLOT_BELT (1<<9) +#define ITEM_SLOT_BACK (1<<10) +#define ITEM_SLOT_POCKET (1<<11) // this is to allow items with a w_class of WEIGHT_CLASS_NORMAL or WEIGHT_CLASS_BULKY to fit in pockets. +#define ITEM_SLOT_DENYPOCKET (1<<12) // this is to deny items with a w_class of WEIGHT_CLASS_SMALL or WEIGHT_CLASS_TINY to fit in pockets. +#define ITEM_SLOT_NECK (1<<13) //SLOTS -#define slot_back 1 -#define slot_wear_mask 2 -#define slot_handcuffed 3 -#define slot_hands 4 //wherever you provide a slot for hands you provide slot_hands - //slot_hands as a slot will pick ANY available hand -#define slot_belt 5 -#define slot_wear_id 6 -#define slot_ears 7 -#define slot_glasses 8 -#define slot_gloves 9 -#define slot_neck 10 -#define slot_head 11 -#define slot_shoes 12 -#define slot_wear_suit 13 -#define slot_w_uniform 14 -#define slot_l_store 15 -#define slot_r_store 16 -#define slot_s_store 17 -#define slot_in_backpack 18 -#define slot_legcuffed 19 -#define slot_generic_dextrous_storage 20 +#define SLOT_BACK 1 +#define SLOT_WEAR_MASK 2 +#define SLOT_HANDCUFFED 3 +#define SLOT_HANDS 4 //wherever you provide a slot for hands you provide SLOT_HANDS + //SLOT_HANDS as a slot will pick ANY available hand +#define SLOT_BELT 5 +#define SLOT_WEAR_ID 6 +#define SLOT_EARS 7 +#define SLOT_GLASSES 8 +#define SLOT_GLOVES 9 +#define SLOT_NECK 10 +#define SLOT_HEAD 11 +#define SLOT_SHOES 12 +#define SLOT_WEAR_SUIT 13 +#define SLOT_W_UNIFORM 14 +#define SLOT_L_STORE 15 +#define SLOT_R_STORE 16 +#define SLOT_S_STORE 17 +#define SLOT_IN_BACKPACK 18 +#define SLOT_LEGCUFFED 19 +#define SLOT_GENERC_DEXTROUS_STORAGE 20 -#define slots_amt 20 // Keep this up to date! +#define SLOTS_AMT 20 // Keep this up to date! //I hate that this has to exist /proc/slotdefine2slotbit(slotdefine) //Keep this up to date with the value of SLOT BITMASKS and SLOTS (the two define sections above) . = 0 switch(slotdefine) - if(slot_back) - . = SLOT_BACK - if(slot_wear_mask) - . = SLOT_MASK - if(slot_neck) - . = SLOT_NECK - if(slot_belt) - . = SLOT_BELT - if(slot_wear_id) - . = SLOT_ID - if(slot_ears) - . = SLOT_EARS - if(slot_glasses) - . = SLOT_EYES - if(slot_gloves) - . = SLOT_GLOVES - if(slot_head) - . = SLOT_HEAD - if(slot_shoes) - . = SLOT_FEET - if(slot_wear_suit) - . = SLOT_OCLOTHING - if(slot_w_uniform) - . = SLOT_ICLOTHING - if(slot_l_store, slot_r_store) - . = SLOT_POCKET + if(SLOT_BACK) + . = ITEM_SLOT_BACK + if(SLOT_WEAR_MASK) + . = ITEM_SLOT_MASK + if(SLOT_NECK) + . = ITEM_SLOT_NECK + if(SLOT_BELT) + . = ITEM_SLOT_BELT + if(SLOT_WEAR_ID) + . = ITEM_SLOT_ID + if(SLOT_EARS) + . = ITEM_SLOT_EARS + if(SLOT_GLASSES) + . = ITEM_SLOT_EYES + if(SLOT_GLOVES) + . = ITEM_SLOT_GLOVES + if(SLOT_HEAD) + . = ITEM_SLOT_HEAD + if(SLOT_SHOES) + . = ITEM_SLOT_FEET + if(SLOT_WEAR_SUIT) + . = ITEM_SLOT_OCLOTHING + if(SLOT_W_UNIFORM) + . = ITEM_SLOT_ICLOTHING + if(SLOT_L_STORE, SLOT_R_STORE) + . = ITEM_SLOT_POCKET //Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses. diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm index bfbf6f866a..1f4739491a 100644 --- a/code/__DEFINES/obj_flags.dm +++ b/code/__DEFINES/obj_flags.dm @@ -18,3 +18,12 @@ #define IN_INVENTORY (1<<1) //is this item equipped into an inventory slot or hand of a mob? used for tooltips #define FORCE_STRING_OVERRIDE (1<<2) // used for tooltips #define NEEDS_PERMIT (1<<3) //Used by security bots to determine if this item is safe for public use. + +// Flags for the clothing_flags var on /obj/item/clothing + +#define LAVAPROTECT (1<<0) +#define STOPSPRESSUREDAMAGE (1<<1) //SUIT and HEAD items which stop pressure damage. To stop you taking all pressure damage you must have both a suit and head item with this flag. +#define BLOCK_GAS_SMOKE_EFFECT (1<<2) // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY! +#define MASKINTERNALS (1<<3) // mask allows internals +#define NOSLIP (1<<4) //prevents from slipping on wet floors, in space etc +#define THICKMATERIAL (1<<5) //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body. diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 2b5e42e339..9b49ec2e9d 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -1,7 +1,7 @@ //Update this whenever the db schema changes //make sure you add an update to the schema_version stable in the db changelog #define DB_MAJOR_VERSION 4 -#define DB_MINOR_VERSION 1 +#define DB_MINOR_VERSION 2 //Timing subsystem //Don't run if there is an identical unique timer active @@ -82,6 +82,7 @@ // Subsystem fire priority, from lowest to highest priority // If the subsystem isn't listed here it's either DEFAULT or PROCESS (if it's a processing subsystem child) +#define FIRE_PRIORITY_PING 10 #define FIRE_PRIORITY_IDLE_NPC 10 #define FIRE_PRIORITY_SERVER_MAINT 10 #define FIRE_PRIORITY_RESEARCH 10 diff --git a/code/__HELPERS/pronouns.dm b/code/__HELPERS/pronouns.dm index 801940eca1..d1add9cb4c 100644 --- a/code/__HELPERS/pronouns.dm +++ b/code/__HELPERS/pronouns.dm @@ -203,56 +203,56 @@ /mob/living/carbon/human/p_they(capitalized, temp_gender) var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - if((slot_w_uniform in obscured) && skipface) + if((SLOT_W_UNIFORM in obscured) && skipface) temp_gender = PLURAL return ..() /mob/living/carbon/human/p_their(capitalized, temp_gender) var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - if((slot_w_uniform in obscured) && skipface) + if((SLOT_W_UNIFORM in obscured) && skipface) temp_gender = PLURAL return ..() /mob/living/carbon/human/p_them(capitalized, temp_gender) var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - if((slot_w_uniform in obscured) && skipface) + if((SLOT_W_UNIFORM in obscured) && skipface) temp_gender = PLURAL return ..() /mob/living/carbon/human/p_have(temp_gender) var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - if((slot_w_uniform in obscured) && skipface) + if((SLOT_W_UNIFORM in obscured) && skipface) temp_gender = PLURAL return ..() /mob/living/carbon/human/p_are(temp_gender) var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - if((slot_w_uniform in obscured) && skipface) + if((SLOT_W_UNIFORM in obscured) && skipface) temp_gender = PLURAL return ..() /mob/living/carbon/human/p_were(temp_gender) var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - if((slot_w_uniform in obscured) && skipface) + if((SLOT_W_UNIFORM in obscured) && skipface) temp_gender = PLURAL return ..() /mob/living/carbon/human/p_do(temp_gender) var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - if((slot_w_uniform in obscured) && skipface) + if((SLOT_W_UNIFORM in obscured) && skipface) temp_gender = PLURAL return ..() /mob/living/carbon/human/p_s(temp_gender) var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) - if((slot_w_uniform in obscured) && skipface) + if((SLOT_W_UNIFORM in obscured) && skipface) temp_gender = PLURAL return ..() diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index fcf5a5dd4a..4a0be437c3 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -290,19 +290,26 @@ parts += "[GLOB.TAB]Nobody died this shift!" return parts.Join("
") -/datum/controller/subsystem/ticker/proc/show_roundend_report(client/C,common_report, popcount) - var/list/report_parts = list() - - report_parts += personal_report(C, popcount) - report_parts += common_report +/client/proc/roundend_report_file() + return "data/roundend_reports/[ckey].html" +/datum/controller/subsystem/ticker/proc/show_roundend_report(client/C, previous = FALSE) var/datum/browser/roundend_report = new(C, "roundend") roundend_report.width = 800 roundend_report.height = 600 - roundend_report.set_content(report_parts.Join()) + var/content + var/filename = C.roundend_report_file() + if(!previous) + var/list/report_parts = list(personal_report(C), GLOB.common_report) + content = report_parts.Join() + C.verbs -= /client/proc/show_previous_roundend_report + fdel(filename) + text2file(content, filename) + else + content = file2text(filename) + roundend_report.set_content(content) roundend_report.stylesheets = list() - roundend_report.add_stylesheet("roundend",'html/browser/roundend.css') - + roundend_report.add_stylesheet("roundend", 'html/browser/roundend.css') roundend_report.open(0) /datum/controller/subsystem/ticker/proc/personal_report(client/C, popcount) @@ -327,8 +334,6 @@ else parts += "
" parts += "
" - if(!GLOB.survivor_report) - GLOB.survivor_report = survivor_report(popcount) parts += GLOB.survivor_report parts += "
" @@ -336,8 +341,9 @@ /datum/controller/subsystem/ticker/proc/display_report(popcount) GLOB.common_report = build_roundend_report() + GLOB.survivor_report = survivor_report(popcount) for(var/client/C in GLOB.clients) - show_roundend_report(C,GLOB.common_report, popcount) + show_roundend_report(C, FALSE) give_show_report_button(C) CHECK_TICK @@ -458,7 +464,7 @@ /datum/action/report/Trigger() if(owner && GLOB.common_report && SSticker.current_state == GAME_STATE_FINISHED) - SSticker.show_roundend_report(owner.client,GLOB.common_report) + SSticker.show_roundend_report(owner.client, FALSE) /datum/action/report/IsAvailable() return 1 diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index 79f6a2c007..1f788cf445 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -400,25 +400,25 @@ /proc/slot2body_zone(slot) switch(slot) - if(slot_back, slot_wear_suit, slot_w_uniform, slot_belt, slot_wear_id) + if(SLOT_BACK, SLOT_WEAR_SUIT, SLOT_W_UNIFORM, SLOT_BELT, SLOT_WEAR_ID) return BODY_ZONE_CHEST - if(slot_gloves, slot_hands, slot_handcuffed) + if(SLOT_GLOVES, SLOT_HANDS, SLOT_HANDCUFFED) return pick(BODY_ZONE_PRECISE_L_HAND, BODY_ZONE_PRECISE_R_HAND) - if(slot_head, slot_neck, slot_neck, slot_ears) + if(SLOT_HEAD, SLOT_NECK, SLOT_NECK, SLOT_EARS) return BODY_ZONE_HEAD - if(slot_wear_mask) + if(SLOT_WEAR_MASK) return BODY_ZONE_PRECISE_MOUTH - if(slot_glasses) + if(SLOT_GLASSES) return BODY_ZONE_PRECISE_EYES - if(slot_shoes) + if(SLOT_SHOES) return pick(BODY_ZONE_PRECISE_R_FOOT, BODY_ZONE_PRECISE_L_FOOT) - if(slot_legcuffed) + if(SLOT_LEGCUFFED) return pick(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) //adapted from http://www.tannerhelland.com/4435/convert-temperature-rgb-algorithm-code/ diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm index 168863708c..aad1622a52 100644 --- a/code/_globalvars/bitfields.dm +++ b/code/_globalvars/bitfields.dm @@ -106,17 +106,15 @@ GLOBAL_LIST_INIT(bitfields, list( "REAGENT_NOREACT" = REAGENT_NOREACT ), "flags_1" = list( - "STOPSPRESSUREDMAGE_1 / NOJAUNT_1 (turfs)" = STOPSPRESSUREDMAGE_1, + "NOJAUNT_1" = NOJAUNT_1, "NODROP_1 / UNUSED_TRANSIT_TURF_1 (turfs)" = NODROP_1, "NOBLUDGEON_1 / CAN_BE_DIRTY_1 (turfs)" = NOBLUDGEON_1, - "MASKINTERNALS_1" = MASKINTERNALS_1, "HEAR_1 / NO_DEATHRATTLE_1 (turfs)" = HEAR_1, "CHECK_RICOCHET_1 / NO_RUINS_1 (turfs)" = CHECK_RICOCHET_1, "CONDUCT_1 / NO_LAVA_GEN_1" = CONDUCT_1, "ABSTRACT_1" = ABSTRACT_1, "NODECONSTRUCT_1" = NODECONSTRUCT_1, "OVERLAY_QUEUED_1" = OVERLAY_QUEUED_1, - "NOSLIP_1" = NOSLIP_1 ), "flags_2" = list( "SLOWS_WHILE_IN_HAND_2" = SLOWS_WHILE_IN_HAND_2, @@ -127,7 +125,14 @@ GLOBAL_LIST_INIT(bitfields, list( "HEALS_EARS_2" = HEALS_EARS_2, "OMNITONGUE_2" = OMNITONGUE_2, "TESLA_IGNORE_2" = TESLA_IGNORE_2, - "NO_MAT_REDEMPTION_2" = NO_MAT_REDEMPTION_2, - "LAVA_PROTECT_2" = LAVA_PROTECT_2 - ) + "NO_MAT_REDEMPTION_2" = NO_MAT_REDEMPTION_2 + ), + "clothing_flags" = list( + "LAVAPROTECT" = LAVAPROTECT, + "STOPSPRESSUREDAMAGE" = STOPSPRESSUREDAMAGE, + "BLOCK_GAS_SMOKE_EFFECT" = BLOCK_GAS_SMOKE_EFFECT, + "MASKINTERNALS" = MASKINTERNALS, + "NOSLIP" = NOSLIP, + "THICKMATERIAL" = THICKMATERIAL, + ) )) diff --git a/code/_globalvars/lists/typecache.dm b/code/_globalvars/lists/typecache.dm index f1e2b03790..f4e73f2994 100644 --- a/code/_globalvars/lists/typecache.dm +++ b/code/_globalvars/lists/typecache.dm @@ -10,3 +10,5 @@ GLOBAL_LIST_INIT(typecache_living, typecacheof(/mob/living)) GLOBAL_LIST_INIT(typecache_machine_or_structure, typecacheof(list(/obj/machinery, /obj/structure))) GLOBAL_LIST_INIT(typecache_shuttle_area, typecacheof(/area/shuttle)) + +GLOBAL_LIST_INIT(typecache_clothing, typecacheof(/obj/item/clothing)) diff --git a/code/_onclick/hud/drones.dm b/code/_onclick/hud/drones.dm index b6708b266d..8e39d96bf6 100644 --- a/code/_onclick/hud/drones.dm +++ b/code/_onclick/hud/drones.dm @@ -8,7 +8,7 @@ inv_box.icon_state = "suit_storage" // inv_box.icon_full = "template" inv_box.screen_loc = ui_drone_storage - inv_box.slot_id = slot_generic_dextrous_storage + inv_box.slot_id = SLOT_GENERC_DEXTROUS_STORAGE static_inventory += inv_box inv_box = new /obj/screen/inventory() @@ -17,7 +17,7 @@ inv_box.icon_state = "mask" // inv_box.icon_full = "template" inv_box.screen_loc = ui_drone_head - inv_box.slot_id = slot_head + inv_box.slot_id = SLOT_HEAD static_inventory += inv_box for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory)) diff --git a/code/_onclick/hud/guardian.dm b/code/_onclick/hud/guardian.dm index dc57c2b25c..628efbffe5 100644 --- a/code/_onclick/hud/guardian.dm +++ b/code/_onclick/hud/guardian.dm @@ -45,7 +45,7 @@ inv_box.icon = ui_style inv_box.icon_state = "suit_storage" inv_box.screen_loc = ui_id - inv_box.slot_id = slot_generic_dextrous_storage + inv_box.slot_id = SLOT_GENERC_DEXTROUS_STORAGE static_inventory += inv_box using = new /obj/screen/guardian/Communicate() diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index e5de695789..e4318059d6 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -33,7 +33,7 @@ var/list/obj/screen/hotkeybuttons = list() //the buttons that can be used via hotkeys var/list/infodisplay = list() //the screen objects that display mob info (health, alien plasma, etc...) var/list/screenoverlays = list() //the screen objects used as whole screen overlays (flash, damageoverlay, etc...) - var/list/inv_slots[slots_amt] // /obj/screen/inventory objects, ordered by their slot ID. + var/list/inv_slots[SLOTS_AMT] // /obj/screen/inventory objects, ordered by their slot ID. var/list/hand_slots // /obj/screen/inventory/hand objects, assoc list of "[held_index]" = object var/list/obj/screen/plane_master/plane_masters = list() // see "appearance_flags" in the ref, assoc list of "[plane]" = object @@ -196,7 +196,9 @@ screenmob.client.screen -= infodisplay for(var/thing in plane_masters) - screenmob.client.screen += plane_masters[thing] + var/obj/screen/plane_master/PM = plane_masters[thing] + PM.backdrop(screenmob) + screenmob.client.screen += PM hud_version = display_hud_version persistent_inventory_update(screenmob) diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 501c5fb601..2ac0f14f95 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -139,7 +139,7 @@ inv_box = new /obj/screen/inventory() inv_box.name = "i_clothing" inv_box.icon = ui_style - inv_box.slot_id = slot_w_uniform + inv_box.slot_id = SLOT_W_UNIFORM inv_box.icon_state = "uniform" inv_box.screen_loc = ui_iclothing toggleable_inventory += inv_box @@ -147,7 +147,7 @@ inv_box = new /obj/screen/inventory() inv_box.name = "o_clothing" inv_box.icon = ui_style - inv_box.slot_id = slot_wear_suit + inv_box.slot_id = SLOT_WEAR_SUIT inv_box.icon_state = "suit" inv_box.screen_loc = ui_oclothing toggleable_inventory += inv_box @@ -171,7 +171,7 @@ inv_box.icon = ui_style inv_box.icon_state = "id" inv_box.screen_loc = ui_id - inv_box.slot_id = slot_wear_id + inv_box.slot_id = SLOT_WEAR_ID static_inventory += inv_box inv_box = new /obj/screen/inventory() @@ -179,7 +179,7 @@ inv_box.icon = ui_style inv_box.icon_state = "mask" inv_box.screen_loc = ui_mask - inv_box.slot_id = slot_wear_mask + inv_box.slot_id = SLOT_WEAR_MASK toggleable_inventory += inv_box inv_box = new /obj/screen/inventory() @@ -187,7 +187,7 @@ inv_box.icon = ui_style inv_box.icon_state = "neck" inv_box.screen_loc = ui_neck - inv_box.slot_id = slot_neck + inv_box.slot_id = SLOT_NECK toggleable_inventory += inv_box inv_box = new /obj/screen/inventory() @@ -195,7 +195,7 @@ inv_box.icon = ui_style inv_box.icon_state = "back" inv_box.screen_loc = ui_back - inv_box.slot_id = slot_back + inv_box.slot_id = SLOT_BACK static_inventory += inv_box inv_box = new /obj/screen/inventory() @@ -203,7 +203,7 @@ inv_box.icon = ui_style inv_box.icon_state = "pocket" inv_box.screen_loc = ui_storage1 - inv_box.slot_id = slot_l_store + inv_box.slot_id = SLOT_L_STORE static_inventory += inv_box inv_box = new /obj/screen/inventory() @@ -211,7 +211,7 @@ inv_box.icon = ui_style inv_box.icon_state = "pocket" inv_box.screen_loc = ui_storage2 - inv_box.slot_id = slot_r_store + inv_box.slot_id = SLOT_R_STORE static_inventory += inv_box inv_box = new /obj/screen/inventory() @@ -219,7 +219,7 @@ inv_box.icon = ui_style inv_box.icon_state = "suit_storage" inv_box.screen_loc = ui_sstore1 - inv_box.slot_id = slot_s_store + inv_box.slot_id = SLOT_S_STORE static_inventory += inv_box using = new /obj/screen/resist() @@ -254,7 +254,7 @@ inv_box.icon = ui_style inv_box.icon_state = "gloves" inv_box.screen_loc = ui_gloves - inv_box.slot_id = slot_gloves + inv_box.slot_id = SLOT_GLOVES toggleable_inventory += inv_box inv_box = new /obj/screen/inventory() @@ -262,7 +262,7 @@ inv_box.icon = ui_style inv_box.icon_state = "glasses" inv_box.screen_loc = ui_glasses - inv_box.slot_id = slot_glasses + inv_box.slot_id = SLOT_GLASSES toggleable_inventory += inv_box inv_box = new /obj/screen/inventory() @@ -270,7 +270,7 @@ inv_box.icon = ui_style inv_box.icon_state = "ears" inv_box.screen_loc = ui_ears - inv_box.slot_id = slot_ears + inv_box.slot_id = SLOT_EARS toggleable_inventory += inv_box inv_box = new /obj/screen/inventory() @@ -278,7 +278,7 @@ inv_box.icon = ui_style inv_box.icon_state = "head" inv_box.screen_loc = ui_head - inv_box.slot_id = slot_head + inv_box.slot_id = SLOT_HEAD toggleable_inventory += inv_box inv_box = new /obj/screen/inventory() @@ -286,7 +286,7 @@ inv_box.icon = ui_style inv_box.icon_state = "shoes" inv_box.screen_loc = ui_shoes - inv_box.slot_id = slot_shoes + inv_box.slot_id = SLOT_SHOES toggleable_inventory += inv_box inv_box = new /obj/screen/inventory() @@ -295,7 +295,7 @@ inv_box.icon_state = "belt" // inv_box.icon_full = "template_small" inv_box.screen_loc = ui_belt - inv_box.slot_id = slot_belt + inv_box.slot_id = SLOT_BELT static_inventory += inv_box throw_icon = new /obj/screen/throw_catch() diff --git a/code/_onclick/hud/monkey.dm b/code/_onclick/hud/monkey.dm index 06dbf15cd7..c469c1ef20 100644 --- a/code/_onclick/hud/monkey.dm +++ b/code/_onclick/hud/monkey.dm @@ -1,155 +1,155 @@ -/datum/hud/monkey/New(mob/living/carbon/monkey/owner, ui_style = 'icons/mob/screen_midnight.dmi') - ..() - var/obj/screen/using - var/obj/screen/inventory/inv_box - - action_intent = new /obj/screen/act_intent() - action_intent.icon = ui_style - action_intent.icon_state = mymob.a_intent - action_intent.screen_loc = ui_acti - static_inventory += action_intent - - using = new /obj/screen/mov_intent() - using.icon = ui_style - using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking") - using.screen_loc = ui_movi - static_inventory += using - - using = new/obj/screen/language_menu - using.icon = ui_style - static_inventory += using - - using = new /obj/screen/drop() - using.icon = ui_style - using.screen_loc = ui_drop_throw - static_inventory += using - - build_hand_slots(ui_style) - - using = new /obj/screen/swap_hand() - using.icon = ui_style - using.icon_state = "swap_1_m" //extra wide! - using.screen_loc = ui_swaphand_position(owner,1) - static_inventory += using - - using = new /obj/screen/swap_hand() - using.icon = ui_style - using.icon_state = "swap_2" - using.screen_loc = ui_swaphand_position(owner,2) - static_inventory += using - - inv_box = new /obj/screen/inventory() - inv_box.name = "mask" - inv_box.icon = ui_style - inv_box.icon_state = "mask" -// inv_box.icon_full = "template" - inv_box.screen_loc = ui_monkey_mask - inv_box.slot_id = slot_wear_mask - static_inventory += inv_box - - inv_box = new /obj/screen/inventory() - inv_box.name = "neck" - inv_box.icon = ui_style - inv_box.icon_state = "neck" -// inv_box.icon_full = "template" - inv_box.screen_loc = ui_monkey_neck - inv_box.slot_id = slot_neck - static_inventory += inv_box - - inv_box = new /obj/screen/inventory() - inv_box.name = "head" - inv_box.icon = ui_style - inv_box.icon_state = "head" -// inv_box.icon_full = "template" - inv_box.screen_loc = ui_monkey_head - inv_box.slot_id = slot_head - static_inventory += inv_box - - inv_box = new /obj/screen/inventory() - inv_box.name = "back" - inv_box.icon = ui_style - inv_box.icon_state = "back" - inv_box.screen_loc = ui_monkey_back - inv_box.slot_id = slot_back - static_inventory += inv_box - - throw_icon = new /obj/screen/throw_catch() - throw_icon.icon = ui_style - throw_icon.screen_loc = ui_drop_throw - hotkeybuttons += throw_icon - - internals = new /obj/screen/internals() - infodisplay += internals - - healths = new /obj/screen/healths() - infodisplay += healths - - pull_icon = new /obj/screen/pull() - pull_icon.icon = ui_style - pull_icon.update_icon(mymob) - pull_icon.screen_loc = ui_pull_resist - static_inventory += pull_icon - - lingchemdisplay = new /obj/screen/ling/chems() - infodisplay += lingchemdisplay - - lingstingdisplay = new /obj/screen/ling/sting() - infodisplay += lingstingdisplay - - - zone_select = new /obj/screen/zone_sel() - zone_select.icon = ui_style - zone_select.update_icon(mymob) - static_inventory += zone_select - - mymob.client.screen = list() - - using = new /obj/screen/resist() - using.icon = ui_style - using.screen_loc = ui_pull_resist - hotkeybuttons += using - - for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory)) - if(inv.slot_id) - inv.hud = src - inv_slots[inv.slot_id] = inv - inv.update_icon() - -/datum/hud/monkey/persistent_inventory_update() - if(!mymob) - return - var/mob/living/carbon/monkey/M = mymob - - if(hud_shown) - if(M.back) - M.back.screen_loc = ui_monkey_back - M.client.screen += M.back - if(M.wear_mask) - M.wear_mask.screen_loc = ui_monkey_mask - M.client.screen += M.wear_mask - if(M.wear_neck) - M.wear_neck.screen_loc = ui_monkey_neck - M.client.screen += M.wear_neck - if(M.head) - M.head.screen_loc = ui_monkey_head - M.client.screen += M.head - else - if(M.back) - M.back.screen_loc = null - if(M.wear_mask) - M.wear_mask.screen_loc = null - if(M.head) - M.head.screen_loc = null - - if(hud_version != HUD_STYLE_NOHUD) - for(var/obj/item/I in M.held_items) - I.screen_loc = ui_hand_position(M.get_held_index_of_item(I)) - M.client.screen += I - else - for(var/obj/item/I in M.held_items) - I.screen_loc = null - M.client.screen -= I - -/mob/living/carbon/monkey/create_mob_hud() - if(client && !hud_used) - hud_used = new /datum/hud/monkey(src, ui_style2icon(client.prefs.UI_style)) +/datum/hud/monkey/New(mob/living/carbon/monkey/owner, ui_style = 'icons/mob/screen_midnight.dmi') + ..() + var/obj/screen/using + var/obj/screen/inventory/inv_box + + action_intent = new /obj/screen/act_intent() + action_intent.icon = ui_style + action_intent.icon_state = mymob.a_intent + action_intent.screen_loc = ui_acti + static_inventory += action_intent + + using = new /obj/screen/mov_intent() + using.icon = ui_style + using.icon_state = (mymob.m_intent == MOVE_INTENT_RUN ? "running" : "walking") + using.screen_loc = ui_movi + static_inventory += using + + using = new/obj/screen/language_menu + using.icon = ui_style + static_inventory += using + + using = new /obj/screen/drop() + using.icon = ui_style + using.screen_loc = ui_drop_throw + static_inventory += using + + build_hand_slots(ui_style) + + using = new /obj/screen/swap_hand() + using.icon = ui_style + using.icon_state = "swap_1_m" //extra wide! + using.screen_loc = ui_swaphand_position(owner,1) + static_inventory += using + + using = new /obj/screen/swap_hand() + using.icon = ui_style + using.icon_state = "swap_2" + using.screen_loc = ui_swaphand_position(owner,2) + static_inventory += using + + inv_box = new /obj/screen/inventory() + inv_box.name = "mask" + inv_box.icon = ui_style + inv_box.icon_state = "mask" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_monkey_mask + inv_box.slot_id = SLOT_WEAR_MASK + static_inventory += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "neck" + inv_box.icon = ui_style + inv_box.icon_state = "neck" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_monkey_neck + inv_box.slot_id = SLOT_NECK + static_inventory += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "head" + inv_box.icon = ui_style + inv_box.icon_state = "head" +// inv_box.icon_full = "template" + inv_box.screen_loc = ui_monkey_head + inv_box.slot_id = SLOT_HEAD + static_inventory += inv_box + + inv_box = new /obj/screen/inventory() + inv_box.name = "back" + inv_box.icon = ui_style + inv_box.icon_state = "back" + inv_box.screen_loc = ui_monkey_back + inv_box.slot_id = SLOT_BACK + static_inventory += inv_box + + throw_icon = new /obj/screen/throw_catch() + throw_icon.icon = ui_style + throw_icon.screen_loc = ui_drop_throw + hotkeybuttons += throw_icon + + internals = new /obj/screen/internals() + infodisplay += internals + + healths = new /obj/screen/healths() + infodisplay += healths + + pull_icon = new /obj/screen/pull() + pull_icon.icon = ui_style + pull_icon.update_icon(mymob) + pull_icon.screen_loc = ui_pull_resist + static_inventory += pull_icon + + lingchemdisplay = new /obj/screen/ling/chems() + infodisplay += lingchemdisplay + + lingstingdisplay = new /obj/screen/ling/sting() + infodisplay += lingstingdisplay + + + zone_select = new /obj/screen/zone_sel() + zone_select.icon = ui_style + zone_select.update_icon(mymob) + static_inventory += zone_select + + mymob.client.screen = list() + + using = new /obj/screen/resist() + using.icon = ui_style + using.screen_loc = ui_pull_resist + hotkeybuttons += using + + for(var/obj/screen/inventory/inv in (static_inventory + toggleable_inventory)) + if(inv.slot_id) + inv.hud = src + inv_slots[inv.slot_id] = inv + inv.update_icon() + +/datum/hud/monkey/persistent_inventory_update() + if(!mymob) + return + var/mob/living/carbon/monkey/M = mymob + + if(hud_shown) + if(M.back) + M.back.screen_loc = ui_monkey_back + M.client.screen += M.back + if(M.wear_mask) + M.wear_mask.screen_loc = ui_monkey_mask + M.client.screen += M.wear_mask + if(M.wear_neck) + M.wear_neck.screen_loc = ui_monkey_neck + M.client.screen += M.wear_neck + if(M.head) + M.head.screen_loc = ui_monkey_head + M.client.screen += M.head + else + if(M.back) + M.back.screen_loc = null + if(M.wear_mask) + M.wear_mask.screen_loc = null + if(M.head) + M.head.screen_loc = null + + if(hud_version != HUD_STYLE_NOHUD) + for(var/obj/item/I in M.held_items) + I.screen_loc = ui_hand_position(M.get_held_index_of_item(I)) + M.client.screen += I + else + for(var/obj/item/I in M.held_items) + I.screen_loc = null + M.client.screen -= I + +/mob/living/carbon/monkey/create_mob_hud() + if(client && !hud_used) + hud_used = new /datum/hud/monkey(src, ui_style2icon(client.prefs.UI_style)) diff --git a/code/_onclick/hud/plane_master.dm b/code/_onclick/hud/plane_master.dm index 84add465c6..d4559ed66d 100644 --- a/code/_onclick/hud/plane_master.dm +++ b/code/_onclick/hud/plane_master.dm @@ -29,6 +29,7 @@ blend_mode = BLEND_OVERLAY /obj/screen/plane_master/game_world/backdrop(mob/mymob) + filters = list() if(istype(mymob) && mymob.client && mymob.client.prefs && mymob.client.prefs.ambientocclusion) filters += AMBIENT_OCCLUSION diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 0b895cb600..02ece81b41 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -264,7 +264,7 @@ var/obj/item/clothing/mask/M = C.wear_mask if(M.mask_adjusted) // if mask on face but pushed down M.adjustmask(C) // adjust it back - if( !(M.flags_1 & MASKINTERNALS_1) ) + if( !(M.clothing_flags & MASKINTERNALS) ) to_chat(C, "You are not wearing an internals mask!") return diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index eb5f623035..a060cbb834 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -99,7 +99,7 @@ //stops TK grabs being equipped anywhere but into hands /obj/item/tk_grab/equipped(mob/user, slot) - if(slot == slot_hands) + if(slot == SLOT_HANDS) return qdel(src) return diff --git a/code/controllers/subsystem/ping.dm b/code/controllers/subsystem/ping.dm new file mode 100644 index 0000000000..2cf88bc7ad --- /dev/null +++ b/code/controllers/subsystem/ping.dm @@ -0,0 +1,32 @@ +SUBSYSTEM_DEF(ping) + name = "Ping" + priority = FIRE_PRIORITY_PING + wait = 3 SECONDS + flags = SS_NO_INIT + + var/list/currentrun = list() + +/datum/controller/subsystem/ping/stat_entry() + ..("P:[GLOB.clients.len]") + + +/datum/controller/subsystem/ping/fire(resumed = 0) + if (!resumed) + src.currentrun = GLOB.clients.Copy() + + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + + while (currentrun.len) + var/client/C = currentrun[currentrun.len] + currentrun.len-- + + if (!C || !C.chatOutput || !C.chatOutput.loaded) + if (MC_TICK_CHECK) + return + continue + + // softPang isn't handled anywhere but it'll always reset the opts.lastPang. + C.chatOutput.ehjax_send(data = C.is_afk(29) ? "softPang" : "pang") + if (MC_TICK_CHECK) + return diff --git a/code/datums/action.dm b/code/datums/action.dm index f7b1d6b258..f9575a56ef 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -480,7 +480,7 @@ H.attack_self(owner) return var/obj/item/I = target - if(owner.can_equip(I, slot_hands)) + if(owner.can_equip(I, SLOT_HANDS)) owner.temporarilyRemoveItemFromInventory(I) owner.put_in_hands(I) I.attack_self(owner) diff --git a/code/datums/diseases/_MobProcs.dm b/code/datums/diseases/_MobProcs.dm index 74d4b90493..ba570eca06 100644 --- a/code/datums/diseases/_MobProcs.dm +++ b/code/datums/diseases/_MobProcs.dm @@ -79,8 +79,8 @@ if(isobj(H.wear_suit)) Cl = H.wear_suit passed = prob((Cl.permeability_coefficient*100) - 1) - if(passed && isobj(slot_w_uniform)) - Cl = slot_w_uniform + if(passed && isobj(SLOT_W_UNIFORM)) + Cl = SLOT_W_UNIFORM passed = prob((Cl.permeability_coefficient*100) - 1) if(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM) if(isobj(H.wear_suit) && H.wear_suit.body_parts_covered&HANDS) diff --git a/code/datums/diseases/wizarditis.dm b/code/datums/diseases/wizarditis.dm index cfc848000b..919eaa6e12 100644 --- a/code/datums/diseases/wizarditis.dm +++ b/code/datums/diseases/wizarditis.dm @@ -61,19 +61,19 @@ STI KALY - blind if(!istype(H.head, /obj/item/clothing/head/wizard)) if(!H.dropItemToGround(H.head)) qdel(H.head) - H.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(H), slot_head) + H.equip_to_slot_or_del(new /obj/item/clothing/head/wizard(H), SLOT_HEAD) return if(prob(chance)) if(!istype(H.wear_suit, /obj/item/clothing/suit/wizrobe)) if(!H.dropItemToGround(H.wear_suit)) qdel(H.wear_suit) - H.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(H), slot_wear_suit) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe(H), SLOT_WEAR_SUIT) return if(prob(chance)) if(!istype(H.shoes, /obj/item/clothing/shoes/sandal/magic)) if(!H.dropItemToGround(H.shoes)) qdel(H.shoes) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(H), slot_shoes) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(H), SLOT_SHOES) return else var/mob/living/carbon/H = affected_mob diff --git a/code/datums/martial/boxing.dm b/code/datums/martial/boxing.dm index 5f97db0827..68b021bc7d 100644 --- a/code/datums/martial/boxing.dm +++ b/code/datums/martial/boxing.dm @@ -53,7 +53,7 @@ /obj/item/clothing/gloves/boxing/equipped(mob/user, slot) if(!ishuman(user)) return - if(slot == slot_gloves) + if(slot == SLOT_GLOVES) var/mob/living/carbon/human/H = user style.teach(H,1) return @@ -62,6 +62,6 @@ if(!ishuman(user)) return var/mob/living/carbon/human/H = user - if(H.get_item_by_slot(slot_gloves) == src) + if(H.get_item_by_slot(SLOT_GLOVES) == src) style.remove(H) return diff --git a/code/datums/martial/krav_maga.dm b/code/datums/martial/krav_maga.dm index 82497adf45..21a82c7b7e 100644 --- a/code/datums/martial/krav_maga.dm +++ b/code/datums/martial/krav_maga.dm @@ -170,7 +170,7 @@ /obj/item/clothing/gloves/krav_maga/equipped(mob/user, slot) if(!ishuman(user)) return - if(slot == slot_gloves) + if(slot == SLOT_GLOVES) var/mob/living/carbon/human/H = user style.teach(H,1) @@ -178,7 +178,7 @@ if(!ishuman(user)) return var/mob/living/carbon/human/H = user - if(H.get_item_by_slot(slot_gloves) == src) + if(H.get_item_by_slot(SLOT_GLOVES) == src) style.remove(H) /obj/item/clothing/gloves/krav_maga/sec//more obviously named, given to sec diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm index 2ec94a930c..cda88187cd 100644 --- a/code/datums/martial/sleeping_carp.dm +++ b/code/datums/martial/sleeping_carp.dm @@ -161,7 +161,7 @@ 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 = WEIGHT_CLASS_BULKY - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK force_unwielded = 10 force_wielded = 24 throwforce = 20 diff --git a/code/datums/martial/wrestling.dm b/code/datums/martial/wrestling.dm index 8ac7e76cdb..62a03af933 100644 --- a/code/datums/martial/wrestling.dm +++ b/code/datums/martial/wrestling.dm @@ -448,7 +448,7 @@ /obj/item/storage/belt/champion/wrestling/equipped(mob/user, slot) if(!ishuman(user)) return - if(slot == slot_belt) + if(slot == SLOT_BELT) var/mob/living/carbon/human/H = user style.teach(H,1) return @@ -457,6 +457,6 @@ if(!ishuman(user)) return var/mob/living/carbon/human/H = user - if(H.get_item_by_slot(slot_belt) == src) + if(H.get_item_by_slot(SLOT_BELT) == src) style.remove(H) return diff --git a/code/datums/outfit.dm b/code/datums/outfit.dm index e5e13f597f..90feeacb79 100755 --- a/code/datums/outfit.dm +++ b/code/datums/outfit.dm @@ -39,31 +39,31 @@ //Start with uniform,suit,backpack for additional slots if(uniform) - H.equip_to_slot_or_del(new uniform(H),slot_w_uniform) + H.equip_to_slot_or_del(new uniform(H),SLOT_W_UNIFORM) if(suit) - H.equip_to_slot_or_del(new suit(H),slot_wear_suit) + H.equip_to_slot_or_del(new suit(H),SLOT_WEAR_SUIT) if(back) - H.equip_to_slot_or_del(new back(H),slot_back) + H.equip_to_slot_or_del(new back(H),SLOT_BACK) if(belt) - H.equip_to_slot_or_del(new belt(H),slot_belt) + H.equip_to_slot_or_del(new belt(H),SLOT_BELT) if(gloves) - H.equip_to_slot_or_del(new gloves(H),slot_gloves) + H.equip_to_slot_or_del(new gloves(H),SLOT_GLOVES) if(shoes) - H.equip_to_slot_or_del(new shoes(H),slot_shoes) + H.equip_to_slot_or_del(new shoes(H),SLOT_SHOES) if(head) - H.equip_to_slot_or_del(new head(H),slot_head) + H.equip_to_slot_or_del(new head(H),SLOT_HEAD) if(mask) - H.equip_to_slot_or_del(new mask(H),slot_wear_mask) + H.equip_to_slot_or_del(new mask(H),SLOT_WEAR_MASK) if(neck) - H.equip_to_slot_or_del(new neck(H),slot_neck) + H.equip_to_slot_or_del(new neck(H),SLOT_NECK) if(ears) - H.equip_to_slot_or_del(new ears(H),slot_ears) + H.equip_to_slot_or_del(new ears(H),SLOT_EARS) if(glasses) - H.equip_to_slot_or_del(new glasses(H),slot_glasses) + H.equip_to_slot_or_del(new glasses(H),SLOT_GLASSES) if(id) - H.equip_to_slot_or_del(new id(H),slot_wear_id) + H.equip_to_slot_or_del(new id(H),SLOT_WEAR_ID) if(suit_store) - H.equip_to_slot_or_del(new suit_store(H),slot_s_store) + H.equip_to_slot_or_del(new suit_store(H),SLOT_S_STORE) if(accessory) var/obj/item/clothing/under/U = H.w_uniform @@ -79,16 +79,16 @@ if(!visualsOnly) // Items in pockets or backpack don't show up on mob's icon. if(l_pocket) - H.equip_to_slot_or_del(new l_pocket(H),slot_l_store) + H.equip_to_slot_or_del(new l_pocket(H),SLOT_L_STORE) if(r_pocket) - H.equip_to_slot_or_del(new r_pocket(H),slot_r_store) + H.equip_to_slot_or_del(new r_pocket(H),SLOT_R_STORE) if(backpack_contents) for(var/path in backpack_contents) var/number = backpack_contents[path] if(!isnum(number))//Default to 1 number = 1 for(var/i in 1 to number) - H.equip_to_slot_or_del(new path(H),slot_in_backpack) + H.equip_to_slot_or_del(new path(H),SLOT_IN_BACKPACK) if(!H.head && toggle_helmet && istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit)) var/obj/item/clothing/suit/space/hardsuit/HS = H.wear_suit diff --git a/code/datums/traits/_quirk.dm b/code/datums/traits/_quirk.dm index 5f0d1be1f2..b39da84575 100644 --- a/code/datums/traits/_quirk.dm +++ b/code/datums/traits/_quirk.dm @@ -120,7 +120,7 @@ Use this as a guideline var/mob/living/carbon/human/H = quirk_holder var/obj/item/clothing/glasses/regular/glasses = new(get_turf(H)) H.put_in_hands(glasses) - H.equip_to_slot(glasses, slot_glasses) + H.equip_to_slot(glasses, SLOT_GLASSES) H.regenerate_icons() //This whole proc is called automatically @@ -130,3 +130,5 @@ Use this as a guideline //If you don't need any special effects like spawning glasses, then you don't need an add() */ + + diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 0a2ce2f24c..7752cc31c3 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -58,9 +58,9 @@ /obj/item/dice/d20) heirloom = new heirloom_type(get_turf(quirk_holder)) var/list/slots = list( - "in your backpack" = slot_in_backpack, - "in your left pocket" = slot_l_store, - "in your right pocket" = slot_r_store + "in your backpack" = SLOT_IN_BACKPACK, + "in your left pocket" = SLOT_L_STORE, + "in your right pocket" = SLOT_R_STORE ) var/where = H.equip_in_one_of_slots(heirloom, slots) if(!where) @@ -121,7 +121,7 @@ var/mob/living/carbon/human/H = quirk_holder var/obj/item/clothing/glasses/regular/glasses = new(get_turf(H)) H.put_in_hands(glasses) - H.equip_to_slot(glasses, slot_glasses) + H.equip_to_slot(glasses, SLOT_GLASSES) H.regenerate_icons() //this is to remove the inhand icon, which persists even if it's not in their hands diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index a77bf196c2..93d77209e0 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -1,6 +1,6 @@ GLOBAL_LIST_INIT(possible_changeling_IDs, list("Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega")) GLOBAL_LIST_INIT(slots, list("head", "wear_mask", "back", "wear_suit", "w_uniform", "shoes", "belt", "gloves", "glasses", "ears", "wear_id", "s_store")) -GLOBAL_LIST_INIT(slot2slot, list("head" = slot_head, "wear_mask" = slot_wear_mask, "neck" = slot_neck, "back" = slot_back, "wear_suit" = slot_wear_suit, "w_uniform" = slot_w_uniform, "shoes" = slot_shoes, "belt" = slot_belt, "gloves" = slot_gloves, "glasses" = slot_glasses, "ears" = slot_ears, "wear_id" = slot_wear_id, "s_store" = slot_s_store)) +GLOBAL_LIST_INIT(slot2slot, list("head" = SLOT_HEAD, "wear_mask" = SLOT_WEAR_MASK, "neck" = SLOT_NECK, "back" = SLOT_BACK, "wear_suit" = SLOT_WEAR_SUIT, "w_uniform" = SLOT_W_UNIFORM, "shoes" = SLOT_SHOES, "belt" = SLOT_BELT, "gloves" = SLOT_GLOVES, "glasses" = SLOT_GLASSES, "ears" = SLOT_EARS, "wear_id" = SLOT_WEAR_ID, "s_store" = SLOT_S_STORE)) GLOBAL_LIST_INIT(slot2type, list("head" = /obj/item/clothing/head/changeling, "wear_mask" = /obj/item/clothing/mask/changeling, "back" = /obj/item/changeling, "wear_suit" = /obj/item/clothing/suit/changeling, "w_uniform" = /obj/item/clothing/under/changeling, "shoes" = /obj/item/clothing/shoes/changeling, "belt" = /obj/item/changeling, "gloves" = /obj/item/clothing/gloves/changeling, "glasses" = /obj/item/clothing/glasses/changeling, "ears" = /obj/item/changeling, "wear_id" = /obj/item/changeling, "s_store" = /obj/item/changeling)) GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our this objective to all lings diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index 457bab6c3c..355dd869b1 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -198,7 +198,7 @@ Credit where due: L.equipOutfit(/datum/outfit/servant_of_ratvar) var/obj/item/clockwork/slab/S = new var/slot = "At your feet" - var/list/slots = list("In your left pocket" = slot_l_store, "In your right pocket" = slot_r_store, "In your backpack" = slot_in_backpack, "On your belt" = slot_belt) + var/list/slots = list("In your left pocket" = SLOT_L_STORE, "In your right pocket" = SLOT_R_STORE, "In your backpack" = SLOT_IN_BACKPACK, "On your belt" = SLOT_BELT) if(ishuman(L)) var/mob/living/carbon/human/H = L slot = H.equip_in_one_of_slots(S, slots) diff --git a/code/game/gamemodes/clown_ops/bananium_bomb.dm b/code/game/gamemodes/clown_ops/bananium_bomb.dm index 86db2e94f9..c7212a671c 100644 --- a/code/game/gamemodes/clown_ops/bananium_bomb.dm +++ b/code/game/gamemodes/clown_ops/bananium_bomb.dm @@ -43,17 +43,17 @@ if(!H.w_uniform || H.dropItemToGround(H.w_uniform)) C = new /obj/item/clothing/under/rank/clown(H) C.flags_1 |= NODROP_1 //mwahaha - H.equip_to_slot_or_del(C, slot_w_uniform) + H.equip_to_slot_or_del(C, SLOT_W_UNIFORM) if(!H.shoes || H.dropItemToGround(H.shoes)) C = new /obj/item/clothing/shoes/clown_shoes(H) C.flags_1 |= NODROP_1 - H.equip_to_slot_or_del(C, slot_shoes) + H.equip_to_slot_or_del(C, SLOT_SHOES) if(!H.wear_mask || H.dropItemToGround(H.wear_mask)) C = new /obj/item/clothing/mask/gas/clown_hat(H) C.flags_1 |= NODROP_1 - H.equip_to_slot_or_del(C, slot_wear_mask) + H.equip_to_slot_or_del(C, SLOT_WEAR_MASK) H.dna.add_mutation(CLOWNMUT) H.gain_trauma(/datum/brain_trauma/mild/phobia, TRAUMA_RESILIENCE_LOBOTOMY, "clowns") //MWA HA HA diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm index 1c1e46b59c..067bb8c84c 100644 --- a/code/game/gamemodes/clown_ops/clown_weapons.dm +++ b/code/game/gamemodes/clown_ops/clown_weapons.dm @@ -15,7 +15,7 @@ /obj/item/clothing/shoes/clown_shoes/combat name = "combat clown shoes" desc = "advanced clown shoes that protect the wearer and render them nearly immune to slipping on their own peels. They also squeek at 100% capacity." - flags_1 = NOSLIP_1 + clothing_flags = NOSLIP slowdown = SHOES_SLOWDOWN armor = list("melee" = 25, "bullet" = 25, "laser" = 25, "energy" = 25, "bomb" = 50, "bio" = 10, "rad" = 0, "fire" = 70, "acid" = 50) strip_delay = 70 @@ -209,7 +209,7 @@ if(!istype(M.wear_mask, /obj/item/clothing/mask/gas/clown_hat) && !istype(M.wear_mask, /obj/item/clothing/mask/gas/mime) ) if(!M.wear_mask || M.dropItemToGround(M.wear_mask)) var/obj/item/clothing/mask/fakemoustache/sticky/the_stash = new /obj/item/clothing/mask/fakemoustache/sticky() - M.equip_to_slot_or_del(the_stash, slot_wear_mask, TRUE, TRUE, TRUE, TRUE) + M.equip_to_slot_or_del(the_stash, SLOT_WEAR_MASK, TRUE, TRUE, TRUE, TRUE) /obj/item/clothing/mask/fakemoustache/sticky var/unstick_time = 600 diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index b6ea8c5234..3b7dca1a81 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -155,7 +155,7 @@ if(tc) var/obj/item/radio/uplink/U = new uplink_type(H, H.key, tc) - H.equip_to_slot_or_del(U, slot_in_backpack) + H.equip_to_slot_or_del(U, SLOT_IN_BACKPACK) var/obj/item/implant/weapons_auth/W = new/obj/item/implant/weapons_auth(H) W.implant(H) @@ -171,7 +171,7 @@ mask = /obj/item/clothing/mask/gas/syndicate suit = /obj/item/clothing/suit/space/hardsuit/syndi r_pocket = /obj/item/tank/internals/emergency_oxygen/engi - internals_slot = slot_r_store + internals_slot = SLOT_R_STORE belt = /obj/item/storage/belt/military r_hand = /obj/item/gun/ballistic/automatic/shotgun/bulldog backpack_contents = list(/obj/item/storage/box/syndie=1,\ diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index fd9a1abd4a..7559e21e21 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -114,7 +114,7 @@ GLOBAL_LIST_EMPTY(objectives) if(receiver && receiver.current) if(ishuman(receiver.current)) var/mob/living/carbon/human/H = receiver.current - var/list/slots = list("backpack" = slot_in_backpack) + var/list/slots = list("backpack" = SLOT_IN_BACKPACK) for(var/eq_path in special_equipment) var/obj/O = new eq_path H.equip_in_one_of_slots(O, slots) diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 7aab26dc63..59bf9f86fd 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -4,7 +4,7 @@ icon_state = "box_0" density = TRUE max_integrity = 250 - var/obj/item/circuitboard/circuit = null + var/obj/item/circuitboard/machine/circuit = null var/state = 1 /obj/structure/frame/examine(user) @@ -165,6 +165,13 @@ icon_state = "box_1" return + if(istype(P, /obj/item/wrench) && !circuit.needs_anchored) + to_chat(user, "You start [anchored ? "un" : ""]securing [name]...") + if(P.use_tool(src, user, 40, volume=75)) + to_chat(user, "You [anchored ? "un" : ""]secure [name].") + anchored = !anchored + return + if(istype(P, /obj/item/screwdriver)) var/component_check = 1 for(var/R in req_components) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 76a0c39021..db0a9a5866 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1070,10 +1070,8 @@ else playsound(src.loc, 'sound/machines/airlockforced.ogg', 30, 1) - if(autoclose && normalspeed) - addtimer(CALLBACK(src, .proc/autoclose), 150) - else if(autoclose && !normalspeed) - addtimer(CALLBACK(src, .proc/autoclose), 15) + if(autoclose) + autoclose_in(normalspeed ? 150 : 15) if(!density) return TRUE @@ -1106,7 +1104,7 @@ if(safe) for(var/atom/movable/M in get_turf(src)) if(M.density && M != src) //something is blocking the door - addtimer(CALLBACK(src, .proc/autoclose), 60) + autoclose_in(60) return if(forced < 2) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 7c16f05fd1..ed92d9f385 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -274,7 +274,7 @@ for(var/atom/movable/M in get_turf(src)) if(M.density && M != src) //something is blocking the door if(autoclose) - addtimer(CALLBACK(src, .proc/autoclose), 60) + autoclose_in(60) return operating = TRUE @@ -326,6 +326,9 @@ if(!QDELETED(src) && !density && !operating && !locked && !welded && autoclose) close() +/obj/machinery/door/proc/autoclose_in(wait) + addtimer(CALLBACK(src, .proc/autoclose), wait, TIMER_UNIQUE | TIMER_NO_HASH_WAIT | TIMER_OVERRIDE) + /obj/machinery/door/proc/requiresID() return 1 diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 3f26e7d80d..4a2df11151 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -144,9 +144,7 @@ else close() -/obj/machinery/door/firedoor/interact(mob/user) - if(!issilicon(user)) - return TRUE +/obj/machinery/door/firedoor/attack_ai(mob/user) add_fingerprint(user) if(welded || operating || stat & NOPOWER) return TRUE @@ -156,6 +154,9 @@ close() return TRUE +/obj/machinery/door/firedoor/attack_robot(mob/user) + return attack_ai(user) + /obj/machinery/door/firedoor/attack_alien(mob/user) add_fingerprint(user) if(welded) diff --git a/code/game/machinery/launch_pad.dm b/code/game/machinery/launch_pad.dm index 93a6cfca62..95bf10bc6c 100644 --- a/code/game/machinery/launch_pad.dm +++ b/code/game/machinery/launch_pad.dm @@ -242,7 +242,7 @@ icon = 'icons/obj/telescience.dmi' icon_state = "blpad-remote" w_class = WEIGHT_CLASS_SMALL - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT var/sending = TRUE var/obj/machinery/launchpad/briefcase/pad diff --git a/code/game/objects/effects/glowshroom.dm b/code/game/objects/effects/glowshroom.dm index 8dab6e4246..42d0f097d9 100644 --- a/code/game/objects/effects/glowshroom.dm +++ b/code/game/objects/effects/glowshroom.dm @@ -78,7 +78,7 @@ pixel_x = -32 icon_state = "[base_icon_state][rand(1,3)]" else //if on the floor, glowshroom on-floor sprite - icon_state = "[base_icon_state]f" + icon_state = base_icon_state addtimer(CALLBACK(src, .proc/Spread), delay) diff --git a/code/game/objects/effects/spawners/bombspawner.dm b/code/game/objects/effects/spawners/bombspawner.dm index 2de7770b72..b1bb3e6b4d 100644 --- a/code/game/objects/effects/spawners/bombspawner.dm +++ b/code/game/objects/effects/spawners/bombspawner.dm @@ -1,46 +1,67 @@ +#define CELSIUS_TO_KELVIN(T_K) ((T_K) + T0C) + +#define OPTIMAL_TEMP_K_PLA_BURN_SCALE(PRESSURE_P,PRESSURE_O,TEMP_O) (((PRESSURE_P) * GLOB.meta_gas_info[/datum/gas/plasma][META_GAS_SPECIFIC_HEAT]) / (((PRESSURE_P) * GLOB.meta_gas_info[/datum/gas/plasma][META_GAS_SPECIFIC_HEAT] + (PRESSURE_O) * GLOB.meta_gas_info[/datum/gas/oxygen][META_GAS_SPECIFIC_HEAT]) / PLASMA_UPPER_TEMPERATURE - (PRESSURE_O) * GLOB.meta_gas_info[/datum/gas/oxygen][META_GAS_SPECIFIC_HEAT] / CELSIUS_TO_KELVIN(TEMP_O))) +#define OPTIMAL_TEMP_K_PLA_BURN_RATIO(PRESSURE_P,PRESSURE_O,TEMP_O) (CELSIUS_TO_KELVIN(TEMP_O) * PLASMA_OXYGEN_FULLBURN * (PRESSURE_P) / (PRESSURE_O)) + /obj/effect/spawner/newbomb name = "bomb" icon = 'icons/mob/screen_gen.dmi' icon_state = "x" - var/btemp1 = 1500 - var/btemp2 = 1000 // tank temperatures + var/temp_p = 1500 + var/temp_o = 1000 // tank temperatures + var/pressure_p = 10 * ONE_ATMOSPHERE + var/pressure_o = 10 * ONE_ATMOSPHERE //tank pressures var/assembly_type /obj/effect/spawner/newbomb/Initialize() . = ..() var/obj/item/transfer_valve/V = new(src.loc) - var/obj/item/tank/internals/plasma/full/PT = new(V) + var/obj/item/tank/internals/plasma/PT = new(V) var/obj/item/tank/internals/oxygen/OT = new(V) - PT.air_contents.temperature = btemp1 + T0C - OT.air_contents.temperature = btemp2 + T0C + PT.air_contents.assert_gas(/datum/gas/plasma) + PT.air_contents.gases[/datum/gas/plasma][MOLES] = pressure_p*PT.volume/(R_IDEAL_GAS_EQUATION*CELSIUS_TO_KELVIN(temp_p)) + PT.air_contents.temperature = CELSIUS_TO_KELVIN(temp_p) + + OT.air_contents.assert_gas(/datum/gas/oxygen) + OT.air_contents.gases[/datum/gas/oxygen][MOLES] = pressure_o*OT.volume/(R_IDEAL_GAS_EQUATION*CELSIUS_TO_KELVIN(temp_o)) + OT.air_contents.temperature = CELSIUS_TO_KELVIN(temp_o) V.tank_one = PT V.tank_two = OT PT.master = V OT.master = V - + if(assembly_type) var/obj/item/assembly/A = new assembly_type(V) V.attached_device = A A.holder = V - A.toggle_secure() V.update_icon() - + return INITIALIZE_HINT_QDEL +/obj/effect/spawner/newbomb/timer/syndicate/Initialize() + temp_p = (OPTIMAL_TEMP_K_PLA_BURN_SCALE(pressure_p, pressure_o, temp_o)/2 + OPTIMAL_TEMP_K_PLA_BURN_RATIO(pressure_p, pressure_o, temp_o)/2) - T0C + . = ..() + /obj/effect/spawner/newbomb/timer assembly_type = /obj/item/assembly/timer /obj/effect/spawner/newbomb/timer/syndicate - btemp1 = 150 - btemp2 = 20 + pressure_o = TANK_LEAK_PRESSURE - 1 + temp_o = 20 + + pressure_p = TANK_LEAK_PRESSURE - 1 /obj/effect/spawner/newbomb/proximity assembly_type = /obj/item/assembly/prox_sensor /obj/effect/spawner/newbomb/radio assembly_type = /obj/item/assembly/signaler - + +#undef CELSIUS_TO_KELVIN + +#undef OPTIMAL_TEMP_K_PLA_BURN_SCALE +#undef OPTIMAL_TEMP_K_PLA_BURN_RATIO diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 9211c77cb9..042ff6d8f0 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -381,7 +381,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) //sometimes we only want to grant the item's action if it's equipped in a specific slot. /obj/item/proc/item_action_slot_check(slot, mob/user) - if(slot == slot_in_backpack || slot == slot_legcuffed) //these aren't true slots, so avoid granting actions there + if(slot == SLOT_IN_BACKPACK || slot == SLOT_LEGCUFFED) //these aren't true slots, so avoid granting actions there return FALSE return TRUE @@ -545,29 +545,29 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) return var/mob/owner = loc var/flags = slot_flags - if(flags & SLOT_OCLOTHING) + if(flags & ITEM_SLOT_OCLOTHING) owner.update_inv_wear_suit() - if(flags & SLOT_ICLOTHING) + if(flags & ITEM_SLOT_ICLOTHING) owner.update_inv_w_uniform() - if(flags & SLOT_GLOVES) + if(flags & ITEM_SLOT_GLOVES) owner.update_inv_gloves() - if(flags & SLOT_EYES) + if(flags & ITEM_SLOT_EYES) owner.update_inv_glasses() - if(flags & SLOT_EARS) + if(flags & ITEM_SLOT_EARS) owner.update_inv_ears() - if(flags & SLOT_MASK) + if(flags & ITEM_SLOT_MASK) owner.update_inv_wear_mask() - if(flags & SLOT_HEAD) + if(flags & ITEM_SLOT_HEAD) owner.update_inv_head() - if(flags & SLOT_FEET) + if(flags & ITEM_SLOT_FEET) owner.update_inv_shoes() - if(flags & SLOT_ID) + if(flags & ITEM_SLOT_ID) owner.update_inv_wear_id() - if(flags & SLOT_BELT) + if(flags & ITEM_SLOT_BELT) owner.update_inv_belt() - if(flags & SLOT_BACK) + if(flags & ITEM_SLOT_BACK) owner.update_inv_back() - if(flags & SLOT_NECK) + if(flags & ITEM_SLOT_NECK) owner.update_inv_neck() /obj/item/proc/is_hot() @@ -592,7 +592,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE) if(ismob(location)) var/mob/M = location var/success = FALSE - if(src == M.get_item_by_slot(slot_wear_mask)) + if(src == M.get_item_by_slot(SLOT_WEAR_MASK)) success = TRUE if(success) location = get_turf(M) diff --git a/code/game/objects/items/airlock_painter.dm b/code/game/objects/items/airlock_painter.dm index c51917b695..be9cb0b89a 100644 --- a/code/game/objects/items/airlock_painter.dm +++ b/code/game/objects/items/airlock_painter.dm @@ -10,7 +10,7 @@ materials = list(MAT_METAL=50, MAT_GLASS=50) flags_1 = CONDUCT_1 | NOBLUDGEON_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT usesound = 'sound/effects/spray2.ogg' var/obj/item/toner/ink = null diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 08e6204c63..ea332c77de 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -97,7 +97,7 @@ item_state = "card-id" lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi' - slot_flags = SLOT_ID + slot_flags = ITEM_SLOT_ID armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) resistance_flags = FIRE_PROOF | ACID_PROOF var/mining_points = 0 //For redeeming at mining equipment vendors diff --git a/code/game/objects/items/chrono_eraser.dm b/code/game/objects/items/chrono_eraser.dm index 107e4eb5db..d861b515f8 100644 --- a/code/game/objects/items/chrono_eraser.dm +++ b/code/game/objects/items/chrono_eraser.dm @@ -9,7 +9,7 @@ lefthand_file = 'icons/mob/inhands/equipment/backpack_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/backpack_righthand.dmi' w_class = WEIGHT_CLASS_BULKY - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK slowdown = 1 actions_types = list(/datum/action/item_action/equip_unequip_TED_Gun) var/obj/item/gun/energy/chrono_gun/PA = null @@ -38,7 +38,7 @@ user.put_in_hands(PA) /obj/item/chrono_eraser/item_action_slot_check(slot, mob/user) - if(slot == slot_back) + if(slot == SLOT_BACK) return 1 /obj/item/gun/energy/chrono_gun diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index db2232278f..02db0a4914 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -86,7 +86,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM ..() /obj/item/proc/help_light_cig(mob/living/M) - var/mask_item = M.get_item_by_slot(slot_wear_mask) + var/mask_item = M.get_item_by_slot(SLOT_WEAR_MASK) if(istype(mask_item, /obj/item/clothing/mask/cigarette)) return mask_item @@ -129,7 +129,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM reagents.add_reagent_list(list_reagents) if(starts_lit) light() - AddComponent(/datum/component/knockoff,90,list(BODY_ZONE_PRECISE_MOUTH),list(slot_wear_mask))//90% to knock off when wearing a mask + AddComponent(/datum/component/knockoff,90,list(BODY_ZONE_PRECISE_MOUTH),list(SLOT_WEAR_MASK))//90% to knock off when wearing a mask /obj/item/clothing/mask/cigarette/Destroy() STOP_PROCESSING(SSobj, src) @@ -489,7 +489,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM item_state = "zippo" w_class = WEIGHT_CLASS_TINY flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT var/lit = 0 var/fancy = TRUE heat = 1500 @@ -749,7 +749,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM return /obj/item/clothing/mask/vape/equipped(mob/user, slot) - if(slot == slot_wear_mask) + if(slot == SLOT_WEAR_MASK) if(!screw) to_chat(user, "You start puffing on the vape.") reagents.set_reacting(TRUE) @@ -759,7 +759,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM /obj/item/clothing/mask/vape/dropped(mob/user) var/mob/living/carbon/C = user - if(C.get_item_by_slot(slot_wear_mask) == src) + if(C.get_item_by_slot(SLOT_WEAR_MASK) == src) reagents.set_reacting(FALSE) STOP_PROCESSING(SSobj, src) diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 5b7312d680..f38c880b06 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -9,7 +9,7 @@ item_state = "defibunit" lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK force = 5 throwforce = 6 w_class = WEIGHT_CLASS_BULKY @@ -46,11 +46,11 @@ update_charge() /obj/item/defibrillator/proc/update_power() - if(cell) - if(cell.charge < paddles.revivecost) + if(!QDELETED(cell)) + if(QDELETED(paddles) || cell.charge < paddles.revivecost) powered = FALSE else - powered = 1 + powered = TRUE else powered = FALSE @@ -67,7 +67,7 @@ /obj/item/defibrillator/proc/update_charge() if(powered) //so it doesn't show charge if it's unpowered - if(cell) + if(!QDELETED(cell)) var/ratio = cell.charge / cell.maxcharge ratio = CEILING(ratio*4, 1) * 25 add_overlay("[initial(icon_state)]-charge[ratio]") @@ -83,14 +83,14 @@ //ATTACK HAND IGNORING PARENT RETURN VALUE /obj/item/defibrillator/attack_hand(mob/user) if(loc == user) - if(slot_flags == SLOT_BACK) - if(user.get_item_by_slot(slot_back) == src) + if(slot_flags == ITEM_SLOT_BACK) + if(user.get_item_by_slot(SLOT_BACK) == src) ui_action_click() else to_chat(user, "Put the defibrillator on your back first!") - else if(slot_flags == SLOT_BELT) - if(user.get_item_by_slot(slot_belt) == src) + else if(slot_flags == ITEM_SLOT_BELT) + if(user.get_item_by_slot(SLOT_BELT) == src) ui_action_click() else to_chat(user, "Strap the defibrillator's belt on first!") @@ -185,7 +185,7 @@ /obj/item/defibrillator/equipped(mob/user, slot) ..() - if((slot_flags == SLOT_BACK && slot != slot_back) || (slot_flags == SLOT_BELT && slot != slot_belt)) + if((slot_flags == ITEM_SLOT_BACK && slot != SLOT_BACK) || (slot_flags == ITEM_SLOT_BELT && slot != SLOT_BELT)) remove_paddles(user) update_icon() @@ -238,7 +238,7 @@ icon_state = "defibcompact" item_state = "defibcompact" w_class = WEIGHT_CLASS_NORMAL - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT /obj/item/defibrillator/compact/item_action_slot_check(slot, mob/user) if(slot == user.getBeltSlot()) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 29897a4506..093ee1c4b7 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -21,7 +21,7 @@ GLOBAL_LIST_EMPTY(PDAs) righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' flags_1 = NOBLUDGEON_1 w_class = WEIGHT_CLASS_TINY - slot_flags = SLOT_ID | SLOT_BELT + slot_flags = ITEM_SLOT_ID | ITEM_SLOT_BELT armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) resistance_flags = FIRE_PROOF | ACID_PROOF diff --git a/code/game/objects/items/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm index 3ee5441824..c1de90f3f0 100644 --- a/code/game/objects/items/devices/aicard.dm +++ b/code/game/objects/items/devices/aicard.dm @@ -7,7 +7,7 @@ lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' w_class = WEIGHT_CLASS_SMALL - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT flags_1 = NOBLUDGEON_1 var/flush = FALSE var/mob/living/silicon/ai/AI diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm index 181ae9eb41..d5d025619c 100644 --- a/code/game/objects/items/devices/chameleonproj.dm +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -3,7 +3,7 @@ icon = 'icons/obj/device.dmi' icon_state = "shield0" flags_1 = CONDUCT_1 | NOBLUDGEON_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT item_state = "electronic" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 8ba7a55d93..3386b975e3 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -8,7 +8,7 @@ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' w_class = WEIGHT_CLASS_SMALL flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT materials = list(MAT_METAL=50, MAT_GLASS=20) actions_types = list(/datum/action/item_action/toggle_light) var/on = FALSE @@ -348,7 +348,7 @@ icon_state = "slime" item_state = "slime" w_class = WEIGHT_CLASS_SMALL - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT materials = list() brightness_on = 6 //luminosity when on diff --git a/code/game/objects/items/devices/forcefieldprojector.dm b/code/game/objects/items/devices/forcefieldprojector.dm index f9c8084ea5..bb0914eeec 100644 --- a/code/game/objects/items/devices/forcefieldprojector.dm +++ b/code/game/objects/items/devices/forcefieldprojector.dm @@ -3,7 +3,7 @@ desc = "An experimental device that can create several forcefields at a distance." icon = 'icons/obj/device.dmi' icon_state = "signmaker_engi" - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_SMALL flags_1 = NOBLUDGEON_1 item_state = "electronic" diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm index fab8900fe1..1b4bb55f99 100644 --- a/code/game/objects/items/devices/geiger_counter.dm +++ b/code/game/objects/items/devices/geiger_counter.dm @@ -17,7 +17,7 @@ lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' w_class = WEIGHT_CLASS_SMALL - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT materials = list(MAT_METAL = 150, MAT_GLASS = 150) var/grace = RAD_GRACE_PERIOD diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index f07a95ef20..0030eabcdd 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -5,7 +5,7 @@ GLOBAL_LIST_EMPTY(GPS_list) icon = 'icons/obj/telescience.dmi' icon_state = "gps-c" w_class = WEIGHT_CLASS_SMALL - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT obj_flags = UNIQUE_RENAME var/gpstag = "COM0" var/emped = FALSE diff --git a/code/game/objects/items/devices/instruments.dm b/code/game/objects/items/devices/instruments.dm index 7274531420..427437866d 100644 --- a/code/game/objects/items/devices/instruments.dm +++ b/code/game/objects/items/devices/instruments.dm @@ -198,7 +198,7 @@ icon_state = "harmonica" item_state = "harmonica" instrumentId = "harmonica" - slot_flags = SLOT_MASK + slot_flags = ITEM_SLOT_MASK force = 5 w_class = WEIGHT_CLASS_SMALL actions_types = list(/datum/action/item_action/instrument) diff --git a/code/game/objects/items/devices/laserpointer.dm b/code/game/objects/items/devices/laserpointer.dm index d1eb1cf1de..32a266dbfb 100644 --- a/code/game/objects/items/devices/laserpointer.dm +++ b/code/game/objects/items/devices/laserpointer.dm @@ -6,7 +6,7 @@ item_state = "pen" var/pointer_icon_state flags_1 = CONDUCT_1 | NOBLUDGEON_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT materials = list(MAT_METAL=500, MAT_GLASS=500) w_class = WEIGHT_CLASS_SMALL var/turf/pointer_loc diff --git a/code/game/objects/items/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm index 3fde35383f..750e2a9a9b 100644 --- a/code/game/objects/items/devices/lightreplacer.dm +++ b/code/game/objects/items/devices/lightreplacer.dm @@ -50,7 +50,7 @@ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT force = 8 var/max_uses = 20 diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm index 25f3070d9e..f6d3192bce 100644 --- a/code/game/objects/items/devices/paicard.dm +++ b/code/game/objects/items/devices/paicard.dm @@ -6,7 +6,7 @@ lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' w_class = WEIGHT_CLASS_SMALL - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT var/mob/living/silicon/pai/pai resistance_flags = FIRE_PROOF | ACID_PROOF | INDESTRUCTIBLE diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index 7e2c5234fb..1734fa5bfb 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -7,7 +7,7 @@ lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' flags_1 = CONDUCT_1 - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK w_class = WEIGHT_CLASS_HUGE materials = list(MAT_METAL=10000, MAT_GLASS=2500) var/on = TRUE diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index d16ac424b6..f7caacf816 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -7,7 +7,7 @@ subspace_transmission = TRUE canhear_range = 0 // can't hear headsets from very far away - slot_flags = SLOT_EARS + slot_flags = ITEM_SLOT_EARS var/obj/item/encryptionkey/keyslot2 = null dog_fashion = null diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 361222e3cd..c4ebbd5daf 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -8,7 +8,7 @@ flags_1 = CONDUCT_1 | HEAR_1 flags_2 = NO_EMP_WIRES_2 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT throw_speed = 3 throw_range = 7 w_class = WEIGHT_CLASS_SMALL diff --git a/code/game/objects/items/devices/reverse_bear_trap.dm b/code/game/objects/items/devices/reverse_bear_trap.dm index 58a0ef2874..b33a0eef2d 100644 --- a/code/game/objects/items/devices/reverse_bear_trap.dm +++ b/code/game/objects/items/devices/reverse_bear_trap.dm @@ -3,7 +3,7 @@ desc = "A horrifying set of shut metal jaws, rigged to a kitchen timer and secured by padlock to a head-mounted clamp. To apply, hit someone with it." icon = 'icons/obj/device.dmi' icon_state = "reverse_bear_trap" - slot_flags = SLOT_HEAD + slot_flags = ITEM_SLOT_HEAD flags_1 = CONDUCT_1 resistance_flags = FIRE_PROOF | UNACIDABLE w_class = WEIGHT_CLASS_NORMAL @@ -48,7 +48,7 @@ /obj/item/reverse_bear_trap/attack_hand(mob/user) if(iscarbon(user)) var/mob/living/carbon/C = user - if(C.get_item_by_slot(slot_head) == src) + if(C.get_item_by_slot(SLOT_HEAD) == src) if(flags_1 & NODROP_1 && !struggling) struggling = TRUE var/fear_string @@ -88,20 +88,20 @@ target.visible_message("[user] starts forcing [src] onto [target]'s head!", \ "[target] starts forcing [src] onto your head!", "You hear clanking.") to_chat(user, "You start forcing [src] onto [target]'s head...") - if(!do_after(user, 30, target = target) || target.get_item_by_slot(slot_head)) + if(!do_after(user, 30, target = target) || target.get_item_by_slot(SLOT_HEAD)) return target.visible_message("[user] forces and locks [src] onto [target]'s head!", \ "[target] locks [src] onto your head!", "You hear a click, and then a timer ticking down.") to_chat(user, "You force [src] onto [target]'s head and click the padlock shut.") user.dropItemToGround(src) - target.equip_to_slot_if_possible(src, slot_head) + target.equip_to_slot_if_possible(src, SLOT_HEAD) arm() notify_ghosts("[user] put a reverse bear trap on [target]!", source = src, action = NOTIFY_ORBIT, ghost_sound = 'sound/machines/beep.ogg') /obj/item/reverse_bear_trap/proc/snap() reset() var/mob/living/carbon/human/H = loc - if(!istype(H) || H.get_item_by_slot(slot_head) != src) + if(!istype(H) || H.get_item_by_slot(SLOT_HEAD) != src) visible_message("[src]'s jaws snap open with an ear-piercing crack!") playsound(src, 'sound/effects/snap.ogg', 75, TRUE) else diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index f174e833ae..332b73c688 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -12,7 +12,7 @@ GAS ANALYZER icon = 'icons/obj/device.dmi' icon_state = "t-ray0" var/on = FALSE - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_SMALL item_state = "electronic" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' @@ -67,7 +67,7 @@ GAS ANALYZER righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' desc = "A hand-held body scanner able to distinguish vital signs of the subject." flags_1 = CONDUCT_1 | NOBLUDGEON_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT throwforce = 3 w_class = WEIGHT_CLASS_TINY throw_speed = 3 @@ -347,7 +347,7 @@ GAS ANALYZER righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' w_class = WEIGHT_CLASS_SMALL flags_1 = CONDUCT_1 | NOBLUDGEON_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT throwforce = 0 throw_speed = 3 throw_range = 7 diff --git a/code/game/objects/items/devices/sensor_device.dm b/code/game/objects/items/devices/sensor_device.dm index 8aa2ec7d4e..79d26776a9 100644 --- a/code/game/objects/items/devices/sensor_device.dm +++ b/code/game/objects/items/devices/sensor_device.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/device.dmi' icon_state = "scanner" w_class = WEIGHT_CLASS_SMALL - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT /obj/item/sensor_device/attack_self(mob/user) GLOB.crewmonitor.show(user,src) //Proc already exists, just had to call it diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm index 182565da22..50cdbe9c48 100644 --- a/code/game/objects/items/devices/taperecorder.dm +++ b/code/game/objects/items/devices/taperecorder.dm @@ -8,7 +8,7 @@ righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' w_class = WEIGHT_CLASS_SMALL flags_1 = HEAR_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT materials = list(MAT_METAL=60, MAT_GLASS=30) force = 2 throwforce = 0 diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 9dd6ae5622..c3720f7ac4 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -177,7 +177,7 @@ effective or pretty fucking useless. icon = 'icons/obj/clothing/belts.dmi' icon_state = "utilitybelt" item_state = "utility" - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT attack_verb = list("whipped", "lashed", "disciplined") var/mob/living/carbon/human/user = null @@ -188,7 +188,7 @@ effective or pretty fucking useless. actions_types = list(/datum/action/item_action/toggle) /obj/item/shadowcloak/ui_action_click(mob/user) - if(user.get_item_by_slot(slot_belt) == src) + if(user.get_item_by_slot(SLOT_BELT) == src) if(!on) Activate(usr) else @@ -196,7 +196,7 @@ effective or pretty fucking useless. return /obj/item/shadowcloak/item_action_slot_check(slot, mob/user) - if(slot == slot_belt) + if(slot == SLOT_BELT) return 1 /obj/item/shadowcloak/proc/Activate(mob/living/carbon/human/user) @@ -218,11 +218,11 @@ effective or pretty fucking useless. /obj/item/shadowcloak/dropped(mob/user) ..() - if(user && user.get_item_by_slot(slot_belt) != src) + if(user && user.get_item_by_slot(SLOT_BELT) != src) Deactivate() /obj/item/shadowcloak/process() - if(user.get_item_by_slot(slot_belt) != src) + if(user.get_item_by_slot(SLOT_BELT) != src) Deactivate() return var/turf/T = get_turf(src) diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index 9938b8a918..3f97321710 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -258,7 +258,7 @@ magichead.voicechange = TRUE //NEEEEIIGHH if(!user.dropItemToGround(user.wear_mask)) qdel(user.wear_mask) - user.equip_to_slot_if_possible(magichead, slot_wear_mask, TRUE, TRUE) + user.equip_to_slot_if_possible(magichead, SLOT_WEAR_MASK, TRUE, TRUE) qdel(src) else to_chat(user,"I say thee neigh") //It still lives here diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index 9d3df9cf7a..8bc1665a3f 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -163,8 +163,10 @@ for(var/obj/item/reagent_containers/glass/G in beakers) reactants += G.reagents - if(!chem_splash(get_turf(src), affected_area, reactants, ignition_temp, threatscale) && !no_splash) - playsound(loc, 'sound/items/screwdriver2.ogg', 50, 1) + var/turf/detonation_turf = get_turf(src) + + if(!chem_splash(detonation_turf, affected_area, reactants, ignition_temp, threatscale) && !no_splash) + playsound(src, 'sound/items/screwdriver2.ogg', 50, 1) if(beakers.len) for(var/obj/O in beakers) O.forceMove(drop_location()) @@ -172,17 +174,15 @@ stage_change(EMPTY) return + var/areas_name = get_area_name(src, TRUE) + if(nadeassembly) var/mob/M = get_mob_by_ckey(assemblyattacher) var/mob/last = get_mob_by_ckey(nadeassembly.fingerprintslast) - var/turf/T = get_turf(src) - var/area/A = get_area(T) - message_admins("grenade primed by an assembly, attached by [ADMIN_LOOKUPFLW(M)] and last touched by [ADMIN_LOOKUPFLW(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] [ADMIN_JMP(T)].") - log_game("grenade primed by an assembly, attached by [key_name(M)] and last touched by [key_name(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [A.name] [COORD(T)]") + message_admins("grenade primed by an assembly, attached by [ADMIN_LOOKUPFLW(M)] and last touched by [ADMIN_LOOKUPFLW(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [areas_name] [ADMIN_JMP(detonation_turf)].") + log_game("grenade primed by an assembly, attached by [key_name(M)] and last touched by [key_name(last)] ([nadeassembly.a_left.name] and [nadeassembly.a_right.name]) at [areas_name] [COORD(detonation_turf)]") - var/turf/DT = get_turf(src) - var/area/DA = get_area(DT) - log_game("A grenade detonated at [DA.name] [COORD(DT)]") + log_game("A grenade detonated at [areas_name] [COORD(detonation_turf)]") update_mob() diff --git a/code/game/objects/items/grenades/ghettobomb.dm b/code/game/objects/items/grenades/ghettobomb.dm index 5b96b74f41..d450764702 100644 --- a/code/game/objects/items/grenades/ghettobomb.dm +++ b/code/game/objects/items/grenades/ghettobomb.dm @@ -12,7 +12,7 @@ throw_speed = 3 throw_range = 7 flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT active = 0 det_time = 50 display_timer = 0 diff --git a/code/game/objects/items/grenades/grenade.dm b/code/game/objects/items/grenades/grenade.dm index 929c649e4d..6a08777e61 100644 --- a/code/game/objects/items/grenades/grenade.dm +++ b/code/game/objects/items/grenades/grenade.dm @@ -10,7 +10,7 @@ throw_speed = 3 throw_range = 7 flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT resistance_flags = FLAMMABLE max_integrity = 40 var/active = 0 diff --git a/code/game/objects/items/grenades/smokebomb.dm b/code/game/objects/items/grenades/smokebomb.dm index f5a27cf5c8..d822ede78c 100644 --- a/code/game/objects/items/grenades/smokebomb.dm +++ b/code/game/objects/items/grenades/smokebomb.dm @@ -1,31 +1,31 @@ -/obj/item/grenade/smokebomb - name = "smoke grenade" - desc = "The word 'Dank' is scribbled on it in crayon." - icon = 'icons/obj/grenade.dmi' - icon_state = "smokewhite" - det_time = 20 - item_state = "flashbang" - slot_flags = SLOT_BELT - var/datum/effect_system/smoke_spread/bad/smoke - -/obj/item/grenade/smokebomb/New() - ..() - src.smoke = new /datum/effect_system/smoke_spread/bad - src.smoke.attach(src) - -/obj/item/grenade/smokebomb/Destroy() - qdel(smoke) - return ..() - -/obj/item/grenade/smokebomb/prime() - update_mob() - playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3) - smoke.set_up(4, src) - smoke.start() - - - for(var/obj/structure/blob/B in view(8,src)) - var/damage = round(30/(get_dist(B,src)+1)) - B.take_damage(damage, BURN, "melee", 0) - sleep(80) - qdel(src) +/obj/item/grenade/smokebomb + name = "smoke grenade" + desc = "The word 'Dank' is scribbled on it in crayon." + icon = 'icons/obj/grenade.dmi' + icon_state = "smokewhite" + det_time = 20 + item_state = "flashbang" + slot_flags = ITEM_SLOT_BELT + var/datum/effect_system/smoke_spread/bad/smoke + +/obj/item/grenade/smokebomb/New() + ..() + src.smoke = new /datum/effect_system/smoke_spread/bad + src.smoke.attach(src) + +/obj/item/grenade/smokebomb/Destroy() + qdel(smoke) + return ..() + +/obj/item/grenade/smokebomb/prime() + update_mob() + playsound(src.loc, 'sound/effects/smoke.ogg', 50, 1, -3) + smoke.set_up(4, src) + smoke.start() + + + for(var/obj/structure/blob/B in view(8,src)) + var/damage = round(30/(get_dist(B,src)+1)) + B.take_damage(damage, BURN, "melee", 0) + sleep(80) + qdel(src) diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 09abc25cc1..735bcaeb27 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -29,7 +29,7 @@ lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT throwforce = 0 w_class = WEIGHT_CLASS_SMALL throw_speed = 3 diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index 13ca2b35d6..560a972ee8 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -75,7 +75,7 @@ desc = "It has a mysterious, protective aura." w_class = WEIGHT_CLASS_HUGE force = 5 - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK block_chance = 50 var/shield_icon = "shield-red" @@ -98,7 +98,7 @@ name = "holy claymore" desc = "A weapon fit for a crusade!" w_class = WEIGHT_CLASS_HUGE - slot_flags = SLOT_BACK|SLOT_BELT + slot_flags = ITEM_SLOT_BACK|ITEM_SLOT_BELT block_chance = 30 sharpness = IS_SHARP hitsound = 'sound/weapons/bladeslice.ogg' @@ -118,7 +118,7 @@ inhand_y_dimension = 64 name = "dark blade" desc = "Spread the glory of the dark gods!" - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT hitsound = 'sound/hallucinations/growl1.ogg' /obj/item/nullrod/claymore/chainsaw_sword @@ -126,7 +126,7 @@ item_state = "chainswordon" name = "sacred chainsaw sword" desc = "Suffer not a heretic to live." - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT attack_verb = list("sawed", "torn", "cut", "chopped", "diced") hitsound = 'sound/weapons/chainsawhit.ogg' @@ -135,21 +135,21 @@ item_state = "swordon" name = "force weapon" desc = "The blade glows with the power of faith. Or possibly a battery." - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT /obj/item/nullrod/claymore/katana name = "hanzo steel" desc = "Capable of cutting clean through a holy claymore." icon_state = "katana" item_state = "katana" - slot_flags = SLOT_BELT | SLOT_BACK + slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK /obj/item/nullrod/claymore/multiverse name = "extradimensional blade" desc = "Once the harbinger of an interdimensional war, its sharpness fluctuates wildly." icon_state = "multiverse" item_state = "multiverse" - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT /obj/item/nullrod/claymore/multiverse/attack(mob/living/carbon/M, mob/living/carbon/user) force = rand(1, 30) @@ -161,7 +161,7 @@ icon_state = "swordblue" item_state = "swordblue" desc = "If you strike me down, I shall become more robust than you can possibly imagine." - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT /obj/item/nullrod/claymore/saber/red name = "dark energy sword" @@ -182,7 +182,7 @@ item_state = "sord" lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT force = 4.13 throwforce = 1 hitsound = 'sound/weapons/bladeslice.ogg' @@ -197,7 +197,7 @@ desc = "Ask not for whom the bell tolls..." w_class = WEIGHT_CLASS_BULKY armour_penetration = 35 - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK sharpness = IS_SHARP attack_verb = list("chopped", "sliced", "cut", "reaped") @@ -279,7 +279,7 @@ item_state = "chainswordon" name = "possessed chainsaw sword" desc = "Suffer not a heretic to live." - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT force = 30 attack_verb = list("sawed", "torn", "cut", "chopped", "diced") hitsound = 'sound/weapons/chainsawhit.ogg' @@ -292,7 +292,7 @@ righthand_file = 'icons/mob/inhands/weapons/hammers_righthand.dmi' name = "relic war hammer" desc = "This war hammer cost the chaplain forty thousand space dollars." - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_HUGE attack_verb = list("smashed", "bashed", "hammered", "crunched") @@ -330,7 +330,7 @@ force = 16 throwforce = 15 w_class = 4 - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK attack_verb = list("attacked", "smashed", "crushed", "splattered", "cracked") hitsound = 'sound/weapons/blade1.ogg' @@ -350,7 +350,7 @@ item_state = "chain" lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT attack_verb = list("whipped", "lashed") hitsound = 'sound/weapons/chainhit.ogg' @@ -359,7 +359,7 @@ desc = "The brim of the hat is as sharp as your wit. The edge would hurt almost as much as disproving the existence of God." icon_state = "fedora" item_state = "fedora" - slot_flags = SLOT_HEAD + slot_flags = ITEM_SLOT_HEAD icon = 'icons/obj/clothing/hats.dmi' force = 0 throw_speed = 4 @@ -414,7 +414,7 @@ w_class = WEIGHT_CLASS_BULKY force = 15 block_chance = 40 - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK sharpness = IS_BLUNT hitsound = "swing_hit" attack_verb = list("smashed", "slammed", "whacked", "thwacked") diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 32af3587f4..5ceaa9c514 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -17,7 +17,7 @@ lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT force = 10 throwforce = 7 w_class = WEIGHT_CLASS_NORMAL @@ -96,7 +96,7 @@ item_state = "classic_baton" lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT force = 12 //9 hit crit w_class = WEIGHT_CLASS_NORMAL var/cooldown = 0 @@ -159,7 +159,7 @@ lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' item_state = null - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_SMALL item_flags = NONE force = 0 @@ -196,7 +196,7 @@ to_chat(user, "You collapse the baton.") icon_state = "telebaton_0" item_state = null //no sprite for concealment even when in hand - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_SMALL force = 0 //not so robust now attack_verb = list("hit", "poked") @@ -308,7 +308,7 @@ item_state = "chain" lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT force = 15 w_class = WEIGHT_CLASS_NORMAL attack_verb = list("flogged", "whipped", "lashed", "disciplined") @@ -326,7 +326,7 @@ desc = "A telescopic roasting stick with a miniature shield generator designed to ensure entry into various high-tech shielded cooking ovens and firepits." icon_state = "roastingstick_0" item_state = "null" - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_SMALL item_flags = NONE force = 0 diff --git a/code/game/objects/items/pinpointer.dm b/code/game/objects/items/pinpointer.dm index 788cfc56f9..d6262c10a5 100644 --- a/code/game/objects/items/pinpointer.dm +++ b/code/game/objects/items/pinpointer.dm @@ -5,7 +5,7 @@ icon = 'icons/obj/device.dmi' icon_state = "pinpointer" flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_SMALL item_state = "electronic" lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm index 1d873ed7cc..696168d69d 100644 --- a/code/game/objects/items/religion.dm +++ b/code/game/objects/items/religion.dm @@ -325,7 +325,7 @@ icon_state = "crusader" w_class = WEIGHT_CLASS_NORMAL armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 40, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 60) //does this even do anything on boots? - flags_1 = NOSLIP_1 + clothing_flags = NOSLIP cold_protection = FEET min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT heat_protection = FEET diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index 367a10d21f..d6bb54bddf 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -10,7 +10,7 @@ icon_state = "riot" lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi' - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK force = 10 throwforce = 5 throw_speed = 2 @@ -143,7 +143,7 @@ throwforce = 5 throw_speed = 2 w_class = WEIGHT_CLASS_BULKY - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK to_chat(user, "You extend \the [src].") else force = 3 diff --git a/code/game/objects/items/singularityhammer.dm b/code/game/objects/items/singularityhammer.dm index 5d96213934..11248aad50 100644 --- a/code/game/objects/items/singularityhammer.dm +++ b/code/game/objects/items/singularityhammer.dm @@ -5,7 +5,7 @@ lefthand_file = 'icons/mob/inhands/weapons/hammers_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/hammers_righthand.dmi' flags_1 = CONDUCT_1 - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK force = 5 force_unwielded = 5 force_wielded = 20 @@ -76,7 +76,7 @@ lefthand_file = 'icons/mob/inhands/weapons/hammers_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/hammers_righthand.dmi' flags_1 = CONDUCT_1 - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK force = 5 force_unwielded = 5 force_wielded = 25 diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index a899820b6f..ec41395090 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -17,7 +17,7 @@ lefthand_file = 'icons/mob/inhands/equipment/backpack_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/backpack_righthand.dmi' w_class = WEIGHT_CLASS_BULKY - slot_flags = SLOT_BACK //ERROOOOO + slot_flags = ITEM_SLOT_BACK //ERROOOOO resistance_flags = NONE max_integrity = 300 diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 3afae40c47..3b68372e2b 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -17,7 +17,7 @@ // Generic non-item /obj/item/storage/bag - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT /obj/item/storage/bag/ComponentInitialize() . = ..() @@ -94,7 +94,7 @@ desc = "This little bugger can be used to store and transport ores." icon = 'icons/obj/mining.dmi' icon_state = "satchel" - slot_flags = SLOT_BELT | SLOT_POCKET + slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_POCKET w_class = WEIGHT_CLASS_NORMAL component_type = /datum/component/storage/concrete/stack var/spam_protection = FALSE //If this is TRUE, the holder won't receive any messages when they fail to pick up ore through crossing it diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 94ef1f5fa5..f7cde410aa 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -6,7 +6,7 @@ item_state = "utility" lefthand_file = 'icons/mob/inhands/equipment/belt_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/belt_righthand.dmi' - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT attack_verb = list("whipped", "lashed", "disciplined") max_integrity = 300 var/content_overlays = FALSE //If this is true, the belt will gain overlays based on what it's holding diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index 44c41e419b..db47fd3d0b 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -74,7 +74,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", if(B.icon_state == "honk1" || B.icon_state == "honk2") var/mob/living/carbon/human/H = usr H.dna.add_mutation(CLOWNMUT) - H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(H), slot_wear_mask) + H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(H), SLOT_WEAR_MASK) SSreligion.bible_icon_state = B.icon_state SSreligion.bible_item_state = B.item_state diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 88a0dd0135..e47ceee7ad 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -544,7 +544,7 @@ icon_state = "matchbox" item_state = "zippo" w_class = WEIGHT_CLASS_TINY - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT /obj/item/storage/box/matches/ComponentInitialize() . = ..() diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index c0389b6bfc..f86188984f 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -109,7 +109,7 @@ icon_type = "candle" item_state = "candlebox5" throwforce = 2 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT spawn_type = /obj/item/candle fancy_open = TRUE @@ -132,7 +132,7 @@ item_state = "cigpacket" w_class = WEIGHT_CLASS_TINY throwforce = 0 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT icon_type = "cigarette" spawn_type = /obj/item/clothing/mask/cigarette/space_cigarette @@ -189,7 +189,7 @@ if(M == user && contents.len > 0 && !user.wear_mask) var/obj/item/clothing/mask/cigarette/W = cig SendSignal(COMSIG_TRY_STORAGE_TAKE, W, M) - M.equip_to_slot_if_possible(W, slot_wear_mask) + M.equip_to_slot_if_possible(W, SLOT_WEAR_MASK) contents -= W to_chat(user, "You take a [icon_type] out of the pack.") else diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index c78a20a0ef..689319e672 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -168,7 +168,7 @@ new /obj/item/weldingtool/experimental/brass(src) /obj/item/storage/toolbox/brass/prefilled/servant - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT fabricator_type = null /obj/item/storage/toolbox/brass/prefilled/ratvar diff --git a/code/game/objects/items/storage/wallets.dm b/code/game/objects/items/storage/wallets.dm index e2e9eb9929..4b14388336 100644 --- a/code/game/objects/items/storage/wallets.dm +++ b/code/game/objects/items/storage/wallets.dm @@ -1,95 +1,95 @@ -/obj/item/storage/wallet - name = "wallet" - desc = "It can hold a few small and personal things." - icon_state = "wallet" - w_class = WEIGHT_CLASS_SMALL - resistance_flags = FLAMMABLE - slot_flags = SLOT_ID - - var/obj/item/card/id/front_id = null - var/list/combined_access - -/obj/item/storage/wallet/ComponentInitialize() - . = ..() - GET_COMPONENT(STR, /datum/component/storage) - STR.max_items = 4 - STR.can_hold = typecacheof(list( - /obj/item/stack/spacecash, - /obj/item/card, - /obj/item/clothing/mask/cigarette, - /obj/item/flashlight/pen, - /obj/item/seeds, - /obj/item/stack/medical, - /obj/item/toy/crayon, - /obj/item/coin, - /obj/item/dice, - /obj/item/disk, - /obj/item/implanter, - /obj/item/lighter, - /obj/item/lipstick, - /obj/item/match, - /obj/item/paper, - /obj/item/pen, - /obj/item/photo, - /obj/item/reagent_containers/dropper, - /obj/item/reagent_containers/syringe, - /obj/item/screwdriver, - /obj/item/stamp)) - -/obj/item/storage/wallet/Exited(atom/movable/AM) - . = ..() - // The loc has not actually changed yet when this proc is called, so call - // refreshID and have it ignore the outgoing atom. - refreshID(AM) - -/obj/item/storage/wallet/proc/refreshID(atom/movable/removed) - LAZYCLEARLIST(combined_access) - if(!(front_id in src) || front_id == removed) - front_id = null - for(var/obj/item/card/id/I in contents) - if(I == removed) - continue - if(!front_id) - front_id = I - LAZYINITLIST(combined_access) - combined_access |= I.access - update_icon() - -/obj/item/storage/wallet/Entered(atom/movable/AM) - . = ..() - refreshID() - -/obj/item/storage/wallet/update_icon() - var/new_state = "wallet" - if(front_id) - new_state = "wallet_[front_id.icon_state]" - if(new_state != icon_state) //avoid so many icon state changes. - icon_state = new_state - -/obj/item/storage/wallet/GetID() - return front_id - -/obj/item/storage/wallet/GetAccess() - if(LAZYLEN(combined_access)) - return combined_access - else - return ..() - -/obj/item/storage/wallet/random - icon_state = "random_wallet" - -/obj/item/storage/wallet/random/PopulateContents() - var/item1_type = pick( /obj/item/stack/spacecash/c10, /obj/item/stack/spacecash/c100, /obj/item/stack/spacecash/c1000, /obj/item/stack/spacecash/c20, /obj/item/stack/spacecash/c200, /obj/item/stack/spacecash/c50, /obj/item/stack/spacecash/c500) - var/item2_type - if(prob(50)) - item2_type = pick( /obj/item/stack/spacecash/c10, /obj/item/stack/spacecash/c100, /obj/item/stack/spacecash/c1000, /obj/item/stack/spacecash/c20, /obj/item/stack/spacecash/c200, /obj/item/stack/spacecash/c50, /obj/item/stack/spacecash/c500) - var/item3_type = pick( /obj/item/coin/silver, /obj/item/coin/silver, /obj/item/coin/gold, /obj/item/coin/iron, /obj/item/coin/iron, /obj/item/coin/iron ) - - spawn(2) - if(item1_type) - new item1_type(src) - if(item2_type) - new item2_type(src) - if(item3_type) - new item3_type(src) - update_icon() +/obj/item/storage/wallet + name = "wallet" + desc = "It can hold a few small and personal things." + icon_state = "wallet" + w_class = WEIGHT_CLASS_SMALL + resistance_flags = FLAMMABLE + slot_flags = ITEM_SLOT_ID + + var/obj/item/card/id/front_id = null + var/list/combined_access + +/obj/item/storage/wallet/ComponentInitialize() + . = ..() + GET_COMPONENT(STR, /datum/component/storage) + STR.max_items = 4 + STR.can_hold = typecacheof(list( + /obj/item/stack/spacecash, + /obj/item/card, + /obj/item/clothing/mask/cigarette, + /obj/item/flashlight/pen, + /obj/item/seeds, + /obj/item/stack/medical, + /obj/item/toy/crayon, + /obj/item/coin, + /obj/item/dice, + /obj/item/disk, + /obj/item/implanter, + /obj/item/lighter, + /obj/item/lipstick, + /obj/item/match, + /obj/item/paper, + /obj/item/pen, + /obj/item/photo, + /obj/item/reagent_containers/dropper, + /obj/item/reagent_containers/syringe, + /obj/item/screwdriver, + /obj/item/stamp)) + +/obj/item/storage/wallet/Exited(atom/movable/AM) + . = ..() + // The loc has not actually changed yet when this proc is called, so call + // refreshID and have it ignore the outgoing atom. + refreshID(AM) + +/obj/item/storage/wallet/proc/refreshID(atom/movable/removed) + LAZYCLEARLIST(combined_access) + if(!(front_id in src) || front_id == removed) + front_id = null + for(var/obj/item/card/id/I in contents) + if(I == removed) + continue + if(!front_id) + front_id = I + LAZYINITLIST(combined_access) + combined_access |= I.access + update_icon() + +/obj/item/storage/wallet/Entered(atom/movable/AM) + . = ..() + refreshID() + +/obj/item/storage/wallet/update_icon() + var/new_state = "wallet" + if(front_id) + new_state = "wallet_[front_id.icon_state]" + if(new_state != icon_state) //avoid so many icon state changes. + icon_state = new_state + +/obj/item/storage/wallet/GetID() + return front_id + +/obj/item/storage/wallet/GetAccess() + if(LAZYLEN(combined_access)) + return combined_access + else + return ..() + +/obj/item/storage/wallet/random + icon_state = "random_wallet" + +/obj/item/storage/wallet/random/PopulateContents() + var/item1_type = pick( /obj/item/stack/spacecash/c10, /obj/item/stack/spacecash/c100, /obj/item/stack/spacecash/c1000, /obj/item/stack/spacecash/c20, /obj/item/stack/spacecash/c200, /obj/item/stack/spacecash/c50, /obj/item/stack/spacecash/c500) + var/item2_type + if(prob(50)) + item2_type = pick( /obj/item/stack/spacecash/c10, /obj/item/stack/spacecash/c100, /obj/item/stack/spacecash/c1000, /obj/item/stack/spacecash/c20, /obj/item/stack/spacecash/c200, /obj/item/stack/spacecash/c50, /obj/item/stack/spacecash/c500) + var/item3_type = pick( /obj/item/coin/silver, /obj/item/coin/silver, /obj/item/coin/gold, /obj/item/coin/iron, /obj/item/coin/iron, /obj/item/coin/iron ) + + spawn(2) + if(item1_type) + new item1_type(src) + if(item2_type) + new item2_type(src) + if(item3_type) + new item3_type(src) + update_icon() diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 612082866c..76cf5283e1 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -5,7 +5,7 @@ item_state = "baton" lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT force = 10 throwforce = 7 w_class = WEIGHT_CLASS_NORMAL @@ -195,7 +195,7 @@ stunforce = 100 hitcost = 2000 throw_hit_chance = 10 - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK var/obj/item/assembly/igniter/sparkler = 0 /obj/item/melee/baton/cattleprod/Initialize() diff --git a/code/game/objects/items/tanks/tank_types.dm b/code/game/objects/items/tanks/tank_types.dm index 4a687b458d..f4eb763847 100644 --- a/code/game/objects/items/tanks/tank_types.dm +++ b/code/game/objects/items/tanks/tank_types.dm @@ -137,7 +137,7 @@ /obj/item/tank/internals/plasmaman/belt icon_state = "plasmaman_tank_belt" item_state = "plasmaman_tank_belt" - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT force = 5 volume = 6 w_class = WEIGHT_CLASS_SMALL //thanks i forgot this @@ -157,7 +157,7 @@ desc = "Used for emergencies. Contains very little oxygen, so try to conserve it until you actually need it." icon_state = "emergency" flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_SMALL force = 4 distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm index f841822f21..91058528e6 100644 --- a/code/game/objects/items/tanks/tanks.dm +++ b/code/game/objects/items/tanks/tanks.dm @@ -4,7 +4,7 @@ lefthand_file = 'icons/mob/inhands/equipment/tanks_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tanks_righthand.dmi' flags_1 = CONDUCT_1 - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK hitsound = 'sound/weapons/smash.ogg' pressure_resistance = ONE_ATMOSPHERE * 5 force = 5 @@ -38,7 +38,7 @@ return if(H.wear_mask.mask_adjusted) H.wear_mask.adjustmask(H) - if(!(H.wear_mask.flags_1 & MASKINTERNALS_1)) + if(!(H.wear_mask.clothing_flags & MASKINTERNALS)) to_chat(H, "[H.wear_mask] can't use [src]!") return diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index 2a5e92d375..b8eb2dcc00 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -6,7 +6,7 @@ icon_state = "waterbackpack" item_state = "waterbackpack" w_class = WEIGHT_CLASS_BULKY - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK slowdown = 1 actions_types = list(/datum/action/item_action/toggle_mister) max_integrity = 200 @@ -59,7 +59,7 @@ /obj/item/watertank/equipped(mob/user, slot) ..() - if(slot != slot_back) + if(slot != SLOT_BACK) remove_noz() /obj/item/watertank/proc/remove_noz() @@ -343,7 +343,7 @@ icon_state = "waterbackpackatmos" item_state = "waterbackpackatmos" w_class = WEIGHT_CLASS_BULKY - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK slowdown = 1 actions_types = list(/datum/action/item_action/activate_injector) @@ -360,14 +360,14 @@ toggle_injection() /obj/item/reagent_containers/chemtank/item_action_slot_check(slot, mob/user) - if(slot == slot_back) + if(slot == SLOT_BACK) return 1 /obj/item/reagent_containers/chemtank/proc/toggle_injection() var/mob/living/carbon/human/user = usr if(!istype(user)) return - if (user.get_item_by_slot(slot_back) != src) + if (user.get_item_by_slot(SLOT_BACK) != src) to_chat(user, "The chemtank needs to be on your back before you can activate it!") return if(on) diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm index ed6233a0b6..0684da08b2 100644 --- a/code/game/objects/items/tools/crowbar.dm +++ b/code/game/objects/items/tools/crowbar.dm @@ -7,7 +7,7 @@ righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' usesound = 'sound/items/crowbar.ogg' flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT force = 5 throwforce = 7 w_class = WEIGHT_CLASS_SMALL diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm index 56537e703a..a29c103fda 100644 --- a/code/game/objects/items/tools/screwdriver.dm +++ b/code/game/objects/items/tools/screwdriver.dm @@ -7,7 +7,7 @@ lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT force = 5 w_class = WEIGHT_CLASS_TINY throwforce = 5 diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index dc496187bc..229aa70ee0 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -1,372 +1,372 @@ -#define WELDER_FUEL_BURN_INTERVAL 13 -/obj/item/weldingtool - name = "welding tool" - desc = "A standard edition welder provided by Nanotrasen." - icon = 'icons/obj/tools.dmi' - icon_state = "welder" - item_state = "welder" - lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' - flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT - force = 3 - throwforce = 5 - hitsound = "swing_hit" - usesound = list('sound/items/welder.ogg', 'sound/items/welder2.ogg') - var/acti_sound = 'sound/items/welderactivate.ogg' - var/deac_sound = 'sound/items/welderdeactivate.ogg' - throw_speed = 3 - throw_range = 5 - w_class = WEIGHT_CLASS_SMALL - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30) - resistance_flags = FIRE_PROOF - - materials = list(MAT_METAL=70, MAT_GLASS=30) - var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2) - var/status = TRUE //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower) - var/max_fuel = 20 //The max amount of fuel the welder can hold - var/change_icons = 1 - var/can_off_process = 0 - var/light_intensity = 2 //how powerful the emitted light is when used. - var/progress_flash_divisor = 10 - var/burned_fuel_for = 0 //when fuel was last removed - heat = 3800 - tool_behaviour = TOOL_WELDER - toolspeed = 1 - -/obj/item/weldingtool/Initialize() - . = ..() - create_reagents(max_fuel) - reagents.add_reagent("welding_fuel", max_fuel) - update_icon() - - -/obj/item/weldingtool/proc/update_torch() - if(welding) - add_overlay("[initial(icon_state)]-on") - item_state = "[initial(item_state)]1" - else - item_state = "[initial(item_state)]" - - -/obj/item/weldingtool/update_icon() - cut_overlays() - if(change_icons) - var/ratio = get_fuel() / max_fuel - ratio = CEILING(ratio*4, 1) * 25 - add_overlay("[initial(icon_state)][ratio]") - update_torch() - return - - -/obj/item/weldingtool/process() - switch(welding) - if(0) - force = 3 - damtype = "brute" - update_icon() - if(!can_off_process) - STOP_PROCESSING(SSobj, src) - return - //Welders left on now use up fuel, but lets not have them run out quite that fast - if(1) - force = 15 - damtype = "fire" - ++burned_fuel_for - if(burned_fuel_for >= WELDER_FUEL_BURN_INTERVAL) - use(1) - update_icon() - - //This is to start fires. process() is only called if the welder is on. - open_flame() - - -/obj/item/weldingtool/suicide_act(mob/user) - user.visible_message("[user] welds [user.p_their()] every orifice closed! It looks like [user.p_theyre()] trying to commit suicide!") - return (FIRELOSS) - - -/obj/item/weldingtool/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/screwdriver)) - flamethrower_screwdriver(I, user) - else if(istype(I, /obj/item/stack/rods)) - flamethrower_rods(I, user) - else - . = ..() - update_icon() - -/obj/item/weldingtool/proc/explode() - var/turf/T = get_turf(loc) - var/plasmaAmount = reagents.get_reagent_amount("plasma") - dyn_explosion(T, plasmaAmount/5)//20 plasma in a standard welder has a 4 power explosion. no breaches, but enough to kill/dismember holder - qdel(src) - -/obj/item/weldingtool/attack(mob/living/carbon/human/H, mob/user) - if(!istype(H)) - return ..() - - var/obj/item/bodypart/affecting = H.get_bodypart(check_zone(user.zone_selected)) - - if(affecting && affecting.status == BODYPART_ROBOTIC && user.a_intent != INTENT_HARM) - if(src.use_tool(H, user, 0, volume=50, amount=1)) - if(user == H) - user.visible_message("[user] starts to fix some of the dents on [H]'s [affecting.name].", - "You start fixing some of the dents on [H]'s [affecting.name].") - if(!do_mob(user, H, 50)) - return - item_heal_robotic(H, user, 15, 0) - else - return ..() - - -/obj/item/weldingtool/afterattack(atom/O, mob/user, proximity) - if(!proximity) - return - if(!status && O.is_refillable()) - reagents.trans_to(O, reagents.total_volume) - to_chat(user, "You empty [src]'s fuel tank into [O].") - update_icon() - if(isOn()) - use(1) - var/turf/location = get_turf(user) - location.hotspot_expose(700, 50, 1) - if(get_fuel() <= 0) - set_light(0) - - if(isliving(O)) - var/mob/living/L = O - if(L.IgniteMob()) - message_admins("[key_name_admin(user)] set [key_name_admin(L)] on fire") - log_game("[key_name(user)] set [key_name(L)] on fire") - - -/obj/item/weldingtool/attack_self(mob/user) - if(src.reagents.has_reagent("plasma")) - message_admins("[key_name_admin(user)] activated a rigged welder.") - explode() - switched_on(user) - if(welding) - set_light(light_intensity) - - update_icon() - - -// Returns the amount of fuel in the welder -/obj/item/weldingtool/proc/get_fuel() - return reagents.get_reagent_amount("welding_fuel") - - -// Uses fuel from the welding tool. -/obj/item/weldingtool/use(used = 0) - if(!isOn() || !check_fuel()) - return FALSE - - if(used) - burned_fuel_for = 0 - if(get_fuel() >= used) - reagents.remove_reagent("welding_fuel", used) - check_fuel() - return TRUE - else - return FALSE - - -//Turns off the welder if there is no more fuel (does this really need to be its own proc?) -/obj/item/weldingtool/proc/check_fuel(mob/user) - if(get_fuel() <= 0 && welding) - switched_on(user) - update_icon() - //mob icon update - if(ismob(loc)) - var/mob/M = loc - M.update_inv_hands(0) - - return 0 - return 1 - -//Switches the welder on -/obj/item/weldingtool/proc/switched_on(mob/user) - if(!status) - to_chat(user, "[src] can't be turned on while unsecured!") - return - welding = !welding - if(welding) - if(get_fuel() >= 1) - to_chat(user, "You switch [src] on.") - playsound(loc, acti_sound, 50, 1) - force = 15 - damtype = "fire" - hitsound = 'sound/items/welder.ogg' - update_icon() - START_PROCESSING(SSobj, src) - else - to_chat(user, "You need more fuel!") - switched_off(user) - else - to_chat(user, "You switch [src] off.") - playsound(loc, deac_sound, 50, 1) - switched_off(user) - -//Switches the welder off -/obj/item/weldingtool/proc/switched_off(mob/user) - welding = 0 - set_light(0) - - force = 3 - damtype = "brute" - hitsound = "swing_hit" - update_icon() - - -/obj/item/weldingtool/examine(mob/user) - ..() - to_chat(user, "It contains [get_fuel()] unit\s of fuel out of [max_fuel].") - -/obj/item/weldingtool/is_hot() - return welding * heat - -//Returns whether or not the welding tool is currently on. -/obj/item/weldingtool/proc/isOn() - return welding - -// When welding is about to start, run a normal tool_use_check, then flash a mob if it succeeds. -/obj/item/weldingtool/tool_start_check(mob/living/user, amount=0) - . = tool_use_check(user, amount) - if(. && user) - user.flash_act(light_intensity) - -// Flash the user during welding progress -/obj/item/weldingtool/tool_check_callback(mob/living/user, amount, datum/callback/extra_checks) - . = ..() - if(. && user) - if (progress_flash_divisor == 0) - user.flash_act(min(light_intensity,1)) - progress_flash_divisor = initial(progress_flash_divisor) - else - progress_flash_divisor-- - -// If welding tool ran out of fuel during a construction task, construction fails. -/obj/item/weldingtool/tool_use_check(mob/living/user, amount) - if(!isOn() || !check_fuel()) - to_chat(user, "[src] has to be on to complete this task!") - return FALSE - - if(get_fuel() >= amount) - return TRUE - else - to_chat(user, "You need more welding fuel to complete this task!") - return FALSE - - -/obj/item/weldingtool/proc/flamethrower_screwdriver(obj/item/I, mob/user) - if(welding) - to_chat(user, "Turn it off first!") - return - status = !status - if(status) - to_chat(user, "You resecure [src] and close the fuel tank.") - container_type = NONE - else - to_chat(user, "[src] can now be attached, modified, and refuelled.") - container_type = OPENCONTAINER - add_fingerprint(user) - -/obj/item/weldingtool/proc/flamethrower_rods(obj/item/I, mob/user) - if(!status) - var/obj/item/stack/rods/R = I - if (R.use(1)) - var/obj/item/flamethrower/F = new /obj/item/flamethrower(user.loc) - if(!remove_item_from_storage(F)) - user.transferItemToLoc(src, F, TRUE) - F.weldtool = src - add_fingerprint(user) - to_chat(user, "You add a rod to a welder, starting to build a flamethrower.") - user.put_in_hands(F) - else - to_chat(user, "You need one rod to start building a flamethrower!") - -/obj/item/weldingtool/ignition_effect(atom/A, mob/user) - if(use_tool(A, user, 0, amount=1)) - return "[user] casually lights [A] with [src], what a badass." - else - return "" - -/obj/item/weldingtool/largetank - name = "industrial welding tool" - desc = "A slightly larger welder with a larger tank." - icon_state = "indwelder" - max_fuel = 40 - materials = list(MAT_GLASS=60) - -/obj/item/weldingtool/largetank/cyborg - name = "integrated welding tool" - desc = "An advanced welder designed to be used in robotic systems." - toolspeed = 0.5 - -/obj/item/weldingtool/largetank/flamethrower_screwdriver() - return - - -/obj/item/weldingtool/mini - name = "emergency welding tool" - desc = "A miniature welder used during emergencies." - icon_state = "miniwelder" - max_fuel = 10 - w_class = WEIGHT_CLASS_TINY - materials = list(MAT_METAL=30, MAT_GLASS=10) - change_icons = 0 - -/obj/item/weldingtool/mini/flamethrower_screwdriver() - return - -/obj/item/weldingtool/abductor - name = "alien welding tool" - desc = "An alien welding tool. Whatever fuel it uses, it never runs out." - icon = 'icons/obj/abductor.dmi' - icon_state = "welder" - toolspeed = 0.1 - light_intensity = 0 - change_icons = 0 - -/obj/item/weldingtool/abductor/process() - if(get_fuel() <= max_fuel) - reagents.add_reagent("welding_fuel", 1) - ..() - -/obj/item/weldingtool/hugetank - name = "upgraded industrial welding tool" - desc = "An upgraded welder based of the industrial welder." - icon_state = "upindwelder" - item_state = "upindwelder" - max_fuel = 80 - materials = list(MAT_METAL=70, MAT_GLASS=120) - -/obj/item/weldingtool/experimental - name = "experimental welding tool" - desc = "An experimental welder capable of self-fuel generation and less harmful to the eyes." - icon_state = "exwelder" - item_state = "exwelder" - max_fuel = 40 - materials = list(MAT_METAL=70, MAT_GLASS=120) - var/last_gen = 0 - change_icons = 0 - can_off_process = 1 - light_intensity = 1 - toolspeed = 0.5 - var/nextrefueltick = 0 - -/obj/item/weldingtool/experimental/brass - name = "brass welding tool" - desc = "A brass welder that seems to constantly refuel itself. It is faintly warm to the touch." - resistance_flags = FIRE_PROOF | ACID_PROOF - icon_state = "brasswelder" - item_state = "brasswelder" - - -/obj/item/weldingtool/experimental/process() - ..() - if(get_fuel() < max_fuel && nextrefueltick < world.time) - nextrefueltick = world.time + 10 - reagents.add_reagent("welding_fuel", 1) - -#undef WELDER_FUEL_BURN_INTERVAL +#define WELDER_FUEL_BURN_INTERVAL 13 +/obj/item/weldingtool + name = "welding tool" + desc = "A standard edition welder provided by Nanotrasen." + icon = 'icons/obj/tools.dmi' + icon_state = "welder" + item_state = "welder" + lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' + flags_1 = CONDUCT_1 + slot_flags = ITEM_SLOT_BELT + force = 3 + throwforce = 5 + hitsound = "swing_hit" + usesound = list('sound/items/welder.ogg', 'sound/items/welder2.ogg') + var/acti_sound = 'sound/items/welderactivate.ogg' + var/deac_sound = 'sound/items/welderdeactivate.ogg' + throw_speed = 3 + throw_range = 5 + w_class = WEIGHT_CLASS_SMALL + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30) + resistance_flags = FIRE_PROOF + + materials = list(MAT_METAL=70, MAT_GLASS=30) + var/welding = 0 //Whether or not the welding tool is off(0), on(1) or currently welding(2) + var/status = TRUE //Whether the welder is secured or unsecured (able to attach rods to it to make a flamethrower) + var/max_fuel = 20 //The max amount of fuel the welder can hold + var/change_icons = 1 + var/can_off_process = 0 + var/light_intensity = 2 //how powerful the emitted light is when used. + var/progress_flash_divisor = 10 + var/burned_fuel_for = 0 //when fuel was last removed + heat = 3800 + tool_behaviour = TOOL_WELDER + toolspeed = 1 + +/obj/item/weldingtool/Initialize() + . = ..() + create_reagents(max_fuel) + reagents.add_reagent("welding_fuel", max_fuel) + update_icon() + + +/obj/item/weldingtool/proc/update_torch() + if(welding) + add_overlay("[initial(icon_state)]-on") + item_state = "[initial(item_state)]1" + else + item_state = "[initial(item_state)]" + + +/obj/item/weldingtool/update_icon() + cut_overlays() + if(change_icons) + var/ratio = get_fuel() / max_fuel + ratio = CEILING(ratio*4, 1) * 25 + add_overlay("[initial(icon_state)][ratio]") + update_torch() + return + + +/obj/item/weldingtool/process() + switch(welding) + if(0) + force = 3 + damtype = "brute" + update_icon() + if(!can_off_process) + STOP_PROCESSING(SSobj, src) + return + //Welders left on now use up fuel, but lets not have them run out quite that fast + if(1) + force = 15 + damtype = "fire" + ++burned_fuel_for + if(burned_fuel_for >= WELDER_FUEL_BURN_INTERVAL) + use(1) + update_icon() + + //This is to start fires. process() is only called if the welder is on. + open_flame() + + +/obj/item/weldingtool/suicide_act(mob/user) + user.visible_message("[user] welds [user.p_their()] every orifice closed! It looks like [user.p_theyre()] trying to commit suicide!") + return (FIRELOSS) + + +/obj/item/weldingtool/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/screwdriver)) + flamethrower_screwdriver(I, user) + else if(istype(I, /obj/item/stack/rods)) + flamethrower_rods(I, user) + else + . = ..() + update_icon() + +/obj/item/weldingtool/proc/explode() + var/turf/T = get_turf(loc) + var/plasmaAmount = reagents.get_reagent_amount("plasma") + dyn_explosion(T, plasmaAmount/5)//20 plasma in a standard welder has a 4 power explosion. no breaches, but enough to kill/dismember holder + qdel(src) + +/obj/item/weldingtool/attack(mob/living/carbon/human/H, mob/user) + if(!istype(H)) + return ..() + + var/obj/item/bodypart/affecting = H.get_bodypart(check_zone(user.zone_selected)) + + if(affecting && affecting.status == BODYPART_ROBOTIC && user.a_intent != INTENT_HARM) + if(src.use_tool(H, user, 0, volume=50, amount=1)) + if(user == H) + user.visible_message("[user] starts to fix some of the dents on [H]'s [affecting.name].", + "You start fixing some of the dents on [H]'s [affecting.name].") + if(!do_mob(user, H, 50)) + return + item_heal_robotic(H, user, 15, 0) + else + return ..() + + +/obj/item/weldingtool/afterattack(atom/O, mob/user, proximity) + if(!proximity) + return + if(!status && O.is_refillable()) + reagents.trans_to(O, reagents.total_volume) + to_chat(user, "You empty [src]'s fuel tank into [O].") + update_icon() + if(isOn()) + use(1) + var/turf/location = get_turf(user) + location.hotspot_expose(700, 50, 1) + if(get_fuel() <= 0) + set_light(0) + + if(isliving(O)) + var/mob/living/L = O + if(L.IgniteMob()) + message_admins("[key_name_admin(user)] set [key_name_admin(L)] on fire") + log_game("[key_name(user)] set [key_name(L)] on fire") + + +/obj/item/weldingtool/attack_self(mob/user) + if(src.reagents.has_reagent("plasma")) + message_admins("[key_name_admin(user)] activated a rigged welder.") + explode() + switched_on(user) + if(welding) + set_light(light_intensity) + + update_icon() + + +// Returns the amount of fuel in the welder +/obj/item/weldingtool/proc/get_fuel() + return reagents.get_reagent_amount("welding_fuel") + + +// Uses fuel from the welding tool. +/obj/item/weldingtool/use(used = 0) + if(!isOn() || !check_fuel()) + return FALSE + + if(used) + burned_fuel_for = 0 + if(get_fuel() >= used) + reagents.remove_reagent("welding_fuel", used) + check_fuel() + return TRUE + else + return FALSE + + +//Turns off the welder if there is no more fuel (does this really need to be its own proc?) +/obj/item/weldingtool/proc/check_fuel(mob/user) + if(get_fuel() <= 0 && welding) + switched_on(user) + update_icon() + //mob icon update + if(ismob(loc)) + var/mob/M = loc + M.update_inv_hands(0) + + return 0 + return 1 + +//Switches the welder on +/obj/item/weldingtool/proc/switched_on(mob/user) + if(!status) + to_chat(user, "[src] can't be turned on while unsecured!") + return + welding = !welding + if(welding) + if(get_fuel() >= 1) + to_chat(user, "You switch [src] on.") + playsound(loc, acti_sound, 50, 1) + force = 15 + damtype = "fire" + hitsound = 'sound/items/welder.ogg' + update_icon() + START_PROCESSING(SSobj, src) + else + to_chat(user, "You need more fuel!") + switched_off(user) + else + to_chat(user, "You switch [src] off.") + playsound(loc, deac_sound, 50, 1) + switched_off(user) + +//Switches the welder off +/obj/item/weldingtool/proc/switched_off(mob/user) + welding = 0 + set_light(0) + + force = 3 + damtype = "brute" + hitsound = "swing_hit" + update_icon() + + +/obj/item/weldingtool/examine(mob/user) + ..() + to_chat(user, "It contains [get_fuel()] unit\s of fuel out of [max_fuel].") + +/obj/item/weldingtool/is_hot() + return welding * heat + +//Returns whether or not the welding tool is currently on. +/obj/item/weldingtool/proc/isOn() + return welding + +// When welding is about to start, run a normal tool_use_check, then flash a mob if it succeeds. +/obj/item/weldingtool/tool_start_check(mob/living/user, amount=0) + . = tool_use_check(user, amount) + if(. && user) + user.flash_act(light_intensity) + +// Flash the user during welding progress +/obj/item/weldingtool/tool_check_callback(mob/living/user, amount, datum/callback/extra_checks) + . = ..() + if(. && user) + if (progress_flash_divisor == 0) + user.flash_act(min(light_intensity,1)) + progress_flash_divisor = initial(progress_flash_divisor) + else + progress_flash_divisor-- + +// If welding tool ran out of fuel during a construction task, construction fails. +/obj/item/weldingtool/tool_use_check(mob/living/user, amount) + if(!isOn() || !check_fuel()) + to_chat(user, "[src] has to be on to complete this task!") + return FALSE + + if(get_fuel() >= amount) + return TRUE + else + to_chat(user, "You need more welding fuel to complete this task!") + return FALSE + + +/obj/item/weldingtool/proc/flamethrower_screwdriver(obj/item/I, mob/user) + if(welding) + to_chat(user, "Turn it off first!") + return + status = !status + if(status) + to_chat(user, "You resecure [src] and close the fuel tank.") + container_type = NONE + else + to_chat(user, "[src] can now be attached, modified, and refuelled.") + container_type = OPENCONTAINER + add_fingerprint(user) + +/obj/item/weldingtool/proc/flamethrower_rods(obj/item/I, mob/user) + if(!status) + var/obj/item/stack/rods/R = I + if (R.use(1)) + var/obj/item/flamethrower/F = new /obj/item/flamethrower(user.loc) + if(!remove_item_from_storage(F)) + user.transferItemToLoc(src, F, TRUE) + F.weldtool = src + add_fingerprint(user) + to_chat(user, "You add a rod to a welder, starting to build a flamethrower.") + user.put_in_hands(F) + else + to_chat(user, "You need one rod to start building a flamethrower!") + +/obj/item/weldingtool/ignition_effect(atom/A, mob/user) + if(use_tool(A, user, 0, amount=1)) + return "[user] casually lights [A] with [src], what a badass." + else + return "" + +/obj/item/weldingtool/largetank + name = "industrial welding tool" + desc = "A slightly larger welder with a larger tank." + icon_state = "indwelder" + max_fuel = 40 + materials = list(MAT_GLASS=60) + +/obj/item/weldingtool/largetank/cyborg + name = "integrated welding tool" + desc = "An advanced welder designed to be used in robotic systems." + toolspeed = 0.5 + +/obj/item/weldingtool/largetank/flamethrower_screwdriver() + return + + +/obj/item/weldingtool/mini + name = "emergency welding tool" + desc = "A miniature welder used during emergencies." + icon_state = "miniwelder" + max_fuel = 10 + w_class = WEIGHT_CLASS_TINY + materials = list(MAT_METAL=30, MAT_GLASS=10) + change_icons = 0 + +/obj/item/weldingtool/mini/flamethrower_screwdriver() + return + +/obj/item/weldingtool/abductor + name = "alien welding tool" + desc = "An alien welding tool. Whatever fuel it uses, it never runs out." + icon = 'icons/obj/abductor.dmi' + icon_state = "welder" + toolspeed = 0.1 + light_intensity = 0 + change_icons = 0 + +/obj/item/weldingtool/abductor/process() + if(get_fuel() <= max_fuel) + reagents.add_reagent("welding_fuel", 1) + ..() + +/obj/item/weldingtool/hugetank + name = "upgraded industrial welding tool" + desc = "An upgraded welder based of the industrial welder." + icon_state = "upindwelder" + item_state = "upindwelder" + max_fuel = 80 + materials = list(MAT_METAL=70, MAT_GLASS=120) + +/obj/item/weldingtool/experimental + name = "experimental welding tool" + desc = "An experimental welder capable of self-fuel generation and less harmful to the eyes." + icon_state = "exwelder" + item_state = "exwelder" + max_fuel = 40 + materials = list(MAT_METAL=70, MAT_GLASS=120) + var/last_gen = 0 + change_icons = 0 + can_off_process = 1 + light_intensity = 1 + toolspeed = 0.5 + var/nextrefueltick = 0 + +/obj/item/weldingtool/experimental/brass + name = "brass welding tool" + desc = "A brass welder that seems to constantly refuel itself. It is faintly warm to the touch." + resistance_flags = FIRE_PROOF | ACID_PROOF + icon_state = "brasswelder" + item_state = "brasswelder" + + +/obj/item/weldingtool/experimental/process() + ..() + if(get_fuel() < max_fuel && nextrefueltick < world.time) + nextrefueltick = world.time + 10 + reagents.add_reagent("welding_fuel", 1) + +#undef WELDER_FUEL_BURN_INTERVAL diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm index f189c26bb2..33c7be5dfd 100644 --- a/code/game/objects/items/tools/wirecutters.dm +++ b/code/game/objects/items/tools/wirecutters.dm @@ -7,7 +7,7 @@ lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT force = 6 throw_speed = 3 throw_range = 7 diff --git a/code/game/objects/items/tools/wrench.dm b/code/game/objects/items/tools/wrench.dm index 6e399c0909..9a9a3684c3 100644 --- a/code/game/objects/items/tools/wrench.dm +++ b/code/game/objects/items/tools/wrench.dm @@ -6,7 +6,7 @@ lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT force = 5 throwforce = 7 w_class = WEIGHT_CLASS_SMALL diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 812fae4ed3..ef82c074a6 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -143,7 +143,7 @@ lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL=10, MAT_GLASS=10) attack_verb = list("struck", "pistol whipped", "hit", "bashed") @@ -341,7 +341,7 @@ lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT | SLOT_BACK + slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK force = 5 throwforce = 5 w_class = WEIGHT_CLASS_NORMAL @@ -1064,7 +1064,7 @@ desc = "A stylish steampunk watch made out of thousands of tiny cogwheels." icon = 'icons/obj/clockwork_objects.dmi' icon_state = "dread_ipad" - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_SMALL var/cooldown = 0 diff --git a/code/game/objects/items/twohanded.dm b/code/game/objects/items/twohanded.dm index 91d5c4539c..6526eaf561 100644 --- a/code/game/objects/items/twohanded.dm +++ b/code/game/objects/items/twohanded.dm @@ -41,7 +41,7 @@ else //something wrong name = "[initial(name)]" update_icon() - if(user.get_item_by_slot(slot_back) == src) + if(user.get_item_by_slot(SLOT_BACK) == src) user.update_inv_back() else user.update_inv_hands() @@ -191,7 +191,7 @@ return qdel(O) return - if(slot == slot_hands) + if(slot == SLOT_HANDS) wield(user) else unwield(user) @@ -224,7 +224,7 @@ force = 5 throwforce = 15 w_class = WEIGHT_CLASS_BULKY - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK force_unwielded = 5 force_wielded = 24 attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut") @@ -458,7 +458,7 @@ desc = "A haphazardly-constructed yet still deadly weapon of ancient design." force = 10 w_class = WEIGHT_CLASS_BULKY - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK force_unwielded = 10 force_wielded = 18 throwforce = 20 @@ -744,7 +744,7 @@ sharpness = IS_SHARP attack_verb = list("cut", "sliced", "diced") w_class = WEIGHT_CLASS_BULKY - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK hitsound = 'sound/weapons/bladeslice.ogg' /obj/item/twohanded/vibro_weapon/Initialize() @@ -791,7 +791,7 @@ desc = "A haphazardly-constructed yet still deadly weapon. The pinnacle of modern technology." force = 11 w_class = WEIGHT_CLASS_BULKY - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK force_unwielded = 11 force_wielded = 20 //I have no idea how to balance throwforce = 22 diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index f3be1828ea..fd6fca0a3f 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -3,7 +3,7 @@ name = "banhammer" icon = 'icons/obj/items_and_weapons.dmi' icon_state = "toyhammer" - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT throwforce = 0 force = 1 w_class = WEIGHT_CLASS_TINY @@ -34,7 +34,7 @@ item_state = "sord" lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT force = 2 throwforce = 1 w_class = WEIGHT_CLASS_NORMAL @@ -55,7 +55,7 @@ righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' hitsound = 'sound/weapons/bladeslice.ogg' flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT | SLOT_BACK + slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK force = 40 throwforce = 10 w_class = WEIGHT_CLASS_NORMAL @@ -206,7 +206,7 @@ lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT | SLOT_BACK + slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK force = 40 throwforce = 10 w_class = WEIGHT_CLASS_HUGE diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index cc447a19ad..85e498e9e4 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -10,7 +10,7 @@ LINEN BINS icon = 'icons/obj/bedsheets.dmi' icon_state = "sheetwhite" item_state = "bedsheet" - slot_flags = SLOT_NECK + slot_flags = ITEM_SLOT_NECK layer = MOB_LAYER throwforce = 0 throw_speed = 1 diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index 5de453beb0..6e5c425b2b 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -24,5 +24,4 @@ new /obj/item/assembly/flash/handheld(src) new /obj/item/laser_pointer(src) new /obj/item/door_remote/research_director(src) - new /obj/item/storage/box/firingpins(src) new /obj/item/circuitboard/machine/techfab/department/science(src) diff --git a/code/game/turfs/simulated/lava.dm b/code/game/turfs/simulated/lava.dm index 316391f8de..b6f862cab5 100644 --- a/code/game/turfs/simulated/lava.dm +++ b/code/game/turfs/simulated/lava.dm @@ -128,10 +128,10 @@ continue if(iscarbon(L)) var/mob/living/carbon/C = L - var/obj/item/clothing/S = C.get_item_by_slot(slot_wear_suit) - var/obj/item/clothing/H = C.get_item_by_slot(slot_head) + var/obj/item/clothing/S = C.get_item_by_slot(SLOT_WEAR_SUIT) + var/obj/item/clothing/H = C.get_item_by_slot(SLOT_HEAD) - if(S && H && S.flags_2 & LAVA_PROTECT_2 && H.flags_2 & LAVA_PROTECT_2) + if(S && H && S.clothing_flags & LAVAPROTECT && H.clothing_flags & LAVAPROTECT) return L.adjustFireLoss(20) diff --git a/code/modules/admin/admin_ranks.dm b/code/modules/admin/admin_ranks.dm index dee4787753..7873a97f7c 100644 --- a/code/modules/admin/admin_ranks.dm +++ b/code/modules/admin/admin_ranks.dm @@ -242,7 +242,6 @@ GLOBAL_PROTECT(protected_ranks) var/skip if(rank_names[admin_rank] == null) message_admins("[admin_ckey] loaded with invalid admin rank [admin_rank].") - log_sql("[admin_ckey] loaded with invalid admin rank [admin_rank].") skip = 1 if(GLOB.admin_datums[admin_ckey] || GLOB.deadmins[admin_ckey]) skip = 1 diff --git a/code/modules/admin/create_poll.dm b/code/modules/admin/create_poll.dm index b1cda46ece..90fd6c66c9 100644 --- a/code/modules/admin/create_poll.dm +++ b/code/modules/admin/create_poll.dm @@ -73,7 +73,7 @@ if(!option) return option = sanitizeSQL(option) - var/default_percentage_calc + var/default_percentage_calc = 0 if(polltype != POLLTYPE_IRV) switch(alert("Should this option be included by default when poll result percentages are generated?",,"Yes","No","Cancel")) if("Yes") diff --git a/code/modules/admin/permissionedit.dm b/code/modules/admin/permissionedit.dm index f7bb770079..1d0bdddf03 100644 --- a/code/modules/admin/permissionedit.dm +++ b/code/modules/admin/permissionedit.dm @@ -6,56 +6,106 @@ return usr.client.holder.edit_admin_permissions() -/datum/admins/proc/edit_admin_permissions() +/datum/admins/proc/edit_admin_permissions(action, target, operation, page) if(!check_rights(R_PERMISSIONS)) return - - var/list/output = list({" - - -Permissions Panel - - - - -
- - - - - - - -"}) - - for(var/adm_ckey in GLOB.admin_datums+GLOB.deadmins) - var/datum/admins/D = GLOB.admin_datums[adm_ckey] - if(!D) - D = GLOB.deadmins[adm_ckey] - if (!D) - continue - - var/deadminlink = "" - if (D.deadmined) - deadminlink = " \[RA\]" - else - deadminlink = " \[DA\]" - - output += "" - output += "" - output += "" - output += "" - output += "" - output += "" - output += "" - - output += {" -
CKEY \[+\]RANKPERMISSIONSDENIEDALLOWED TO EDIT
[adm_ckey]
[deadminlink]\[-\]\[SYNC TGDB\]
[D.rank.name][rights2text(D.rank.include_rights," ")][rights2text(D.rank.exclude_rights," ", "-")][rights2text(D.rank.can_edit_rights," ", "*")]
-
Search:
- -"} - - usr << browse(jointext(output, ""),"window=editrights;size=1000x650") + var/list/output = list("\[Permissions\]") + if(action) + output += " | \[Log\] | \[Management\]
" + else + output += "
\[Log\]
\[Management\]" + if(action == 1) + var/list/searchlist = list(" WHERE ") + if(target) + searchlist += "ckey = '[sanitizeSQL(target)]'" + if(operation) + if(target) + searchlist += " AND " + searchlist += "operation = '[sanitizeSQL(operation)]'" + var/search + if(searchlist.len > 1) + search = searchlist.Join("") + var/logcount = 0 + var/logssperpage = 20 + var/pagecount = 0 + page = text2num(page) + var/datum/DBQuery/query_count_admin_logs = SSdbcore.NewQuery("SELECT COUNT(id) FROM [format_table_name("admin_log")][search]") + if(!query_count_admin_logs.warn_execute()) + return + if(query_count_admin_logs.NextRow()) + logcount = text2num(query_count_admin_logs.item[1]) + if(logcount > logssperpage) + output += "
Page: " + while(logcount > 0) + output += "|[pagecount == page ? "\[[pagecount]\]" : "\[[pagecount]\]"]" + logcount -= logssperpage + pagecount++ + output += "|" + var/limit = " LIMIT [logssperpage * page], [logssperpage]" + var/datum/DBQuery/query_search_admin_logs = SSdbcore.NewQuery("SELECT datetime, round_id, adminckey, operation, target, log FROM [format_table_name("admin_log")][search] ORDER BY datetime DESC[limit]") + if(!query_search_admin_logs.warn_execute()) + return + while(query_search_admin_logs.NextRow()) + var/datetime = query_search_admin_logs.item[1] + var/round_id = query_search_admin_logs.item[2] + var/admin_ckey = query_search_admin_logs.item[3] + operation = query_search_admin_logs.item[4] + target = query_search_admin_logs.item[5] + var/log = query_search_admin_logs.item[6] + output += "

[datetime] | Round ID [round_id] | Admin [admin_ckey] | Operation [operation] on [target]
[log]


" + if(action == 2) + output += "

Admin ckeys with invalid ranks

" + var/datum/DBQuery/query_check_admin_errors = SSdbcore.NewQuery("SELECT ckey, [format_table_name("admin")].rank FROM [format_table_name("admin")] LEFT JOIN [format_table_name("admin_ranks")] ON [format_table_name("admin_ranks")].rank = [format_table_name("admin")].rank WHERE [format_table_name("admin_ranks")].rank IS NULL") + if(!query_check_admin_errors.warn_execute()) + return + while(query_check_admin_errors.NextRow()) + var/admin_ckey = query_check_admin_errors.item[1] + var/admin_rank = query_check_admin_errors.item[2] + output += "[admin_ckey] has non-existant rank [admin_rank] | \[Change Rank\] | \[Remove\]" + output += "
" + output += "

Unused ranks

" + var/datum/DBQuery/query_check_unused_rank = SSdbcore.NewQuery("SELECT [format_table_name("admin_ranks")].rank FROM [format_table_name("admin_ranks")] LEFT JOIN [format_table_name("admin")] ON [format_table_name("admin")].rank = [format_table_name("admin_ranks")].rank WHERE [format_table_name("admin")].rank IS NULL") + if(!query_check_unused_rank.warn_execute()) + return + while(query_check_unused_rank.NextRow()) + var/admin_rank = query_check_unused_rank.item[1] + output += "Rank [admin_rank] is not held by any admin | \[Remove\]" + output += "
" + else if(!action) + output += {" + Permissions Panel + + + +
+ + + + + + + + "} + for(var/adm_ckey in GLOB.admin_datums+GLOB.deadmins) + var/datum/admins/D = GLOB.admin_datums[adm_ckey] + if(!D) + D = GLOB.deadmins[adm_ckey] + if (!D) + continue + var/deadminlink = "" + if (D.deadmined) + deadminlink = " \[RA\]" + else + deadminlink = " \[DA\]" + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + output += "" + output += "
CKEY \[+\]RANKPERMISSIONSDENIEDALLOWED TO EDIT
[adm_ckey]
[deadminlink]\[-\]\[SYNC TGDB\]
[D.rank.name][rights2text(D.rank.include_rights," ")][rights2text(D.rank.exclude_rights," ", "-")][rights2text(D.rank.can_edit_rights," ", "*")]
Search:
" + usr << browse("[jointext(output, "")]","window=editrights;size=1000x650") /datum/admins/proc/edit_rights_topic(list/href_list) if(!check_rights(R_PERMISSIONS)) @@ -142,10 +192,17 @@ return FALSE if(use_db) . = sanitizeSQL(.) + //if an admin exists without a datum they won't be caught by the above + var/datum/DBQuery/query_admin_in_db = SSdbcore.NewQuery("SELECT 1 FROM [format_table_name("admin_ranks")] WHERE ckey = '[.]'") + if(!query_admin_in_db.warn_execute()) + return FALSE + if(query_admin_in_db.NextRow()) + to_chat(usr, "[.] already listed in admin database. Check the Management tab if they don't appear in the list of admins.") + return FALSE var/datum/DBQuery/query_add_admin = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin")] (ckey, rank) VALUES ('[.]', 'NEW ADMIN')") if(!query_add_admin.warn_execute()) return FALSE - var/datum/DBQuery/query_add_admin_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, adminckey, adminip, operation, log) VALUES ('[SQLtime()]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'add admin', 'New admin added: [.]')") + var/datum/DBQuery/query_add_admin_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, round_id, adminckey, adminip, operation, target, log) VALUES ('[SQLtime()]', '[GLOB.round_id]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'add admin', '[.]', 'New admin added: [.]')") if(!query_add_admin_log.warn_execute()) return FALSE @@ -153,12 +210,13 @@ if(alert("Are you sure you want to remove [admin_ckey]?","Confirm Removal","Do it","Cancel") == "Do it") GLOB.admin_datums -= admin_ckey GLOB.deadmins -= admin_ckey - D.disassociate() + if(D) + D.disassociate() if(use_db) var/datum/DBQuery/query_add_rank = SSdbcore.NewQuery("DELETE FROM [format_table_name("admin")] WHERE ckey = '[admin_ckey]'") if(!query_add_rank.warn_execute()) return - var/datum/DBQuery/query_add_rank_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, adminckey, adminip, operation, log) VALUES ('[SQLtime()]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'remove admin', 'Admin removed: [admin_ckey]')") + var/datum/DBQuery/query_add_rank_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, round_id, adminckey, adminip, operation, target, log) VALUES ('[SQLtime()]', '[GLOB.round_id]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'remove admin', '[admin_ckey]', 'Admin removed: [admin_ckey]')") if(!query_add_rank_log.warn_execute()) return message_admins("[key_name_admin(usr)] removed [admin_ckey] from the admins list [use_db ? "permanently" : "temporarily"]") @@ -216,13 +274,13 @@ var/datum/DBQuery/query_add_rank = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_ranks")] (rank, flags, exclude_flags, can_edit_flags) VALUES ('[new_rank]', '0', '0', '0')") if(!query_add_rank.warn_execute()) return - var/datum/DBQuery/query_add_rank_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, adminckey, adminip, operation, log) VALUES ('[SQLtime()]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'add rank', 'New rank added: [admin_ckey]')") + var/datum/DBQuery/query_add_rank_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, round_id, adminckey, adminip, operation, target, log) VALUES ('[SQLtime()]', '[GLOB.round_id]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'add rank', '[new_rank]', 'New rank added: [new_rank]')") if(!query_add_rank_log.warn_execute()) return var/datum/DBQuery/query_change_rank = SSdbcore.NewQuery("UPDATE [format_table_name("admin")] SET rank = '[new_rank]' WHERE ckey = '[admin_ckey]'") if(!query_change_rank.warn_execute()) return - var/datum/DBQuery/query_change_rank_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, adminckey, adminip, operation, log) VALUES ('[SQLtime()]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'change admin rank', 'Rank of [admin_ckey] changed from [old_rank] to [new_rank]')") + var/datum/DBQuery/query_change_rank_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, round_id, adminckey, adminip, operation, target, log) VALUES ('[SQLtime()]', '[GLOB.round_id]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'change admin rank', '[admin_ckey]', 'Rank of [admin_ckey] changed from [old_rank] to [new_rank]')") if(!query_change_rank_log.warn_execute()) return if(D) //they were previously an admin @@ -259,7 +317,7 @@ var/datum/DBQuery/query_change_rank_flags = SSdbcore.NewQuery("UPDATE [format_table_name("admin_ranks")] SET flags = '[new_flags]', exclude_flags = '[new_exclude_flags]', can_edit_flags = '[new_can_edit_flags]' WHERE rank = '[D.rank.name]'") if(!query_change_rank_flags.warn_execute()) return - var/datum/DBQuery/query_change_rank_flags_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, adminckey, adminip, operation, log) VALUES ('[SQLtime()]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'change rank flags', 'Permissions of [admin_ckey] changed from[rights2text(old_flags," ")][rights2text(old_exclude_flags," ", "-")][rights2text(old_can_edit_flags," ", "*")] to[rights2text(new_flags," ")][rights2text(new_exclude_flags," ", "-")][rights2text(new_can_edit_flags," ", "*")]')") + var/datum/DBQuery/query_change_rank_flags_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, round_id, adminckey, adminip, operation, target, log) VALUES ('[SQLtime()]', '[GLOB.round_id]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'change rank flags', '[D.rank.name]', 'Permissions of [D.rank.name] changed from[rights2text(old_flags," ")][rights2text(old_exclude_flags," ", "-")][rights2text(old_can_edit_flags," ", "*")] to[rights2text(new_flags," ")][rights2text(new_exclude_flags," ", "-")][rights2text(new_can_edit_flags," ", "*")]')") if(!query_change_rank_flags_log.warn_execute()) return for(var/datum/admin_rank/R in GLOB.admin_ranks) @@ -294,6 +352,36 @@ message_admins("[key_name_admin(usr)] edited the permissions of [use_db ? " rank [D.rank.name] permanently" : "[admin_ckey] temporarily"]") log_admin("[key_name(usr)] edited the permissions of [use_db ? " rank [D.rank.name] permanently" : "[admin_ckey] temporarily"]") +/datum/admins/proc/remove_rank(admin_rank) + if(!admin_rank) + return + for(var/datum/admin_rank/R in GLOB.admin_ranks) + if(R.name == admin_rank && (!(R.rights & usr.client.holder.rank.can_edit_rights) == R.rights)) + to_chat(usr, "You don't have edit rights to all the rights this rank has, rank deletion not permitted.") + return + if(!CONFIG_GET(flag/admin_legacy_system) && CONFIG_GET(flag/protect_legacy_ranks) && (admin_rank in GLOB.protected_ranks)) + to_chat(usr, "Deletion of protected ranks is not permitted, it must be removed from admin_ranks.txt.") + return + if(CONFIG_GET(flag/load_legacy_ranks_only)) + to_chat(usr, "Rank deletion not permitted while database rank loading is disabled.") + return + admin_rank = sanitizeSQL(admin_rank) + var/datum/DBQuery/query_admins_with_rank = SSdbcore.NewQuery("SELECT 1 FROM [format_table_name("admin")] WHERE rank = '[admin_rank]'") + if(!query_admins_with_rank.warn_execute()) + return + if(query_admins_with_rank.NextRow()) + to_chat(usr, "Error: Rank deletion attempted while rank still used; Tell a coder, this shouldn't happen.") + return + if(alert("Are you sure you want to remove [admin_rank]?","Confirm Removal","Do it","Cancel") == "Do it") + var/datum/DBQuery/query_add_rank = SSdbcore.NewQuery("DELETE FROM [format_table_name("admin_ranks")] WHERE rank = '[admin_rank]'") + if(!query_add_rank.warn_execute()) + return + var/datum/DBQuery/query_add_rank_log = SSdbcore.NewQuery("INSERT INTO [format_table_name("admin_log")] (datetime, round_id, adminckey, adminip, operation, target, log) VALUES ('[SQLtime()]', '[GLOB.round_id]', '[sanitizeSQL(usr.ckey)]', INET_ATON('[sanitizeSQL(usr.client.address)]'), 'remove rank', '[admin_rank]', 'Rank removed: [admin_rank]')") + if(!query_add_rank_log.warn_execute()) + return + message_admins("[key_name_admin(usr)] removed rank [admin_rank] permanently") + log_admin("[key_name(usr)] removed rank [admin_rank] permanently") + /datum/admins/proc/sync_lastadminrank(admin_ckey, datum/admins/D) var/sqlrank = sanitizeSQL(D.rank.name) admin_ckey = sanitizeSQL(admin_ckey) diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm index a8e92db53a..5138089a6c 100644 --- a/code/modules/admin/secrets.dm +++ b/code/modules/admin/secrets.dm @@ -430,7 +430,7 @@ var/obj/item/clothing/under/schoolgirl/I = new seifuku var/olduniform = H.w_uniform H.temporarilyRemoveItemFromInventory(H.w_uniform, TRUE, FALSE) - H.equip_to_slot_or_del(I, slot_w_uniform) + H.equip_to_slot_or_del(I, SLOT_W_UNIFORM) qdel(olduniform) if(droptype == "Yes") I.flags_1 |= NODROP_1 diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 56ff2e816e..bff420320c 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -273,6 +273,21 @@ return create_message("note", banckey, null, banreason, null, null, 0, 0) + else if(href_list["editrightsbrowser"]) + edit_admin_permissions(0) + + else if(href_list["editrightsbrowserlog"]) + edit_admin_permissions(1, href_list["editrightstarget"], href_list["editrightsoperation"], href_list["editrightspage"]) + + if(href_list["editrightsbrowsermanage"]) + if(href_list["editrightschange"]) + change_admin_rank(href_list["editrightschange"], TRUE) + else if(href_list["editrightsremove"]) + remove_admin(href_list["editrightsremove"], TRUE) + else if(href_list["editrightsremoverank"]) + remove_rank(href_list["editrightsremoverank"]) + edit_admin_permissions(2) + else if(href_list["editrights"]) edit_rights_topic(href_list) @@ -1493,8 +1508,8 @@ if(ishuman(L)) var/mob/living/carbon/human/observer = L - observer.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket(observer), slot_w_uniform) - observer.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(observer), slot_shoes) + observer.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket(observer), SLOT_W_UNIFORM) + observer.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(observer), SLOT_SHOES) L.Unconscious(100) sleep(5) L.forceMove(pick(GLOB.tdomeobserve)) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 68854b7978..28fb4a485d 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -480,7 +480,7 @@ GLOBAL_PROTECT(AdminProcCallSpamPrevention) id.forceMove(W) W.update_icon() else - H.equip_to_slot(id,slot_wear_id) + H.equip_to_slot(id,SLOT_WEAR_ID) else alert("Invalid mob") diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index f92b24c4dc..b6b6cd12c6 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -53,7 +53,7 @@ A.UpdateButtonIcon() /obj/item/clothing/suit/armor/abductor/vest/item_action_slot_check(slot, mob/user) - if(slot == slot_wear_suit) //we only give the mob the ability to activate the vest if he's actually wearing it. + if(slot == SLOT_WEAR_SUIT) //we only give the mob the ability to activate the vest if he's actually wearing it. return 1 /obj/item/clothing/suit/armor/abductor/vest/proc/SetDisguise(datum/icon_snapshot/entry) @@ -338,7 +338,7 @@ if(QDELETED(G)) return - if(istype(C.get_item_by_slot(slot_head), /obj/item/clothing/head/foilhat)) + if(istype(C.get_item_by_slot(SLOT_HEAD), /obj/item/clothing/head/foilhat)) to_chat(user, "Your target seems to have some sort of protective headgear on, blocking the message from being sent!") return @@ -425,7 +425,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} item_state = "wonderprod" lefthand_file = 'icons/mob/inhands/antag/abductor_lefthand.dmi' righthand_file = 'icons/mob/inhands/antag/abductor_righthand.dmi' - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT force = 7 w_class = WEIGHT_CLASS_NORMAL actions_types = list(/datum/action/item_action/toggle_mode) @@ -515,7 +515,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} /obj/item/abductor_baton/proc/SleepAttack(mob/living/L,mob/living/user) if(L.incapacitated(TRUE, TRUE)) - if(istype(L.get_item_by_slot(slot_head), /obj/item/clothing/head/foilhat)) + if(istype(L.get_item_by_slot(SLOT_HEAD), /obj/item/clothing/head/foilhat)) to_chat(user, "The specimen's protective headgear is interfering with the sleep inducement!") L.visible_message("[user] tried to induced sleep in [L] with [src], but [L.p_their()] headgear protected [L.p_them()]!", \ "You feel a strange wave of heavy drowsiness wash over you, but your headgear deflects most of it!") @@ -527,7 +527,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} L.Sleeping(1200) add_logs(user, L, "put to sleep") else - if(istype(L.get_item_by_slot(slot_head), /obj/item/clothing/head/foilhat)) + if(istype(L.get_item_by_slot(SLOT_HEAD), /obj/item/clothing/head/foilhat)) to_chat(user, "The specimen's protective headgear is completely blocking our sleep inducement methods!") L.visible_message("[user] tried to induce sleep in [L] with [src], but [L.p_their()] headgear completely protected [L.p_them()]!", \ "Any sense of drowsiness is quickly diminished as your headgear deflects the effects!") diff --git a/code/modules/antagonists/abductor/machinery/console.dm b/code/modules/antagonists/abductor/machinery/console.dm index 08776318c8..e629a0b47d 100644 --- a/code/modules/antagonists/abductor/machinery/console.dm +++ b/code/modules/antagonists/abductor/machinery/console.dm @@ -167,7 +167,7 @@ c.console = src /obj/machinery/abductor/console/proc/AddSnapshot(mob/living/carbon/human/target) - if(istype(target.get_item_by_slot(slot_head), /obj/item/clothing/head/foilhat)) + if(istype(target.get_item_by_slot(SLOT_HEAD), /obj/item/clothing/head/foilhat)) say("Subject wearing specialized protective headgear, unable to get a proper scan!") return var/datum/icon_snapshot/entry = new diff --git a/code/modules/antagonists/changeling/powers/biodegrade.dm b/code/modules/antagonists/changeling/powers/biodegrade.dm index dbb0e3a88a..1e8eaed383 100644 --- a/code/modules/antagonists/changeling/powers/biodegrade.dm +++ b/code/modules/antagonists/changeling/powers/biodegrade.dm @@ -13,7 +13,7 @@ return 0 if(user.handcuffed) - var/obj/O = user.get_item_by_slot(slot_handcuffed) + var/obj/O = user.get_item_by_slot(SLOT_HANDCUFFED) if(!istype(O)) return 0 user.visible_message("[user] vomits a glob of acid on [user.p_their()] [O]!", \ @@ -23,7 +23,7 @@ used = TRUE if(user.wear_suit && user.wear_suit.breakouttime && !used) - var/obj/item/clothing/suit/S = user.get_item_by_slot(slot_wear_suit) + var/obj/item/clothing/suit/S = user.get_item_by_slot(SLOT_WEAR_SUIT) if(!istype(S)) return 0 user.visible_message("[user] vomits a glob of acid across the front of [user.p_their()] [S]!", \ diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index 0c03f7420c..dbc8446fca 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -119,8 +119,8 @@ user.dropItemToGround(user.head) user.dropItemToGround(user.wear_suit) - user.equip_to_slot_if_possible(new suit_type(user), slot_wear_suit, 1, 1, 1) - user.equip_to_slot_if_possible(new helmet_type(user), slot_head, 1, 1, 1) + user.equip_to_slot_if_possible(new suit_type(user), SLOT_WEAR_SUIT, 1, 1, 1) + user.equip_to_slot_if_possible(new helmet_type(user), SLOT_HEAD, 1, 1, 1) var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) changeling.chem_recharge_slowdown += recharge_slowdown @@ -445,7 +445,8 @@ name = "flesh mass" icon_state = "lingspacesuit" desc = "A huge, bulky mass of pressure and temperature-resistant organic tissue, evolved to facilitate space travel." - flags_1 = STOPSPRESSUREDMAGE_1 | NODROP_1 | DROPDEL_1 //Not THICKMATERIAL_1 because it's organic tissue, so if somebody tries to inject something into it, it still ends up in your blood. (also balance but muh fluff) + flags_1 = NODROP_1 | DROPDEL_1 + clothing_flags = STOPSPRESSUREDAMAGE //Not THICKMATERIAL because it's organic tissue, so if somebody tries to inject something into it, it still ends up in your blood. (also balance but muh fluff) allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/oxygen) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) //No armor at all. @@ -464,7 +465,8 @@ name = "flesh mass" icon_state = "lingspacehelmet" desc = "A covering of pressure and temperature-resistant organic tissue with a glass-like chitin front." - flags_1 = STOPSPRESSUREDMAGE_1 | NODROP_1 | DROPDEL_1 //Again, no THICKMATERIAL_1. + flags_1 = NODROP_1 | DROPDEL_1 + clothing_flags = STOPSPRESSUREDAMAGE armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm index a9c73ef4c4..32bf870886 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm @@ -21,23 +21,23 @@ /obj/item/clothing/head/helmet/clockwork/ratvar_act() if(GLOB.ratvar_awakens) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) - flags_1 |= STOPSPRESSUREDMAGE_1 + clothing_flags |= STOPSPRESSUREDAMAGE max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT else if(GLOB.ratvar_approaches) armor = list("melee" = 70, "bullet" = 80, "laser" = -15, "energy" = 25, "bomb" = 70, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) - flags_1 |= STOPSPRESSUREDMAGE_1 + clothing_flags |= STOPSPRESSUREDAMAGE max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT else armor = list("melee" = 60, "bullet" = 70, "laser" = -25, "energy" = 0, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) - flags_1 &= ~STOPSPRESSUREDMAGE_1 + clothing_flags &= ~STOPSPRESSUREDAMAGE max_heat_protection_temperature = initial(max_heat_protection_temperature) min_cold_protection_temperature = initial(min_cold_protection_temperature) /obj/item/clothing/head/helmet/clockwork/equipped(mob/living/user, slot) ..() - if(slot == slot_head && !is_servant_of_ratvar(user)) + if(slot == SLOT_HEAD && !is_servant_of_ratvar(user)) if(!iscultist(user)) to_chat(user, "\"Now now, this is for my servants, not you.\"") user.visible_message("As [user] puts [src] on, it flickers off [user.p_their()] head!", "The helmet flickers off your head, leaving only nausea!") @@ -82,17 +82,17 @@ /obj/item/clothing/suit/armor/clockwork/ratvar_act() if(GLOB.ratvar_awakens) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) - flags_1 |= STOPSPRESSUREDMAGE_1 + clothing_flags |= STOPSPRESSUREDAMAGE max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT else if(GLOB.ratvar_approaches) armor = list("melee" = 70, "bullet" = 80, "laser" = -15, "energy" = 25, "bomb" = 70, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) - flags_1 |= STOPSPRESSUREDMAGE_1 + clothing_flags |= STOPSPRESSUREDAMAGE max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT else armor = list("melee" = 60, "bullet" = 70, "laser" = -25, "energy" = 0, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) - flags_1 &= ~STOPSPRESSUREDMAGE_1 + clothing_flags &= ~STOPSPRESSUREDAMAGE max_heat_protection_temperature = initial(max_heat_protection_temperature) min_cold_protection_temperature = initial(min_cold_protection_temperature) @@ -103,7 +103,7 @@ /obj/item/clothing/suit/armor/clockwork/equipped(mob/living/user, slot) ..() - if(slot == slot_wear_suit && !is_servant_of_ratvar(user)) + if(slot == SLOT_WEAR_SUIT && !is_servant_of_ratvar(user)) if(!iscultist(user)) to_chat(user, "\"Now now, this is for my servants, not you.\"") user.visible_message("As [user] puts [src] on, it flickers off [user.p_their()] body!", "The curiass flickers off your body, leaving only nausea!") @@ -148,12 +148,12 @@ /obj/item/clothing/gloves/clockwork/ratvar_act() if(GLOB.ratvar_awakens) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) - flags_1 |= STOPSPRESSUREDMAGE_1 + clothing_flags |= STOPSPRESSUREDAMAGE max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT else armor = list("melee" = 80, "bullet" = 70, "laser" = -25, "energy" = 0, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) - flags_1 &= ~STOPSPRESSUREDMAGE_1 + clothing_flags &= ~STOPSPRESSUREDAMAGE max_heat_protection_temperature = initial(max_heat_protection_temperature) min_cold_protection_temperature = initial(min_cold_protection_temperature) @@ -164,7 +164,7 @@ /obj/item/clothing/gloves/clockwork/equipped(mob/living/user, slot) ..() - if(slot == slot_gloves && !is_servant_of_ratvar(user)) + if(slot == SLOT_GLOVES && !is_servant_of_ratvar(user)) if(!iscultist(user)) to_chat(user, "\"Now now, this is for my servants, not you.\"") user.visible_message("As [user] puts [src] on, it flickers off [user.p_their()] arms!", "The gauntlets flicker off your arms, leaving only nausea!") @@ -203,9 +203,9 @@ /obj/item/clothing/shoes/clockwork/ratvar_act() if(GLOB.ratvar_awakens) - flags_1 |= NOSLIP_1 + clothing_flags |= NOSLIP else - flags_1 &= ~NOSLIP_1 + clothing_flags &= ~NOSLIP /obj/item/clothing/shoes/clockwork/mob_can_equip(mob/M, mob/equipper, slot, disable_warning = 0) if(equipper && !is_servant_of_ratvar(equipper)) @@ -214,7 +214,7 @@ /obj/item/clothing/shoes/clockwork/equipped(mob/living/user, slot) ..() - if(slot == slot_shoes && !is_servant_of_ratvar(user)) + if(slot == SLOT_SHOES && !is_servant_of_ratvar(user)) if(!iscultist(user)) to_chat(user, "\"Now now, this is for my servants, not you.\"") user.visible_message("As [user] puts [src] on, it flickers off [user.p_their()] feet!", "The treads flicker off your feet, leaving only nausea!") diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm index 5f5bc1b58a..c464656150 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_slab.dm @@ -9,7 +9,7 @@ righthand_file = 'icons/mob/inhands/antag/clockwork_righthand.dmi' var/inhand_overlay //If applicable, this overlay will be applied to the slab's inhand - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_SMALL var/busy //If the slab is currently being used by something diff --git a/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm b/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm index ca5fe74f2e..3f3bb58598 100644 --- a/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm +++ b/code/modules/antagonists/clockcult/clock_items/construct_chassis.dm @@ -115,4 +115,4 @@ S.no_cost = TRUE if(seasonal_hat && seasonal_hat != "none") var/obj/item/hat = new seasonal_hat(construct) - construct.equip_to_slot_or_del(hat, slot_head) + construct.equip_to_slot_or_del(hat, SLOT_HEAD) diff --git a/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm b/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm index 4cba81595f..f54d88fc49 100644 --- a/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm +++ b/code/modules/antagonists/clockcult/clock_items/judicial_visor.dm @@ -28,13 +28,13 @@ return ..() /obj/item/clothing/glasses/judicial_visor/item_action_slot_check(slot, mob/user) - if(slot != slot_glasses) + if(slot != SLOT_GLASSES) return 0 return ..() /obj/item/clothing/glasses/judicial_visor/equipped(mob/living/user, slot) ..() - if(slot != slot_glasses) + if(slot != SLOT_GLASSES) update_status(FALSE) if(blaster.ranged_ability_user) blaster.remove_ranged_ability() @@ -55,13 +55,13 @@ addtimer(CALLBACK(src, .proc/check_on_mob, user), 1) //dropped is called before the item is out of the slot, so we need to check slightly later /obj/item/clothing/glasses/judicial_visor/proc/check_on_mob(mob/user) - if(user && src != user.get_item_by_slot(slot_glasses)) //if we happen to check and we AREN'T in the slot, we need to remove our shit from whoever we got dropped from + if(user && src != user.get_item_by_slot(SLOT_GLASSES)) //if we happen to check and we AREN'T in the slot, we need to remove our shit from whoever we got dropped from update_status(FALSE) if(blaster.ranged_ability_user) blaster.remove_ranged_ability() /obj/item/clothing/glasses/judicial_visor/attack_self(mob/user) - if(is_servant_of_ratvar(user) && src == user.get_item_by_slot(slot_glasses)) + if(is_servant_of_ratvar(user) && src == user.get_item_by_slot(SLOT_GLASSES)) blaster.toggle(user) /obj/item/clothing/glasses/judicial_visor/proc/update_status(change_to) @@ -89,7 +89,7 @@ if(!src) return 0 recharging = FALSE - if(user && src == user.get_item_by_slot(slot_glasses)) + if(user && src == user.get_item_by_slot(SLOT_GLASSES)) to_chat(user, "Your [name] hums. It is ready.") else active = FALSE @@ -115,7 +115,7 @@ /obj/effect/proc_holder/judicial_visor/InterceptClickOn(mob/living/caller, params, atom/target) if(..()) return - if(ranged_ability_user.incapacitated() || !visor || visor != ranged_ability_user.get_item_by_slot(slot_glasses)) + if(ranged_ability_user.incapacitated() || !visor || visor != ranged_ability_user.get_item_by_slot(SLOT_GLASSES)) remove_ranged_ability() return diff --git a/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm b/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm index c1bf94842d..dab12dc304 100644 --- a/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm +++ b/code/modules/antagonists/clockcult/clock_items/wraith_spectacles.dm @@ -74,7 +74,7 @@ /obj/item/clothing/glasses/wraith_spectacles/equipped(mob/living/user, slot) ..() - if(slot != slot_glasses || up) + if(slot != SLOT_GLASSES || up) return if(user.has_trait(TRAIT_BLIND)) to_chat(user, "\"You're blind, idiot. Stop embarrassing yourself.\"" ) diff --git a/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm b/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm index 9a78c64942..4e1a5b42cb 100644 --- a/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm +++ b/code/modules/antagonists/clockcult/clock_scriptures/scripture_scripts.dm @@ -160,18 +160,18 @@ /datum/action/innate/clockwork_armaments/Activate() var/do_message = 0 - var/obj/item/I = owner.get_item_by_slot(slot_wear_suit) + var/obj/item/I = owner.get_item_by_slot(SLOT_WEAR_SUIT) if(remove_item_if_better(I, owner)) - do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/suit/armor/clockwork(null), slot_wear_suit) - I = owner.get_item_by_slot(slot_head) + do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/suit/armor/clockwork(null), SLOT_WEAR_SUIT) + I = owner.get_item_by_slot(SLOT_HEAD) if(remove_item_if_better(I, owner)) - do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/head/helmet/clockwork(null), slot_head) - I = owner.get_item_by_slot(slot_gloves) + do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/head/helmet/clockwork(null), SLOT_HEAD) + I = owner.get_item_by_slot(SLOT_GLOVES) if(remove_item_if_better(I, owner)) - do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/gloves/clockwork(null), slot_gloves) - I = owner.get_item_by_slot(slot_shoes) + do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/gloves/clockwork(null), SLOT_GLOVES) + I = owner.get_item_by_slot(SLOT_SHOES) if(remove_item_if_better(I, owner)) - do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/shoes/clockwork(null), slot_shoes) + do_message += owner.equip_to_slot_or_del(new/obj/item/clothing/shoes/clockwork(null), SLOT_SHOES) if(do_message) owner.visible_message("Strange armor appears on [owner]!", "A bright shimmer runs down your body, equipping you with Ratvarian armor.") playsound(owner, 'sound/magic/clockwork/fellowship_armory.ogg', 15 * do_message, TRUE) //get sound loudness based on how much we equipped diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm index 62c6ec806f..3df3d63ebd 100644 --- a/code/modules/antagonists/cult/blood_magic.dm +++ b/code/modules/antagonists/cult/blood_magic.dm @@ -605,11 +605,11 @@ uses-- var/mob/living/carbon/C = target C.visible_message("Otherworldly armor suddenly appears on [C]!") - C.equip_to_slot_or_del(new /obj/item/clothing/under/color/black,slot_w_uniform) - C.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), slot_head) - C.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), slot_wear_suit) - C.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult/alt(user), slot_shoes) - C.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(user), slot_back) + C.equip_to_slot_or_del(new /obj/item/clothing/under/color/black,SLOT_W_UNIFORM) + C.equip_to_slot_or_del(new /obj/item/clothing/head/culthood/alt(user), SLOT_HEAD) + C.equip_to_slot_or_del(new /obj/item/clothing/suit/cultrobes/alt(user), SLOT_WEAR_SUIT) + C.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult/alt(user), SLOT_SHOES) + C.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(user), SLOT_BACK) if(C == user) qdel(src) //Clears the hands C.put_in_hands(new /obj/item/melee/cultblade(user)) diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm index 81d93d0233..0c7fb025c7 100644 --- a/code/modules/antagonists/cult/cult.dm +++ b/code/modules/antagonists/cult/cult.dm @@ -81,9 +81,9 @@ /datum/antagonist/cult/proc/cult_give_item(obj/item/item_path, mob/living/carbon/human/mob) var/list/slots = list( - "backpack" = slot_in_backpack, - "left pocket" = slot_l_store, - "right pocket" = slot_r_store + "backpack" = SLOT_IN_BACKPACK, + "left pocket" = SLOT_L_STORE, + "right pocket" = SLOT_R_STORE ) var/T = new item_path(mob) diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index 71e02fdf4c..a1241d5998 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -1061,7 +1061,7 @@ structure_check() searches for nearby cultist structures required for the invoca /proc/hudFix(mob/living/carbon/human/target) if(!target || !target.client) return - var/obj/O = target.get_item_by_slot(slot_glasses) + var/obj/O = target.get_item_by_slot(SLOT_GLASSES) if(istype(O, /obj/item/clothing/glasses/hud/security)) var/datum/atom_hud/AH = GLOB.huds[DATA_HUD_SECURITY_ADVANCED] AH.add_hud_to(target) diff --git a/code/modules/antagonists/devil/devil.dm b/code/modules/antagonists/devil/devil.dm index 55a33820f0..3852eb6de1 100644 --- a/code/modules/antagonists/devil/devil.dm +++ b/code/modules/antagonists/devil/devil.dm @@ -456,10 +456,10 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", return -1 currentMob.change_mob_type( /mob/living/carbon/human, targetturf, null, 1) var/mob/living/carbon/human/H = owner.current - H.equip_to_slot_or_del(new /obj/item/clothing/under/lawyer/black(H), slot_w_uniform) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), slot_shoes) - H.equip_to_slot_or_del(new /obj/item/storage/briefcase(H), slot_hands) - H.equip_to_slot_or_del(new /obj/item/pen(H), slot_l_store) + H.equip_to_slot_or_del(new /obj/item/clothing/under/lawyer/black(H), SLOT_W_UNIFORM) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(H), SLOT_SHOES) + H.equip_to_slot_or_del(new /obj/item/storage/briefcase(H), SLOT_HANDS) + H.equip_to_slot_or_del(new /obj/item/pen(H), SLOT_L_STORE) if(SOULVALUE >= BLOOD_THRESHOLD) H.set_species(/datum/species/lizard, 1) H.underwear = "Nude" diff --git a/code/modules/antagonists/highlander/highlander.dm b/code/modules/antagonists/highlander/highlander.dm index 84faf34387..c55f177b7a 100644 --- a/code/modules/antagonists/highlander/highlander.dm +++ b/code/modules/antagonists/highlander/highlander.dm @@ -46,11 +46,11 @@ qdel(I) for(var/obj/item/I in H.held_items) qdel(I) - H.equip_to_slot_or_del(new /obj/item/clothing/under/kilt/highlander(H), slot_w_uniform) - H.equip_to_slot_or_del(new /obj/item/radio/headset/heads/captain(H), slot_ears) - H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/highlander(H), slot_head) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), slot_shoes) - H.equip_to_slot_or_del(new /obj/item/pinpointer/nuke(H), slot_l_store) + H.equip_to_slot_or_del(new /obj/item/clothing/under/kilt/highlander(H), SLOT_W_UNIFORM) + H.equip_to_slot_or_del(new /obj/item/radio/headset/heads/captain(H), SLOT_EARS) + H.equip_to_slot_or_del(new /obj/item/clothing/head/beret/highlander(H), SLOT_HEAD) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(H), SLOT_SHOES) + H.equip_to_slot_or_del(new /obj/item/pinpointer/nuke(H), SLOT_L_STORE) for(var/obj/item/pinpointer/nuke/P in H) P.attack_self(H) var/obj/item/card/id/W = new(H) @@ -61,7 +61,7 @@ W.registered_name = H.real_name W.flags_1 |= NODROP_1 W.update_label(H.real_name) - H.equip_to_slot_or_del(W, slot_wear_id) + H.equip_to_slot_or_del(W, SLOT_WEAR_ID) sword = new(H) if(!GLOB.highlander) diff --git a/code/modules/antagonists/revolution/revolution.dm b/code/modules/antagonists/revolution/revolution.dm index bfeab0b1e5..19c3a43020 100644 --- a/code/modules/antagonists/revolution/revolution.dm +++ b/code/modules/antagonists/revolution/revolution.dm @@ -235,9 +235,9 @@ if(give_flash) var/obj/item/assembly/flash/T = new(H) var/list/slots = list ( - "backpack" = slot_in_backpack, - "left pocket" = slot_l_store, - "right pocket" = slot_r_store + "backpack" = SLOT_IN_BACKPACK, + "left pocket" = SLOT_L_STORE, + "right pocket" = SLOT_R_STORE ) var/where = H.equip_in_one_of_slots(T, slots) if (!where) diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index e09b92a083..f3ea4ef2ea 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -296,9 +296,9 @@ folder = new/obj/item/folder/syndicate/blue(mob.loc) var/list/slots = list ( - "backpack" = slot_in_backpack, - "left pocket" = slot_l_store, - "right pocket" = slot_r_store + "backpack" = SLOT_IN_BACKPACK, + "left pocket" = SLOT_L_STORE, + "right pocket" = SLOT_R_STORE ) var/where = "At your feet" diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index 1f22c785bd..1427f5ab68 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -204,12 +204,12 @@ H.dropItemToGround(I) var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionaire) - H.equip_to_slot_or_del(new hat(H), slot_head) - H.equip_to_slot_or_del(new /obj/item/clothing/under/roman(H), slot_w_uniform) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), slot_shoes) + H.equip_to_slot_or_del(new hat(H), SLOT_HEAD) + H.equip_to_slot_or_del(new /obj/item/clothing/under/roman(H), SLOT_W_UNIFORM) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), SLOT_SHOES) H.put_in_hands(new /obj/item/shield/riot/roman(H), TRUE) H.put_in_hands(new /obj/item/claymore(H), TRUE) - H.equip_to_slot_or_del(new /obj/item/twohanded/spear(H), slot_back) + H.equip_to_slot_or_del(new /obj/item/twohanded/spear(H), SLOT_BACK) /obj/item/voodoo diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm index 976e13faa3..e26c1e6d39 100644 --- a/code/modules/antagonists/wizard/equipment/soulstone.dm +++ b/code/modules/antagonists/wizard/equipment/soulstone.dm @@ -8,7 +8,7 @@ layer = HIGH_OBJ_LAYER desc = "A fragment of the legendary treasure known simply as the 'Soul Stone'. The shard still flickers with a fraction of the full artefact's power." w_class = WEIGHT_CLASS_TINY - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT var/usability = 0 var/old_shard = FALSE diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index 1e071bbf84..c5bc0cc5f7 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -238,17 +238,17 @@ if(!istype(master_mob) || !istype(H)) return if(master_mob.ears) - H.equip_to_slot_or_del(new master_mob.ears.type, slot_ears) + H.equip_to_slot_or_del(new master_mob.ears.type, SLOT_EARS) if(master_mob.w_uniform) - H.equip_to_slot_or_del(new master_mob.w_uniform.type, slot_w_uniform) + H.equip_to_slot_or_del(new master_mob.w_uniform.type, SLOT_W_UNIFORM) if(master_mob.shoes) - H.equip_to_slot_or_del(new master_mob.shoes.type, slot_shoes) + H.equip_to_slot_or_del(new master_mob.shoes.type, SLOT_SHOES) if(master_mob.wear_suit) - H.equip_to_slot_or_del(new master_mob.wear_suit.type, slot_wear_suit) + H.equip_to_slot_or_del(new master_mob.wear_suit.type, SLOT_WEAR_SUIT) if(master_mob.head) - H.equip_to_slot_or_del(new master_mob.head.type, slot_head) + H.equip_to_slot_or_del(new master_mob.head.type, SLOT_HEAD) if(master_mob.back) - H.equip_to_slot_or_del(new master_mob.back.type, slot_back) + H.equip_to_slot_or_del(new master_mob.back.type, SLOT_BACK) //Operation: Fuck off and scare people owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(null)) diff --git a/code/modules/assembly/flash.dm b/code/modules/assembly/flash.dm index 3cefdaf005..6093b4a97c 100644 --- a/code/modules/assembly/flash.dm +++ b/code/modules/assembly/flash.dm @@ -244,7 +244,7 @@ item_state = "flashshield" lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi' - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK force = 10 throwforce = 5 throw_speed = 2 diff --git a/code/modules/atmospherics/environmental/LINDA_fire.dm b/code/modules/atmospherics/environmental/LINDA_fire.dm index c58d14f4d4..a3c9c68d55 100644 --- a/code/modules/atmospherics/environmental/LINDA_fire.dm +++ b/code/modules/atmospherics/environmental/LINDA_fire.dm @@ -94,7 +94,7 @@ for(var/A in location) var/atom/AT = A - if(AT && AT != src) // It's possible that the item is deleted in temperature_expose + if(!QDELETED(AT) && AT != src) // It's possible that the item is deleted in temperature_expose AT.fire_act(temperature, volume) return diff --git a/code/modules/atmospherics/gasmixtures/reactions.dm b/code/modules/atmospherics/gasmixtures/reactions.dm index 8118b44b70..dd953dcb11 100644 --- a/code/modules/atmospherics/gasmixtures/reactions.dm +++ b/code/modules/atmospherics/gasmixtures/reactions.dm @@ -1,10 +1,8 @@ //Plasma fire properties #define OXYGEN_BURN_RATE_BASE 1.4 #define PLASMA_BURN_RATE_DELTA 9 -#define PLASMA_UPPER_TEMPERATURE (1370+T0C) #define PLASMA_MINIMUM_OXYGEN_NEEDED 2 #define PLASMA_MINIMUM_OXYGEN_PLASMA_RATIO 30 -#define PLASMA_OXYGEN_FULLBURN 10 #define FIRE_CARBON_ENERGY_RELEASED 100000 //Amount of heat released per mole of burnt carbon into the tile #define FIRE_HYDROGEN_ENERGY_RELEASED 280000 // Amount of heat released per mole of burnt hydrogen and/or tritium(hydrogen isotope) #define FIRE_PLASMA_ENERGY_RELEASED 3000000 //Amount of heat released per mole of burnt plasma into the tile @@ -429,10 +427,8 @@ #undef OXYGEN_BURN_RATE_BASE #undef PLASMA_BURN_RATE_DELTA -#undef PLASMA_UPPER_TEMPERATURE #undef PLASMA_MINIMUM_OXYGEN_NEEDED #undef PLASMA_MINIMUM_OXYGEN_PLASMA_RATIO -#undef PLASMA_OXYGEN_FULLBURN #undef FIRE_CARBON_ENERGY_RELEASED #undef FIRE_PLASMA_ENERGY_RELEASED #undef WATER_VAPOR_FREEZE diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index 8e602577ac..cc6344cf06 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -496,10 +496,10 @@ W.update_label(W.registered_name, W.assignment) // The shielded hardsuit is already NODROP_1 - no_drops += H.get_item_by_slot(slot_gloves) - no_drops += H.get_item_by_slot(slot_shoes) - no_drops += H.get_item_by_slot(slot_w_uniform) - no_drops += H.get_item_by_slot(slot_ears) + no_drops += H.get_item_by_slot(SLOT_GLOVES) + no_drops += H.get_item_by_slot(SLOT_SHOES) + no_drops += H.get_item_by_slot(SLOT_W_UNIFORM) + no_drops += H.get_item_by_slot(SLOT_EARS) for(var/i in no_drops) var/obj/item/I = i I.flags_1 |= NODROP_1 diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm index d3c09b2348..28a3ec23b9 100644 --- a/code/modules/client/asset_cache.dm +++ b/code/modules/client/asset_cache.dm @@ -467,7 +467,12 @@ GLOBAL_LIST_EMPTY(asset_datums) /datum/asset/simple/IRV assets = list( "jquery-ui.custom-core-widgit-mouse-sortable-min.js" = 'html/IRV/jquery-ui.custom-core-widgit-mouse-sortable-min.js', - "jquery-1.10.2.min.js" = 'html/IRV/jquery-1.10.2.min.js' + ) + +/datum/asset/group/IRV + children = list( + /datum/asset/simple/jquery, + /datum/asset/simple/IRV ) /datum/asset/simple/changelog diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 47cc5e0d25..dfecc6f633 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -223,6 +223,9 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) prefs.last_id = computer_id //these are gonna be used for banning fps = prefs.clientfps + if(fexists(roundend_report_file())) + verbs += /client/proc/show_previous_roundend_report + log_access("Login: [key_name(src)] from [address ? address : "localhost"]-[computer_id] || BYOND v[byond_version]") var/alert_mob_dupe_login = FALSE if(CONFIG_GET(flag/log_access)) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 231d375bb3..7eb1c25455 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1537,9 +1537,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) ambientocclusion = !ambientocclusion if(parent && parent.screen && parent.screen.len) var/obj/screen/plane_master/game_world/PM = locate(/obj/screen/plane_master/game_world) in parent.screen - PM.filters -= AMBIENT_OCCLUSION - if(ambientocclusion) - PM.filters += AMBIENT_OCCLUSION + PM.backdrop(parent.mob) if("save") save_preferences() diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm index e9c4c29a5e..ccf99b5b7e 100644 --- a/code/modules/client/verbs/ooc.dm +++ b/code/modules/client/verbs/ooc.dm @@ -294,3 +294,10 @@ GLOBAL_VAR_INIT(normal_ooc_colour, OOC_COLOR) to_chat(src, "You can't ignore yourself.") return ignore_key(selection) + +/client/proc/show_previous_roundend_report() + set name = "Your Last Round" + set category = "OOC" + set desc = "View the last round end report you've seen" + + SSticker.show_roundend_report(src, TRUE) diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 80562a5c80..4be9df8298 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -63,8 +63,8 @@ // it's NODROP_1 D.dropItemToGround(target, TRUE) qdel(old_headgear) - // where is `slot_head` defined? WHO KNOWS - D.equip_to_slot(new_headgear, slot_head) + // where is `SLOT_HEAD` defined? WHO KNOWS + D.equip_to_slot(new_headgear, SLOT_HEAD) return 1 @@ -331,8 +331,7 @@ item_state = "gas_alt" resistance_flags = NONE armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) - - flags_1 = BLOCK_GAS_SMOKE_EFFECT_1 | MASKINTERNALS_1 + clothing_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 @@ -408,7 +407,7 @@ icon_state = "black" item_color = "black" desc = "A pair of black shoes." - flags_1 = NOSLIP_1 + clothing_flags = NOSLIP /obj/item/clothing/shoes/chameleon/noslip/broken/Initialize() . = ..() @@ -637,4 +636,3 @@ /obj/item/pda/chameleon/broken/Initialize() . = ..() chameleon_action.emp_randomise(INFINITY) - diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 9ab929ba20..e303e3c1c2 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -24,9 +24,11 @@ var/can_flashlight = 0 var/scan_reagents = 0 //Can the wearer see reagents while it's equipped? + var/clothing_flags = NONE + //Var modification - PLEASE be careful with this I know who you are and where you live - var/list/user_vars_to_edit = list() //VARNAME = VARVALUE eg: "name" = "butts" - var/list/user_vars_remembered = list() //Auto built by the above + dropped() + equipped() + var/list/user_vars_to_edit //VARNAME = VARVALUE eg: "name" = "butts" + var/list/user_vars_remembered //Auto built by the above + dropped() + equipped() var/pocket_storage_component_path @@ -72,12 +74,12 @@ ..() if(!istype(user)) return - if(user_vars_remembered && user_vars_remembered.len) + if(LAZYLEN(user_vars_remembered)) for(var/variable in user_vars_remembered) if(variable in user.vars) if(user.vars[variable] == user_vars_to_edit[variable]) //Is it still what we set it to? (if not we best not change it) user.vars[variable] = user_vars_remembered[variable] - user_vars_remembered = list() + user_vars_remembered = initial(user_vars_remembered) // Effectively this sets it to null. /obj/item/clothing/equipped(mob/user, slot) ..() @@ -88,7 +90,7 @@ for(var/variable in user_vars_to_edit) if(variable in user.vars) LAZYSET(user_vars_remembered, variable, user.vars[variable]) - user.vv_edit_var(variable, user_vars_to_edit[variable]) + user.vars[variable] = user_vars_to_edit[variable] /obj/item/clothing/examine(mob/user) ..() @@ -262,7 +264,7 @@ BLIND // can't see anything /obj/item/clothing/proc/visor_toggling() //handles all the actual toggling of flags up = !up - flags_1 ^= visor_flags + clothing_flags ^= visor_flags flags_inv ^= visor_flags_inv flags_cover ^= initial(flags_cover) icon_state = "[initial(icon_state)][up ? "up" : ""]" diff --git a/code/modules/clothing/ears/_ears.dm b/code/modules/clothing/ears/_ears.dm index 0ff1bdefe3..3a1e246d04 100644 --- a/code/modules/clothing/ears/_ears.dm +++ b/code/modules/clothing/ears/_ears.dm @@ -1,46 +1,46 @@ +//Ears: currently only used for headsets and earmuffs + /obj/item/clothing/ears + name = "ears" + w_class = WEIGHT_CLASS_TINY + throwforce = 0 + slot_flags = ITEM_SLOT_EARS + resistance_flags = NONE -//Ears: currently only used for headsets and earmuffs -/obj/item/clothing/ears - name = "ears" - w_class = WEIGHT_CLASS_TINY - throwforce = 0 - slot_flags = SLOT_EARS - resistance_flags = NONE + /obj/item/clothing/ears/earmuffs + name = "earmuffs" + desc = "Protects your hearing from loud noises, and quiet ones as well." + icon_state = "earmuffs" + item_state = "earmuffs" + strip_delay = 15 + equip_delay_other = 25 + resistance_flags = FLAMMABLE + flags_2 = BANG_PROTECT_2|HEALS_EARS_2 -/obj/item/clothing/ears/earmuffs - name = "earmuffs" - desc = "Protects your hearing from loud noises, and quiet ones as well." - icon_state = "earmuffs" - item_state = "earmuffs" - strip_delay = 15 - equip_delay_other = 25 - resistance_flags = FLAMMABLE - flags_2 = BANG_PROTECT_2|HEALS_EARS_2 + /obj/item/clothing/ears/headphones + name = "headphones" + desc = "Unce unce unce unce. Boop!" + icon = 'icons/obj/clothing/accessories.dmi' + icon_state = "headphones" + item_state = "headphones" + slot_flags = ITEM_SLOT_EARS | ITEM_SLOT_HEAD | ITEM_SLOT_NECK //Fluff item, put it whereever you want! + actions_types = list(/datum/action/item_action/toggle_headphones) + var/headphones_on = FALSE -/obj/item/clothing/ears/headphones - name = "headphones" - desc = "Unce unce unce unce. Boop!" - icon = 'icons/obj/clothing/accessories.dmi' - icon_state = "headphones" - item_state = "headphones" - slot_flags = SLOT_EARS | SLOT_HEAD | SLOT_NECK //Fluff item, put it whereever you want! - actions_types = list(/datum/action/item_action/toggle_headphones) - var/headphones_on = FALSE + /obj/item/clothing/ears/headphones/Initialize() + . = ..() + update_icon() -/obj/item/clothing/ears/headphones/Initialize() - . = ..() - update_icon() + /obj/item/clothing/ears/headphones/update_icon() + icon_state = "[initial(icon_state)]_[headphones_on? "on" : "off"]" + item_state = "[initial(item_state)]_[headphones_on? "on" : "off"]" -/obj/item/clothing/ears/headphones/update_icon() - icon_state = "[initial(icon_state)]_[headphones_on? "on" : "off"]" - item_state = "[initial(item_state)]_[headphones_on? "on" : "off"]" - -/obj/item/clothing/ears/headphones/proc/toggle(owner) - headphones_on = !headphones_on - update_icon() - var/mob/living/carbon/human/H = owner - if(istype(H)) - H.update_inv_ears() - H.update_inv_neck() - H.update_inv_head() - to_chat(owner, "You turn the music [headphones_on? "on. Untz Untz Untz!" : "off."]") + /obj/item/clothing/ears/headphones/proc/toggle(owner) + headphones_on = !headphones_on + update_icon() + var/mob/living/carbon/human/H = owner + if(istype(H)) + H.update_inv_ears() + H.update_inv_neck() + H.update_inv_head() + to_chat(owner, "You turn the music [headphones_on? "on. Untz Untz Untz!" : "off."]") + \ No newline at end of file diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 7b8b417561..179054bee7 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/clothing/glasses.dmi' w_class = WEIGHT_CLASS_SMALL flags_cover = GLASSESCOVERSEYES - slot_flags = SLOT_EYES + slot_flags = ITEM_SLOT_EYES strip_delay = 20 equip_delay_other = 25 resistance_flags = NONE @@ -100,7 +100,7 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) /obj/item/clothing/glasses/science/item_action_slot_check(slot) - if(slot == slot_glasses) + if(slot == SLOT_GLASSES) return 1 /obj/item/clothing/glasses/night @@ -263,7 +263,7 @@ /obj/item/clothing/glasses/sunglasses/blindfold/equipped(mob/living/carbon/human/user, slot) . = ..() - if(slot == slot_glasses) + if(slot == SLOT_GLASSES) user.become_blind("blindfold_[REF(src)]") /obj/item/clothing/glasses/sunglasses/blindfold/dropped(mob/living/carbon/human/user) diff --git a/code/modules/clothing/glasses/engine_goggles.dm b/code/modules/clothing/glasses/engine_goggles.dm index 347bc809a3..336881106e 100644 --- a/code/modules/clothing/glasses/engine_goggles.dm +++ b/code/modules/clothing/glasses/engine_goggles.dm @@ -123,7 +123,7 @@ item_state = icon_state if(isliving(loc)) var/mob/living/user = loc - if(user.get_item_by_slot(slot_glasses) == src) + if(user.get_item_by_slot(SLOT_GLASSES) == src) user.update_inv_glasses() else user.update_inv_hands() diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 626bf4f542..6364826942 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -6,7 +6,7 @@ /obj/item/clothing/glasses/hud/equipped(mob/living/carbon/human/user, slot) ..() - if(hud_type && slot == slot_glasses) + if(hud_type && slot == SLOT_GLASSES) var/datum/atom_hud/H = GLOB.huds[hud_type] H.add_hud_to(user) diff --git a/code/modules/clothing/gloves/_gloves.dm b/code/modules/clothing/gloves/_gloves.dm index ca534f5a58..0e9be23aed 100644 --- a/code/modules/clothing/gloves/_gloves.dm +++ b/code/modules/clothing/gloves/_gloves.dm @@ -5,7 +5,7 @@ icon = 'icons/obj/clothing/gloves.dmi' siemens_coefficient = 0.5 body_parts_covered = HANDS - slot_flags = SLOT_GLOVES + slot_flags = ITEM_SLOT_GLOVES attack_verb = list("challenged") var/transfer_prints = FALSE strip_delay = 20 diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index 09f5993cb4..1b20501f21 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -209,7 +209,7 @@ var/obj/item/clothing/gloves/color/selected = pick(gloves) if(ishuman(loc)) var/mob/living/carbon/human/H = loc - H.equip_to_slot_or_del(new selected(H), slot_gloves) + H.equip_to_slot_or_del(new selected(H), SLOT_GLOVES) else new selected(loc) return INITIALIZE_HINT_QDEL diff --git a/code/modules/clothing/head/_head.dm b/code/modules/clothing/head/_head.dm index d3dfa189d8..6a3082b558 100644 --- a/code/modules/clothing/head/_head.dm +++ b/code/modules/clothing/head/_head.dm @@ -4,7 +4,7 @@ icon_state = "top_hat" item_state = "that" body_parts_covered = HEAD - slot_flags = SLOT_HEAD + slot_flags = ITEM_SLOT_HEAD var/blockTracking = 0 //For AI tracking var/can_toggle = null dynamic_hair_suffix = "+generic" diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index db3dda1dd2..ae4d80a0e4 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -46,7 +46,7 @@ item_color = "red" dog_fashion = null name = "firefighter helmet" - flags_1 = STOPSPRESSUREDMAGE_1 + clothing_flags = STOPSPRESSUREDAMAGE heat_protection = HEAD max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT cold_protection = HEAD @@ -56,7 +56,7 @@ icon_state = "hardhat0_white" item_state = "hardhat0_white" item_color = "white" - flags_1 = STOPSPRESSUREDMAGE_1 + clothing_flags = STOPSPRESSUREDAMAGE heat_protection = HEAD max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT cold_protection = HEAD @@ -76,7 +76,7 @@ dog_fashion = null name = "atmospheric technician's firefighting helmet" desc = "A firefighter's helmet, able to keep the user cool in any situation." - flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1 + clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR heat_protection = HEAD max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 4bf68c3bd0..4aea3d8056 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -122,7 +122,7 @@ min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT heat_protection = HEAD max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT - flags_1 = STOPSPRESSUREDMAGE_1 + clothing_flags = STOPSPRESSUREDAMAGE strip_delay = 80 dog_fashion = null diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index b58c9fc414..86763e060b 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -131,7 +131,7 @@ dog_fashion = /datum/dog_fashion/head/kitty /obj/item/clothing/head/kitty/equipped(mob/living/carbon/human/user, slot) - if(ishuman(user) && slot == slot_head) + if(ishuman(user) && slot == SLOT_HEAD) update_icon(user) user.update_inv_head() //Color might have been changed by update_icon. ..() @@ -169,7 +169,7 @@ /obj/item/clothing/head/cardborg/equipped(mob/living/user, slot) ..() - if(ishuman(user) && slot == slot_head) + if(ishuman(user) && slot == SLOT_HEAD) var/mob/living/carbon/human/H = user if(istype(H.wear_suit, /obj/item/clothing/suit/cardborg)) var/obj/item/clothing/suit/cardborg/CB = H.wear_suit @@ -240,7 +240,7 @@ /obj/item/clothing/head/foilhat/equipped(mob/living/carbon/human/user, slot) ..() - if(slot == slot_head) + if(slot == SLOT_HEAD) if(paranoia) QDEL_NULL(paranoia) paranoia = new() diff --git a/code/modules/clothing/head/vg_hats.dm b/code/modules/clothing/head/vg_hats.dm index 56844193c6..be57619a7a 100644 --- a/code/modules/clothing/head/vg_hats.dm +++ b/code/modules/clothing/head/vg_hats.dm @@ -10,7 +10,6 @@ min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT heat_protection = HEAD max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT - flags_1 = STOPSPRESSUREDMAGE_1 strip_delay = 80 dog_fashion = null icon_override = 'modular_citadel/icons/mob/citadel/head.dmi' diff --git a/code/modules/clothing/masks/_masks.dm b/code/modules/clothing/masks/_masks.dm index 562375e897..da3e114edd 100644 --- a/code/modules/clothing/masks/_masks.dm +++ b/code/modules/clothing/masks/_masks.dm @@ -2,7 +2,7 @@ name = "mask" icon = 'icons/obj/clothing/masks.dmi' body_parts_covered = HEAD - slot_flags = SLOT_MASK + slot_flags = ITEM_SLOT_MASK strip_delay = 40 equip_delay_other = 40 var/mask_adjusted = 0 @@ -33,7 +33,7 @@ src.icon_state = initial(icon_state) gas_transfer_coefficient = initial(gas_transfer_coefficient) permeability_coefficient = initial(permeability_coefficient) - flags_1 |= visor_flags + clothing_flags |= visor_flags flags_inv |= visor_flags_inv flags_cover |= visor_flags_cover to_chat(user, "You push \the [src] back into place.") @@ -43,11 +43,11 @@ to_chat(user, "You push \the [src] out of the way.") gas_transfer_coefficient = null permeability_coefficient = null - flags_1 &= ~visor_flags + clothing_flags &= ~visor_flags flags_inv &= ~visor_flags_inv flags_cover &= ~visor_flags_cover if(adjusted_flags) slot_flags = adjusted_flags if(user) user.wear_mask_update(src, toggle_off = mask_adjusted) - user.update_action_buttons_icon() //when mask is adjusted out, we update all buttons icon so the user's potential internal tank correctly shows as off. \ No newline at end of file + user.update_action_buttons_icon() //when mask is adjusted out, we update all buttons icon so the user's potential internal tank correctly shows as off. diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index ce8a8520df..145d3cb3fe 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -4,8 +4,8 @@ icon_state = "breath" item_state = "m_mask" body_parts_covered = 0 - flags_1 = MASKINTERNALS_1 - visor_flags = MASKINTERNALS_1 + clothing_flags = MASKINTERNALS + visor_flags = MASKINTERNALS w_class = WEIGHT_CLASS_SMALL gas_transfer_coefficient = 0.1 permeability_coefficient = 0.5 diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 694c290f4b..726670762e 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -2,7 +2,7 @@ name = "gas mask" desc = "A face-covering mask that can be connected to an air supply. While good for concealing your identity, it isn't good for blocking gas flow." //More accurate icon_state = "gas_alt" - flags_1 = BLOCK_GAS_SMOKE_EFFECT_1 | MASKINTERNALS_1 + clothing_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR w_class = WEIGHT_CLASS_NORMAL item_state = "gas_alt" @@ -51,7 +51,7 @@ /obj/item/clothing/mask/gas/clown_hat name = "clown wig and mask" desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask." - flags_1 = MASKINTERNALS_1 + clothing_flags = MASKINTERNALS icon_state = "clown" item_state = "clown_hat" flags_cover = MASKCOVERSEYES @@ -83,7 +83,7 @@ /obj/item/clothing/mask/gas/sexyclown name = "sexy-clown wig and mask" desc = "A feminine clown mask for the dabbling crossdressers or female entertainers." - flags_1 = MASKINTERNALS_1 + clothing_flags = MASKINTERNALS icon_state = "sexyclown" item_state = "sexyclown" flags_cover = MASKCOVERSEYES @@ -92,7 +92,7 @@ /obj/item/clothing/mask/gas/mime name = "mime mask" desc = "The traditional mime's mask. It has an eerie facial posture." - flags_1 = MASKINTERNALS_1 + clothing_flags = MASKINTERNALS icon_state = "mime" item_state = "mime" flags_cover = MASKCOVERSEYES @@ -124,7 +124,7 @@ /obj/item/clothing/mask/gas/monkeymask name = "monkey mask" desc = "A mask used when acting as a monkey." - flags_1 = MASKINTERNALS_1 + clothing_flags = MASKINTERNALS icon_state = "monkeymask" item_state = "monkeymask" flags_cover = MASKCOVERSEYES @@ -133,7 +133,7 @@ /obj/item/clothing/mask/gas/sexymime name = "sexy mime mask" desc = "A traditional female mime's mask." - flags_1 = MASKINTERNALS_1 + clothing_flags = MASKINTERNALS icon_state = "sexymime" item_state = "sexymime" flags_cover = MASKCOVERSEYES @@ -154,7 +154,7 @@ name = "owl mask" desc = "Twoooo!" icon_state = "owl" - flags_1 = MASKINTERNALS_1 + clothing_flags = MASKINTERNALS flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm index 51caf8335e..0d78e11874 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -7,10 +7,10 @@ actions_types = list(/datum/action/item_action/halt, /datum/action/item_action/adjust) icon_state = "sechailer" item_state = "sechailer" - flags_1 = BLOCK_GAS_SMOKE_EFFECT_1 | MASKINTERNALS_1 + clothing_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS flags_inv = HIDEFACIALHAIR|HIDEFACE w_class = WEIGHT_CLASS_SMALL - visor_flags = BLOCK_GAS_SMOKE_EFFECT_1 | MASKINTERNALS_1 + visor_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS visor_flags_inv = HIDEFACE flags_cover = MASKCOVERSMOUTH visor_flags_cover = MASKCOVERSMOUTH diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 96b8517e92..ad77f1d350 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -222,8 +222,8 @@ obj/item/clothing/mask/frog/cursed flags_inv = HIDEFACE|HIDEFACIALHAIR visor_flags_inv = HIDEFACE|HIDEFACIALHAIR visor_flags_cover = MASKCOVERSMOUTH - slot_flags = SLOT_MASK - adjusted_flags = SLOT_HEAD + slot_flags = ITEM_SLOT_MASK + adjusted_flags = ITEM_SLOT_HEAD icon_state = "bandbotany" /obj/item/clothing/mask/bandana/attack_self(mob/user) diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 1d92ab6e62..cb797c34d4 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -2,7 +2,7 @@ name = "necklace" icon = 'icons/obj/clothing/neck.dmi' body_parts_covered = NECK - slot_flags = SLOT_NECK + slot_flags = ITEM_SLOT_NECK strip_delay = 40 equip_delay_other = 40 diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index 0758013698..e3c32cd26c 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -6,7 +6,7 @@ var/chained = 0 body_parts_covered = FEET - slot_flags = SLOT_FEET + slot_flags = ITEM_SLOT_FEET permeability_coefficient = 0.5 slowdown = SHOES_SLOWDOWN diff --git a/code/modules/clothing/shoes/bananashoes.dm b/code/modules/clothing/shoes/bananashoes.dm index df3aa5007f..3dc80e0ded 100644 --- a/code/modules/clothing/shoes/bananashoes.dm +++ b/code/modules/clothing/shoes/bananashoes.dm @@ -13,7 +13,7 @@ AddComponent(/datum/component/material_container, list(MAT_BANANIUM), 200000, TRUE, list(/obj/item/stack)) AddComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 75) if(always_noslip) - flags_1 |= NOSLIP_1 + clothing_flags |= NOSLIP /obj/item/clothing/shoes/clown_shoes/banana_shoes/step_action() . = ..() @@ -22,7 +22,7 @@ if(bananium.amount(MAT_BANANIUM) < 100) on = !on if(!always_noslip) - flags_1 &= ~NOSLIP_1 + clothing_flags &= ~NOSLIP update_icon() to_chat(loc, "You ran out of bananium!") else @@ -49,9 +49,9 @@ to_chat(user, "You [on ? "activate" : "deactivate"] the prototype shoes.") if(!always_noslip) if(on) - flags_1 |= NOSLIP_1 + clothing_flags |= NOSLIP else - flags_1 &= ~NOSLIP_1 + clothing_flags &= ~NOSLIP else to_chat(user, "You need bananium to turn the prototype shoes on!") diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index e669ce3826..0f5b381326 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -21,12 +21,12 @@ /obj/item/clothing/shoes/magboots/attack_self(mob/user) - if(src.magpulse) - src.flags_1 &= ~NOSLIP_1 - src.slowdown = SHOES_SLOWDOWN + if(magpulse) + clothing_flags &= ~NOSLIP + slowdown = SHOES_SLOWDOWN else - src.flags_1 |= NOSLIP_1 - src.slowdown = slowdown_active + clothing_flags |= NOSLIP + slowdown = slowdown_active magpulse = !magpulse icon_state = "[magboot_state][magpulse]" to_chat(user, "You [magpulse ? "enable" : "disable"] the mag-pulse traction system.") @@ -37,7 +37,7 @@ A.UpdateButtonIcon() /obj/item/clothing/shoes/magboots/negates_gravity() - return flags_1 & NOSLIP_1 + return clothing_flags & NOSLIP /obj/item/clothing/shoes/magboots/examine(mob/user) ..() diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 3dad0d464e..9f0d8358ac 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -23,7 +23,7 @@ name = "\improper SWAT boots" desc = "High speed, no drag combat boots." permeability_coefficient = 0.01 - flags_1 = NOSLIP_1 + clothing_flags = NOSLIP armor = list("melee" = 40, "bullet" = 30, "laser" = 25, "energy" = 25, "bomb" = 50, "bio" = 30, "rad" = 30, "fire" = 90, "acid" = 50) /obj/item/clothing/shoes/sandal @@ -50,7 +50,7 @@ name = "galoshes" icon_state = "galoshes" permeability_coefficient = 0.01 - flags_1 = NOSLIP_1 + clothing_flags = NOSLIP slowdown = SHOES_SLOWDOWN+1 strip_delay = 50 equip_delay_other = 50 @@ -264,7 +264,7 @@ /obj/item/clothing/shoes/wheelys/ui_action_click(mob/user, action) if(!isliving(user)) return - if(!istype(user.get_item_by_slot(slot_shoes), /obj/item/clothing/shoes/wheelys)) + if(!istype(user.get_item_by_slot(SLOT_SHOES), /obj/item/clothing/shoes/wheelys)) to_chat(user, "You must be wearing the wheely-heels to use them!") return if(!(W.is_occupant(user))) @@ -311,4 +311,4 @@ else set_light(0) lightCycle = 0 - active = FALSE \ No newline at end of file + active = FALSE diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm index 8630d9a3bc..6224e2a3d9 100644 --- a/code/modules/clothing/spacesuits/_spacesuits.dm +++ b/code/modules/clothing/spacesuits/_spacesuits.dm @@ -4,7 +4,7 @@ name = "space helmet" icon_state = "spaceold" desc = "A special helmet with solar UV shielding to protect your eyes from harmful rays." - flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1 + clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL item_state = "spaceold" permeability_coefficient = 0.01 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 50, "fire" = 80, "acid" = 70) @@ -30,7 +30,7 @@ w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.01 permeability_coefficient = 0.02 - flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1 + clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS allowed = list(/obj/item/flashlight, /obj/item/tank/internals) slowdown = 1 @@ -42,4 +42,4 @@ max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT strip_delay = 80 equip_delay_other = 80 - resistance_flags = NONE \ No newline at end of file + resistance_flags = NONE diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm index 94553b3964..3040af756e 100644 --- a/code/modules/clothing/spacesuits/chronosuit.dm +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -115,7 +115,7 @@ teleport_now.UpdateButtonIcon() - var/list/nonsafe_slots = list(slot_belt, slot_back) + var/list/nonsafe_slots = list(SLOT_BELT, SLOT_BACK) var/list/exposed = list() for(var/slot in nonsafe_slots) var/obj/item/slot_item = user.get_item_by_slot(slot) diff --git a/code/modules/clothing/spacesuits/flightsuit.dm b/code/modules/clothing/spacesuits/flightsuit.dm index be381e5d3a..d7d0da7582 100644 --- a/code/modules/clothing/spacesuits/flightsuit.dm +++ b/code/modules/clothing/spacesuits/flightsuit.dm @@ -22,7 +22,7 @@ actions_types = list(/datum/action/item_action/flightpack/toggle_flight, /datum/action/item_action/flightpack/engage_boosters, /datum/action/item_action/flightpack/toggle_stabilizers, /datum/action/item_action/flightpack/change_power, /datum/action/item_action/flightpack/toggle_airbrake) armor = list("melee" = 20, "bullet" = 20, "laser" = 20, "energy" = 10, "bomb" = 30, "bio" = 100, "rad" = 75, "fire" = 100, "acid" = 75) w_class = WEIGHT_CLASS_BULKY - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK resistance_flags = FIRE_PROOF var/processing_mode = FLIGHTSUIT_PROCESSING_FULL @@ -546,7 +546,7 @@ ..() /obj/item/flightpack/item_action_slot_check(slot) - if(slot == SLOT_BACK) + if(slot == ITEM_SLOT_BACK) return TRUE /obj/item/flightpack/equipped(mob/user, slot) @@ -573,7 +573,7 @@ momentum_speed = max(momentum_speed_x, momentum_speed_y) /obj/item/flightpack/item_action_slot_check(slot) - return slot == slot_back + return slot == SLOT_BACK /obj/item/flightpack/proc/enable_stabilizers() if(requires_suit && suit && !suit.deployedshoes) @@ -724,12 +724,12 @@ if(suit) active = toggle if(active) - src.flags_1 |= NOSLIP_1 + clothing_flags |= NOSLIP if(!active) - src.flags_1 &= ~NOSLIP_1 + clothing_flags &= ~NOSLIP /obj/item/clothing/shoes/flightshoes/item_action_slot_check(slot) - return slot == slot_shoes + return slot == SLOT_SHOES /obj/item/clothing/shoes/flightshoes/proc/delink_suit() if(suit) @@ -894,7 +894,7 @@ if(user.back) usermessage("You're already wearing something on your back!", "boldwarning") return FALSE - user.equip_to_slot_if_possible(pack,slot_back,0,0,1) + user.equip_to_slot_if_possible(pack,SLOT_BACK,0,0,1) pack.flags_1 |= NODROP_1 resync() user.visible_message("A [pack.name] extends from [user]'s [name] and clamps to [user.p_their()] back!") @@ -932,7 +932,7 @@ if(user.shoes) usermessage("You're already wearing something on your feet!", "boldwarning") return FALSE - user.equip_to_slot_if_possible(shoes,slot_shoes,0,0,1) + user.equip_to_slot_if_possible(shoes,SLOT_SHOES,0,0,1) shoes.flags_1 |= NODROP_1 user.visible_message("[user]'s [name] extends a pair of [shoes.name] over [user.p_their()] feet!") user.update_inv_wear_suit() @@ -963,7 +963,7 @@ /obj/item/clothing/suit/space/hardsuit/flightsuit/equipped(mob/M, slot) if(ishuman(M)) user = M - if(slot != slot_wear_suit) + if(slot != SLOT_WEAR_SUIT) if(deployedpack) retract_flightpack(TRUE) if(deployedshoes) @@ -998,7 +998,7 @@ /obj/item/clothing/suit/space/hardsuit/flightsuit/attackby(obj/item/I, mob/wearer, params) user = wearer - if(src == user.get_item_by_slot(slot_wear_suit)) + if(src == user.get_item_by_slot(SLOT_WEAR_SUIT)) usermessage("You can not perform any service without taking the suit off!", "boldwarning") return FALSE else if(locked) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index f5b4a31290..4a8e368208 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -48,12 +48,12 @@ soundloop.stop(user) /obj/item/clothing/head/helmet/space/hardsuit/item_action_slot_check(slot) - if(slot == slot_head) + if(slot == SLOT_HEAD) return 1 /obj/item/clothing/head/helmet/space/hardsuit/equipped(mob/user, slot) ..() - if(slot != slot_head) + if(slot != SLOT_HEAD) if(suit) suit.RemoveHelmet() soundloop.stop(user) @@ -119,7 +119,7 @@ if(jetpack) to_chat(user, "[src] already has a jetpack installed.") return - if(src == user.get_item_by_slot(slot_wear_suit)) //Make sure the player is not wearing the suit before applying the upgrade. + if(src == user.get_item_by_slot(SLOT_WEAR_SUIT)) //Make sure the player is not wearing the suit before applying the upgrade. to_chat(user, "You cannot install the upgrade to [src] while wearing it.") return @@ -131,7 +131,7 @@ if(!jetpack) to_chat(user, "[src] has no jetpack installed.") return - if(src == user.get_item_by_slot(slot_wear_suit)) + if(src == user.get_item_by_slot(SLOT_WEAR_SUIT)) to_chat(user, "You cannot remove the jetpack from [src] while wearing it.") return @@ -146,7 +146,7 @@ /obj/item/clothing/suit/space/hardsuit/equipped(mob/user, slot) ..() if(jetpack) - if(slot == slot_wear_suit) + if(slot == SLOT_WEAR_SUIT) for(var/X in jetpack.actions) var/datum/action/A = X A.Grant(user) @@ -159,7 +159,7 @@ A.Remove(user) /obj/item/clothing/suit/space/hardsuit/item_action_slot_check(slot) - if(slot == slot_wear_suit) //we only give the mob the ability to toggle the helmet if he's wearing the hardsuit. + if(slot == SLOT_WEAR_SUIT) //we only give the mob the ability to toggle the helmet if he's wearing the hardsuit. return 1 //Engineering @@ -272,7 +272,7 @@ var/obj/item/clothing/suit/space/hardsuit/syndi/linkedsuit = null actions_types = list(/datum/action/item_action/toggle_helmet_mode) visor_flags_inv = HIDEMASK|HIDEEYES|HIDEFACE|HIDEFACIALHAIR - visor_flags = STOPSPRESSUREDMAGE_1 + visor_flags = STOPSPRESSUREDAMAGE /obj/item/clothing/head/helmet/space/hardsuit/syndi/update_icon() icon_state = "hardsuit[on]-[item_color]" @@ -292,7 +292,7 @@ name = initial(name) desc = initial(desc) set_light(brightness_on) - flags_1 |= visor_flags + clothing_flags |= visor_flags flags_cover |= HEADCOVERSEYES | HEADCOVERSMOUTH flags_inv |= visor_flags_inv cold_protection |= HEAD @@ -301,7 +301,7 @@ name += " (combat)" desc = alt_desc set_light(0) - flags_1 &= ~visor_flags + clothing_flags &= ~visor_flags flags_cover &= ~(HEADCOVERSEYES | HEADCOVERSMOUTH) flags_inv &= ~visor_flags_inv cold_protection &= ~HEAD @@ -322,13 +322,13 @@ linkedsuit.name = initial(linkedsuit.name) linkedsuit.desc = initial(linkedsuit.desc) linkedsuit.slowdown = 1 - linkedsuit.flags_1 |= STOPSPRESSUREDMAGE_1 + linkedsuit.clothing_flags |= STOPSPRESSUREDAMAGE linkedsuit.cold_protection |= CHEST | GROIN | LEGS | FEET | ARMS | HANDS else linkedsuit.name += " (combat)" linkedsuit.desc = linkedsuit.alt_desc linkedsuit.slowdown = 0 - linkedsuit.flags_1 &= ~(STOPSPRESSUREDMAGE_1) + linkedsuit.clothing_flags &= ~STOPSPRESSUREDAMAGE linkedsuit.cold_protection &= ~(CHEST | GROIN | LEGS | FEET | ARMS | HANDS) linkedsuit.icon_state = "hardsuit[on]-[item_color]" @@ -469,7 +469,7 @@ /obj/item/clothing/head/helmet/space/hardsuit/rd/equipped(mob/living/carbon/human/user, slot) ..() - if (slot == slot_head) + if (slot == SLOT_HEAD) var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_DIAGNOSTIC_BASIC] DHUD.add_hud_to(user) @@ -624,7 +624,7 @@ /obj/item/clothing/suit/space/hardsuit/ancient/equipped(mob/user, slot) . = ..() - if (slot == slot_wear_suit) + if (slot == SLOT_WEAR_SUIT) if (mobhook && mobhook.parent != user) QDEL_NULL(mobhook) if (!mobhook) @@ -713,7 +713,7 @@ icon_state = "ert_medical" item_state = "ert_medical" item_color = "ert_medical" - flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1 | NODROP_1 //Dont want people changing into the other teams gear + flags_1 = NODROP_1 //Dont want people changing into the other teams gear helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf armor = list("melee" = 0, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 95, "acid" = 95) slowdown = 0 diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index c2dad1a8f3..f3975d1f81 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -59,7 +59,6 @@ Contains: icon_state = "beret_badge" dynamic_hair_suffix = "+generic" dynamic_fhair_suffix = "+generic" - flags_1 = STOPSPRESSUREDMAGE_1 flags_inv = 0 armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) strip_delay = 130 @@ -114,7 +113,6 @@ Contains: name = "Santa's hat" desc = "Ho ho ho. Merrry X-mas!" icon_state = "santahat" - flags_1 = STOPSPRESSUREDMAGE_1 flags_cover = HEADCOVERSEYES dog_fashion = /datum/dog_fashion/head/santa @@ -125,7 +123,6 @@ Contains: icon_state = "santa" item_state = "santa" slowdown = 0 - flags_1 = STOPSPRESSUREDMAGE_1 allowed = list(/obj/item) //for stuffing exta special presents @@ -136,7 +133,6 @@ Contains: icon_state = "pirate" item_state = "pirate" armor = list("melee" = 30, "bullet" = 50, "laser" = 30,"energy" = 15, "bomb" = 30, "bio" = 30, "rad" = 30, "fire" = 60, "acid" = 75) - flags_1 = STOPSPRESSUREDMAGE_1 flags_inv = HIDEHAIR strip_delay = 40 equip_delay_other = 20 @@ -169,7 +165,7 @@ Contains: item_color = "ert_commander" armor = list("melee" = 65, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 80) strip_delay = 130 - flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1 | NODROP_1 + flags_1 = NODROP_1 brightness_on = 7 /obj/item/clothing/suit/space/hardsuit/ert @@ -269,7 +265,7 @@ Contains: armor = list("melee" = -20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 75, "fire" = 60, "acid" = 75) //As whimpy as a space carp brightness_on = 0 //luminosity when on actions_types = list() - flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1 | NODROP_1 + flags_1 = NODROP_1 /obj/item/clothing/suit/space/hardsuit/carp @@ -351,11 +347,9 @@ Contains: /obj/item/clothing/suit/space/fragile/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(!torn && prob(50)) to_chat(owner, "[src] tears from the damage, breaking the air-tight seal!") - src.flags_1 &= ~STOPSPRESSUREDMAGE_1 - src.name = "torn [src]." - src.desc = "A bulky suit meant to protect the user during emergency situations, at least until someone tore a hole in the suit." - src.torn = TRUE + clothing_flags &= ~STOPSPRESSUREDAMAGE + name = "torn [src]." + desc = "A bulky suit meant to protect the user during emergency situations, at least until someone tore a hole in the suit." + torn = TRUE playsound(loc, 'sound/weapons/slashmiss.ogg', 50, 1) playsound(loc, 'sound/effects/refill.ogg', 50, 1) - - diff --git a/code/modules/clothing/suits/_suits.dm b/code/modules/clothing/suits/_suits.dm index 1cf1d4640d..6aabee0c81 100644 --- a/code/modules/clothing/suits/_suits.dm +++ b/code/modules/clothing/suits/_suits.dm @@ -4,7 +4,7 @@ var/fire_resist = T0C+100 allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - slot_flags = SLOT_OCLOTHING + slot_flags = ITEM_SLOT_OCLOTHING var/blood_overlay_type = "suit" var/togglename = null var/suittoggled = FALSE diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index bffba4a36f..d38c625ee2 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -4,7 +4,7 @@ icon_state = "bio" desc = "A hood that protects the head and face from biological comtaminants." permeability_coefficient = 0.01 - flags_1 = THICKMATERIAL_1 + clothing_flags = THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 80, "fire" = 30, "acid" = 100) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE resistance_flags = ACID_PROOF @@ -18,7 +18,7 @@ w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 - flags_1 = THICKMATERIAL_1 + clothing_flags = THICKMATERIAL body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS slowdown = 1 allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/pen, /obj/item/flashlight/pen, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray) diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 1022ae4e4f..f6cb6a44ad 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -173,7 +173,7 @@ /obj/item/clothing/suit/cardborg/equipped(mob/living/user, slot) ..() - if(slot == slot_wear_suit) + if(slot == SLOT_WEAR_SUIT) disguise(user) /obj/item/clothing/suit/cardborg/dropped(mob/living/user) @@ -279,7 +279,7 @@ icon_state = "bee" item_state = "labcoat" body_parts_covered = CHEST|GROIN|ARMS - flags_1 = THICKMATERIAL_1 + clothing_flags = THICKMATERIAL hoodtype = /obj/item/clothing/head/hooded/bee_hood /obj/item/clothing/head/hooded/bee_hood @@ -287,7 +287,7 @@ desc = "A hood attached to a bee costume." icon_state = "bee" body_parts_covered = HEAD - flags_1 = THICKMATERIAL_1 + clothing_flags = THICKMATERIAL flags_inv = HIDEHAIR|HIDEEARS dynamic_hair_suffix = "" diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm index d09db447a8..c7d91604cf 100644 --- a/code/modules/clothing/suits/toggles.dm +++ b/code/modules/clothing/suits/toggles.dm @@ -24,11 +24,11 @@ ToggleHood() /obj/item/clothing/suit/hooded/item_action_slot_check(slot, mob/user) - if(slot == slot_wear_suit) + if(slot == SLOT_WEAR_SUIT) return 1 /obj/item/clothing/suit/hooded/equipped(mob/user, slot) - if(slot != slot_wear_suit) + if(slot != SLOT_WEAR_SUIT) RemoveHood() ..() @@ -59,7 +59,7 @@ if(H.head) to_chat(H, "You're already wearing something on your head!") return - else if(H.equip_to_slot_if_possible(hood,slot_head,0,0,1)) + else if(H.equip_to_slot_if_possible(hood,SLOT_HEAD,0,0,1)) suittoggled = TRUE src.icon_state = "[initial(icon_state)]_t" H.update_inv_wear_suit() @@ -83,7 +83,7 @@ /obj/item/clothing/head/hooded/equipped(mob/user, slot) ..() - if(slot != slot_head) + if(slot != SLOT_HEAD) if(suit) suit.RemoveHood() else @@ -155,7 +155,7 @@ /obj/item/clothing/suit/space/hardsuit/equipped(mob/user, slot) if(!helmettype) return - if(slot != slot_wear_suit) + if(slot != SLOT_WEAR_SUIT) RemoveHelmet() ..() @@ -192,7 +192,7 @@ if(H.head) to_chat(H, "You're already wearing something on your head!") return - else if(H.equip_to_slot_if_possible(helmet,slot_head,0,0,1)) + else if(H.equip_to_slot_if_possible(helmet,SLOT_HEAD,0,0,1)) to_chat(H, "You engage the helmet on the hardsuit.") suittoggled = TRUE H.update_inv_wear_suit() diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 28b82a1c43..3a9a72a543 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -21,7 +21,7 @@ allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/extinguisher, /obj/item/crowbar) slowdown = 1 flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - flags_1 = STOPSPRESSUREDMAGE_1 | THICKMATERIAL_1 + clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS @@ -56,7 +56,7 @@ name = "bomb hood" desc = "Use in case of bomb." icon_state = "bombsuit" - flags_1 = THICKMATERIAL_1 + clothing_flags = THICKMATERIAL armor = list("melee" = 20, "bullet" = 0, "laser" = 20,"energy" = 10, "bomb" = 100, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 50) flags_inv = HIDEFACE|HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR dynamic_hair_suffix = "" @@ -79,7 +79,7 @@ w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 - flags_1 = THICKMATERIAL_1 + clothing_flags = THICKMATERIAL body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS slowdown = 2 armor = list("melee" = 20, "bullet" = 0, "laser" = 20,"energy" = 10, "bomb" = 100, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 50) @@ -119,7 +119,7 @@ name = "radiation hood" icon_state = "rad" desc = "A hood with radiation protective properties. The label reads, 'Made with lead. Please do not consume insulation.'" - flags_1 = THICKMATERIAL_1 + clothing_flags = THICKMATERIAL flags_inv = HIDEMASK|HIDEEARS|HIDEFACE|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 60, "rad" = 100, "fire" = 30, "acid" = 30) strip_delay = 60 @@ -139,7 +139,7 @@ w_class = WEIGHT_CLASS_BULKY gas_transfer_coefficient = 0.9 permeability_coefficient = 0.5 - flags_1 = THICKMATERIAL_1 + clothing_flags = THICKMATERIAL body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/geiger_counter) slowdown = 1.5 @@ -153,4 +153,4 @@ . = ..() AddComponent(/datum/component/rad_insulation, RAD_NO_INSULATION, TRUE, FALSE) // Just don't want things to be irradiated inside this - // Except things on the mob aren't even inside the suit so ehhhhhh \ No newline at end of file + // Except things on the mob aren't even inside the suit so ehhhhhh diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index dd290fdaa2..4d037d652b 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -3,7 +3,7 @@ name = "under" body_parts_covered = CHEST|GROIN|LEGS|ARMS permeability_coefficient = 0.9 - slot_flags = SLOT_ICLOTHING + slot_flags = ITEM_SLOT_ICLOTHING armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) var/fitted = FEMALE_UNIFORM_FULL // For use in alternate clothing styles for women var/has_sensor = HAS_SENSORS // For the crew computer @@ -65,7 +65,7 @@ adjusted = DIGITIGRADE_STYLE H.update_inv_w_uniform() - if(attached_accessory && slot != slot_hands && ishuman(user)) + if(attached_accessory && slot != SLOT_HANDS && ishuman(user)) var/mob/living/carbon/human/H = user attached_accessory.on_uniform_equip(src, user) if(attached_accessory.above_suit) diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm index 3a12f00a05..afb9bff1c1 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -9,7 +9,7 @@ var/obj/item/clothing/under/color/C = pick(subtypesof(/obj/item/clothing/under/color) - /obj/item/clothing/under/color/random - /obj/item/clothing/under/color/grey/glorf - /obj/item/clothing/under/color/black/ghost) if(ishuman(loc)) var/mob/living/carbon/human/H = loc - H.equip_to_slot_or_del(new C(H), slot_w_uniform) //or else you end up with naked assistants running around everywhere... + H.equip_to_slot_or_del(new C(H), SLOT_W_UNIFORM) //or else you end up with naked assistants running around everywhere... else new C(loc) return INITIALIZE_HINT_QDEL diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm index 5623b082a4..c323f1edf2 100644 --- a/code/modules/detectivework/scanner.dm +++ b/code/modules/detectivework/scanner.dm @@ -12,7 +12,7 @@ lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' flags_1 = CONDUCT_1 | NOBLUDGEON_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT var/scanning = 0 var/list/log = list() var/range = 8 diff --git a/code/modules/events/wizard/curseditems.dm b/code/modules/events/wizard/curseditems.dm index 9de5a93292..180589b4f1 100644 --- a/code/modules/events/wizard/curseditems.dm +++ b/code/modules/events/wizard/curseditems.dm @@ -11,29 +11,29 @@ /datum/round_event/wizard/cursed_items/start() var/item_set = pick("wizardmimic", "swords", "bigfatdoobie", "boxing", "voicemodulators", "catgirls2015") - var/list/loadout[slots_amt] + var/list/loadout[SLOTS_AMT] var/ruins_spaceworthiness var/ruins_wizard_loadout switch(item_set) if("wizardmimic") - loadout[slot_wear_suit] = /obj/item/clothing/suit/wizrobe - loadout[slot_shoes] = /obj/item/clothing/shoes/sandal/magic - loadout[slot_head] = /obj/item/clothing/head/wizard + loadout[SLOT_WEAR_SUIT] = /obj/item/clothing/suit/wizrobe + loadout[SLOT_SHOES] = /obj/item/clothing/shoes/sandal/magic + loadout[SLOT_HEAD] = /obj/item/clothing/head/wizard ruins_spaceworthiness = 1 if("swords") - loadout[slot_hands] = /obj/item/katana/cursed + loadout[SLOT_HANDS] = /obj/item/katana/cursed if("bigfatdoobie") - loadout[slot_wear_mask] = /obj/item/clothing/mask/cigarette/rollie/trippy + loadout[SLOT_WEAR_MASK] = /obj/item/clothing/mask/cigarette/rollie/trippy ruins_spaceworthiness = 1 if("boxing") - loadout[slot_wear_mask] = /obj/item/clothing/mask/luchador - loadout[slot_gloves] = /obj/item/clothing/gloves/boxing + loadout[SLOT_WEAR_MASK] = /obj/item/clothing/mask/luchador + loadout[SLOT_GLOVES] = /obj/item/clothing/gloves/boxing ruins_spaceworthiness = 1 if("voicemodulators") - loadout[slot_wear_mask] = /obj/item/clothing/mask/chameleon + loadout[SLOT_WEAR_MASK] = /obj/item/clothing/mask/chameleon if("catgirls2015") - loadout[slot_head] = /obj/item/clothing/head/kitty + loadout[SLOT_HEAD] = /obj/item/clothing/head/kitty ruins_spaceworthiness = 1 ruins_wizard_loadout = 1 diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm index 2e2759913b..4282015eb5 100644 --- a/code/modules/food_and_drinks/food/snacks_bread.dm +++ b/code/modules/food_and_drinks/food/snacks_bread.dm @@ -13,7 +13,7 @@ custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/sandwich filling_color = "#FFA500" list_reagents = list("nutriment" = 2) - slot_flags = SLOT_HEAD + slot_flags = ITEM_SLOT_HEAD customfoodfilling = 0 //to avoid infinite bread-ception foodtype = GRAIN diff --git a/code/modules/goonchat/browserOutput.dm b/code/modules/goonchat/browserOutput.dm index 7fe939ea29..be06f99d61 100644 --- a/code/modules/goonchat/browserOutput.dm +++ b/code/modules/goonchat/browserOutput.dm @@ -105,19 +105,10 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("data/iconCache.sav")) //Cache of ic //do not convert to to_chat() SEND_TEXT(owner, "Failed to load fancy chat, reverting to old chat. Certain features won't work.") - pingLoop() - /datum/chatOutput/proc/showChat() winset(owner, "output", "is-visible=false") winset(owner, "browseroutput", "is-disabled=false;is-visible=true") -/datum/chatOutput/proc/pingLoop() - set waitfor = FALSE - - while (owner) - ehjax_send(data = owner.is_afk(29) ? "softPang" : "pang") // SoftPang isn't handled anywhere but it'll always reset the opts.lastPang. - sleep(30) - /datum/chatOutput/proc/ehjax_send(client/C = owner, window = "browseroutput", data) if(islist(data)) data = json_encode(data) diff --git a/code/modules/hydroponics/beekeeping/beebox.dm b/code/modules/hydroponics/beekeeping/beebox.dm index 7075b8502e..5a35597a34 100644 --- a/code/modules/hydroponics/beekeeping/beebox.dm +++ b/code/modules/hydroponics/beekeeping/beebox.dm @@ -18,8 +18,11 @@ /mob/living/carbon/human/bee_friendly() if(dna && dna.species && dna.species.id == "pod") //bees pollinate plants, duh. return 1 - if((wear_suit && (wear_suit.flags_1 & THICKMATERIAL_1)) && (head && (head.flags_1 & THICKMATERIAL_1))) - return 1 + if (wear_suit && head && is_type_in_typecache(wear_suit, GLOB.typecache_clothing) && is_type_in_typecache(wear_suit, GLOB.typecache_clothing)) + var/obj/item/clothing/CS = wear_suit + var/obj/item/clothing/CH = head + if (CS.clothing_flags & CH.clothing_flags & THICKMATERIAL) + return 1 return 0 diff --git a/code/modules/hydroponics/beekeeping/beekeeper_suit.dm b/code/modules/hydroponics/beekeeping/beekeeper_suit.dm index b871951b0f..7fa1a0dd2c 100644 --- a/code/modules/hydroponics/beekeeping/beekeeper_suit.dm +++ b/code/modules/hydroponics/beekeeping/beekeeper_suit.dm @@ -4,7 +4,7 @@ desc = "Keeps the lil buzzing buggers out of your eyes." icon_state = "beekeeper" item_state = "beekeeper" - flags_1 = THICKMATERIAL_1 + clothing_flags = THICKMATERIAL /obj/item/clothing/suit/beekeeper_suit @@ -12,5 +12,4 @@ desc = "Keeps the lil buzzing buggers away from your squishy bits." icon_state = "beekeeper" item_state = "beekeeper" - flags_1 = THICKMATERIAL_1 - + clothing_flags = THICKMATERIAL diff --git a/code/modules/hydroponics/grown/ambrosia.dm b/code/modules/hydroponics/grown/ambrosia.dm index 05cd54a9f0..5883b4dd64 100644 --- a/code/modules/hydroponics/grown/ambrosia.dm +++ b/code/modules/hydroponics/grown/ambrosia.dm @@ -4,7 +4,7 @@ name = "ambrosia branch" desc = "This is a plant." icon_state = "ambrosiavulgaris" - slot_flags = SLOT_HEAD + slot_flags = ITEM_SLOT_HEAD filling_color = "#008000" bitesize_mod = 2 foodtype = VEGETABLES diff --git a/code/modules/hydroponics/grown/flowers.dm b/code/modules/hydroponics/grown/flowers.dm index 18eae2f4fd..8455df887e 100644 --- a/code/modules/hydroponics/grown/flowers.dm +++ b/code/modules/hydroponics/grown/flowers.dm @@ -22,7 +22,7 @@ name = "poppy" desc = "Long-used as a symbol of rest, peace, and death." icon_state = "poppy" - slot_flags = SLOT_HEAD + slot_flags = ITEM_SLOT_HEAD filling_color = "#FF6347" bitesize_mod = 3 foodtype = VEGETABLES | GROSS @@ -86,7 +86,7 @@ name = "harebell" desc = "\"I'll sweeten thy sad grave: thou shalt not lack the flower that's like thy face, pale primrose, nor the azured hare-bell, like thy veins; no, nor the leaf of eglantine, whom not to slander, out-sweeten'd not thy breath.\"" icon_state = "harebell" - slot_flags = SLOT_HEAD + slot_flags = ITEM_SLOT_HEAD filling_color = "#E6E6FA" bitesize_mod = 3 @@ -118,7 +118,7 @@ righthand_file = 'icons/mob/inhands/weapons/plants_righthand.dmi' damtype = "fire" force = 0 - slot_flags = SLOT_HEAD + slot_flags = ITEM_SLOT_HEAD throwforce = 0 w_class = WEIGHT_CLASS_TINY throw_speed = 1 @@ -149,7 +149,7 @@ name = "moonflower" desc = "Store in a location at least 50 yards away from werewolves." icon_state = "moonflower" - slot_flags = SLOT_HEAD + slot_flags = ITEM_SLOT_HEAD filling_color = "#E6E6FA" bitesize_mod = 2 @@ -176,7 +176,7 @@ righthand_file = 'icons/mob/inhands/weapons/plants_righthand.dmi' damtype = "fire" force = 0 - slot_flags = SLOT_HEAD + slot_flags = ITEM_SLOT_HEAD throwforce = 0 w_class = WEIGHT_CLASS_TINY throw_speed = 1 diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 31e888fdad..591fdfd535 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -8,7 +8,7 @@ lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' w_class = WEIGHT_CLASS_TINY - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT materials = list(MAT_METAL=30, MAT_GLASS=20) // ************************************* @@ -112,7 +112,7 @@ w_class = WEIGHT_CLASS_BULKY flags_1 = CONDUCT_1 armour_penetration = 20 - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK attack_verb = list("chopped", "sliced", "cut", "reaped") hitsound = 'sound/weapons/bladeslice.ogg' var/swiping = FALSE diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 3890c8e317..fb6915aef9 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -56,22 +56,19 @@ return ..() /obj/machinery/hydroponics/constructable/attackby(obj/item/I, mob/user, params) - if(default_deconstruction_screwdriver(user, "hydrotray3", "hydrotray3", I)) - return - - if(default_pry_open(I)) - return - - if(default_unfasten_wrench(user, I)) - return - - if(istype(I, /obj/item/crowbar)) - if(using_irrigation) - to_chat(user, "Disconnect the hoses first!") - else if(default_deconstruction_crowbar(I, 1)) + if (user.a_intent != INTENT_HARM) + // handle opening the panel + if(default_deconstruction_screwdriver(user, icon_state, icon_state, I)) return - else - return ..() + + // handle deconstructing the machine, if permissible + if (I.tool_behaviour == TOOL_CROWBAR && using_irrigation) + to_chat(user, "Disconnect the hoses first!") + return + else if(default_deconstruction_crowbar(I)) + return + + return ..() /obj/machinery/hydroponics/proc/FindConnected() var/list/connected = list() @@ -787,31 +784,13 @@ for(var/obj/item/reagent_containers/food/snacks/grown/G in locate(user.x,user.y,user.z)) O.SendSignal(COMSIG_TRY_STORAGE_INSERT, G, user, TRUE) - else if(istype(O, /obj/item/wrench) && unwrenchable) - if(using_irrigation) - to_chat(user, "Disconnect the hoses first!") - return - - if(!anchored && !isinspace()) - user.visible_message("[user] begins to wrench [src] into place.", \ - "You begin to wrench [src] in place...") - if (O.use_tool(src, user, 20, volume=50)) - if(anchored) - return - anchored = TRUE - user.visible_message("[user] wrenches [src] into place.", \ - "You wrench [src] in place.") - else if(anchored) - user.visible_message("[user] begins to unwrench [src].", \ - "You begin to unwrench [src]...") - if (O.use_tool(src, user, 20, volume=50)) - if(!anchored) - return - anchored = FALSE - user.visible_message("[user] unwrenches [src].", \ - "You unwrench [src].") + else if(default_unfasten_wrench(user, O)) + return else if(istype(O, /obj/item/wirecutters) && unwrenchable) + if (!anchored) + to_chat(user, "Anchor the tray first!") + return using_irrigation = !using_irrigation O.play_tool_sound(src) user.visible_message("[user] [using_irrigation ? "" : "dis"]connects [src]'s irrigation hoses.", \ @@ -840,6 +819,17 @@ else return ..() +/obj/machinery/hydroponics/can_be_unfasten_wrench(mob/user, silent) + if (!unwrenchable) // case also covered by NODECONSTRUCT checks in default_unfasten_wrench + return CANT_UNFASTEN + + if (using_irrigation) + if (!silent) + to_chat(user, "Disconnect the hoses first!") + return FAILED_UNFASTEN + + return ..() + /obj/machinery/hydroponics/attack_hand(mob/user) . = ..() if(.) diff --git a/code/modules/integrated_electronics/core/saved_circuits.dm b/code/modules/integrated_electronics/core/saved_circuits.dm index bc85cc4d9a..f58378cf6d 100644 --- a/code/modules/integrated_electronics/core/saved_circuits.dm +++ b/code/modules/integrated_electronics/core/saved_circuits.dm @@ -146,7 +146,7 @@ // Validate name and color if(assembly_params["name"] && !reject_bad_name(assembly_params["name"], TRUE)) return "Bad assembly name." - if(assembly_params["desc"] && !reject_bad_text(assembly_params["desc"], TRUE)) + if(assembly_params["desc"] && !reject_bad_text(assembly_params["desc"])) return "Bad assembly description." if(assembly_params["detail_color"] && !(assembly_params["detail_color"] in color_whitelist)) return "Bad assembly color." diff --git a/code/modules/jobs/job_types/cargo_service.dm b/code/modules/jobs/job_types/cargo_service.dm index 479230e5be..1351d2beeb 100644 --- a/code/modules/jobs/job_types/cargo_service.dm +++ b/code/modules/jobs/job_types/cargo_service.dm @@ -111,7 +111,7 @@ Shaft Miner mask = /obj/item/clothing/mask/gas/explorer glasses = /obj/item/clothing/glasses/meson suit_store = /obj/item/tank/internals/oxygen - internals_slot = slot_s_store + internals_slot = SLOT_S_STORE backpack_contents = list( /obj/item/storage/bag/ore=1, /obj/item/kitchen/knife/combat/survival=1, @@ -220,7 +220,7 @@ Cook var/list/possible_boxes = subtypesof(/obj/item/storage/box/ingredients) var/chosen_box = pick(possible_boxes) var/obj/item/storage/box/I = new chosen_box(src) - H.equip_to_slot_or_del(I,slot_in_backpack) + H.equip_to_slot_or_del(I,SLOT_IN_BACKPACK) var/datum/martial_art/cqc/under_siege/justacook = new justacook.teach(H) diff --git a/code/modules/jobs/job_types/civilian_chaplain.dm b/code/modules/jobs/job_types/civilian_chaplain.dm index 09eb9f34e9..1ef6be2e60 100644 --- a/code/modules/jobs/job_types/civilian_chaplain.dm +++ b/code/modules/jobs/job_types/civilian_chaplain.dm @@ -31,7 +31,7 @@ Chaplain B.icon_state = SSreligion.bible_icon_state B.item_state = SSreligion.bible_item_state to_chat(H, "There is already an established religion onboard the station. You are an acolyte of [SSreligion.deity]. Defer to the Chaplain.") - H.equip_to_slot_or_del(B, slot_in_backpack) + H.equip_to_slot_or_del(B, SLOT_IN_BACKPACK) var/nrt = SSreligion.holy_weapon_type || /obj/item/nullrod var/obj/item/nullrod/N = new nrt(H) H.put_in_hands(N) @@ -79,7 +79,7 @@ Chaplain SSreligion.bible_name = B.name SSreligion.deity = B.deity_name - H.equip_to_slot_or_del(B, slot_in_backpack) + H.equip_to_slot_or_del(B, SLOT_IN_BACKPACK) SSblackbox.record_feedback("text", "religion_name", 1, "[new_religion]", 1) SSblackbox.record_feedback("text", "religion_deity", 1, "[new_deity]", 1) diff --git a/code/modules/jobs/job_types/engineering.dm b/code/modules/jobs/job_types/engineering.dm index 9717062770..d7f23f48c9 100644 --- a/code/modules/jobs/job_types/engineering.dm +++ b/code/modules/jobs/job_types/engineering.dm @@ -48,7 +48,7 @@ Chief Engineer satchel = /obj/item/storage/backpack/satchel/eng duffelbag = /obj/item/storage/backpack/duffelbag/engineering box = /obj/item/storage/box/engineer - pda_slot = slot_l_store + pda_slot = SLOT_L_STORE /datum/outfit/job/ce/rig name = "Chief Engineer (Hardsuit)" @@ -59,7 +59,7 @@ Chief Engineer suit_store = /obj/item/tank/internals/oxygen gloves = /obj/item/clothing/gloves/color/yellow head = null - internals_slot = slot_s_store + internals_slot = SLOT_S_STORE /* @@ -102,7 +102,7 @@ Station Engineer satchel = /obj/item/storage/backpack/satchel/eng duffelbag = /obj/item/storage/backpack/duffelbag/engineering box = /obj/item/storage/box/engineer - pda_slot = slot_l_store + pda_slot = SLOT_L_STORE backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1) /datum/outfit/job/engineer/gloved @@ -116,7 +116,7 @@ Station Engineer suit = /obj/item/clothing/suit/space/hardsuit/engine suit_store = /obj/item/tank/internals/oxygen head = null - internals_slot = slot_s_store + internals_slot = SLOT_S_STORE /* @@ -156,7 +156,7 @@ Atmospheric Technician satchel = /obj/item/storage/backpack/satchel/eng duffelbag = /obj/item/storage/backpack/duffelbag/engineering box = /obj/item/storage/box/engineer - pda_slot = slot_l_store + pda_slot = SLOT_L_STORE backpack_contents = list(/obj/item/modular_computer/tablet/preset/advanced=1) /datum/outfit/job/atmos/rig @@ -165,4 +165,4 @@ Atmospheric Technician mask = /obj/item/clothing/mask/gas suit = /obj/item/clothing/suit/space/hardsuit/engine/atmos suit_store = /obj/item/tank/internals/oxygen - internals_slot = slot_s_store + internals_slot = SLOT_S_STORE diff --git a/code/modules/jobs/job_types/job.dm b/code/modules/jobs/job_types/job.dm index 65ac5ea0d8..156e975a65 100644 --- a/code/modules/jobs/job_types/job.dm +++ b/code/modules/jobs/job_types/job.dm @@ -151,7 +151,7 @@ var/duffelbag = /obj/item/storage/backpack/duffelbag var/box = /obj/item/storage/box/survival - var/pda_slot = slot_belt + var/pda_slot = SLOT_BELT /datum/outfit/job/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) switch(H.backbag) diff --git a/code/modules/jobs/job_types/science.dm b/code/modules/jobs/job_types/science.dm index d2f77319fc..b82a5d85d2 100644 --- a/code/modules/jobs/job_types/science.dm +++ b/code/modules/jobs/job_types/science.dm @@ -56,7 +56,7 @@ Research Director mask = /obj/item/clothing/mask/breath suit = /obj/item/clothing/suit/space/hardsuit/rd suit_store = /obj/item/tank/internals/oxygen - internals_slot = slot_s_store + internals_slot = SLOT_S_STORE /* Scientist @@ -128,4 +128,4 @@ Roboticist backpack = /obj/item/storage/backpack/science satchel = /obj/item/storage/backpack/satchel/tox - pda_slot = slot_l_store + pda_slot = SLOT_L_STORE diff --git a/code/modules/jobs/job_types/security.dm b/code/modules/jobs/job_types/security.dm index cc842d8e59..6295e9964e 100644 --- a/code/modules/jobs/job_types/security.dm +++ b/code/modules/jobs/job_types/security.dm @@ -244,7 +244,7 @@ GLOBAL_LIST_INIT(available_depts, list(SEC_DEPT_ENGINEERING, SEC_DEPT_MEDICAL, S if(ears) if(H.ears) qdel(H.ears) - H.equip_to_slot_or_del(new ears(H),slot_ears) + H.equip_to_slot_or_del(new ears(H),SLOT_EARS) var/obj/item/card/id/W = H.wear_id W.access |= dep_access diff --git a/code/modules/keybindings/bindings_human.dm b/code/modules/keybindings/bindings_human.dm index 7c52917386..14890cc7e2 100644 --- a/code/modules/keybindings/bindings_human.dm +++ b/code/modules/keybindings/bindings_human.dm @@ -3,12 +3,12 @@ switch(_key) if("E") // Put held thing in belt or take out most recent thing from belt var/obj/item/thing = get_active_held_item() - var/obj/item/storage/equipped_belt = get_item_by_slot(slot_belt) + var/obj/item/storage/equipped_belt = get_item_by_slot(SLOT_BELT) if(!equipped_belt) // We also let you equip a belt like this if(!thing) to_chat(user, "You have no belt to take something out of.") return - equip_to_slot_if_possible(thing, slot_belt) + equip_to_slot_if_possible(thing, SLOT_BELT) return if(!istype(equipped_belt)) // not a storage item if(!thing) @@ -31,12 +31,12 @@ if("B") // Put held thing in backpack or take out most recent thing from backpack var/obj/item/thing = get_active_held_item() - var/obj/item/storage/equipped_backpack = get_item_by_slot(slot_back) + var/obj/item/storage/equipped_backpack = get_item_by_slot(SLOT_BACK) if(!equipped_backpack) // We also let you equip a backpack like this if(!thing) to_chat(user, "You have no backpack to take something out of.") return - equip_to_slot_if_possible(thing, slot_back) + equip_to_slot_if_possible(thing, SLOT_BACK) return if(!istype(equipped_backpack)) // not a storage item if(!thing) diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index 36eb9d5e1b..61d439667d 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -37,7 +37,7 @@ name = "explorer gas mask" desc = "A military-grade gas mask that can be connected to an air supply." icon_state = "gas_mining" - visor_flags = BLOCK_GAS_SMOKE_EFFECT_1 | MASKINTERNALS_1 + visor_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS visor_flags_inv = HIDEFACIALHAIR visor_flags_cover = MASKCOVERSMOUTH actions_types = list(/datum/action/item_action/adjust) @@ -60,7 +60,7 @@ desc = "Hostile Environment Cross-Kinetic Suit: A suit designed to withstand the wide variety of hazards from Lavaland. It wasn't enough for its last owner." icon_state = "hostile_env" item_state = "hostile_env" - flags_1 = THICKMATERIAL_1 //not spaceproof + clothing_flags = THICKMATERIAL //not spaceproof max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | LAVA_PROOF slowdown = 0 @@ -92,7 +92,7 @@ item_state = "hostile_env" w_class = WEIGHT_CLASS_NORMAL max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT - flags_1 = THICKMATERIAL_1 // no space protection + clothing_flags = THICKMATERIAL // no space protection armor = list("melee" = 70, "bullet" = 40, "laser" = 10, "energy" = 10, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) resistance_flags = FIRE_PROOF | LAVA_PROOF @@ -114,4 +114,3 @@ var/mutable_appearance/M = mutable_appearance('icons/mob/head.dmi', "hostile_env_glass") M.appearance_flags = RESET_COLOR . += M - diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index 5b86a2d340..558147af23 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -10,7 +10,7 @@ While it is an effective mining tool, it did little to aid any but the most skilled and/or suicidal miners against local fauna." 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 = WEIGHT_CLASS_BULKY - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK force_unwielded = 20 //It's never not wielded so these are the same force_wielded = 20 throwforce = 5 diff --git a/code/modules/mining/equipment/mineral_scanner.dm b/code/modules/mining/equipment/mineral_scanner.dm index 7327b0c314..d7cdba8f7b 100644 --- a/code/modules/mining/equipment/mineral_scanner.dm +++ b/code/modules/mining/equipment/mineral_scanner.dm @@ -8,7 +8,7 @@ righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' w_class = WEIGHT_CLASS_SMALL flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT var/cooldown = 35 var/current_cooldown = 0 @@ -37,7 +37,7 @@ righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' w_class = WEIGHT_CLASS_SMALL flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT var/cooldown = 35 var/current_cooldown = 0 var/range = 7 diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm index beab70aaad..cd6afa20f7 100644 --- a/code/modules/mining/equipment/mining_tools.dm +++ b/code/modules/mining/equipment/mining_tools.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/mining.dmi' icon_state = "pickaxe" flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT | SLOT_BACK + slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_BACK force = 15 throwforce = 10 item_state = "pickaxe" @@ -30,7 +30,7 @@ icon_state = "minipick" force = 10 throwforce = 7 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT w_class = WEIGHT_CLASS_NORMAL materials = list(MAT_METAL=1000) @@ -54,7 +54,7 @@ name = "mining drill" icon_state = "handdrill" item_state = "jackhammer" - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT toolspeed = 0.6 //available from roundstart, faster than a pickaxe. usesound = 'sound/weapons/drill.ogg' hitsound = 'sound/weapons/drill.ogg' @@ -93,7 +93,7 @@ lefthand_file = 'icons/mob/inhands/equipment/mining_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/mining_righthand.dmi' flags_1 = CONDUCT_1 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT force = 8 tool_behaviour = TOOL_SHOVEL toolspeed = 1 diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm index 0737612211..b8ae25a87a 100644 --- a/code/modules/mining/equipment/wormhole_jaunter.dm +++ b/code/modules/mining/equipment/wormhole_jaunter.dm @@ -11,7 +11,7 @@ w_class = WEIGHT_CLASS_SMALL throw_speed = 3 throw_range = 5 - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT /obj/item/wormhole_jaunter/attack_self(mob/user) user.visible_message("[user.name] activates the [src.name]!") @@ -53,7 +53,7 @@ /obj/item/wormhole_jaunter/emp_act(power) var/triggered = FALSE - if(usr.get_item_by_slot(slot_belt) == src) + if(usr.get_item_by_slot(SLOT_BELT) == src) if(power == 1) triggered = TRUE else if(power == 2 && prob(50)) @@ -65,8 +65,8 @@ activate(usr) /obj/item/wormhole_jaunter/proc/chasm_react(mob/user) - if(user.get_item_by_slot(slot_belt) == src) - to_chat(user, "Your [src] activates, saving you from the chasm!") + if(user.get_item_by_slot(SLOT_BELT) == src) + to_chat(user, "Your [name] activates, saving you from the chasm!") SSblackbox.record_feedback("tally", "jaunter", 1, "Chasm") // chasm automatic activation activate(user, FALSE) else diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 3912fddc7d..609ab904c3 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -438,7 +438,7 @@ desc = "Somehow, it's in two places at once." icon = 'icons/obj/storage.dmi' icon_state = "cultpack" - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK resistance_flags = INDESTRUCTIBLE /obj/item/shared_storage/red @@ -558,7 +558,7 @@ inhand_y_dimension = 64 icon_state = "cleaving_saw" icon_state_on = "cleaving_saw_open" - slot_flags = SLOT_BELT + slot_flags = ITEM_SLOT_BELT attack_verb_off = list("attacked", "sawed", "sliced", "torn", "ripped", "diced", "cut") attack_verb_on = list("cleaved", "swiped", "slashed", "chopped") hitsound = 'sound/weapons/bladeslice.ogg' @@ -816,7 +816,7 @@ lefthand_file = 'icons/mob/inhands/weapons/staves_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/staves_righthand.dmi' icon = 'icons/obj/guns/magic.dmi' - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK w_class = WEIGHT_CLASS_BULKY force = 25 damtype = BURN @@ -993,7 +993,7 @@ righthand_file = 'icons/mob/inhands/64x64_righthand.dmi' inhand_x_dimension = 64 inhand_y_dimension = 64 - slot_flags = SLOT_BACK + slot_flags = ITEM_SLOT_BACK w_class = WEIGHT_CLASS_BULKY force = 15 attack_verb = list("clubbed", "beat", "pummeled") diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index c6cc8a70ac..9de78d307d 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -234,6 +234,7 @@ if(POLLTYPE_IRV) if (!href_list["IRVdata"]) to_chat(src, "No ordering data found. Please try again or contact an administrator.") + return var/list/votelist = splittext(href_list["IRVdata"], ",") if (!vote_on_irv_poll(pollid, votelist)) to_chat(src, "Vote failed, please try again or contact an administrator.") diff --git a/code/modules/mob/dead/new_player/poll.dm b/code/modules/mob/dead/new_player/poll.dm index d10e32a887..ce710e5186 100644 --- a/code/modules/mob/dead/new_player/poll.dm +++ b/code/modules/mob/dead/new_player/poll.dm @@ -211,7 +211,7 @@ src << browse(null ,"window=playerpolllist") src << browse(output,"window=playerpoll;size=500x250") if(POLLTYPE_IRV) - var/datum/asset/irv_assets = get_asset_datum(/datum/asset/simple/IRV) + var/datum/asset/irv_assets = get_asset_datum(/datum/asset/group/IRV) irv_assets.send(src) var/datum/DBQuery/query_irv_get_votes = SSdbcore.NewQuery("SELECT optionid FROM [format_table_name("poll_vote")] WHERE pollid = [pollid] AND ckey = '[ckey]'") @@ -267,7 +267,7 @@ - +