diff --git a/citadel.dme b/citadel.dme index 55ed7629bd3..339d13a9e12 100644 --- a/citadel.dme +++ b/citadel.dme @@ -20,6 +20,7 @@ #include "code\_macros.dm" #include "code\global.dm" #include "code\__DEFINES\_atoms.dm" +#include "code\__DEFINES\_bitfields-legacy.dm" #include "code\__DEFINES\_bitfields.dm" #include "code\__DEFINES\_cooldowns.dm" #include "code\__DEFINES\_core.dm" @@ -38,7 +39,6 @@ #include "code\__DEFINES\assert.dm" #include "code\__DEFINES\automata.dm" #include "code\__DEFINES\belly_modes_vr.dm" -#include "code\__DEFINES\bitflags.dm" #include "code\__DEFINES\bodypart_behaviour_flags.dm" #include "code\__DEFINES\bound_proc.dm" #include "code\__DEFINES\callbacks.dm" @@ -433,6 +433,7 @@ #include "code\__HELPERS\visual_effects.dm" #include "code\__HELPERS\animations\attack.dm" #include "code\__HELPERS\color\decode.dm" +#include "code\__HELPERS\datastructs\bitfields.dm" #include "code\__HELPERS\datastructs\bodytypes.dm" #include "code\__HELPERS\datastructs\filters.dm" #include "code\__HELPERS\datastructs\ingredients.dm" @@ -510,7 +511,7 @@ #include "code\__HELPERS\vfx\flick.dm" #include "code\__HELPERS\vfx\see_anywhere.dm" #include "code\__HELPERS\vfx\shake_camera.dm" -#include "code\_globals\bitfields.dm" +#include "code\_globals\bitfield_legacy.dm" #include "code\_globals\configuration.dm" #include "code\_globals\debug.dm" #include "code\_globals\loadout.dm" @@ -3024,7 +3025,6 @@ #include "code\modules\examine\descriptions\mecha.dm" #include "code\modules\examine\descriptions\medical.dm" #include "code\modules\examine\descriptions\mobs.dm" -#include "code\modules\examine\descriptions\paperwork.dm" #include "code\modules\examine\descriptions\smokeables.dm" #include "code\modules\examine\descriptions\stacks.dm" #include "code\modules\examine\descriptions\structures.dm" diff --git a/code/__DEFINES/_bitfields-legacy.dm b/code/__DEFINES/_bitfields-legacy.dm new file mode 100644 index 00000000000..b0f61e22aae --- /dev/null +++ b/code/__DEFINES/_bitfields-legacy.dm @@ -0,0 +1,21 @@ +// todo: get rid of this and make it like DEFINE_ENUM +#define DEFINE_BITFIELD(v, f) /datum/bitfield_legacy/single/##v { \ + flags = ##f; \ + variable = #v; \ +} + +// todo: get rid of this and make it like DEFINE_ENUM +#define DEFINE_SHARED_BITFIELD(n, v, f) /datum/bitfield_legacy/multi/##n { \ + flags = ##f; \ + variables = ##v; \ +} + +// todo: get rid of this, rename BITFIELD_NAMED to this +#define BITFIELD(thing) #thing = thing +#define BITFIELD_NAMED(name, thing) name = thing + +// todo: impl +/// KEY: must be unique, may be arbitrary; not a string, as it's used in typepath generation +/// CONSTRAINTS: list(/type = list(varname, ...), ...) +/// BITFIELDS: list of BITFIELD_NEW(). +#define DEFINE_BITFIELD_NEW(KEY, CONSTRAINTS, BITFIELDS) diff --git a/code/__DEFINES/_bitfields.dm b/code/__DEFINES/_bitfields.dm index 598b3209cc1..34a1813cc8d 100644 --- a/code/__DEFINES/_bitfields.dm +++ b/code/__DEFINES/_bitfields.dm @@ -1,25 +1,36 @@ -// todo: get rid of this and make it like DEFINE_ENUM -#define DEFINE_BITFIELD(v, f) /datum/bitfield/single/##v { \ - flags = ##f; \ - variable = #v; \ +//* This file is explicitly licensed under the MIT license. *// +//* Copyright (c) 2025 Citadel Station Developers *// + +/** + * * `ID` must be unique and in `snake_case` + * * `BIT_TO_NAME` should be an list() with `BITFIELD_NEW()`'s inside it. + */ +#define DECLARE_BITFIELD(ID, BIT_TO_NAME); \ +/datum/bitfield/##ID/get_bit_constants() { \ + return BIT_TO_NAME; \ } -// todo: get rid of this and make it like DEFINE_ENUM -#define DEFINE_SHARED_BITFIELD(n, v, f) /datum/bitfield/multi/##n { \ - flags = ##f; \ - variables = ##v; \ -} - -// todo: get rid of this, rename BITFIELD_NAMED to this -#define BITFIELD(thing) #thing = thing -#define BITFIELD_NAMED(name, thing) name = thing - -// todo: impl -/// KEY: must be unique, may be arbitrary; not a string, as it's used in typepath generation -/// CONSTRAINTS: list(/type = list(varname, ...), ...) -/// BITFIELDS: list of BITFIELD_NEW(). -#define DEFINE_BITFIELD_NEW(KEY, CONSTRAINTS, BITFIELDS) -// todo: impl /// NAME: must be a string /// VALUE: the actual enum value, whatever it is -#define BITFIELD_NEW(NAME, VALUE) ##NAME = ##VALUE +#define BITFIELD_NEW(NAME, VALUE) #NAME = ##VALUE + +/** + * * `ID` the same in `DECLARE_BITFIELD` + * * `PATH` is `/your/path/whatever` (example) + * * `VARNAME` is without quotes. This allows us to compile-time check it. + * + * CAVEATS: + * * Performance of bitfield reflection is heavily dependent on how many things share the same variable + * name. Please ensure all bitfields are called distinct names, including across different paths. + */ +#define ASSIGN_BITFIELD(ID, PATH, VARNAME) \ +/datum/bitfield/##ID/New() { \ + ..(); \ + if(paths[PATH]) { \ + paths[PATH] += NAMEOF_TYPE(PATH, VARNAME); \ + } \ + else { \ + paths[PATH] = list(NAMEOF_TYPE(PATH, VARNAME)); \ + } \ +} + diff --git a/code/__DEFINES/_lists.dm b/code/__DEFINES/_lists.dm index 3ea0bb9bab0..af8676ec459 100644 --- a/code/__DEFINES/_lists.dm +++ b/code/__DEFINES/_lists.dm @@ -159,7 +159,7 @@ };\ } while(FALSE) -#define islist(L) istype(L, /list) +#define isalist(L) istype(L, /alist) #define VARSET_FROM_LIST(L, V) if(L && L[#V]) V = L[#V] #define VARSET_FROM_LIST_IF(L, V, C...) if(L && L[#V] && (C)) V = L[#V] diff --git a/code/__DEFINES/bitflags.dm b/code/__DEFINES/bitflags.dm deleted file mode 100644 index c9fed68b933..00000000000 --- a/code/__DEFINES/bitflags.dm +++ /dev/null @@ -1,3 +0,0 @@ -#define BITSHIFT_LEFT(X, N) (X << (N)) -#define BITSHIFT_RIGHT(X, N) (X >> (N)) -#define BITFLAG(X) BITSHIFT_LEFT(1, X) diff --git a/code/__DEFINES/inventory/misc.dm b/code/__DEFINES/inventory/misc.dm index 17533015924..49d70c96b89 100644 --- a/code/__DEFINES/inventory/misc.dm +++ b/code/__DEFINES/inventory/misc.dm @@ -1,5 +1,23 @@ +//* This file is explicitly licensed under the MIT license. *// +//* Copyright (c) 2025 Citadel Station Developers *// + // proc: dropped() on /obj/item // todo: this should be in procs.dm and the names need to be changed probably // todo: comsig instead? /// relocated; return false #define ITEM_RELOCATED_BY_DROPPED -1 + +//* Item `suit_storage_class` defines *// + +#define SUIT_STORAGE_CLASS_HARDWEAR (1<<0) +#define SUIT_STORAGE_CLASS_SOFTWEAR (1<<1) +#define SUIT_STORAGE_CLASS_ARMOR (1<<2) + +DECLARE_BITFIELD(suit_storage_class, list( + BITFIELD_NEW("Hardwear", SUIT_STORAGE_CLASS_HARDWEAR), + BITFIELD_NEW("Softwear", SUIT_STORAGE_CLASS_SOFTWEAR), + BITFIELD_NEW("Armor", SUIT_STORAGE_CLASS_ARMOR), +)) +ASSIGN_BITFIELD(suit_storage_class, /obj/item, suit_storage_class) +ASSIGN_BITFIELD(suit_storage_class, /obj/item, suit_storage_class_allow) +ASSIGN_BITFIELD(suit_storage_class, /obj/item, suit_storage_class_disallow) diff --git a/code/__DEFINES/vv.dm b/code/__DEFINES/vv.dm index 589d4176065..223d833136f 100644 --- a/code/__DEFINES/vv.dm +++ b/code/__DEFINES/vv.dm @@ -11,10 +11,12 @@ #define VV_TYPE "Custom Typepath" #define VV_FILE "File" #define VV_LIST "List" +#define VV_ALIST "A-List" #define VV_NEW_ATOM "New Atom" #define VV_NEW_DATUM "New Datum" #define VV_NEW_TYPE "New Custom Typepath" #define VV_NEW_LIST "New List" +#define VV_NEW_ALIST "New A-List" #define VV_NULL "NULL" #define VV_RESTORE_DEFAULT "Restore to Default" #define VV_MARKED_DATUM "Marked Datum" diff --git a/code/__HELPERS/datastructs/bitfields.dm b/code/__HELPERS/datastructs/bitfields.dm new file mode 100644 index 00000000000..476f8f66633 --- /dev/null +++ b/code/__HELPERS/datastructs/bitfields.dm @@ -0,0 +1,127 @@ + +//* This file is explicitly licensed under the MIT license. *// +//* Copyright (c) 2025 Citadel Station Developers *// + +/** + * All bitfield datums + */ +GLOBAL_LIST(bitfields) +/** + * All bitfield datums by path + */ +GLOBAL_LIST(bitfields_by_path) +/** + * All bitfield datums by var name + */ +GLOBAL_LIST(bitfields_by_var) + +// TODO: why don't we just tgui picker bitfields so we don't need to do insane lookups? +/proc/init_bitfield_meta() + // TODO: GLOBAL_ALIST + var/list/bitfields = list() + var/list/bitfield_by_path = list() + var/list/bitfield_by_var = list() + + for(var/datum/bitfield/path as anything in subtypesof(/datum/bitfield)) + if(path.abstract_type == path) + continue + var/datum/bitfield/instance = new path + bitfields += instance + // add legacy shit + var/list/legacy_bitfields = generate_bitfields() + for(var/var_name in legacy_bitfields) + var/list/reverse_lookup = legacy_bitfields[var_name] + var/datum/bitfield/legacy_instance = new + for(var/name in reverse_lookup) + var/bit = reverse_lookup[name] + legacy_instance.names += name + legacy_instance.bits += bit + legacy_instance.paths = list((/datum) = var_name) + bitfields += legacy_instance + for(var/datum/bitfield/bitfield as anything in bitfields) + for(var/path in bitfield.paths) + if(!bitfield_by_path[path]) + bitfield_by_path[path] = list(bitfield) + else + bitfield_by_path[path] += bitfield + var/list/name_or_names = bitfield.paths[path] + if(islist(name_or_names)) + for(var/name in name_or_names) + if(!bitfield_by_var[name]) + bitfield_by_var[name] = list(bitfield) + else + bitfield_by_var[name] += bitfield + else if(name_or_names) + if(!bitfield_by_var[name_or_names]) + bitfield_by_var[name_or_names] = list(bitfield) + else + bitfield_by_var[name_or_names] += bitfield + else + STACK_TRACE("Bitfield [bitfield.type] ([json_encode(bitfield.names)]) had no var name on path [path]") + + GLOB.bitfields = bitfields + GLOB.bitfields_by_path = bitfield_by_path + GLOB.bitfields_by_var = bitfield_by_var + +#if DM_VERSION > 516 + #error remove the guards on path == /datum; byond will have fixed the crash bug by now +#endif + +/proc/fetch_all_bitfields(datum/path) + . = list() + do + var/list/maybe_bitfields = GLOB.bitfields_by_path[path] + if(maybe_bitfields) + . += maybe_bitfields + if(path == /datum) + break + path = path.parent_type + while(path) + +/proc/fetch_bitfield(datum/path, var_name) as /datum/bitfield + if(istype(path)) + path = path.type + for(var/datum/bitfield/bitfield as anything in GLOB.bitfields_by_var[var_name]) + for(var/match in bitfield.paths) + if(ispath(path, match)) + return bitfield + +/** + * Bitfield datums used to reflect bitfield values in the game's code. + */ +/datum/bitfield + abstract_type = /datum/bitfield + /// typepaths this is valid on associated to variable or list of variables + var/list/paths = list() + var/list/bits + var/list/names + +/datum/bitfield/New() + var/list/constants = get_bit_constants() + bits = list() + names = list() + for(var/name in constants) + var/bit = constants[name] + bits += bit + names += name + +/datum/bitfield/proc/get_bit_name(bit) + . = bits.Find(bit) + return . ? names[.] : null + +/datum/bitfield/proc/get_bit(name) + . = names.Find(name) + return . ? bits[.] : null + +/** + * This is NOT necessarily the number of bits in the bitfield. This is only how many of them + * were declared in ourselves. Please be careful when using this; + */ +/datum/bitfield/proc/get_declared_count() + return length(bits) + +/** + * @return list(NAME = BIT, ...) + */ +/datum/bitfield/proc/get_bit_constants() + return list() diff --git a/code/_globals/bitfields.dm b/code/_globals/bitfield_legacy.dm similarity index 83% rename from code/_globals/bitfields.dm rename to code/_globals/bitfield_legacy.dm index 7205896c151..814c7a4290a 100644 --- a/code/_globals/bitfields.dm +++ b/code/_globals/bitfield_legacy.dm @@ -1,25 +1,23 @@ -GLOBAL_LIST_INIT(bitfields, generate_bitfields()) - -/datum/bitfield +/datum/bitfield_legacy /// An associative list of the readable flag and its true value var/list/flags -/datum/bitfield/single +/datum/bitfield_legacy/single /// The variable name that contains the bitfield var/variable -/datum/bitfield/multi +/datum/bitfield_legacy/multi /// our variable names var/list/variables -/// Turns /datum/bitfield subtypes into a list for use in debugging +/// Turns /datum/bitfield_legacy subtypes into a list for use in debugging /proc/generate_bitfields() var/list/bitfields = list() - for (var/_bitfield in subtypesof(/datum/bitfield/single)) - var/datum/bitfield/single/bitfield = new _bitfield + for (var/_bitfield in subtypesof(/datum/bitfield_legacy/single)) + var/datum/bitfield_legacy/single/bitfield = new _bitfield bitfields[bitfield.variable] = bitfield.flags - for (var/_bitfield in subtypesof(/datum/bitfield/multi)) - var/datum/bitfield/multi/bitfield = new _bitfield + for (var/_bitfield in subtypesof(/datum/bitfield_legacy/multi)) + var/datum/bitfield_legacy/multi/bitfield = new _bitfield for(var/n in bitfield.variables) bitfields[n] = bitfield.flags // sue me i haven't slept in 18 hours diff --git a/code/controllers/configuration/entries/game.dm b/code/controllers/configuration/entries/game.dm index 04e157aa9b4..b2c2962c40d 100644 --- a/code/controllers/configuration/entries/game.dm +++ b/code/controllers/configuration/entries/game.dm @@ -92,11 +92,9 @@ . = ..() if(!.) return - var/datum/bitfield/single/target_bitfield = /datum/bitfield/single/nightshift_level - var/target_bitname = initial(target_bitfield.variable) - var/list/actual_bitfield = GLOB.bitfields[target_bitname] + var/datum/bitfield_legacy/single/target_bitfield = new /datum/bitfield_legacy/single/nightshift_level var/new_flags = NONE for(var/key in config_entry_value) if(config_entry_value[key]) - new_flags |= actual_bitfield[key] + new_flags |= target_bitfield.flags[key] SSnightshift.nightshift_level = new_flags diff --git a/code/controllers/subsystem/early_init.dm b/code/controllers/subsystem/early_init.dm index 0460bc5da4d..cdb3e8c18f7 100644 --- a/code/controllers/subsystem/early_init.dm +++ b/code/controllers/subsystem/early_init.dm @@ -7,4 +7,5 @@ SUBSYSTEM_DEF(early_init) /datum/controller/subsystem/early_init/Initialize() init_inventory_slot_meta() init_crayon_decal_meta() + init_bitfield_meta() return SS_INIT_SUCCESS diff --git a/code/controllers/subsystem/materials.dm b/code/controllers/subsystem/materials.dm index 25ef0638c0a..4bc05d2e899 100644 --- a/code/controllers/subsystem/materials.dm +++ b/code/controllers/subsystem/materials.dm @@ -246,7 +246,7 @@ SUBSYSTEM_DEF(materials) built["tags"] = mat.material_tags var/list/constraint_list = list() - var/datum/bitfield/single/constraint_bf = new /datum/bitfield/single/material_constraints + var/datum/bitfield_legacy/single/constraint_bf = new /datum/bitfield_legacy/single/material_constraints constraint_list += mat.material_constraints //Add the unified constraint for(var/key in constraint_bf.flags) if(constraint_bf.flags[key] & mat.material_constraints) diff --git a/code/datums/browser/listpicker.dm b/code/datums/browser/listpicker.dm index 6b7fc668027..edd6f474f72 100644 --- a/code/datums/browser/listpicker.dm +++ b/code/datums/browser/listpicker.dm @@ -65,24 +65,31 @@ if (A.selectedbutton) return list("button" = A.selectedbutton, "values" = A.valueslist) -/proc/input_bitfield(mob/User, title, bitfield, current_value, nwidth = 350, nheight = 350, nslidecolor, allowed_edit_list = null) - if (!User || !(bitfield in GLOB.bitfields)) +/proc/input_bitfield(mob/User, title, datum/bitfield/bitfield, current_value, nwidth = 350, nheight = 350, nslidecolor, allowed_edit_list = null) + if(!User) return var/list/pickerlist = list() - for (var/i in GLOB.bitfields[bitfield]) + for(var/i in 1 to bitfield.get_declared_count()) + var/bit = bitfield.bits[i] + var/name = bitfield.names[i] var/can_edit = 1 - if(!isnull(allowed_edit_list) && !(allowed_edit_list & GLOB.bitfields[bitfield][i])) + if(allowed_edit_list && !(allowed_edit_list & bit)) can_edit = 0 - if (current_value & GLOB.bitfields[bitfield][i]) - pickerlist += list(list("checked" = 1, "value" = GLOB.bitfields[bitfield][i], "name" = i, "allowed_edit" = can_edit)) + if (current_value & bit) + pickerlist += list(list("checked" = 1, "value" = bit, "name" = name, "allowed_edit" = can_edit)) else - pickerlist += list(list("checked" = 0, "value" = GLOB.bitfields[bitfield][i], "name" = i, "allowed_edit" = can_edit)) + pickerlist += list(list("checked" = 0, "value" = bit, "name" = name, "allowed_edit" = can_edit)) var/list/result = presentpicker(User, "", title, Button1="Save", Button2 = "Cancel", Timeout=FALSE, values = pickerlist, width = nwidth, height = nheight, slidecolor = nslidecolor) if (islist(result)) if (result["button"] == 2) // If the user pressed the cancel button return . = 0 for (var/flag in result["values"]) - . |= GLOB.bitfields[bitfield][flag] + // TODO: efficient-er reverse lookup + for(var/i in 1 to bitfield.get_declared_count()) + var/bit = bitfield.bits[i] + var/name = bitfield.names[i] + if(name == flag) + . |= bit else return diff --git a/code/game/content/factions/eldritch/eldritch.dm/clothing.dm b/code/game/content/factions/eldritch/eldritch.dm/clothing.dm index b52dd35b4a6..3267b315bf8 100644 --- a/code/game/content/factions/eldritch/eldritch.dm/clothing.dm +++ b/code/game/content/factions/eldritch/eldritch.dm/clothing.dm @@ -11,7 +11,7 @@ worn_render_flags = WORN_RENDER_SLOT_ONE_FOR_ALL clothing_flags = 0 body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/tank/emergency/oxygen, /obj/item/flashlight,/obj/item/gun/projectile/energy, /obj/item/gun/projectile/ballistic, /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/melee/baton,/obj/item/handcuffs, /obj/item/eldritch/blade, /obj/item/eldritch/prop/codex) + suit_storage_class_allow = SUIT_STORAGE_CLASS_HARDWEAR | SUIT_STORAGE_CLASS_SOFTWEAR armor_type = /datum/armor/eldritch/robes inv_hide_flags = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL cold_protection_cover = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS @@ -45,7 +45,7 @@ worn_render_flags = WORN_RENDER_SLOT_ONE_FOR_ALL clothing_flags = 0 body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/tank/emergency/oxygen, /obj/item/flashlight,/obj/item/gun/projectile/energy, /obj/item/gun/projectile/ballistic, /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/melee/baton,/obj/item/handcuffs, /obj/item/eldritch/blade, /obj/item/eldritch/prop/codex) + suit_storage_class_allow = SUIT_STORAGE_CLASS_HARDWEAR | SUIT_STORAGE_CLASS_SOFTWEAR armor_type = /datum/armor/eldritch/robes/godmode inv_hide_flags = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL cold_protection_cover = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS diff --git a/code/game/content/factions/eldritch/eldritch.dm/objects.dm b/code/game/content/factions/eldritch/eldritch.dm/objects.dm index 34b7abe00cf..92cebf53f71 100644 --- a/code/game/content/factions/eldritch/eldritch.dm/objects.dm +++ b/code/game/content/factions/eldritch/eldritch.dm/objects.dm @@ -5,6 +5,7 @@ desc = "A heavy book that has been crafted out of purple leather and bound with a chain made of metal you don't recognize. A variety of runes have been etched into the cover." anchored = 0 density = 0 + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR | SUIT_STORAGE_CLASS_SOFTWEAR /obj/item/eldritch/prop/medallion icon = 'code/game/content/factions/eldritch/eldritch.dmi/objects.dmi' @@ -29,6 +30,7 @@ icon_state = "cursed_blade" slot_flags = SLOT_BELT damage_mode = DAMAGE_MODE_SHARP | DAMAGE_MODE_EDGE + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") attack_sound = 'sound/weapons/bladeslice.ogg' drop_sound = 'sound/items/drop/sword.ogg' diff --git a/code/game/gamemodes/changeling/powers/armor.dm b/code/game/gamemodes/changeling/powers/armor.dm index 2a0bd9d563b..f9928df7158 100644 --- a/code/game/gamemodes/changeling/powers/armor.dm +++ b/code/game/gamemodes/changeling/powers/armor.dm @@ -37,7 +37,7 @@ desc = "A huge, bulky mass of pressure and temperature-resistant organic tissue, evolved to facilitate space travel." clothing_flags = NONE item_flags = ITEM_DROPDEL - allowed = list(/obj/item/flashlight, /obj/item/tank/emergency/oxygen, /obj/item/tank/oxygen) + suit_storage_class_allow = SUIT_STORAGE_CLASS_HARDWEAR | SUIT_STORAGE_CLASS_SOFTWEAR armor_type = /datum/armor/none //No armor at all. /obj/item/clothing/suit/space/changeling/Initialize(mapload) diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 799a9900fd4..7d7d86f3d0d 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -11,6 +11,7 @@ pickup_sound = 'sound/items/pickup/sword.ogg' attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") damage_mode = DAMAGE_MODE_EDGE | DAMAGE_MODE_SHARP + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR | SUIT_STORAGE_CLASS_SOFTWEAR /obj/item/melee/cultblade/cultify() return @@ -84,7 +85,6 @@ icon_state = "cultrobes" origin_tech = list(TECH_MATERIAL = 3, TECH_ARCANE = 1) body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS - allowed = list(/obj/item/book/tome,/obj/item/melee/cultblade) armor_type = /datum/armor/cult/robes inv_hide_flags = HIDEJUMPSUIT siemens_coefficient = 0 @@ -130,7 +130,6 @@ origin_tech = list(TECH_MATERIAL = 3, TECH_ARCANE = 1) desc = "A bulky suit of armour, bristling with spikes. It looks space-worthy." w_class = WEIGHT_CLASS_NORMAL - allowed = list(/obj/item/book/tome,/obj/item/melee/cultblade,/obj/item/tank/emergency/oxygen,/obj/item/suit_cooling_unit) weight = ITEM_WEIGHT_CULT_VOIDSUIT encumbrance = ITEM_ENCUMBRANCE_CULT_VOIDSUIT armor_type = /datum/armor/cult/space diff --git a/code/game/gamemodes/cult/ritual.dm b/code/game/gamemodes/cult/ritual.dm index 29fab2fe643..aeb1c8d9d77 100644 --- a/code/game/gamemodes/cult/ritual.dm +++ b/code/game/gamemodes/cult/ritual.dm @@ -187,6 +187,7 @@ var/global/list/rnwords = list("ire","ego","nahlizet","certum","veri","jatkaa"," unique = 1 var/tomedat = "" var/list/words = list("ire" = "ire", "ego" = "ego", "nahlizet" = "nahlizet", "certum" = "certum", "veri" = "veri", "jatkaa" = "jatkaa", "balaq" = "balaq", "mgar" = "mgar", "karazet" = "karazet", "geeri" = "geeri") + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR | SUIT_STORAGE_CLASS_SOFTWEAR tomedat = {" diff --git a/code/game/gamemodes/technomancer/clothing.dm b/code/game/gamemodes/technomancer/clothing.dm index fc615b831cc..97a5553c82d 100644 --- a/code/game/gamemodes/technomancer/clothing.dm +++ b/code/game/gamemodes/technomancer/clothing.dm @@ -3,7 +3,6 @@ desc = "It's a very shiny and somewhat protective suit, built to help carry cores on the user's back." icon_state = "technomancer_suit" body_cover_flags = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS|FEET|HANDS - allowed = list(/obj/item/tank) armor_type = /datum/armor/technomancer/standard siemens_coefficient = 0.75 diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index e4c43752271..ed7f3510e1f 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -486,7 +486,7 @@ GLOBAL_LIST_INIT(firelock_align_types, typecacheof(list( if(dir_alerts) for(var/d=1;d<=4;d++) for(var/i=1;i<=ALERT_STATES.len;i++) - if(dir_alerts[d] & BITFLAG(i-1)) + if(dir_alerts[d] & (1 << (i-1))) add_overlay("alert_[ALERT_STATES[i]]") do_set_light = TRUE else diff --git a/code/game/objects/items-inventory-old.dm b/code/game/objects/items-inventory-old.dm index 0a053b1e851..f03a7eb5bd8 100644 --- a/code/game/objects/items-inventory-old.dm +++ b/code/game/objects/items-inventory-old.dm @@ -246,8 +246,19 @@ * allow an item in suit storage slot? */ /obj/item/proc/can_suit_storage(obj/item/I) - // todo: this is awful - return is_type_in_list(I, allowed) + if(suit_storage_types_disallow_override) + for(var/path in suit_storage_types_disallow_override) + if(istype(I, path)) + return FALSE + if(suit_storage_types_allow_override) + for(var/path in suit_storage_types_allow_override) + if(istype(I, path)) + return FALSE + if(suit_storage_class_disallow & I.suit_storage_class) + return FALSE + if(suit_storage_class_allow & I.suit_storage_class) + return TRUE + return FALSE /** * checks if we need something to attach to in a certain slot diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 8750a7fc7ee..1f28b4d704d 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -117,6 +117,18 @@ var/obj/item/worn_inside /// suppress auto inventory hooks in forceMove var/worn_hook_suppressed = FALSE + /// Suit storage classes + var/suit_storage_class = NONE + /// Suit storage classes to allow + var/suit_storage_class_allow = NONE + /// Suit storage classes to disallow + var/suit_storage_class_disallow = NONE + /// Suit storage override type-list + /// * only for adminbus really + VAR_PRIVATE/list/suit_storage_types_allow_override + /// Suit storage override type-list + /// * only for adminbus really + VAR_PRIVATE/list/suit_storage_types_disallow_override //* Environmentals *// /// Set this variable to determine up to which temperature (IN KELVIN) the item protects against heat damage. Keep at null to disable protection. Only protects areas set by heat_protection flags. @@ -175,9 +187,6 @@ var/permeability_coefficient = 1 /// For electrical admittance/conductance (electrocution checks and shit) var/siemens_coefficient = 1 - /// Suit storage stuff. - // todo: kill with fire - var/list/allowed = null // todo: kill with fire /// All items can have an uplink hidden inside, just remember to add the triggers. var/obj/item/uplink/hidden/hidden_uplink = null diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index bd0051dc316..8993a0a1df7 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -10,6 +10,7 @@ throw_range = 10 origin_tech = list(TECH_MAGNET = 2, TECH_COMBAT = 1) worth_intrinsic = 45 + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/times_used = 0 //Number of times it's been used. var/broken = FALSE //Is the flash burnt out? diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index c25ac13b792..57203d20195 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -9,6 +9,7 @@ item_action_name = "Toggle Flashlight" light_wedge = LIGHT_WIDE worth_intrinsic = 25 + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/on = FALSE /// Luminosity when on diff --git a/code/game/objects/items/devices/geiger.dm b/code/game/objects/items/devices/geiger.dm index d25683a3f12..48e605185a9 100644 --- a/code/game/objects/items/devices/geiger.dm +++ b/code/game/objects/items/devices/geiger.dm @@ -17,6 +17,7 @@ w_class = WEIGHT_CLASS_SMALL rad_flags = RAD_NO_CONTAMINATE | RAD_BLOCK_CONTENTS materials_base = list(MAT_STEEL = 200, MAT_GLASS = 100) + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/grace = RAD_GRACE_PERIOD var/datum/looping_sound/geiger/soundloop diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index 49dd418097f..81b87b10d59 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -27,6 +27,7 @@ origin_tech = list(TECH_MATERIAL = 2, TECH_BLUESPACE = 2, TECH_MAGNET = 1) materials_base = list(MAT_STEEL = 500) worth_intrinsic = 40 + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR /// our GPS tag var/gps_tag = "GEN0" diff --git a/code/game/objects/items/devices/holowarrant.dm b/code/game/objects/items/devices/holowarrant.dm index 01d19175aab..4b1afec453b 100644 --- a/code/game/objects/items/devices/holowarrant.dm +++ b/code/game/objects/items/devices/holowarrant.dm @@ -5,6 +5,7 @@ icon_state = "holowarrant" item_state = "flashtool" item_flags = ITEM_NO_BLUDGEON | ITEM_ENCUMBERS_WHILE_HELD + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR throw_force = 5 w_class = WEIGHT_CLASS_SMALL throw_speed = 4 diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index 718b62e3042..ecaebe45a88 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -4,6 +4,7 @@ icon = 'icons/obj/device.dmi' icon_state = "megaphone" w_class = WEIGHT_CLASS_SMALL + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/spamcheck = 0 var/emagged = 0 diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm index 43199a3c221..0d56fc2ba38 100644 --- a/code/game/objects/items/devices/pipe_painter.dm +++ b/code/game/objects/items/devices/pipe_painter.dm @@ -2,6 +2,7 @@ name = "pipe painter" icon = 'icons/obj/bureaucracy.dmi' icon_state = "labeler1" + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/list/modes var/mode diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index d2d971bd8b0..89dc0199545 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -9,6 +9,7 @@ throw_force = 5 throw_speed = 1 throw_range = 2 + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR materials_base = list(MAT_STEEL = 750) diff --git a/code/game/objects/items/devices/radio/jammer.dm b/code/game/objects/items/devices/radio/jammer.dm index e6592aa6e8c..41a43f2355c 100644 --- a/code/game/objects/items/devices/radio/jammer.dm +++ b/code/game/objects/items/devices/radio/jammer.dm @@ -18,6 +18,7 @@ var/global/list/active_radio_jammers = list() desc = "Primarily for blocking subspace communications, preventing the use of headsets, PDAs, and communicators. Also masks suit sensors." // Added suit sensor jamming icon = 'icons/obj/device.dmi' icon_state = "jammer0" + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/active_state = "jammer1" var/last_overlay_percent = null // Stores overlay icon_state to avoid excessive recreation of overlays. diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index ce136c05dea..88c885e0f3c 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -28,6 +28,7 @@ GLOBAL_LIST_INIT(default_medbay_channels, list( suffix = "\[3\]" icon_state = "walkietalkie" item_state = "radio" + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR ///FALSE for off var/on = TRUE diff --git a/code/game/objects/items/devices/suit_cooling.dm b/code/game/objects/items/devices/suit_cooling.dm index f9257f6803c..14e10ce3d1d 100644 --- a/code/game/objects/items/devices/suit_cooling.dm +++ b/code/game/objects/items/devices/suit_cooling.dm @@ -12,6 +12,7 @@ throw_speed = 1 throw_range = 4 item_action_name = "Toggle Heatsink" + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR materials_base = list(MAT_STEEL = 15000, MAT_GLASS = 3500) origin_tech = list(TECH_MAGNET = 2, TECH_MATERIAL = 2) diff --git a/code/game/objects/items/devices/t_scanner.dm b/code/game/objects/items/devices/t_scanner.dm index fcd03f85ef3..3354b8db3fb 100644 --- a/code/game/objects/items/devices/t_scanner.dm +++ b/code/game/objects/items/devices/t_scanner.dm @@ -10,6 +10,7 @@ w_class = WEIGHT_CLASS_SMALL materials_base = list(MAT_STEEL = 150) origin_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 1) + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/scan_range = 1 diff --git a/code/game/objects/items/devices/tape_recorder/tape_recorder.dm b/code/game/objects/items/devices/tape_recorder/tape_recorder.dm index 0b5120be3c0..8010483db0d 100644 --- a/code/game/objects/items/devices/tape_recorder/tape_recorder.dm +++ b/code/game/objects/items/devices/tape_recorder/tape_recorder.dm @@ -10,6 +10,7 @@ throw_speed = 4 throw_range = 20 materials_base = list(MAT_STEEL = 60, MAT_GLASS = 30) + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR /// inserted tape var/obj/item/cassette_tape/tape = /obj/item/cassette_tape/random diff --git a/code/game/objects/items/devices/translator.dm b/code/game/objects/items/devices/translator.dm index a3514bcdd75..efac6406834 100644 --- a/code/game/objects/items/devices/translator.dm +++ b/code/game/objects/items/devices/translator.dm @@ -6,6 +6,7 @@ icon_state = "translator" w_class = WEIGHT_CLASS_NORMAL origin_tech = list(TECH_DATA = 3, TECH_ENGINEERING = 3) + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR /// our translation context; set to path to start as path var/datum/translation_context/context = /datum/translation_context/simple/universal_translator diff --git a/code/game/objects/items/devices/whistle.dm b/code/game/objects/items/devices/whistle.dm index cc6c196f666..83e1e8d742c 100644 --- a/code/game/objects/items/devices/whistle.dm +++ b/code/game/objects/items/devices/whistle.dm @@ -6,6 +6,7 @@ item_state = "flashbang" //looks exactly like a flash (and nothing like a flashbang) w_class = WEIGHT_CLASS_TINY slot_flags = SLOT_EARS + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/use_message = "Halt! Security!" var/spamcheck = 0 diff --git a/code/game/objects/items/grenade/grenade.dm b/code/game/objects/items/grenade/grenade.dm index 0d4903f361b..2dcfc41f514 100644 --- a/code/game/objects/items/grenade/grenade.dm +++ b/code/game/objects/items/grenade/grenade.dm @@ -14,6 +14,7 @@ throw_speed = 4 throw_range = 20 slot_flags = SLOT_MASK|SLOT_BELT + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR // todo: legacy var var/loadable = TRUE diff --git a/code/game/objects/items/inflatables.dm b/code/game/objects/items/inflatables.dm index f33e6dc1eca..22001bc2fa4 100644 --- a/code/game/objects/items/inflatables.dm +++ b/code/game/objects/items/inflatables.dm @@ -71,6 +71,7 @@ w_class = WEIGHT_CLASS_NORMAL max_combined_volume = WEIGHT_VOLUME_NORMAL * 7 insertion_whitelist = list(/obj/item/inflatable) + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR starts_with = list( /obj/item/inflatable = 4, diff --git a/code/game/objects/items/melee/melee.dm b/code/game/objects/items/melee/melee.dm index 88bd5f1df3f..a9b63b95344 100644 --- a/code/game/objects/items/melee/melee.dm +++ b/code/game/objects/items/melee/melee.dm @@ -20,3 +20,4 @@ passive_parry = /datum/passive_parry{ parry_chance_melee = 5; } + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR diff --git a/code/game/objects/items/melee/types/misc.dm b/code/game/objects/items/melee/types/misc.dm index 599ca508a0c..04e292021e6 100644 --- a/code/game/objects/items/melee/types/misc.dm +++ b/code/game/objects/items/melee/types/misc.dm @@ -20,6 +20,7 @@ damage_force = 5 throw_force = 5 w_class = WEIGHT_CLASS_NORMAL + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/open = FALSE /obj/item/melee/umbrella/Initialize(mapload) diff --git a/code/game/objects/items/melee/types/transforming/energy/saber.dm b/code/game/objects/items/melee/types/transforming/energy/saber.dm index 64a36a8db94..5803103e8ec 100644 --- a/code/game/objects/items/melee/types/transforming/energy/saber.dm +++ b/code/game/objects/items/melee/types/transforming/energy/saber.dm @@ -13,6 +13,7 @@ colorable = TRUE drop_sound = 'sound/items/drop/sword.ogg' pickup_sound = 'sound/items/pickup/sword.ogg' + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/can_combine = TRUE active_damage_force = 30 @@ -32,6 +33,7 @@ SPAN_WARNING("You energize \the [src]."), target = src, ) + suit_storage_class = NONE /obj/item/melee/transforming/energy/sword/on_deactivate(datum/event_args/actor/actor, silent) . = ..() @@ -39,6 +41,7 @@ SPAN_WARNING("You de-energize \the [src]."), target = src, ) + suit_storage_class = initial(suit_storage_class) /obj/item/melee/transforming/energy/sword/passive_parry_intercept(mob/defending, attack_type, datum/attack_source, datum/passive_parry/parry_data) . = ..() diff --git a/code/game/objects/items/scanners/atmos.dm b/code/game/objects/items/scanners/atmos.dm index 1d048969ca7..6d3ac1822d1 100644 --- a/code/game/objects/items/scanners/atmos.dm +++ b/code/game/objects/items/scanners/atmos.dm @@ -11,6 +11,7 @@ throw_range = 20 materials_base = list(MAT_STEEL = 30, MAT_GLASS = 20) origin_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 1) + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR /obj/item/atmos_analyzer/apidean name = "\improper Apidean analyzer" diff --git a/code/game/objects/items/scanners/health.dm b/code/game/objects/items/scanners/health.dm index 385a7ffc308..894d93b42a0 100644 --- a/code/game/objects/items/scanners/health.dm +++ b/code/game/objects/items/scanners/health.dm @@ -5,6 +5,7 @@ icon_state = "health" item_state = "healthanalyzer" slot_flags = SLOT_BELT + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR throw_force = 3 w_class = WEIGHT_CLASS_SMALL throw_speed = 5 diff --git a/code/game/objects/items/scanners/plant.dm b/code/game/objects/items/scanners/plant.dm index 2047dfa8a52..a529a531dcf 100644 --- a/code/game/objects/items/scanners/plant.dm +++ b/code/game/objects/items/scanners/plant.dm @@ -3,6 +3,7 @@ icon = 'icons/obj/device.dmi' icon_state = "hydro" item_state = "analyzer" + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/datum/seed/last_seed var/list/last_reagents w_class = WEIGHT_CLASS_SMALL diff --git a/code/game/objects/items/scanners/reagent.dm b/code/game/objects/items/scanners/reagent.dm index c32663a7855..2cfe06c5c82 100644 --- a/code/game/objects/items/scanners/reagent.dm +++ b/code/game/objects/items/scanners/reagent.dm @@ -10,6 +10,7 @@ throw_speed = 4 throw_range = 20 materials_base = list(MAT_STEEL = 30, MAT_GLASS = 20) + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2) var/details = 0 diff --git a/code/game/objects/items/shield/types/shields_legacy_vr.dm b/code/game/objects/items/shield/types/shields_legacy_vr.dm index d0d00bba9d9..76ba46f0a67 100644 --- a/code/game/objects/items/shield/types/shields_legacy_vr.dm +++ b/code/game/objects/items/shield/types/shields_legacy_vr.dm @@ -1,4 +1,3 @@ - /obj/item/shield/fluff/wolfgirlshield name = "Autumn Shield" desc = "A shiny silvery shield with a large red leaf symbol in the center." @@ -11,4 +10,3 @@ throw_range = 6 item_icons = list(SLOT_ID_LEFT_HAND = 'icons/mob/items/lefthand_melee.dmi', SLOT_ID_RIGHT_HAND = 'icons/mob/items/righthand_melee.dmi', SLOT_ID_BACK = 'icons/vore/custom_items_vr.dmi', SLOT_ID_SUIT = 'icons/vore/custom_items_vr.dmi') attack_verb = list("shoved", "bashed") - allowed = list(/obj/item/melee/fluffstuff/wolfgirlsword) diff --git a/code/game/objects/items/stacks/marker_beacons.dm b/code/game/objects/items/stacks/marker_beacons.dm index 2cfd6712949..9adde945078 100644 --- a/code/game/objects/items/stacks/marker_beacons.dm +++ b/code/game/objects/items/stacks/marker_beacons.dm @@ -28,6 +28,7 @@ var/list/marker_beacon_colors = list( no_variants = TRUE w_class = WEIGHT_CLASS_SMALL skip_legacy_icon_update = TRUE + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/picked_color = "random" /obj/item/stack/marker_beacon/ten diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 1d4c355a9a6..e3875489715 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -9,6 +9,7 @@ w_class = WEIGHT_CLASS_SMALL throw_speed = 4 throw_range = 20 + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/heal_brute = 0 var/heal_burn = 0 var/apply_sounds diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index e617f8b5f08..b9312610c56 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -145,6 +145,7 @@ max_combined_volume = null max_combined_weight_class = null max_items = 300 + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR storage_datum_path = /datum/object_system/storage/stack ui_expand_when_needed = TRUE insertion_whitelist = list(/obj/item/stack/ore) diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index e34322a525a..a9887099ce4 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -440,6 +440,7 @@ desc = "A small box of 'Space-Proof' premium matches." icon = 'icons/obj/cigarettes.dmi' icon_state = "matchbox" + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR w_class = WEIGHT_CLASS_TINY slot_flags = SLOT_BELT insertion_whitelist = list(/obj/item/flame/match) diff --git a/code/game/objects/items/storage/medical/firstaid.dm b/code/game/objects/items/storage/medical/firstaid.dm index 7196fb1ea80..978867fe6e4 100644 --- a/code/game/objects/items/storage/medical/firstaid.dm +++ b/code/game/objects/items/storage/medical/firstaid.dm @@ -18,6 +18,7 @@ max_combined_volume = WEIGHT_VOLUME_SMALL * 7 // 14 drop_sound = 'sound/items/drop/cardboardbox.ogg' pickup_sound = 'sound/items/pickup/cardboardbox.ogg' + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR /obj/item/storage/firstaid/fire name = "fire first aid kit" @@ -174,6 +175,7 @@ max_single_weight_class = WEIGHT_CLASS_TINY materials_base = list(MAT_PLASTIC = 80) item_flags = ITEM_CAREFUL_BLUDGEON | ITEM_ENCUMBERS_WHILE_HELD | ITEM_EASY_LATHE_DECONSTRUCT + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR var/label_text = "" var/labeled = 0 diff --git a/code/game/objects/items/storage/misc_legacy/fancy.dm b/code/game/objects/items/storage/misc_legacy/fancy.dm index a270eff84ae..e7f388f8987 100644 --- a/code/game/objects/items/storage/misc_legacy/fancy.dm +++ b/code/game/objects/items/storage/misc_legacy/fancy.dm @@ -238,6 +238,7 @@ icon = 'icons/obj/cigarettes.dmi' icon_state = "cigpacket" item_state_slots = list(SLOT_ID_RIGHT_HAND = "cigpacket", SLOT_ID_LEFT_HAND = "cigpacket") + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR w_class = WEIGHT_CLASS_TINY throw_force = 2 slot_flags = SLOT_BELT | SLOT_EARS diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index ef0a3b8ae10..213ad7718cf 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -15,6 +15,7 @@ attack_verb = list("robusted") drop_sound = 'sound/items/drop/toolbox.ogg' pickup_sound = 'sound/items/pickup/toolbox.ogg' + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR /obj/item/storage/toolbox/emergency name = "emergency toolbox" diff --git a/code/game/objects/items/tools/_tool.dm b/code/game/objects/items/tools/_tool.dm index 007118d301f..741a7824ff8 100644 --- a/code/game/objects/items/tools/_tool.dm +++ b/code/game/objects/items/tools/_tool.dm @@ -5,6 +5,7 @@ */ /obj/item/tool item_flags = ITEM_CAREFUL_BLUDGEON | ITEM_ENCUMBERS_WHILE_HELD + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR /obj/item/tool/get_description_info() . = ..() diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index 3b1510790d9..16668bd51e1 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -9,6 +9,7 @@ item_state = "welder" slot_flags = SLOT_BELT tool_behaviour = TOOL_WELDER + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR //Amount of OUCH when it's thrown damage_force = 3.0 diff --git a/code/game/objects/items/toys/toys.dm b/code/game/objects/items/toys/toys.dm index e0d3fbdfa94..1ce7548ca1f 100644 --- a/code/game/objects/items/toys/toys.dm +++ b/code/game/objects/items/toys/toys.dm @@ -26,6 +26,7 @@ throw_speed = 4 throw_range = 20 damage_force = 0 + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR /* * Balloons diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index 948ba30ba6f..af17c5bcdec 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -12,6 +12,7 @@ SLOT_ID_RIGHT_HAND = 'icons/mob/items/righthand.dmi', ) item_flags = ITEM_NO_BLUDGEON | ITEM_ENCUMBERS_WHILE_HELD + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR damage_force = 10 throw_force = 10 throw_speed = 1 @@ -419,7 +420,7 @@ SLOT_ID_LEFT_HAND = 'icons/mob/items/lefthand.dmi', SLOT_ID_RIGHT_HAND = 'icons/mob/items/righthand.dmi', ) - + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR w_class = WEIGHT_CLASS_SMALL origin_tech = list(TECH_MATERIAL = 2) diff --git a/code/game/objects/items/weapons/RPD.dm b/code/game/objects/items/weapons/RPD.dm index 6237a517990..3a27560d8c7 100644 --- a/code/game/objects/items/weapons/RPD.dm +++ b/code/game/objects/items/weapons/RPD.dm @@ -25,6 +25,7 @@ w_class = WEIGHT_CLASS_NORMAL slot_flags = SLOT_BELT materials_base = list(MAT_STEEL = 20000, MAT_GLASS = 10000) + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR ///Sparks system used when changing device in the UI var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread ///Direction of the device we are going to spawn, set up in the UI diff --git a/code/game/objects/items/weapons/barrier_tape.dm b/code/game/objects/items/weapons/barrier_tape.dm index e4f3cf65536..e6159688fe4 100644 --- a/code/game/objects/items/weapons/barrier_tape.dm +++ b/code/game/objects/items/weapons/barrier_tape.dm @@ -4,6 +4,7 @@ icon = 'icons/policetape.dmi' icon_state = "tape" w_class = WEIGHT_CLASS_SMALL + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR tool_speed = 3 //You can use it in surgery. It's stupid, but you can. diff --git a/code/game/objects/items/weapons/cigs_lighters.dm b/code/game/objects/items/weapons/cigs_lighters.dm index 5cb6eb576db..e2cf0589a2e 100644 --- a/code/game/objects/items/weapons/cigs_lighters.dm +++ b/code/game/objects/items/weapons/cigs_lighters.dm @@ -586,6 +586,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM item_state = "lighter-g" w_class = WEIGHT_CLASS_TINY throw_force = 4 + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR slot_flags = SLOT_BELT attack_verb = list("burnt", "singed") var/base_state diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm index 2d8079117c4..34cfabc9bdb 100644 --- a/code/game/objects/items/weapons/extinguisher.dm +++ b/code/game/objects/items/weapons/extinguisher.dm @@ -14,6 +14,7 @@ attack_verb = list("slammed", "whacked", "bashed", "thunked", "battered", "bludgeoned", "thrashed") drop_sound = 'sound/items/drop/gascan.ogg' pickup_sound = 'sound/items/pickup/gascan.ogg' + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR | SUIT_STORAGE_CLASS_SOFTWEAR var/spray_particles = 3 var/spray_amount = 10 //units of liquid per particle @@ -35,6 +36,7 @@ max_water = 150 spray_particles = 3 sprite_name = "miniFE" + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR /obj/item/extinguisher/mini/plasman name = "emergency phoronoid extinguisher" diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 701f6b632b7..b134f4958b6 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -7,6 +7,7 @@ worn_state = "handcuff" worn_render_flags = WORN_RENDER_SLOT_ONE_FOR_ALL slot_flags = SLOT_BELT + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR throw_force = 5 w_class = WEIGHT_CLASS_SMALL throw_speed = 2 diff --git a/code/game/objects/items/weapons/material/knives.dm b/code/game/objects/items/weapons/material/knives.dm index bb283be97ff..9503d7d6653 100644 --- a/code/game/objects/items/weapons/material/knives.dm +++ b/code/game/objects/items/weapons/material/knives.dm @@ -72,6 +72,7 @@ icon = 'icons/obj/kitchen.dmi' icon_state = "knife" desc = "A general purpose chef's knife. Glithari Exports filet knives, Centauri bread knives, all pale in comparison to Nanotrasen's very own Cookware line of cheap, affordable chef's knives." + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR damage_mode = DAMAGE_MODE_SHARP | DAMAGE_MODE_EDGE material_significance = MATERIAL_SIGNIFICANCE_WEAPON_LIGHT materials_base = list(MAT_STEEL = 12000) diff --git a/code/game/objects/items/weapons/material/misc.dm b/code/game/objects/items/weapons/material/misc.dm index c697f5f8ac5..ab687b9080d 100644 --- a/code/game/objects/items/weapons/material/misc.dm +++ b/code/game/objects/items/weapons/material/misc.dm @@ -79,6 +79,7 @@ material_primary = "tip" w_class = WEIGHT_CLASS_SMALL attack_verb = list("slashed", "sliced", "cut", "clawed") + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR /obj/item/material/minihoe/plasteel material_parts = /datum/prototype/material/plasteel diff --git a/code/game/objects/items/weapons/material/twohanded.dm b/code/game/objects/items/weapons/material/twohanded.dm index 832ef6f534a..342434bc077 100644 --- a/code/game/objects/items/weapons/material/twohanded.dm +++ b/code/game/objects/items/weapons/material/twohanded.dm @@ -153,6 +153,7 @@ damage_force = 10 w_class = WEIGHT_CLASS_BULKY slot_flags = SLOT_BACK + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR material_significance = MATERIAL_SIGNIFICANCE_WEAPON_HEAVY throw_force_multiplier = 1.5 throw_speed = 5 diff --git a/code/game/objects/items/weapons/nullrod.dm b/code/game/objects/items/weapons/nullrod.dm index a2b7ede8081..47c2af73a3e 100644 --- a/code/game/objects/items/weapons/nullrod.dm +++ b/code/game/objects/items/weapons/nullrod.dm @@ -13,6 +13,7 @@ w_class = WEIGHT_CLASS_SMALL drop_sound = 'sound/items/drop/sword.ogg' pickup_sound = 'sound/items/pickup/sword.ogg' + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR | SUIT_STORAGE_CLASS_SOFTWEAR var/reskinned = FALSE var/defend_chance = 0 // The base chance for the weapon to parry. diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm index 28f4689fb1a..1ac09e35ee3 100644 --- a/code/game/objects/items/weapons/surgery_tools.dm +++ b/code/game/objects/items/weapons/surgery_tools.dm @@ -14,6 +14,7 @@ icon = 'icons/obj/surgery.dmi' w_class = WEIGHT_CLASS_SMALL item_flags = ITEM_CAREFUL_BLUDGEON | ITEM_ENCUMBERS_WHILE_HELD + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR var/helpforce = 0 //For help intent things drop_sound = 'sound/items/drop/weldingtool.ogg' pickup_sound = 'sound/items/pickup/weldingtool.ogg' diff --git a/code/game/objects/items/weapons/tanks/tank.dm b/code/game/objects/items/weapons/tanks/tank.dm index 74f2fa603b9..6f6ec2afa6b 100644 --- a/code/game/objects/items/weapons/tanks/tank.dm +++ b/code/game/objects/items/weapons/tanks/tank.dm @@ -12,6 +12,7 @@ var/list/global/tank_gauge_cache = list() icon = 'icons/obj/tank.dmi' drop_sound = 'sound/items/drop/gascan.ogg' pickup_sound = 'sound/items/pickup/gascan.ogg' + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR var/gauge_icon = "indicator_tank" var/last_gauge_pressure diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm index 88e1f645ef5..e2230baa4f2 100644 --- a/code/game/objects/items/weapons/tanks/tank_types.dm +++ b/code/game/objects/items/weapons/tanks/tank_types.dm @@ -144,6 +144,7 @@ distribute_pressure = ONE_ATMOSPHERE*O2STANDARD volume = 2 //Tiny. Real life equivalents only have 21 breaths of oxygen in them. They're EMERGENCY tanks anyway -errorage (dangercon 2011) worth_intrinsic = 25 + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR /obj/item/tank/emergency/oxygen name = "emergency oxygen tank" diff --git a/code/game/objects/obj.dm b/code/game/objects/obj.dm index ff99a2df02d..b4838c56b0f 100644 --- a/code/game/objects/obj.dm +++ b/code/game/objects/obj.dm @@ -13,8 +13,6 @@ //? Flags /// object flags, see __DEFINES/_flags/obj_flags.dm var/obj_flags = OBJ_MELEE_TARGETABLE | OBJ_RANGE_TARGETABLE - /// ONLY FOR MAPPING: Sets flags from a string list, handled in Initialize. Usage: set_obj_flags = "OBJ_EMAGGED;!CAN_BE_HIT" to set OBJ_EMAGGED and clear CAN_BE_HIT. - var/set_obj_flags //? Access - see [modules/jobs/access.dm] /// If set, all of these accesses are needed to access this object. @@ -264,15 +262,6 @@ init_material_parts() if(hides_underfloor != OBJ_UNDERFLOOR_UNSUPPORTED && isturf(loc)) initialize_hiding_underfloor(mapload) - if (set_obj_flags) - var/flagslist = splittext(set_obj_flags,";") - var/list/string_to_objflag = GLOB.bitfields["obj_flags"] - for (var/flag in flagslist) - if(flag[1] == "!") - flag = copytext(flag, length(flag[1]) + 1) // Get all but the initial ! - obj_flags &= ~string_to_objflag[flag] - else - obj_flags |= string_to_objflag[flag] /obj/Destroy() for(var/datum/prototype/material_trait/trait as anything in material_traits) diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index 5c2b92fff45..be23a23b6c3 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -271,6 +271,7 @@ var/bedtype = /obj/structure/bed/roller drop_sound = 'sound/items/drop/axe.ogg' pickup_sound = 'sound/items/pickup/axe.ogg' + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR /obj/item/roller/attack_self(mob/user, datum/event_args/actor/actor) . = ..() diff --git a/code/modules/admin/callproc/callproc.dm b/code/modules/admin/callproc/callproc.dm index 4fd283abc8c..756605473a8 100644 --- a/code/modules/admin/callproc/callproc.dm +++ b/code/modules/admin/callproc/callproc.dm @@ -15,7 +15,10 @@ switch(alert("Proc owned by something?",,"Yes","No")) if("Yes") targetselected = TRUE - var/list/value = vv_get_value(default_class = VV_ATOM_REFERENCE, classes = list(VV_ATOM_REFERENCE, VV_DATUM_REFERENCE, VV_MOB_REFERENCE, VV_CLIENT, VV_MARKED_DATUM, VV_TEXT_LOCATE, VV_PROCCALL_RETVAL)) + var/list/value = vv_get_value( + default_class = VV_ATOM_REFERENCE, + classes = list(VV_ATOM_REFERENCE, VV_DATUM_REFERENCE, VV_MOB_REFERENCE, VV_CLIENT, VV_MARKED_DATUM, VV_TEXT_LOCATE, VV_PROCCALL_RETVAL), + ) if (!value["class"] || !value["value"]) return target = value["value"] diff --git a/code/modules/admin/view_variables/debug_variables.dm b/code/modules/admin/view_variables/debug_variables.dm index 28bdaead151..ffb5ff923ec 100644 --- a/code/modules/admin/view_variables/debug_variables.dm +++ b/code/modules/admin/view_variables/debug_variables.dm @@ -16,6 +16,7 @@ header = "
  • " var/item + var/datum/bitfield/maybe_bitfield if (isnull(value)) item = "[VV_HTML_ENCODE(name)] = null" @@ -70,12 +71,13 @@ else item = "[VV_HTML_ENCODE(name)] = /list ([L.len])" - else if (name in GLOB.bitfields) + else if ((maybe_bitfield = fetch_bitfield(D?.type, name))) var/list/flags = list() - for (var/i in GLOB.bitfields[name]) - if (value & GLOB.bitfields[name][i]) - flags += i - item = "[VV_HTML_ENCODE(name)] = [VV_HTML_ENCODE(jointext(flags, ", "))]" + for(var/i in 1 to maybe_bitfield.get_declared_count()) + var/bit = maybe_bitfield.bits[i] + if(value & bit) + flags += maybe_bitfield.names[i] + item = "[VV_HTML_ENCODE(name)] = [jointext(flags, ", ")]" else item = "[VV_HTML_ENCODE(name)] = [VV_HTML_ENCODE(value)]" diff --git a/code/modules/admin/view_variables/get_variables.dm b/code/modules/admin/view_variables/get_variables.dm index d864eebd125..379dd8fed0a 100644 --- a/code/modules/admin/view_variables/get_variables.dm +++ b/code/modules/admin/view_variables/get_variables.dm @@ -1,9 +1,9 @@ -/proc/vv_get_class(var_name, var_value) +/proc/vv_get_class(var_name, var_value, datum/target) if(isnull(var_value)) . = VV_NULL else if(isnum(var_value)) - if(var_name in GLOB.bitfields) + if(fetch_bitfield(target?.type, var_name)) . = VV_BITFIELD else . = VV_NUM @@ -39,13 +39,15 @@ else if(islist(var_value)) . = VV_LIST + else if(isalist(var_value)) + . = VV_ALIST else if(isfile(var_value)) . = VV_FILE else . = VV_NULL -/client/proc/vv_get_value(class, default_class, current_value, list/restricted_classes, list/extra_classes, list/classes, var_name) +/client/proc/vv_get_value(class, default_class, current_value, list/restricted_classes, list/extra_classes, list/classes, var_name, datum/maybe_datum) . = list("class" = class, "value" = null) if(!class) if(!classes) @@ -66,6 +68,7 @@ VV_NEW_DATUM, VV_NEW_TYPE, VV_NEW_LIST, + VV_NEW_ALIST, VV_NULL, VV_RESTORE_DEFAULT, VV_TEXT_LOCATE, @@ -83,6 +86,9 @@ if(extra_classes) classes += extra_classes + if(!maybe_datum) + classes -= VV_BITFIELD + .["class"] = input(src, "What kind of data?", "Variable Type", default_class) as null|anything in classes if(holder && holder.marked_datum && .["class"] == markstring) .["class"] = VV_MARKED_DATUM @@ -98,32 +104,26 @@ if(.["value"] == null) .["class"] = null return - - if(VV_NUM) .["value"] = input("Enter new number:", "Num", current_value) as null|num if(.["value"] == null) .["class"] = null return - if(VV_BITFIELD) - .["value"] = input_bitfield(usr, "Editing bitfield: [var_name]", var_name, current_value) + .["value"] = input_bitfield(usr, "Editing bitfield: [var_name]", fetch_bitfield(maybe_datum?.type, var_name), current_value) if(.["value"] == null) .["class"] = null return - if(VV_ATOM_TYPE) .["value"] = pick_closest_path(FALSE) if(.["value"] == null) .["class"] = null return - if(VV_DATUM_TYPE) .["value"] = pick_closest_path(FALSE, get_fancy_list_of_datum_types()) if(.["value"] == null) .["class"] = null return - if(VV_TYPE) var/type = current_value var/error = "" @@ -253,6 +253,10 @@ .["value"] = list() .["type"] = /list + if(VV_NEW_ALIST) + .["value"] = alist() + .["type"] = /alist + if(VV_TEXT_LOCATE) var/datum/D do diff --git a/code/modules/admin/view_variables/mass_edit_variables.dm b/code/modules/admin/view_variables/mass_edit_variables.dm index 86f9f78e013..0b35a731a7b 100644 --- a/code/modules/admin/view_variables/mass_edit_variables.dm +++ b/code/modules/admin/view_variables/mass_edit_variables.dm @@ -53,7 +53,7 @@ if (prompt != "Continue") return - default = vv_get_class(variable, var_value) + default = vv_get_class(variable, var_value, O) if(isnull(default)) to_chat(src, "Unable to determine variable type.") @@ -77,7 +77,7 @@ if(dir_text) to_chat(src, "If a direction, direction is: [dir_text]") - var/value = vv_get_value(default_class = default) + var/value = vv_get_value(default_class = default, maybe_datum = O) var/new_value = value["value"] var/class = value["class"] diff --git a/code/modules/admin/view_variables/modify_variables.dm b/code/modules/admin/view_variables/modify_variables.dm index 976085f1020..1865898d413 100644 --- a/code/modules/admin/view_variables/modify_variables.dm +++ b/code/modules/admin/view_variables/modify_variables.dm @@ -231,7 +231,7 @@ GLOBAL_PROTECT(VVpixelmovement) if (default == VV_TEXT) default = VV_MESSAGE class = default - var/list/LL = vv_get_value(default_class = default, current_value = original_var, restricted_classes = list(VV_RESTORE_DEFAULT), extra_classes = list(VV_LIST, "DELETE FROM LIST")) + var/list/LL = vv_get_value(default_class = default, current_value = original_var, restricted_classes = list(VV_RESTORE_DEFAULT), extra_classes = list(VV_LIST, VV_ALIST, "DELETE FROM LIST")) class = LL["class"] if (!class) return @@ -243,6 +243,8 @@ GLOBAL_PROTECT(VVpixelmovement) switch(class) //Spits a runtime error if you try to modify an entry in the contents list. Dunno how to fix it, yet. if(VV_LIST) mod_list(variable, O, original_name, objectvar) + if(VV_ALIST) + mod_list(variable, O, original_name, objectvar) if("DELETE FROM LIST") L.Cut(index, index+1) @@ -320,7 +322,7 @@ GLOBAL_PROTECT(VVpixelmovement) if(!vv_varname_lockcheck(variable)) return - var/default = vv_get_class(variable, var_value) + var/default = vv_get_class(variable, var_value, O) if(isnull(default)) to_chat(src, "Unable to determine variable type.") @@ -349,7 +351,14 @@ GLOBAL_PROTECT(VVpixelmovement) default = VV_MESSAGE class = default - var/list/value = vv_get_value(class, default, var_value, extra_classes = list(VV_LIST), var_name = variable) + var/list/value = vv_get_value( + class, + default, + var_value, + extra_classes = list(VV_LIST, VV_ALIST), + var_name = variable, + maybe_datum = O + ) class = value["class"] if (!class) @@ -362,10 +371,13 @@ GLOBAL_PROTECT(VVpixelmovement) var/original_name = "[O]" switch(class) + if(VV_ALIST) + if(!isalist(var_value)) + mod_list(alist(), O, original_name, variable) + mod_list(var_value, O, original_name, variable) if(VV_LIST) if(!islist(var_value)) mod_list(list(), O, original_name, variable) - mod_list(var_value, O, original_name, variable) return diff --git a/code/modules/catalogue/cataloguer.dm b/code/modules/catalogue/cataloguer.dm index 4676f0f844f..6465d8c5a1c 100644 --- a/code/modules/catalogue/cataloguer.dm +++ b/code/modules/catalogue/cataloguer.dm @@ -24,6 +24,7 @@ GLOBAL_LIST_EMPTY(all_cataloguers) icon_state = "cataloguer" w_class = WEIGHT_CLASS_NORMAL origin_tech = list(TECH_MATERIAL = 2, TECH_DATA = 3, TECH_MAGNET = 3) + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR damage_force = 0 var/points_stored = 0 // Amount of 'exploration points' this device holds. var/scan_range = 3 // How many tiles away it can scan. Changing this also changes the box size. diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index a3524d8fb55..96346c96ddb 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -7,6 +7,8 @@ pickup_sound = 'sound/items/pickup/cloth.ogg' item_flags = NONE + suit_storage_class_allow = SUIT_STORAGE_CLASS_SOFTWEAR + //? equip /// Inventory slot IDs where this is active for any effects. Used by subtypes, to be potentially refactored in the future. var/list/active_slots diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index d02d6e060a5..7ab5aa4ad14 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -142,7 +142,6 @@ name = "fedora" desc = "A brown fedora - either the cornerstone of a detective's style or a poor attempt at looking cool, depending on the person wearing it." icon_state = "detective" - allowed = list(/obj/item/reagent_containers/food/snacks/candy_corn, /obj/item/pen) armor_type = /datum/armor/security/light_formalwear siemens_coefficient = 0.9 valid_accessory_slots = null diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index c1f8ef24129..7825c7964bf 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -275,7 +275,6 @@ name = "fedora" desc = "A brown fedora - either the cornerstone of a reporter's style or a poor attempt at looking cool, depending on the person wearing it." icon_state = "detective" - allowed = list(/obj/item/reagent_containers/food/snacks/candy_corn, /obj/item/pen) /obj/item/clothing/head/fedora/grey icon_state = "detective2" diff --git a/code/modules/clothing/legacy_accessories/clothing.dm b/code/modules/clothing/legacy_accessories/clothing.dm index e150333914b..bce9bdfe61b 100644 --- a/code/modules/clothing/legacy_accessories/clothing.dm +++ b/code/modules/clothing/legacy_accessories/clothing.dm @@ -55,7 +55,6 @@ item_state = "classicponcho" icon_override = 'icons/mob/clothing/ties.dmi' var/fire_resist = T0C+100 - allowed = list(/obj/item/tank/emergency/oxygen) armor_type = /datum/armor/none slot_flags = SLOT_OCLOTHING | SLOT_TIE body_cover_flags = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS @@ -136,9 +135,6 @@ desc = "The latest fashion innovations by the Nanotrasen Uniform & Fashion Department have provided the brilliant invention of slicing a regular cloak in half! All the ponce, half the cost!" icon_state = "roughcloak" item_state = "roughcloak" - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, - /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit, /obj/item/gun/projectile/energy, - /obj/item/gun/projectile/ballistic, /obj/item/ammo_magazine, /obj/item/melee/baton) item_action_name = "Adjust Cloak" /obj/item/clothing/accessory/poncho/rough_cloak/attack_self(mob/user, datum/event_args/actor/actor) @@ -178,7 +174,6 @@ icon_state = "klbr" icon_override = 'icons/mob/clothing/suits.dmi' item_state_slots = list(SLOT_ID_RIGHT_HAND = "armor", SLOT_ID_LEFT_HAND = "armor") - allowed = list(/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/gun/projectile/energy,/obj/item/reagent_containers/spray/pepper,/obj/item/gun/projectile/ballistic,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/flashlight/maglight,/obj/item/clothing/head/helmet) slot_flags = SLOT_OCLOTHING | SLOT_TIE body_cover_flags = UPPER_TORSO|ARMS siemens_coefficient = 0.9 @@ -210,10 +205,6 @@ name = "goliath hide half cloak" desc = "Thinner and more lightweight than a hooded Goliath cloak, the half-cloak is more comfortable to wear over armor. However, as a result it does not provide the same protection from heat." color = "#870606" - allowed = list( - /obj/item/flashlight, /obj/item/tank/emergency/oxygen, /obj/item/pickaxe, /obj/item/material/twohanded/spear, /obj/item/material/twohanded/spear/bone, - /obj/item/material/knife/tacknife/combatknife/bone, /obj/item/material/knife/tacknife/survival/bone, /obj/item/material/knife/tacknife/survival/bone, /obj/item/melee/ashlander, - /obj/item/gun/projectile/ballistic/musket/pistol) item_action_name = "Adjust Cloak" /* @@ -365,7 +356,6 @@ item_state = "vest" icon_override = 'icons/mob/clothing/ties.dmi' item_state_slots = list(SLOT_ID_RIGHT_HAND = "wcoat", SLOT_ID_LEFT_HAND = "wcoat") - allowed = list(/obj/item/pen, /obj/item/paper, /obj/item/flashlight, /obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask) armor_type = /datum/armor/none slot_flags = SLOT_OCLOTHING | SLOT_TIE body_cover_flags = UPPER_TORSO|LOWER_TORSO @@ -417,7 +407,6 @@ item_state = "button_tucked" icon_override = 'icons/mob/clothing/ties.dmi' item_state_slots = list(SLOT_ID_RIGHT_HAND = "labcoat", SLOT_ID_LEFT_HAND = "labcoat") - allowed = list(/obj/item/pen, /obj/item/paper, /obj/item/flashlight, /obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask) armor_type = /datum/armor/none slot_flags = SLOT_OCLOTHING | SLOT_TIE body_cover_flags = UPPER_TORSO|LOWER_TORSO diff --git a/code/modules/clothing/legacy_accessories/xeno/tajara.dm b/code/modules/clothing/legacy_accessories/xeno/tajara.dm index ee8ed1da2c4..57d5d023b5a 100644 --- a/code/modules/clothing/legacy_accessories/xeno/tajara.dm +++ b/code/modules/clothing/legacy_accessories/xeno/tajara.dm @@ -91,7 +91,6 @@ icon_state = "taj_commoncloak" item_state = "taj_commoncloak" var/fire_resist = T0C+100 - allowed = list(/obj/item/tank/emergency/oxygen) armor_type = /datum/armor/none slot_flags = SLOT_OCLOTHING | SLOT_TIE body_cover_flags = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 482f6a7e5b4..da9bb6683f8 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -11,6 +11,7 @@ permeability_coefficient = 0.01 siemens_coefficient = 0.9 armor_type = /datum/armor/mask/gas + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR worth_intrinsic = 50 var/gas_filter_strength = 1 //For gas mask filters var/list/filtered_gases = list(GAS_ID_PHORON, GAS_ID_NITROUS_OXIDE) diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm index eebf3ae4f7f..4789b487e84 100644 --- a/code/modules/clothing/spacesuits/alien.dm +++ b/code/modules/clothing/spacesuits/alien.dm @@ -15,7 +15,6 @@ name = "Skrellian voidsuit" desc = "Seems like a wetsuit with reinforced plating seamlessly attached to it. Very chic." armor_type = /datum/armor/skrell/space/light - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/storage/bag/ore,/obj/item/t_scanner,/obj/item/pickaxe, /obj/item/rcd) heat_protection_cover = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE @@ -31,7 +30,6 @@ w_class = WEIGHT_CLASS_NORMAL atom_flags = PHORONGUARD clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT - allowed = list(/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/transforming/energy/sword,/obj/item/handcuffs,/obj/item/tank) armor_type = /datum/armor/vox/space/armored siemens_coefficient = 0.2 heat_protection_cover = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 67b5238c0c8..3af4dc4c204 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -24,7 +24,6 @@ permeability_coefficient = 0.02 clothing_flags = 0 body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/tank/emergency/oxygen, /obj/item/flashlight,/obj/item/gun/projectile/energy, /obj/item/gun/projectile/ballistic, /obj/item/ammo_magazine, /obj/item/ammo_casing, /obj/item/melee/baton,/obj/item/handcuffs) encumbrance = ITEM_ENCUMBRANCE_VOIDSUIT weight = ITEM_WEIGHT_VOIDSUIT armor_type = /datum/armor/station/tactical @@ -72,7 +71,6 @@ weight = ITEM_WEIGHT_BASELINE encumbrance = ITEM_ENCUMBRANCE_BASELINE clothing_flags = NONE - allowed = list(/obj/item) //for stuffing exta special presents //Space pirate outfit /obj/item/clothing/head/helmet/space/pirate @@ -92,7 +90,6 @@ desc = "Yarr." icon_state = "pirate" w_class = WEIGHT_CLASS_NORMAL - allowed = list(/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/tank/emergency/oxygen) weight = ITEM_WEIGHT_BASELINE encumbrance = ITEM_ENCUMBRANCE_BASELINE armor_type = /datum/armor/pirate/medium diff --git a/code/modules/clothing/spacesuits/spacesuits.dm b/code/modules/clothing/spacesuits/spacesuits.dm index 10c8c3a598f..12ae5cd61e9 100644 --- a/code/modules/clothing/spacesuits/spacesuits.dm +++ b/code/modules/clothing/spacesuits/spacesuits.dm @@ -74,7 +74,6 @@ atom_flags = PHORONGUARD clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT | CLOTHING_INJECTION_PORT body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/flashlight,/obj/item/tank/emergency/oxygen,/obj/item/suit_cooling_unit) armor_type = /datum/armor/general/space inv_hide_flags = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER cold_protection_cover = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS @@ -87,6 +86,7 @@ valid_accessory_slots = (ACCESSORY_SLOT_OVER | ACCESSORY_SLOT_ARMBAND | ACCESSORY_SLOT_DECOR) weight = ITEM_WEIGHT_SOFTSUIT encumbrance = ITEM_ENCUMBRANCE_SOFTSUIT + suit_storage_class_allow = SUIT_STORAGE_CLASS_HARDWEAR var/list/supporting_limbs //If not-null, automatically splints breaks. Checked when removing the suit. /obj/item/clothing/suit/space/equipped(mob/M, slot, accessory, silent, creation) diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm index bff8ebb93ee..1f55cbde5c4 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -11,7 +11,6 @@ icon_state = "syndicate" desc = "A crimson spacesuit sporting clean lines and durable plating. Robust, reliable, and slightly suspicious." w_class = WEIGHT_CLASS_NORMAL - allowed = list(/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/transforming/energy/sword,/obj/item/handcuffs,/obj/item/tank/emergency/oxygen) armor_type = /datum/armor/agent/space siemens_coefficient = 0.6 diff --git a/code/modules/clothing/spacesuits/void/event.dm b/code/modules/clothing/spacesuits/void/event.dm index 7dfd4866dd8..a98c01c109b 100644 --- a/code/modules/clothing/spacesuits/void/event.dm +++ b/code/modules/clothing/spacesuits/void/event.dm @@ -22,15 +22,6 @@ encumbrance = ITEM_ENCUMBRANCE_VOIDSUIT_LIGHT weight = ITEM_WEIGHT_VOIDSUIT_LIGHT armor_type = /datum/armor/vintage/space - allowed = list(/obj/item/flashlight, - /obj/item/tank, - /obj/item/suit_cooling_unit, - /obj/item/storage/briefcase/inflatable, - /obj/item/gps, - /obj/item/radio/beacon, - /obj/item/pickaxe, - /obj/item/shovel - ) //Engineering Crewsuit (ORANGE, RING) //This is probably the most appealing to get your hands on for basic protection and the specialist stuff @@ -54,26 +45,6 @@ min_pressure_protection = 0 * ONE_ATMOSPHERE max_pressure_protection = 15 * ONE_ATMOSPHERE max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE - allowed = list(/obj/item/flashlight, - /obj/item/tank, - /obj/item/suit_cooling_unit, - /obj/item/t_scanner, - /obj/item/rcd, - /obj/item/rcd_ammo, - /obj/item/storage/toolbox, - /obj/item/storage/briefcase/inflatable, - /obj/item/gps, - /obj/item/radio/beacon, - /obj/item/robotanalyzer, - /obj/item/geiger_counter, - /obj/item/tool, - /obj/item/weldingtool, - /obj/item/cell, - /obj/item/pickaxe, - /obj/item/measuring_tape, - /obj/item/lightreplacer, - /obj/item/shovel - ) //Medical Crewsuit (GREEN, CROSS) //This thing is basically tissuepaper, but it has very solid rad protection for its age @@ -96,19 +67,6 @@ icon_state = "rig-vintagemedic" item_state_slots = list(SLOT_ID_RIGHT_HAND = "sec_voidsuitTG", SLOT_ID_LEFT_HAND = "sec_voidsuitTG") armor_type = /datum/armor/vintage/space/med - allowed = list(/obj/item/flashlight, - /obj/item/tank, - /obj/item/suit_cooling_unit, - /obj/item/storage/firstaid, - /obj/item/healthanalyzer, - /obj/item/robotanalyzer, - /obj/item/mass_spectrometer, - /obj/item/geiger_counter, - /obj/item/stack/medical, - /obj/item/gps, - /obj/item/radio/beacon, - /obj/item/cell - ) //Marine Crewsuit (BLUE, SHIELD) //Really solid, balance between Sec and Sec EVA, but it has slightly worse shock protection @@ -127,22 +85,6 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "sec_voidsuitTG", SLOT_ID_LEFT_HAND = "sec_voidsuitTG") armor_type = /datum/armor/vintage/space/marine siemens_coefficient = 0.8 - allowed = list(/obj/item/gun, - /obj/item/flashlight, - /obj/item/tank, - /obj/item/suit_cooling_unit, - /obj/item/melee, - /obj/item/grenade, - /obj/item/flash, - /obj/item/gps, - /obj/item/radio/beacon, - /obj/item/handcuffs, - /obj/item/hailer, - /obj/item/holowarrant, - /obj/item/megaphone, - /obj/item/ammo_magazine, - /obj/item/cell - ) //Officer Crewsuit (GOLD, X) //The best of the bunch - at the time, this would have been almost cutting edge @@ -162,22 +104,6 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "sec_voidsuitTG", SLOT_ID_LEFT_HAND = "sec_voidsuitTG") armor_type = /datum/armor/vintage/space/officer siemens_coefficient = 0.7 - allowed = list(/obj/item/gun, - /obj/item/flashlight, - /obj/item/tank, - /obj/item/suit_cooling_unit, - /obj/item/melee, - /obj/item/grenade, - /obj/item/flash, - /obj/item/gps, - /obj/item/radio/beacon, - /obj/item/handcuffs, - /obj/item/hailer, - /obj/item/holowarrant, - /obj/item/megaphone, - /obj/item/ammo_magazine, - /obj/item/cell - ) //Pilot Crewsuit (ROYAL BLUE, I) //The lightest weight of the lot, but protection is about the same as the crew variant's. It has an extra helmet variant for those who prefer that design. @@ -202,13 +128,6 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "sec_voidsuitTG", SLOT_ID_LEFT_HAND = "sec_voidsuitTG") armor_type = /datum/armor/vintage/space/pilot siemens_coefficient = 0.9 - allowed = list(/obj/item/flashlight, - /obj/item/tank, - /obj/item/suit_cooling_unit, - /obj/item/storage/briefcase/inflatable, - /obj/item/gps, - /obj/item/radio/beacon, - ) //Scientist Crewsuit (PURPLE, O) //Baseline values are slightly worse than the gray crewsuit, but it has significantly better Energy protection and is the only other suit with 100% rad immunity besides the engi suit @@ -232,28 +151,6 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "sec_voidsuitTG", SLOT_ID_LEFT_HAND = "sec_voidsuitTG") armor_type = /datum/armor/vintage/space/science siemens_coefficient = 0.8 - allowed = list(/obj/item/flashlight, - /obj/item/tank, - /obj/item/suit_cooling_unit, - /obj/item/storage/firstaid, - /obj/item/healthanalyzer, - /obj/item/gps, - /obj/item/radio/beacon, - /obj/item/ano_scanner, - /obj/item/depth_scanner, - /obj/item/xenoarch_multi_tool, - /obj/item/measuring_tape, - /obj/item/reagent_scanner, - /obj/item/robotanalyzer, - /obj/item/atmos_analyzer, - /obj/item/cataloguer, - /obj/item/universal_translator, - /obj/item/tool/crowbar, - /obj/item/stack/marker_beacon, - /obj/item/stack/flag, - /obj/item/clipboard, - /obj/item/cell - ) //Mercenary Crewsuit (RED, CROSS) //The best of the best, this should be ultra-rare @@ -276,23 +173,3 @@ weight = ITEM_WEIGHT_VOIDSUIT_HEAVY armor_type = /datum/armor/vintage/space/merc siemens_coefficient = 0.6 - allowed = list(/obj/item/gun, - /obj/item/flashlight, - /obj/item/tank, - - /obj/item/suit_cooling_unit, - /obj/item/melee, - /obj/item/grenade, - /obj/item/flash, - /obj/item/gps, - /obj/item/radio/beacon, - /obj/item/handcuffs, - /obj/item/hailer, - /obj/item/holowarrant, - /obj/item/megaphone, - /obj/item/ammo_magazine, - /obj/item/spaceflare, - /obj/item/powersink, - /obj/item/radio_jammer, - /obj/item/cell - ) diff --git a/code/modules/clothing/spacesuits/void/merc.dm b/code/modules/clothing/spacesuits/void/merc.dm index b9252aa9e2f..72733eb4e7b 100644 --- a/code/modules/clothing/spacesuits/void/merc.dm +++ b/code/modules/clothing/spacesuits/void/merc.dm @@ -20,7 +20,6 @@ weight = ITEM_WEIGHT_VOIDSUIT w_class = WEIGHT_CLASS_NORMAL armor_type = /datum/armor/merc/space - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/transforming/energy/sword,/obj/item/handcuffs) siemens_coefficient = 0.6 /obj/item/clothing/head/helmet/space/void/merc/fire @@ -38,7 +37,6 @@ desc = "A blackened suit that has had many of its protective plates coated in or replaced with high-grade thermal insulation, to protect against incineration. Property of Gorlex Marauders." armor_type = /datum/armor/merc/space/ghostrider max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/transforming/energy/sword,/obj/item/handcuffs,/obj/item/material/twohanded/fireaxe,/obj/item/flamethrower) siemens_coefficient = 0.7 //Soviet Void Suit @@ -91,7 +89,6 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "syndie_voidsuit", SLOT_ID_LEFT_HAND = "syndie_voidsuit") w_class = WEIGHT_CLASS_NORMAL armor_type = /datum/armor/merc/space/clown - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/transforming/energy/sword,/obj/item/handcuffs) siemens_coefficient = 0.6 //Four below avalible through cargo @@ -111,7 +108,6 @@ desc = "One of the few combat-grade suits avalible in the frontier, and the poster-child of Hephaestus Industries. Comes equipped with a wrist-bound oxygen timer." w_class = WEIGHT_CLASS_NORMAL armor_type = /datum/armor/station/secsuit - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/transforming/energy/sword,/obj/item/handcuffs) siemens_coefficient = 0.6 species_restricted = null helmet_type = /obj/item/clothing/head/helmet/space/void/odst @@ -131,7 +127,6 @@ desc = "A standard Icarus line suit that has been repourposed to protect from heavier biohazards." w_class = WEIGHT_CLASS_NORMAL armor_type = /datum/armor/exploration/space - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/transforming/energy/sword,/obj/item/handcuffs) siemens_coefficient = 0.6 species_restricted = null helmet_type = /obj/item/clothing/head/helmet/space/void/odst_med @@ -151,7 +146,6 @@ desc = "Favoured suit of deep-space engineers, comfortable and comparable to suits avalible to Nanotrasen Engineers. Comes equipped with a wrist-bound oxygen timer." w_class = WEIGHT_CLASS_NORMAL armor_type = /datum/armor/engineering/space - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/transforming/energy/sword,/obj/item/handcuffs) siemens_coefficient = 0.6 species_restricted = null helmet_type = /obj/item/clothing/head/helmet/space/void/odst_eng @@ -171,7 +165,6 @@ desc = "Cheaper version of the main Icarus line, often marketed to Frontier settlements. Perfect for Expeditions." w_class = WEIGHT_CLASS_NORMAL armor_type = /datum/armor/exploration/space - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/transforming/energy/sword,/obj/item/handcuffs) siemens_coefficient = 0.6 species_restricted = null helmet_type = /obj/item/clothing/head/helmet/space/void/odst_exp @@ -195,7 +188,6 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "syndie_voidsuit", SLOT_ID_LEFT_HAND = "syndie_voidsuit") w_class = WEIGHT_CLASS_NORMAL armor_type = /datum/armor/merc/space - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/transforming/energy/sword,/obj/item/handcuffs) siemens_coefficient = 0.6 species_restricted = null helmet_type = /obj/item/clothing/head/helmet/space/void/odst_necro @@ -207,6 +199,5 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "syndie_voidsuit", SLOT_ID_LEFT_HAND = "syndie_voidsuit") w_class = WEIGHT_CLASS_NORMAL armor_type = /datum/armor/merc/space - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/transforming/energy/sword,/obj/item/handcuffs) siemens_coefficient = 0.6 species_restricted = null diff --git a/code/modules/clothing/spacesuits/void/station.dm b/code/modules/clothing/spacesuits/void/station.dm index 012172bcb56..5085afb57fe 100644 --- a/code/modules/clothing/spacesuits/void/station.dm +++ b/code/modules/clothing/spacesuits/void/station.dm @@ -29,7 +29,6 @@ icon_state = "para_ert_void" item_state_slots = list(SLOT_ID_RIGHT_HAND = "sec_voidsuit", SLOT_ID_LEFT_HAND = "sec_voidsuit") armor_type = /datum/armor/centcom/ert/paracausal - allowed = list(/obj/item/gun,/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/melee/baton,/obj/item/ammo_magazine,/obj/item/nullrod) siemens_coefficient = 0.7 var/anti_magic = TRUE diff --git a/code/modules/clothing/spacesuits/void/station/command.dm b/code/modules/clothing/spacesuits/void/station/command.dm index 07b675f7f2e..4f21a44d6a2 100644 --- a/code/modules/clothing/spacesuits/void/station/command.dm +++ b/code/modules/clothing/spacesuits/void/station/command.dm @@ -9,5 +9,4 @@ name = "Facility Director voidsuit" icon_state = "capsuit_void" armor_type = /datum/armor/station/tactical - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/gun) helmet_type = /obj/item/clothing/head/helmet/space/void/captain diff --git a/code/modules/clothing/spacesuits/void/station/engineering.dm b/code/modules/clothing/spacesuits/void/station/engineering.dm index 82c1fc2900c..4f995b1e1f6 100644 --- a/code/modules/clothing/spacesuits/void/station/engineering.dm +++ b/code/modules/clothing/spacesuits/void/station/engineering.dm @@ -14,7 +14,6 @@ icon_state = "rig-engineering" item_state_slots = list(SLOT_ID_RIGHT_HAND = "eng_voidsuit", SLOT_ID_LEFT_HAND = "eng_voidsuit") armor_type = /datum/armor/engineering/space - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/storage/bag/ore,/obj/item/t_scanner,/obj/item/pickaxe, /obj/item/rcd) min_pressure_protection = 0 * ONE_ATMOSPHERE max_pressure_protection = 15 * ONE_ATMOSPHERE helmet_type = /obj/item/clothing/head/helmet/space/void/engineering @@ -75,7 +74,6 @@ desc = "A hand-me-down salvage voidsuit. It has obviously had a lot of repair work done to its radiation shielding." icon_state = "rig-engineeringsav" armor_type = /datum/armor/engineering/space/salvage - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/storage/toolbox,/obj/item/storage/briefcase/inflatable,/obj/item/t_scanner,/obj/item/rcd) helmet_type = /obj/item/clothing/head/helmet/space/void/engineering/salvage //Atmospherics diff --git a/code/modules/clothing/spacesuits/void/station/exploration.dm b/code/modules/clothing/spacesuits/void/station/exploration.dm index 56f9f9434c1..da017436ac0 100644 --- a/code/modules/clothing/spacesuits/void/station/exploration.dm +++ b/code/modules/clothing/spacesuits/void/station/exploration.dm @@ -15,8 +15,6 @@ icon_state = "void_explorer" item_state_slots = list(SLOT_ID_RIGHT_HAND = "skrell_suit_black", SLOT_ID_LEFT_HAND = "skrell_suit_black") armor_type = /datum/armor/exploration/space - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/stack/flag,/obj/item/healthanalyzer,/obj/item/gps,/obj/item/radio/beacon, \ - /obj/item/shovel,/obj/item/ammo_magazine,/obj/item/gun) helmet_type = /obj/item/clothing/head/helmet/space/void/exploration worth_intrinsic = 300 @@ -63,7 +61,5 @@ icon_state = "void_explorer_pf" item_state_slots = list(SLOT_ID_RIGHT_HAND = "skrell_suit_black", SLOT_ID_LEFT_HAND = "skrell_suit_black") armor_type = /datum/armor/exploration/space/pathfinder - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/stack/flag,/obj/item/healthanalyzer,/obj/item/gps,/obj/item/radio/beacon, \ - /obj/item/shovel,/obj/item/ammo_magazine,/obj/item/gun) helmet_type = /obj/item/clothing/head/helmet/space/void/exploration/pathfinder worth_intrinsic = 400 diff --git a/code/modules/clothing/spacesuits/void/station/medical.dm b/code/modules/clothing/spacesuits/void/station/medical.dm index 3edc945fc76..40ed492b855 100644 --- a/code/modules/clothing/spacesuits/void/station/medical.dm +++ b/code/modules/clothing/spacesuits/void/station/medical.dm @@ -11,7 +11,6 @@ desc = "A special suit that protects against hazardous, low pressure environments. Has minor radiation shielding." icon_state = "rig-medical" item_state_slots = list(SLOT_ID_RIGHT_HAND = "medical_voidsuit", SLOT_ID_LEFT_HAND = "medical_voidsuit") - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/storage/firstaid,/obj/item/healthanalyzer,/obj/item/stack/medical) armor_type = /datum/armor/medical/space helmet_type = /obj/item/clothing/head/helmet/space/void/medical worth_intrinsic = 375 diff --git a/code/modules/clothing/spacesuits/void/station/operations.dm b/code/modules/clothing/spacesuits/void/station/operations.dm index 3cf3ac67ded..3771ba23842 100644 --- a/code/modules/clothing/spacesuits/void/station/operations.dm +++ b/code/modules/clothing/spacesuits/void/station/operations.dm @@ -18,7 +18,6 @@ name = "pilot voidsuit" armor_type = /datum/armor/exploration/space/pilot max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/storage/toolbox,/obj/item/storage/briefcase/inflatable) helmet_type = /obj/item/clothing/head/helmet/space/void/pilot worth_intrinsic = 450 // literally an atmos suit diff --git a/code/modules/clothing/spacesuits/void/station/science.dm b/code/modules/clothing/spacesuits/void/station/science.dm index 48947839de4..c62b2d30706 100644 --- a/code/modules/clothing/spacesuits/void/station/science.dm +++ b/code/modules/clothing/spacesuits/void/station/science.dm @@ -17,7 +17,6 @@ icon_state = "phase" item_state_slots = list(SLOT_ID_RIGHT_HAND = "sec_voidsuit", SLOT_ID_LEFT_HAND = "sec_voidsuit") armor_type = /datum/armor/science/phase - allowed = list(/obj/item/gun,/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/melee/baton) siemens_coefficient = 0.7 max_heat_protection_temperature = 10000 min_pressure_protection = 0 * ONE_ATMOSPHERE diff --git a/code/modules/clothing/spacesuits/void/station/security.dm b/code/modules/clothing/spacesuits/void/station/security.dm index eb29b32a6aa..45f7979a039 100644 --- a/code/modules/clothing/spacesuits/void/station/security.dm +++ b/code/modules/clothing/spacesuits/void/station/security.dm @@ -15,7 +15,6 @@ icon_state = "rig-sec" item_state_slots = list(SLOT_ID_RIGHT_HAND = "sec_voidsuit", SLOT_ID_LEFT_HAND = "sec_voidsuit") armor_type = /datum/armor/station/secsuit - allowed = list(/obj/item/gun,/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/melee/baton) siemens_coefficient = 0.7 helmet_type = /obj/item/clothing/head/helmet/space/void/security worth_intrinsic = 450 @@ -43,5 +42,4 @@ name = "riot security voidsuit" desc = "A heavily armored voidsuit, designed to intimidate people who find black intimidating. Surprisingly slimming." armor_type = /datum/armor/station/secsuitriot - allowed = list(/obj/item/gun,/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/melee/baton) helmet_type = /obj/item/clothing/head/helmet/space/void/security/alt diff --git a/code/modules/clothing/spacesuits/void/station/supply.dm b/code/modules/clothing/spacesuits/void/station/supply.dm index 64b5eda80bd..b91746a6a35 100644 --- a/code/modules/clothing/spacesuits/void/station/supply.dm +++ b/code/modules/clothing/spacesuits/void/station/supply.dm @@ -12,7 +12,6 @@ desc = "A special suit that protects against hazardous, low pressure environments. Has reinforced plating." icon_state = "rig-mining" item_state_slots = list(SLOT_ID_RIGHT_HAND = "mining_voidsuit", SLOT_ID_LEFT_HAND = "mining_voidsuit") - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/pickaxe) armor_type = /datum/armor/cargo/mining/space helmet_type = /obj/item/clothing/head/helmet/space/void/mining worth_intrinsic = 250 @@ -46,7 +45,6 @@ name = "head of security protosuit" icon_state = "hosproto_void" armor_type = /datum/armor/security/hos/space - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/gun) encumbrance = ITEM_ENCUMBRANCE_VOIDSUIT_HEAVY weight = ITEM_WEIGHT_VOIDSUIT_HEAVY helmet_type = /obj/item/clothing/head/helmet/space/void/headofsecurity diff --git a/code/modules/clothing/spacesuits/void/void.dm b/code/modules/clothing/spacesuits/void/void.dm index 27bc9342d37..1b738d9d6a3 100644 --- a/code/modules/clothing/spacesuits/void/void.dm +++ b/code/modules/clothing/spacesuits/void/void.dm @@ -42,7 +42,6 @@ encumbrance = ITEM_ENCUMBRANCE_VOIDSUIT weight = ITEM_WEIGHT_VOIDSUIT armor_type = /datum/armor/general/space/armored - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit) heat_protection_cover = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE min_pressure_protection = 0 * ONE_ATMOSPHERE diff --git a/code/modules/clothing/spacesuits/void/zaddat.dm b/code/modules/clothing/spacesuits/void/zaddat.dm index 43c593ae476..a0378732dc3 100644 --- a/code/modules/clothing/spacesuits/void/zaddat.dm +++ b/code/modules/clothing/spacesuits/void/zaddat.dm @@ -13,7 +13,6 @@ desc = "A Hegemony environment suit, still favored by the Spacer Zaddat because of its durability and ease of manufacture." armor_type = /datum/armor/zaddat siemens_coefficient = 1 - allowed = list(/obj/item/flashlight,/obj/item/tank) icon_state = "zaddat_hegemony" helmet = new/obj/item/clothing/head/helmet/space/void/zaddat //shrouds come with helmets built-in var/has_been_customized = FALSE diff --git a/code/modules/clothing/suits/_suit.dm b/code/modules/clothing/suits/_suit.dm index 9bd314644ef..b63645b366f 100644 --- a/code/modules/clothing/suits/_suit.dm +++ b/code/modules/clothing/suits/_suit.dm @@ -5,7 +5,6 @@ name = "suit" var/fire_resist = T0C+100 body_cover_flags = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS - allowed = list(/obj/item/tank/emergency/oxygen) armor_type = /datum/armor/none slot_flags = SLOT_OCLOTHING var/blood_overlay_type = "suit" diff --git a/code/modules/clothing/suits/aliens/tajara.dm b/code/modules/clothing/suits/aliens/tajara.dm index 82e5dea020c..1af1396ae00 100644 --- a/code/modules/clothing/suits/aliens/tajara.dm +++ b/code/modules/clothing/suits/aliens/tajara.dm @@ -26,7 +26,7 @@ icon_state = "amohdan_armor" item_state = "amohdan_armor" body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS - allowed = list(/obj/item/gun,/obj/item/material/sword) + suit_storage_class_allow = SUIT_STORAGE_CLASS_HARDWEAR inv_hide_flags = HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER armor_type = /datum/armor/general/medieval weight = ITEM_WEIGHT_TAJARAN_SWORDSMAN_ARMOR @@ -43,7 +43,6 @@ blood_overlay_type = "coat" body_cover_flags = UPPER_TORSO|ARMS inv_hide_flags = HIDEHOLSTER - allowed = list(/obj/item/atmos_analyzer,/obj/item/stack/medical,/obj/item/dnainjector,/obj/item/reagent_containers/dropper,/obj/item/reagent_containers/syringe,/obj/item/reagent_containers/hypospray,/obj/item/healthanalyzer,/obj/item/flashlight/pen,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/glass/beaker,/obj/item/reagent_containers/pill,/obj/item/storage/pill_bottle,/obj/item/paper) armor_type = /datum/armor/suit/labcoat /obj/item/clothing/suit/storage/toggle/tajaran/coat/wool diff --git a/code/modules/clothing/suits/aliens/teshari.dm b/code/modules/clothing/suits/aliens/teshari.dm index cbbfa418e61..2930e0ec602 100644 --- a/code/modules/clothing/suits/aliens/teshari.dm +++ b/code/modules/clothing/suits/aliens/teshari.dm @@ -326,8 +326,6 @@ armor_type = /datum/armor/teshari/hood_cloak item_action_name = "Toggle Cloak Hood" hoodtype = /obj/item/clothing/head/tesh_hood - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit) - /obj/item/clothing/head/tesh_hood name = "Cloak Hood" diff --git a/code/modules/clothing/suits/aliens/vox.dm b/code/modules/clothing/suits/aliens/vox.dm index ba573981770..175400381aa 100644 --- a/code/modules/clothing/suits/aliens/vox.dm +++ b/code/modules/clothing/suits/aliens/vox.dm @@ -1,7 +1,6 @@ /obj/item/clothing/suit/armor/vox_scrap name = "rusted metal armor" desc = "A hodgepodge of various pieces of metal scrapped together into a rudimentary vox-shaped piece of armor." - allowed = list(/obj/item/gun, /obj/item/tank) armor_type = /datum/armor/vox/scrap icon_state = "vox-scrap" icon_state = "vox-scrap" diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 65928db4b75..a96f7388bb7 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -1,5 +1,4 @@ /obj/item/clothing/suit/armor - allowed = list(/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/gun/projectile/energy,/obj/item/reagent_containers/spray/pepper,/obj/item/gun/projectile/ballistic,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/flashlight/maglight,/obj/item/clothing/head/helmet) body_cover_flags = UPPER_TORSO|LOWER_TORSO clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT valid_accessory_slots = (\ @@ -12,6 +11,7 @@ heat_protection_cover = UPPER_TORSO|LOWER_TORSO max_heat_protection_temperature = ARMOR_MAX_HEAT_PROTECTION_TEMPERATURE siemens_coefficient = 0.7 + suit_storage_class_allow = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_ARMOR /obj/item/clothing/suit/armor/can_equip(mob/M, slot, mob/user, flags) . = ..() @@ -111,7 +111,6 @@ permeability_coefficient = 0.01 clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS - allowed = list(/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/tank/emergency/oxygen,/obj/item/clothing/head/helmet) encumbrance = ITEM_ENCUMBRANCE_ARMOR_HEAVY + ITEM_ENCUMBRANCE_ARMOR_HEAVY_BOOTS + ITEM_ENCUMBRANCE_ARMOR_HEAVY_GLOVES weight = ITEM_WEIGHT_ARMOR_HEAVY + ITEM_WEIGHT_ARMOR_HEAVY_BOOTS + ITEM_WEIGHT_ARMOR_HEAVY_GLOVES w_class = WEIGHT_CLASS_HUGE @@ -289,7 +288,6 @@ icon_state = "webvest" item_state_slots = list(SLOT_ID_RIGHT_HAND = "armor", SLOT_ID_LEFT_HAND = "armor") armor_type = /datum/armor/station/light - allowed = list(/obj/item/gun,/obj/item/reagent_containers/spray/pepper,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/flashlight/maglight,/obj/item/clothing/head/helmet) body_cover_flags = UPPER_TORSO|LOWER_TORSO clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT @@ -435,7 +433,6 @@ icon_state = "pvest" desc = "A simple kevlar vest. This one has the word 'Press' embroidered on patches on the back and front." item_state_slots = list(SLOT_ID_RIGHT_HAND = "armor", SLOT_ID_LEFT_HAND = "armor") - allowed = list(/obj/item/flashlight,/obj/item/tape_recorder,/obj/item/pen,/obj/item/camera_film,/obj/item/camera,/obj/item/clothing/head/helmet) /obj/item/clothing/suit/storage/vest/heavy name = "heavy armor vest" @@ -544,7 +541,6 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "armor", SLOT_ID_LEFT_HAND = "armor") w_class = WEIGHT_CLASS_BULKY//bulky item body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/gun/projectile/energy,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/tank/emergency/oxygen,/obj/item/clothing/head/helmet) inv_hide_flags = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER cold_protection_cover = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE @@ -896,7 +892,6 @@ icon = 'icons/clothing/suit/ashlander.dmi' icon_state = "lamellar" armor_type = /datum/armor/lavaland/ashlander - allowed = list(/obj/item/clothing/head/helmet/ashlander, /obj/item/melee, /obj/item/gun/projectile/ballistic) worn_render_flags = WORN_RENDER_SLOT_ONE_FOR_ALL /obj/item/clothing/suit/armor/ashlander/xeno diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index fbf0309fa00..4bcb8a2cdd3 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -21,7 +21,6 @@ permeability_coefficient = 0.01 body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS|FEET weight = ITEM_WEIGHT_ARMOR_BIORAD_SUIT - allowed = list(/obj/item/tank/emergency/oxygen,/obj/item/pen,/obj/item/flashlight/pen) armor_type = /datum/armor/general/biosuit inv_hide_flags = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER siemens_coefficient = 0.9 @@ -115,7 +114,6 @@ permeability_coefficient = 0.01 body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS|FEET weight = ITEM_WEIGHT_ARMOR_BIORAD_SUIT - allowed = list(/obj/item/tank/emergency/oxygen,/obj/item/pen,/obj/item/flashlight/pen) armor_type = /datum/armor/general/beekeeper inv_hide_flags = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER siemens_coefficient = 0.9 diff --git a/code/modules/clothing/suits/hooded.dm b/code/modules/clothing/suits/hooded.dm index 9c6c3dfb1fa..8dba21d720b 100644 --- a/code/modules/clothing/suits/hooded.dm +++ b/code/modules/clothing/suits/hooded.dm @@ -8,8 +8,6 @@ var/hood_up = FALSE var/toggleicon item_action_name = "Toggle Hood" - allowed = list (/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, /obj/item/storage/box/matches, - /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit) /obj/item/clothing/suit/storage/hooded/Initialize(mapload) . = ..() @@ -135,8 +133,6 @@ min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE armor_type = /datum/armor/civilian/coat hoodtype = /obj/item/clothing/head/hood/winter - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, - /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit) /obj/item/clothing/suit/storage/hooded/wintercoat/centcom name = "centcom winter coat" @@ -157,10 +153,6 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "coatcaptain", SLOT_ID_LEFT_HAND = "coatcaptain") armor_type = /datum/armor/security/light_formalwear hoodtype = /obj/item/clothing/head/hood/winter/captain - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, - /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit, /obj/item/gun/projectile/energy, - /obj/item/reagent_containers/spray/pepper,/obj/item/gun/projectile/ballistic,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton, - /obj/item/handcuffs,/obj/item/clothing/head/helmet) /obj/item/clothing/suit/storage/hooded/wintercoat/captain/hop name = "head of personnel's winter coat" @@ -176,10 +168,6 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "coatsecurity", SLOT_ID_LEFT_HAND = "coatsecurity") armor_type = /datum/armor/security/light_formalwear hoodtype = /obj/item/clothing/head/hood/winter/security - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, - /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit, /obj/item/gun/projectile/energy, - /obj/item/reagent_containers/spray/pepper,/obj/item/gun/projectile/ballistic,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton, - /obj/item/handcuffs,/obj/item/clothing/head/helmet) /obj/item/clothing/suit/storage/hooded/wintercoat/security/hos name = "head of security's winter coat" @@ -195,11 +183,6 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "coatmedical", SLOT_ID_LEFT_HAND = "coatmedical") armor_type = /datum/armor/medical/coat hoodtype = /obj/item/clothing/head/hood/winter/medical - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, - /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit, /obj/item/atmos_analyzer,/obj/item/stack/medical, - /obj/item/dnainjector,/obj/item/reagent_containers/dropper,/obj/item/reagent_containers/syringe,/obj/item/reagent_containers/hypospray, - /obj/item/healthanalyzer,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/glass/beaker, - /obj/item/reagent_containers/pill,/obj/item/storage/pill_bottle) /obj/item/clothing/suit/storage/hooded/wintercoat/medical/genetics name = "genetics winter coat" @@ -238,11 +221,6 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "coatscience", SLOT_ID_LEFT_HAND = "coatscience") armor_type = /datum/armor/science/coat hoodtype = /obj/item/clothing/head/hood/winter/science - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, - /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit, /obj/item/atmos_analyzer,/obj/item/stack/medical, - /obj/item/dnainjector,/obj/item/reagent_containers/dropper,/obj/item/reagent_containers/syringe,/obj/item/reagent_containers/hypospray, - /obj/item/healthanalyzer,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/glass/beaker, - /obj/item/reagent_containers/pill,/obj/item/storage/pill_bottle) /obj/item/clothing/suit/storage/hooded/wintercoat/science/robotics name = "robotics winter coat" @@ -263,11 +241,6 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "coatengineer", SLOT_ID_LEFT_HAND = "coatengineer") armor_type = /datum/armor/engineering/coat hoodtype = /obj/item/clothing/head/hood/winter/engineering - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, - /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit, /obj/item/atmos_analyzer, /obj/item/flashlight, - /obj/item/multitool, /obj/item/pipe_painter, /obj/item/radio, /obj/item/t_scanner, /obj/item/tool/crowbar, /obj/item/tool/screwdriver, - /obj/item/weldingtool, /obj/item/tool/wirecutters, /obj/item/tool/wrench, /obj/item/tank/emergency/oxygen, /obj/item/clothing/mask/gas, - /obj/item/barrier_tape_roll/engineering, /obj/item/rcd, /obj/item/pipe_dispenser) /obj/item/clothing/suit/storage/hooded/wintercoat/engineering/atmos name = "atmospherics winter coat" @@ -288,9 +261,6 @@ icon_state = "coathydro" item_state_slots = list(SLOT_ID_RIGHT_HAND = "coathydro", SLOT_ID_LEFT_HAND = "coathydro") hoodtype = /obj/item/clothing/head/hood/winter/hydro - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, - /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit, /obj/item/reagent_containers/spray/plantbgone, - /obj/item/plant_analyzer, /obj/item/seeds, /obj/item/reagent_containers/glass/bottle, /obj/item/material/minihoe) /obj/item/clothing/suit/storage/hooded/wintercoat/cargo name = "cargo winter coat" @@ -306,8 +276,6 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "coatminer", SLOT_ID_LEFT_HAND = "coatminer") armor_type = /datum/armor/cargo/mining/coat hoodtype = /obj/item/clothing/head/hood/winter/miner - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight, /obj/item/storage/fancy/cigarettes, /obj/item/storage/box/matches, - /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit, /obj/item/tank, /obj/item/radio, /obj/item/pickaxe, /obj/item/storage/bag/ore) /obj/item/clothing/suit/storage/hooded/wintercoat/bar name = "bartender winter coat" @@ -437,17 +405,6 @@ hoodtype = /obj/item/clothing/head/hood/explorer siemens_coefficient = 0.9 armor_type = /datum/armor/exploration/soft - allowed = list( - /obj/item/flashlight, - /obj/item/gun, - /obj/item/ammo_magazine, - /obj/item/melee, - /obj/item/material/knife, - /obj/item/tank, - /obj/item/radio, - /obj/item/pickaxe, - /obj/item/gun/projectile/ballistic/sec/flash - ) /obj/item/clothing/suit/storage/hooded/miner name = "mining suit" @@ -463,19 +420,6 @@ hoodtype = /obj/item/clothing/head/hood/miner siemens_coefficient = 0.9 armor_type = /datum/armor/cargo/mining/soft - allowed = list( - /obj/item/flashlight, - /obj/item/material/knife, - /obj/item/tank, - /obj/item/radio, - /obj/item/suit_cooling_unit, - /obj/item/pickaxe, - /obj/item/gun/projectile/energy/kinetic_accelerator, - /obj/item/kinetic_crusher, - /obj/item/resonator, - /obj/item/gun/projectile/energy/gun/miningcarbine, - /obj/item/gun/projectile/magnetic/matfed - ) // Eldritch suit /obj/item/clothing/suit/storage/hooded/eldritch @@ -491,8 +435,6 @@ hoodtype = /obj/item/clothing/head/hood/eldritch armor_type = /datum/armor/lavaland/eldritch siemens_coefficient = 0.9 - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, - /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit, /obj/item/material/knife) worn_render_flags = WORN_RENDER_SLOT_ONE_FOR_ALL /obj/item/clothing/suit/storage/hooded/cloak/goliath @@ -500,11 +442,6 @@ desc = "A staunch, practical cape made out of numerous monster materials, it is coveted amongst exiles & hermits." icon_state = "goliath_cloak" item_state_slots = list(SLOT_ID_RIGHT_HAND = "brown_jacket", SLOT_ID_LEFT_HAND = "brown_jacket") - allowed = list( - /obj/item/flashlight, /obj/item/tank/emergency/oxygen, /obj/item/pickaxe, /obj/item/material/twohanded/spear, /obj/item/material/twohanded/spear/bone, - /obj/item/material/knife/tacknife/combatknife/bone, /obj/item/material/knife/tacknife/survival/bone, /obj/item/material/knife/tacknife/survival/bone, /obj/item/melee/ashlander, - /obj/item/gun/projectile/ballistic/musket/pistol - ) armor_type = /datum/armor/lavaland/goliath hoodtype = /obj/item/clothing/head/hood/goliath body_cover_flags = UPPER_TORSO|ARMS|LEGS @@ -514,7 +451,6 @@ name = "drake armour" icon_state = "dragon" desc = "A suit of armour fashioned from the remains of an ash drake." - allowed = list(/obj/item/flashlight, /obj/item/tank/emergency/oxygen, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/mining_scanner/advanced, /obj/item/gun/projectile/energy/kinetic_accelerator, /obj/item/pickaxe, /obj/item/material/twohanded/spear) armor_type = /datum/armor/lavaland/drake hoodtype = /obj/item/clothing/head/hood/drake heat_protection_cover = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS @@ -531,8 +467,6 @@ body_cover_flags = UPPER_TORSO|LOWER_TORSO inv_hide_flags = HIDEHOLSTER hoodtype = /obj/item/clothing/head/hood/vainglorious - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, - /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit) /obj/item/clothing/suit/storage/hooded/raincoat name = "raincoat" @@ -542,8 +476,6 @@ body_cover_flags = UPPER_TORSO|LOWER_TORSO inv_hide_flags = HIDEHOLSTER hoodtype = /obj/item/clothing/head/hood/raincoat - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, - /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit, /obj/item/melee/umbrella) /obj/item/clothing/suit/storage/hooded/rainponcho name = "plastic raincoat" @@ -552,8 +484,6 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "wcoat", SLOT_ID_LEFT_HAND = "wcoat") body_cover_flags = UPPER_TORSO|LOWER_TORSO hoodtype = /obj/item/clothing/head/hood/rainponcho - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, - /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit, /obj/item/melee/umbrella) /obj/item/clothing/suit/storage/hooded/mercy name = "Mercy Robe" @@ -593,10 +523,11 @@ |ACCESSORY_SLOT_ARMOR_M ) blood_overlay_type = "armor" - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, - /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit, /obj/item/gun/projectile/energy, - /obj/item/gun/projectile/ballistic, /obj/item/ammo_magazine, /obj/item/melee/baton) - starting_accessories = list(/obj/item/clothing/accessory/armor/armorplate/heavy, /obj/item/clothing/accessory/storage/pouches) + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR + starting_accessories = list( + /obj/item/clothing/accessory/armor/armorplate/heavy, + /obj/item/clothing/accessory/storage/pouches, + ) /obj/item/clothing/suit/storage/hooded/covertcarrier/can_equip(mob/M, slot, mob/user, flags) . = ..() diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index ba6008e581f..04df8a93f18 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -10,8 +10,6 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "overalls", SLOT_ID_LEFT_HAND = "overalls") blood_overlay_type = "armor" body_cover_flags = 0 - allowed = list (/obj/item/reagent_containers/spray/plantbgone, /obj/item/plant_analyzer, /obj/item/seeds, - /obj/item/reagent_containers/glass/bottle, /obj/item/material/minihoe) /obj/item/clothing/suit/storage/apron/white name = "white apron" @@ -43,7 +41,6 @@ body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS inv_hide_flags = HIDEHOLSTER hoodtype = /obj/item/clothing/head/chaplain_hood - allowed = list (/obj/item/storage/bible) //Chaplain but spookier /obj/item/clothing/suit/storage/hooded/chaplain_hoodie/whiteout @@ -71,7 +68,6 @@ permeability_coefficient = 0.50 body_cover_flags = UPPER_TORSO|LOWER_TORSO|ARMS inv_hide_flags = HIDETIE|HIDEHOLSTER - allowed = list (/obj/item/material/knife) //Chef /obj/item/clothing/suit/chef/classic @@ -115,9 +111,6 @@ blood_overlay_type = "coat" body_cover_flags = UPPER_TORSO|ARMS inv_hide_flags = HIDEHOLSTER - allowed = list(/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/tank/emergency/oxygen, /obj/item/flashlight, /obj/item/gun/projectile/energy, /obj/item/gun/projectile/ballistic, /obj/item/ammo_magazine, - /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/handcuffs, /obj/item/storage/fancy/cigarettes, /obj/item/flame/lighter, - /obj/item/tape_recorder, /obj/item/uv_light) armor_type = /datum/armor/station/light /obj/item/clothing/suit/storage/det_trench/grey @@ -132,9 +125,6 @@ desc = "A forensics technician jacket." body_cover_flags = UPPER_TORSO|ARMS inv_hide_flags = HIDEHOLSTER - allowed = list(/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/tank/emergency/oxygen, /obj/item/flashlight, /obj/item/gun/projectile/energy, /obj/item/gun/projectile/ballistic, /obj/item/ammo_magazine, - /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/handcuffs, /obj/item/storage/fancy/cigarettes, /obj/item/flame/lighter, - /obj/item/tape_recorder, /obj/item/uv_light) armor_type = /datum/armor/station/light /obj/item/clothing/suit/storage/forensics/red @@ -165,9 +155,6 @@ icon_state = "agent_jacket" body_cover_flags = UPPER_TORSO|ARMS inv_hide_flags = HIDEHOLSTER - allowed = list(/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/tank/emergency/oxygen, /obj/item/flashlight, /obj/item/gun/projectile/energy, /obj/item/gun/projectile/ballistic, /obj/item/ammo_magazine, - /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/handcuffs, /obj/item/storage/fancy/cigarettes, /obj/item/flame/lighter, - /obj/item/tape_recorder, /obj/item/uv_light) armor_type = /datum/armor/station/light //Engineering @@ -176,9 +163,6 @@ desc = "A high-visibility vest used in work zones." icon_state = "hazard" blood_overlay_type = "armor" - allowed = list (/obj/item/atmos_analyzer, /obj/item/flashlight, /obj/item/multitool, /obj/item/pipe_painter, /obj/item/radio, /obj/item/t_scanner, - /obj/item/tool/crowbar, /obj/item/tool/screwdriver, /obj/item/weldingtool, /obj/item/tool/wirecutters, /obj/item/tool/wrench, /obj/item/tank/emergency/oxygen, - /obj/item/clothing/mask/gas, /obj/item/barrier_tape_roll/engineering) body_cover_flags = UPPER_TORSO worth_intrinsic = 50 @@ -215,8 +199,6 @@ icon_state = "fr_jacket" item_state_slots = list(SLOT_ID_RIGHT_HAND = "fr_jacket", SLOT_ID_LEFT_HAND = "fr_jacket") blood_overlay_type = "armor" - allowed = list(/obj/item/stack/medical, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/hypospray, /obj/item/reagent_containers/syringe, - /obj/item/healthanalyzer, /obj/item/flashlight, /obj/item/radio, /obj/item/tank/emergency/oxygen) body_cover_flags = UPPER_TORSO|ARMS /obj/item/clothing/suit/storage/toggle/fr_jacket/ems @@ -237,9 +219,6 @@ icon_state = "surgical" blood_overlay_type = "armor" body_cover_flags = UPPER_TORSO|LOWER_TORSO - allowed = list(/obj/item/stack/medical, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/hypospray, /obj/item/reagent_containers/syringe, \ - /obj/item/healthanalyzer, /obj/item/flashlight, /obj/item/radio, /obj/item/tank/emergency/oxygen,/obj/item/surgical/scalpel,/obj/item/surgical/retractor,/obj/item/surgical/hemostat, \ - /obj/item/surgical/cautery,/obj/item/surgical/bonegel,/obj/item/surgical/FixOVein) /obj/item/clothing/suit/toggle/labcoat/paramedic name = "paramedic vest" @@ -285,8 +264,3 @@ icon = 'icons/map_assets/southern_cross/obj/sc_suits.dmi' armor_type = /datum/armor/medical/coat/field_medic valid_accessory_slots = (ACCESSORY_SLOT_INSIGNIA) - allowed = list (/obj/item/gun,/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, - /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit, /obj/item/atmos_analyzer,/obj/item/stack/medical, - /obj/item/dnainjector,/obj/item/reagent_containers/dropper,/obj/item/reagent_containers/syringe,/obj/item/reagent_containers/hypospray, - /obj/item/healthanalyzer,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/glass/beaker, - /obj/item/reagent_containers/pill,/obj/item/storage/pill_bottle) diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index cea375c84c2..2361ff501da 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -7,7 +7,6 @@ blood_overlay_type = "coat" body_cover_flags = UPPER_TORSO|ARMS inv_hide_flags = HIDEHOLSTER - allowed = list(/obj/item/atmos_analyzer,/obj/item/stack/medical,/obj/item/dnainjector,/obj/item/reagent_containers/dropper,/obj/item/reagent_containers/syringe,/obj/item/reagent_containers/hypospray,/obj/item/healthanalyzer,/obj/item/flashlight/pen,/obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/glass/beaker,/obj/item/reagent_containers/pill,/obj/item/storage/pill_bottle,/obj/item/paper) armor_type = /datum/armor/suit/labcoat worn_render_flags = WORN_RENDER_SLOT_ONE_FOR_ALL diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 501c0988cd6..ab5d644bac3 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -17,7 +17,6 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "tdblue", SLOT_ID_LEFT_HAND = "tdblue") blood_overlay_type = "armor" body_cover_flags = UPPER_TORSO - allowed = list (/obj/item/gun/projectile/energy/lasertag/blue) siemens_coefficient = 3.0 /obj/item/clothing/suit/redtag @@ -27,7 +26,6 @@ item_state_slots = list(SLOT_ID_RIGHT_HAND = "tdred", SLOT_ID_LEFT_HAND = "tdred") blood_overlay_type = "armor" body_cover_flags = UPPER_TORSO - allowed = list (/obj/item/gun/projectile/energy/lasertag/red) siemens_coefficient = 3.0 /* @@ -82,7 +80,6 @@ desc = "This robe commands authority." icon_state = "judge" body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS - allowed = list(/obj/item/storage/fancy/cigarettes,/obj/item/spacecash) inv_hide_flags = HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER /obj/item/clothing/suit/storage/apron/overalls @@ -97,7 +94,6 @@ icon_state = "syndicate" desc = "A plastic replica of the syndicate space suit, you'll look just like a real murderous syndicate agent in this! This is a toy, it is not made for use in space!" w_class = WEIGHT_CLASS_NORMAL - allowed = list(/obj/item/flashlight,/obj/item/tank/emergency/oxygen,/obj/item/toy) inv_hide_flags = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER body_cover_flags = UPPER_TORSO|LOWER_TORSO|ARMS|HANDS|LEGS|FEET @@ -527,7 +523,6 @@ name = "leather coat" desc = "A long, thick black leather coat." icon_state = "leathercoat_alt" - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight, /obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask) item_state_slots = list(SLOT_ID_RIGHT_HAND = "leather_jacket", SLOT_ID_LEFT_HAND = "leather_jacket") inv_hide_flags = HIDEHOLSTER @@ -551,7 +546,6 @@ name = "brown leather coat" desc = "A long, brown leather coat." icon_state = "browncoat" - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask) item_state_slots = list(SLOT_ID_RIGHT_HAND = "brown_jacket", SLOT_ID_LEFT_HAND = "brown_jacket") inv_hide_flags = HIDEHOLSTER @@ -559,7 +553,6 @@ name = "black coat" desc = "A flowing, black coat." icon_state = "neocoat" - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight, /obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask) item_state_slots = list(SLOT_ID_RIGHT_HAND = "leather_jacket", SLOT_ID_LEFT_HAND = "leather_jacket") inv_hide_flags = HIDEHOLSTER @@ -591,7 +584,6 @@ desc = "A rugged canvas trenchcoat, designed and created by TX Fabrication Corp. The coat appears to have its kevlar lining removed." icon_state = "detective" blood_overlay_type = "coat" - allowed = list(/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/tank/emergency/oxygen, /obj/item/flashlight,/obj/item/gun/projectile/energy,/obj/item/gun/projectile/ballistic,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter,/obj/item/tape_recorder,/obj/item/uv_light) inv_hide_flags = HIDEHOLSTER /obj/item/clothing/suit/storage/trench/grey @@ -613,7 +605,6 @@ desc = "A duster commonly seen on cowboys from Earth's late 1800's." icon_state = "duster" blood_overlay_type = "coat" - allowed = list(/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/tank/emergency/oxygen, /obj/item/flashlight,/obj/item/gun/projectile/energy,/obj/item/gun/projectile/ballistic,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter) inv_hide_flags = HIDEHOLSTER /obj/item/clothing/suit/storage/toggle/cardigan @@ -627,7 +618,6 @@ name = "slim leather coat" desc = "A tailored, brown leather coat." icon_state = "slim_leather" - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask) item_state_slots = list(SLOT_ID_RIGHT_HAND = "brown_jacket", SLOT_ID_LEFT_HAND = "brown_jacket") inv_hide_flags = HIDEHOLSTER @@ -636,7 +626,6 @@ desc = "A sleek black trenchcoat, paired with a stylish red scarf. Worn either by the coolest, or the weirdest." icon_state = "gothcoat" blood_overlay_type = "coat" - allowed = list(/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/tank/emergency/oxygen, /obj/item/flashlight,/obj/item/gun/projectile/energy,/obj/item/gun/projectile/ballistic,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter,/obj/item/tape_recorder,/obj/item/uv_light) inv_hide_flags = HIDEHOLSTER /obj/item/clothing/suit/storage/toggle/navy_coat_blue @@ -644,7 +633,6 @@ desc = "A coat to show off your mandatory enrollment for those sweet, sweet 5% tax savings and stickers. Who sails a boat nowadays, anyway? This one is blue, which is not what the ocean's color is anymore." icon_state = "blue_navy_jacket" blood_overlay_type = "coat" - allowed = list(/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/tank/emergency/oxygen, /obj/item/flashlight,/obj/item/gun/projectile/energy,/obj/item/gun/projectile/ballistic,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter,/obj/item/tape_recorder,/obj/item/uv_light) inv_hide_flags = HIDEHOLSTER /obj/item/clothing/suit/storage/toggle/navy_coat_brown @@ -652,7 +640,6 @@ desc = "A coat to show off your mandatory enrollment for those sweet, sweet 5% tax savings and stickers. Who sails a boat nowadays, anyway? This one is brown, which makes you feel like you're back in the rust-colored oceans." icon_state = "brown_navy_jacket" blood_overlay_type = "coat" - allowed = list(/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/tank/emergency/oxygen, /obj/item/flashlight,/obj/item/gun/projectile/energy,/obj/item/gun/projectile/ballistic,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter,/obj/item/tape_recorder,/obj/item/uv_light) inv_hide_flags = HIDEHOLSTER /obj/item/clothing/suit/storage/toggle/navy_coat_green @@ -660,7 +647,6 @@ desc = "A coat to show off your mandatory enrollment for those sweet, sweet 5% tax savings and stickers. Who sails a boat nowadays, anyway? This one is green, like the 'vegan rations' you were dared to eat. It was actually bottom-deck gunk. It smelled nicer than this coat." icon_state = "green_navy_jacket" blood_overlay_type = "coat" - allowed = list(/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/tank/emergency/oxygen, /obj/item/flashlight,/obj/item/gun/projectile/energy,/obj/item/gun/projectile/ballistic,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter,/obj/item/tape_recorder,/obj/item/uv_light) inv_hide_flags = HIDEHOLSTER /obj/item/clothing/suit/storage/stripe_jacket @@ -668,7 +654,6 @@ desc = "A high collar, a gaudy stripe, clasps that don't actually work. All the ingredients to a fashionable clown! Trust me, they are /definitely/ laughing at your jokes, and not you." icon_state = "stripe_jacket" blood_overlay_type = "coat" - allowed = list(/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/tank/emergency/oxygen, /obj/item/flashlight,/obj/item/gun/projectile/energy,/obj/item/gun/projectile/ballistic,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter,/obj/item/tape_recorder,/obj/item/uv_light) inv_hide_flags = HIDEHOLSTER /obj/item/clothing/suit/storage/toggle/brown_fancycoat @@ -677,7 +662,6 @@ icon = 'icons/clothing/suit/coats/trenchcoat.dmi' icon_state = "brtrenchcoat" item_state_slots = list(SLOT_ID_RIGHT_HAND = "brown_jacket", SLOT_ID_LEFT_HAND = "brown_jacket") - allowed = list(/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/tank/emergency/oxygen, /obj/item/flashlight,/obj/item/gun/projectile/energy,/obj/item/gun/projectile/ballistic,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter,/obj/item/tape_recorder,/obj/item/uv_light) body_cover_flags = UPPER_TORSO|ARMS inv_hide_flags = HIDEHOLSTER worn_render_flags = WORN_RENDER_SLOT_ONE_FOR_ALL @@ -692,7 +676,6 @@ icon = 'icons/clothing/suit/jackets/motojacket.dmi' icon_state = "motojacket" item_state_slots = list(SLOT_ID_RIGHT_HAND = "leather_jacket", SLOT_ID_LEFT_HAND = "leather_jacket") - allowed = list(/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/tank/emergency/oxygen, /obj/item/flashlight,/obj/item/gun/projectile/energy,/obj/item/gun/projectile/ballistic,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter,/obj/item/tape_recorder,/obj/item/uv_light) body_cover_flags = UPPER_TORSO|ARMS inv_hide_flags = HIDEHOLSTER worn_render_flags = WORN_RENDER_SLOT_ONE_FOR_ALL @@ -703,7 +686,6 @@ icon = 'icons/clothing/suit/jackets/furbomber.dmi' icon_state = "fur_bomber" item_state_slots = list(SLOT_ID_RIGHT_HAND = "leather_jacket", SLOT_ID_LEFT_HAND = "leather_jacket") - allowed = list(/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/tank/emergency/oxygen, /obj/item/flashlight,/obj/item/gun/projectile/energy,/obj/item/gun/projectile/ballistic,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter,/obj/item/tape_recorder,/obj/item/uv_light) body_cover_flags = UPPER_TORSO|ARMS inv_hide_flags = HIDEHOLSTER worn_render_flags = WORN_RENDER_SLOT_ONE_FOR_ALL @@ -813,7 +795,6 @@ desc = "A thick, well-worn WW2 leather bomber jacket." icon_state = "bomber" item_state_slots = list(SLOT_ID_RIGHT_HAND = "brown_jacket", SLOT_ID_LEFT_HAND = "brown_jacket") - allowed = list (/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/pen, /obj/item/paper, /obj/item/flashlight, /obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask) body_cover_flags = UPPER_TORSO|ARMS inv_hide_flags = HIDEHOLSTER cold_protection_cover = UPPER_TORSO|ARMS @@ -835,7 +816,6 @@ name = "leather jacket" desc = "A black leather coat." icon_state = "leather_jacket" - allowed = list (/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/pen, /obj/item/paper, /obj/item/flashlight, /obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask) body_cover_flags = UPPER_TORSO|ARMS inv_hide_flags = HIDEHOLSTER @@ -871,7 +851,6 @@ desc = "A brown leather coat." icon_state = "brown_jacket" item_state_slots = list(SLOT_ID_RIGHT_HAND = "brown_jacket", SLOT_ID_LEFT_HAND = "brown_jacket") - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask) body_cover_flags = UPPER_TORSO|ARMS inv_hide_flags = HIDEHOLSTER @@ -899,7 +878,6 @@ desc = "A denim coat." icon_state = "denim_jacket" item_state_slots = list(SLOT_ID_RIGHT_HAND = "denim_jacket", SLOT_ID_LEFT_HAND = "denim_jacket") - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask) body_cover_flags = UPPER_TORSO|ARMS inv_hide_flags = HIDEHOLSTER @@ -1016,7 +994,6 @@ desc = "A favorite of jocks everywhere from Sol to Nyx." icon = 'icons/clothing/suit/jackets/varsity.dmi' icon_state = "varsity" - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask) item_state_slots = list(SLOT_ID_RIGHT_HAND = "suit_black", SLOT_ID_LEFT_HAND = "suit_black") inv_hide_flags = HIDETIE|HIDEHOLSTER worn_render_flags = WORN_RENDER_SLOT_ONE_FOR_ALL @@ -1087,7 +1064,6 @@ desc = "A track jacket, for the athletic." icon_state = "trackjacket" item_state_slots = list(SLOT_ID_RIGHT_HAND = "black_labcoat", SLOT_ID_LEFT_HAND = "black_labcoat") - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask) /obj/item/clothing/suit/storage/toggle/track/blue name = "blue track jacket" @@ -1117,7 +1093,6 @@ desc = "A comfy, grey flannel shirt. Unleash your inner hipster." icon_state = "flannel" item_state_slots = list(SLOT_ID_RIGHT_HAND = "black_labcoat", SLOT_ID_LEFT_HAND = "black_labcoat") - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask) inv_hide_flags = HIDEHOLSTER var/rolled = 0 var/tucked = 0 @@ -1219,7 +1194,6 @@ inv_hide_flags = HIDEHOLSTER cold_protection_cover = UPPER_TORSO|LOWER_TORSO|ARMS min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE - allowed = list (/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask) /obj/item/clothing/suit/storage/snowsuit/command name = "command snowsuit" @@ -1300,18 +1274,6 @@ desc = "A uniform jacket from the United Federation. Starfleet still uses this uniform and there are variations of it. Set phasers to awesome." icon_state = "fedcoat" body_cover_flags = UPPER_TORSO|LOWER_TORSO|ARMS - allowed = list( - /obj/item/tank/emergency/oxygen, - /obj/item/flashlight, - /obj/item/gun/projectile/energy, - /obj/item/gun/projectile/ballistic, - /obj/item/ammo_magazine, - /obj/item/ammo_casing, -// /obj/item/storage/fancy/shotgun_ammo, - /obj/item/melee/baton, - /obj/item/handcuffs, -// /obj/item/detective_scanner, - /obj/item/tape_recorder) var/unbuttoned = 0 /* @@ -1358,18 +1320,6 @@ desc = "A jacket issued to Command staff on NT vessels. This one is modern." icon_state = "fedmodern" body_cover_flags = UPPER_TORSO|LOWER_TORSO|ARMS - allowed = list( - /obj/item/tank/emergency/oxygen, - /obj/item/flashlight, - /obj/item/gun/projectile/energy, - /obj/item/gun/projectile/ballistic, - /obj/item/ammo_magazine, - /obj/item/ammo_casing, -// /obj/item/storage/fancy/shotgun_ammo, - /obj/item/melee/baton, - /obj/item/handcuffs, -// /obj/item/detective_scanner, - /obj/item/tape_recorder) /obj/item/clothing/suit/storage/modern_operations_coat/medsci name = "Modern Medical/Science Operations Jacket" @@ -1494,7 +1444,6 @@ name = "well-worn varsity jacket" desc = "A worn varsity jacket. The Nanotrasen corporate logo on the back is outdated, suggesting the age of this coat." icon_state = "varsity_worn" - allowed = list(/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/tank/emergency/oxygen, /obj/item/flashlight,/obj/item/gun/projectile/energy,/obj/item/gun/projectile/ballistic,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter,/obj/item/tape_recorder,/obj/item/uv_light) /obj/item/clothing/suit/storage/pullover name = "pullover hoodie" @@ -1558,8 +1507,6 @@ body_cover_flags = UPPER_TORSO|LOWER_TORSO|ARMS cold_protection_cover = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, - /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit) /obj/item/clothing/suit/storage/mindelectric name = "「 The Mind Electric 」" @@ -1596,9 +1543,6 @@ body_cover_flags = UPPER_TORSO|LOWER_TORSO|ARMS cold_protection_cover = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight, /obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, - /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/suit_cooling_unit, /obj/item/gun/projectile/energy, - /obj/item/gun/projectile/ballistic, /obj/item/ammo_magazine, /obj/item/melee/baton) open = 1 /obj/item/clothing/suit/storage/toggle/heated/ToggleButtons() diff --git a/code/modules/clothing/suits/oricon.dm b/code/modules/clothing/suits/oricon.dm index fa77da88b1c..954996ebf15 100644 --- a/code/modules/clothing/suits/oricon.dm +++ b/code/modules/clothing/suits/oricon.dm @@ -11,7 +11,6 @@ armor_type = /datum/armor/none siemens_coefficient = 0.9 inv_hide_flags = HIDEHOLSTER - allowed = list(/obj/item/tank/emergency/oxygen,/obj/item/flashlight,/obj/item/pen,/obj/item/clothing/head/soft,/obj/item/clothing/head/beret,/obj/item/storage/fancy/cigarettes,/obj/item/flame/lighter,/obj/item/tape_recorder,/obj/item/atmos_analyzer,/obj/item/radio,/obj/item/barrier_tape_roll) /obj/item/clothing/suit/storage/service/sysguard name = "\improper SysGuard jacket" @@ -113,7 +112,6 @@ body_cover_flags = UPPER_TORSO|ARMS armor_type = /datum/armor/none siemens_coefficient = 0.9 - allowed = list(/obj/item/tank/emergency/oxygen,/obj/item/flashlight,/obj/item/clothing/head/soft,/obj/item/clothing/head/beret,/obj/item/radio,/obj/item/pen) /obj/item/clothing/suit/dress/expedition name = "SysGuard dress jacket" diff --git a/code/modules/clothing/suits/roguetown.dm b/code/modules/clothing/suits/roguetown.dm index 98b90c4fed5..248168280b8 100644 --- a/code/modules/clothing/suits/roguetown.dm +++ b/code/modules/clothing/suits/roguetown.dm @@ -93,8 +93,6 @@ worn_bodytypes = BODYTYPES(BODYTYPE_DEFAULT) armor_type = /datum/armor/station/padded hoodtype = /obj/item/clothing/hood/roguetown/hide - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, - /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/eldritch/prop/codex) /obj/item/clothing/suit/storage/hooded/roguetown/cloth name = "cloth cloak" @@ -106,9 +104,6 @@ worn_render_flags = WORN_RENDER_SLOT_ONE_FOR_ALL | WORN_RENDER_INHAND_ALLOW_DEFAULT worn_bodytypes = BODYTYPES(BODYTYPE_DEFAULT) hoodtype = /obj/item/clothing/hood/roguetown/cloth - allowed = list (/obj/item/pen, /obj/item/paper, /obj/item/flashlight,/obj/item/tank/emergency/oxygen, /obj/item/storage/fancy/cigarettes, - /obj/item/storage/box/matches, /obj/item/reagent_containers/food/drinks/flask, /obj/item/eldritch/prop/codex) - // Outer wear diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 635468cd8c9..80a6d37d32e 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -17,7 +17,6 @@ gas_transfer_coefficient = 0.90 permeability_coefficient = 0.50 body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/flashlight,/obj/item/tank/emergency/oxygen,/obj/item/extinguisher) encumbrance = ITEM_ENCUMBRANCE_ARMOR_FIRE_SUIT weight = ITEM_WEIGHT_ARMOR_FIRE_SUIT inv_hide_flags = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER @@ -67,7 +66,6 @@ /obj/item/clothing/suit/bomb_suit/security icon_state = "bombsuitsec" - allowed = list(/obj/item/gun/projectile/ballistic/sec/flash, /obj/item/gun/projectile/energy,/obj/item/melee/baton,/obj/item/handcuffs) body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS /* @@ -93,7 +91,6 @@ gas_transfer_coefficient = 0.90 permeability_coefficient = 0.50 body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS|FEET - allowed = list(/obj/item/flashlight,/obj/item/tank/emergency/oxygen,/obj/item/clothing/head/radiation,/obj/item/clothing/mask/gas) weight = ITEM_WEIGHT_ARMOR_BIORAD_SUIT armor_type = /datum/armor/general/radsuit inv_hide_flags = HIDEJUMPSUIT|HIDETAIL|HIDETIE|HIDEHOLSTER diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index 9517ea3e72e..6c64e0cdfba 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -52,7 +52,6 @@ gas_transfer_coefficient = 0.01 // IT'S MAGICAL OKAY JEEZ +1 TO NOT DIE permeability_coefficient = 0.01 armor_type = /datum/armor/wizard - allowed = list(/obj/item/teleportation_scroll) inv_hide_flags = HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER siemens_coefficient = 0.8 wizard_garb = 1 diff --git a/code/modules/detectivework/tools/uvlight.dm b/code/modules/detectivework/tools/uvlight.dm index 88f228fef86..f97e1ff01ee 100644 --- a/code/modules/detectivework/tools/uvlight.dm +++ b/code/modules/detectivework/tools/uvlight.dm @@ -9,6 +9,7 @@ item_action_name = "Toggle UV light" materials_base = list(MAT_STEEL = 150) origin_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 1) + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/list/scanned = list() var/list/stored_alpha = list() diff --git a/code/modules/economy/items/cash.dm b/code/modules/economy/items/cash.dm index f80c78e6323..4233b799059 100644 --- a/code/modules/economy/items/cash.dm +++ b/code/modules/economy/items/cash.dm @@ -12,6 +12,7 @@ throw_speed = 1 throw_range = 2 w_class = WEIGHT_CLASS_SMALL + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR var/access = list() access = ACCESS_MISC_CASHCRATE var/worth = 0 diff --git a/code/modules/economy/items/coins.dm b/code/modules/economy/items/coins.dm index 9ef3390d17f..563688b10ea 100644 --- a/code/modules/economy/items/coins.dm +++ b/code/modules/economy/items/coins.dm @@ -12,6 +12,7 @@ var/sides = 2 drop_sound = 'sound/items/drop/ring.ogg' pickup_sound = 'sound/items/pickup/ring.ogg' + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR /obj/item/coin/Initialize(mapload) . = ..() diff --git a/code/modules/economy/items/retail_scanner.dm b/code/modules/economy/items/retail_scanner.dm index 1ff2453f717..4ec64d1fa36 100644 --- a/code/modules/economy/items/retail_scanner.dm +++ b/code/modules/economy/items/retail_scanner.dm @@ -8,6 +8,7 @@ req_access = list(ACCESS_COMMAND_BRIDGE) w_class = WEIGHT_CLASS_SMALL origin_tech = list(TECH_MATERIAL = 1) + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR var/locked = 1 var/emagged = 0 diff --git a/code/modules/examine/descriptions/paperwork.dm b/code/modules/examine/descriptions/paperwork.dm deleted file mode 100644 index 117c93a2a3c..00000000000 --- a/code/modules/examine/descriptions/paperwork.dm +++ /dev/null @@ -1,21 +0,0 @@ -/obj/item/pen - description_info = {"This is an item for writing down your thoughts, on paper or elsewhere. The following special commands are available: -Pen and crayon commands -\[br\] : Creates a linebreak. -\[center\] - \[/center\] : Centers the text. -\[h1\] - \[/h1\] : Makes the text a first level heading. -\[h2\] - \[/h2\] : Makes the text a second level headin. -\[h3\] - \[/h3\] : Makes the text a third level heading. -\[b\] - \[/b\] : Makes the text bold. -\[i\] - \[/i\] : Makes the text italic. -\[u\] - \[/u\] : Makes the text underlined. -\[large\] - \[/large\] : Increases the size of the text. -\[sign\] : Inserts a signature of your name in a foolproof way. -\[field\] : Inserts an invisible field which lets you start type from there. Useful for forms. -\[date\] : Inserts today's station date. -\[time\] : Inserts the current station time. -Pen exclusive commands -\[small\] - \[/small\] : Decreases the size of the text. -\[list\] - \[/list\] : A list. -\[*\] : A dot used for lists. -\[hr\] : Adds a horizontal rule."} diff --git a/code/modules/food/drinks/flask.dm b/code/modules/food/drinks/flask.dm index be376c05de6..a3b4fa710c6 100644 --- a/code/modules/food/drinks/flask.dm +++ b/code/modules/food/drinks/flask.dm @@ -4,6 +4,7 @@ icon_state = "flask" volume = 60 center_of_mass = list("x"=17, "y"=7) + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR /obj/item/reagent_containers/food/drinks/flask/shiny name = "shiny flask" diff --git a/code/modules/food/glass/bottle.dm b/code/modules/food/glass/bottle.dm index 47de24ddb85..0203973446c 100644 --- a/code/modules/food/glass/bottle.dm +++ b/code/modules/food/glass/bottle.dm @@ -8,6 +8,7 @@ icon_state = null item_state = "atoxinbottle" w_class = WEIGHT_CLASS_SMALL + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,25,30,60) atom_flags = 0 diff --git a/code/modules/hardsuits/_rig.dm b/code/modules/hardsuits/_rig.dm index 0b9dcd2f2a4..fa4da5d6763 100644 --- a/code/modules/hardsuits/_rig.dm +++ b/code/modules/hardsuits/_rig.dm @@ -218,8 +218,6 @@ add_obj_verb(src, /obj/item/hardsuit/proc/toggle_boots) if(chest_type) chest = new chest_type(src) - if(allowed) - chest.allowed = allowed add_obj_verb(src, /obj/item/hardsuit/proc/toggle_chest) for(var/obj/item/piece in list(gloves,helmet,boots,chest)) diff --git a/code/modules/hardsuits/rig_pieces.dm b/code/modules/hardsuits/rig_pieces.dm index 42e09adcf97..ad9556cab21 100644 --- a/code/modules/hardsuits/rig_pieces.dm +++ b/code/modules/hardsuits/rig_pieces.dm @@ -50,7 +50,6 @@ /obj/item/clothing/suit/space/hardsuit name = "chestpiece" - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit) //Flags body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS @@ -133,7 +132,6 @@ /obj/item/clothing/suit/lightrig name = "suit" - allowed = list(/obj/item/flashlight) inv_hide_flags = HIDEJUMPSUIT clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT | CLOTHING_IGNORE_BELTLINK | CLOTHING_IGNORE_DELIMB atom_flags = PHORONGUARD diff --git a/code/modules/hardsuits/suits/combat.dm b/code/modules/hardsuits/suits/combat.dm index ad5b16a01da..d61ad2b8fd3 100644 --- a/code/modules/hardsuits/suits/combat.dm +++ b/code/modules/hardsuits/suits/combat.dm @@ -26,15 +26,6 @@ offline_vision_restriction = 1 helm_type = /obj/item/clothing/head/helmet/space/hardsuit/combat - allowed = list( - /obj/item/gun, - /obj/item/flashlight, - /obj/item/tank, - /obj/item/suit_cooling_unit, - /obj/item/melee/baton, - /obj/item/bluespace_radio, - ) - /obj/item/hardsuit/combat/equipped @@ -72,28 +63,6 @@ encumbrance = ITEM_ENCUMBRANCE_LEGACY_RIG_HEAVY offline_encumbrance = ITEM_ENCUMBRANCE_LEGACY_RIG_HEAVY * 2 offline_vision_restriction = 1 - allowed = list( - /obj/item/flashlight, - /obj/item/tank, - /obj/item/ammo_magazine, - /obj/item/ammo_casing, - /obj/item/handcuffs, - /obj/item/t_scanner, - /obj/item/rcd, - /obj/item/weldingtool, - /obj/item/tool, - /obj/item/multitool, - /obj/item/radio, - /obj/item/atmos_analyzer, - /obj/item/storage/briefcase/inflatable, - /obj/item/melee/baton, - /obj/item/gun, - /obj/item/storage/firstaid, - /obj/item/reagent_containers/hypospray, - /obj/item/roller, - /obj/item/suit_cooling_unit, - /obj/item/bluespace_radio, - ) chest_type = /obj/item/clothing/suit/space/hardsuit/military helm_type = /obj/item/clothing/head/helmet/space/hardsuit/military diff --git a/code/modules/hardsuits/suits/ert.dm b/code/modules/hardsuits/suits/ert.dm index 865b04033b3..d1c6386e08e 100644 --- a/code/modules/hardsuits/suits/ert.dm +++ b/code/modules/hardsuits/suits/ert.dm @@ -28,27 +28,6 @@ siemens_coefficient= 0.5 armor_type = /datum/armor/hardsuit/ert - allowed = list( - /obj/item/flashlight, - /obj/item/tank, - /obj/item/t_scanner, - /obj/item/rcd, - /obj/item/tool/crowbar, - /obj/item/tool/screwdriver, - /obj/item/weldingtool, - /obj/item/tool/wirecutters, - /obj/item/tool/wrench, - /obj/item/multitool, - /obj/item/radio, - /obj/item/atmos_analyzer, - /obj/item/storage/briefcase/inflatable, - /obj/item/melee/baton, - /obj/item/gun, - /obj/item/storage/firstaid, - /obj/item/reagent_containers/hypospray, - /obj/item/roller, - /obj/item/bluespace_radio, - ) initial_modules = list( /obj/item/hardsuit_module/ai_container, diff --git a/code/modules/hardsuits/suits/light.dm b/code/modules/hardsuits/suits/light.dm index 0a747cd69d5..da9ab38de36 100644 --- a/code/modules/hardsuits/suits/light.dm +++ b/code/modules/hardsuits/suits/light.dm @@ -17,7 +17,6 @@ desc = "A lighter, less armoured hardsuit suit." icon_state = "ninja_rig" suit_type = "light suit" - allowed = list(/obj/item/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/handcuffs,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/cell) armor_type = /datum/armor/hardsuit/light emp_protection = 10 encumbrance = ITEM_ENCUMBRANCE_LEGACY_RIG_LIGHT @@ -101,17 +100,6 @@ cell_type = /obj/item/cell/hyper req_access = list(ACCESS_FACTION_SYNDICATE) - allowed = list( - /obj/item/gun, - /obj/item/ammo_magazine, - /obj/item/ammo_casing, - /obj/item/melee/baton, - /obj/item/handcuffs, - /obj/item/tank, - /obj/item/suit_cooling_unit, - /obj/item/cell, - /obj/item/bluespace_radio, - ) initial_modules = list( /obj/item/hardsuit_module/teleporter, diff --git a/code/modules/hardsuits/suits/merc.dm b/code/modules/hardsuits/suits/merc.dm index 1aeff36338a..a065311bd3b 100644 --- a/code/modules/hardsuits/suits/merc.dm +++ b/code/modules/hardsuits/suits/merc.dm @@ -28,18 +28,6 @@ siemens_coefficient = 0.3 glove_type = /obj/item/clothing/gloves/gauntlets/hardsuit/eva helm_type = /obj/item/clothing/head/helmet/space/hardsuit/merc - allowed = list( - /obj/item/flashlight, - /obj/item/tank, - /obj/item/suit_cooling_unit, - /obj/item/gun, - /obj/item/ammo_magazine, - /obj/item/ammo_casing, - /obj/item/melee/baton, - /obj/item/melee/transforming/energy/sword, - /obj/item/handcuffs, - /obj/item/bluespace_radio, - ) initial_modules = list( /obj/item/hardsuit_module/mounted, diff --git a/code/modules/hardsuits/suits/pmc.dm b/code/modules/hardsuits/suits/pmc.dm index caf91465327..3a6a02c7ce9 100644 --- a/code/modules/hardsuits/suits/pmc.dm +++ b/code/modules/hardsuits/suits/pmc.dm @@ -26,28 +26,6 @@ req_access = list(ACCESS_CENTCOM_ERT) armor_type = /datum/armor/hardsuit/pmc - allowed = list( - /obj/item/flashlight, - /obj/item/tank, - /obj/item/t_scanner, - /obj/item/rcd, - /obj/item/tool/crowbar, - /obj/item/tool/screwdriver, - /obj/item/weldingtool, - /obj/item/tool/wirecutters, - /obj/item/tool/wrench, - /obj/item/multitool, - /obj/item/radio, - /obj/item/atmos_analyzer, - /obj/item/storage/briefcase/inflatable, - /obj/item/melee/baton, - /obj/item/gun, - /obj/item/storage/firstaid, - /obj/item/reagent_containers/hypospray, - /obj/item/roller, - /obj/item/bluespace_radio, - ) - /obj/item/hardsuit/pmc/commander name = "PMC-C hardsuit control module" desc = "A suit worn by private military contractors. Armoured and space ready." diff --git a/code/modules/hardsuits/suits/species/protean.dm b/code/modules/hardsuits/suits/species/protean.dm index 53a2281907e..318ae748a9e 100644 --- a/code/modules/hardsuits/suits/species/protean.dm +++ b/code/modules/hardsuits/suits/species/protean.dm @@ -67,4 +67,3 @@ desc = "A body-hugging mass of nanomachines." can_breach = 0 species_restricted = null - allowed = list(/obj/item/gun,/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/melee/baton,/obj/item/bluespace_radio) diff --git a/code/modules/hardsuits/suits/species/vox.dm b/code/modules/hardsuits/suits/species/vox.dm index 98b73a40f61..86702f1b13f 100644 --- a/code/modules/hardsuits/suits/species/vox.dm +++ b/code/modules/hardsuits/suits/species/vox.dm @@ -7,13 +7,6 @@ atom_flags = PHORONGUARD clothing_flags = CLOTHING_THICK_MATERIAL | CLOTHING_INJECTION_PORT siemens_coefficient = 0.2 - allowed = list( - /obj/item/gun, - /obj/item/flashlight, - /obj/item/tank, - /obj/item/suit_cooling_unit, - /obj/item/bluespace_radio, - ) air_type = /obj/item/tank/vox helm_type = /obj/item/clothing/head/helmet/space/hardsuit/vox boot_type = /obj/item/clothing/shoes/magboots/hardsuit/vox diff --git a/code/modules/hardsuits/suits/station/cargo.dm b/code/modules/hardsuits/suits/station/cargo.dm index 527152ae2b8..7197365e777 100644 --- a/code/modules/hardsuits/suits/station/cargo.dm +++ b/code/modules/hardsuits/suits/station/cargo.dm @@ -11,17 +11,6 @@ rigsuit_min_pressure = 0 // Min pressure the hardsuit protects against when sealed helm_type = /obj/item/clothing/head/helmet/space/hardsuit/industrial - allowed = list( - /obj/item/flashlight, - /obj/item/tank, - /obj/item/suit_cooling_unit, - /obj/item/storage/bag/ore, - /obj/item/t_scanner, - /obj/item/pickaxe, - /obj/item/rcd, - /obj/item/bluespace_radio, - ) - /datum/armor/hardsuit/industrial melee = 0.4 melee_tier = 4.5 diff --git a/code/modules/hardsuits/suits/station/engineering.dm b/code/modules/hardsuits/suits/station/engineering.dm index ce00eee9cdd..23978c1ec73 100644 --- a/code/modules/hardsuits/suits/station/engineering.dm +++ b/code/modules/hardsuits/suits/station/engineering.dm @@ -10,19 +10,9 @@ siemens_coefficient= 0.75 seal_delay = 24 //Should be slightly faster than other hardsuits, giving Engineering faster response time for emergencies. - helm_type = /obj/item/clothing/head/helmet/space/hardsuit/eva glove_type = /obj/item/clothing/gloves/gauntlets/hardsuit/eva - allowed = list( - /obj/item/flashlight, - /obj/item/tank, - /obj/item/suit_cooling_unit, - /obj/item/storage/briefcase/inflatable, - /obj/item/t_scanner, - /obj/item/rcd - ) - max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE /datum/armor/hardsuit/eva @@ -73,17 +63,6 @@ glove_type = /obj/item/clothing/gloves/gauntlets/hardsuit/ce boot_type = /obj/item/clothing/shoes/magboots/hardsuit/ce - allowed = list( - /obj/item/flashlight, - /obj/item/tank, - /obj/item/suit_cooling_unit, - /obj/item/storage/bag/ore, - /obj/item/t_scanner, - /obj/item/pickaxe, - /obj/item/rcd, - /obj/item/bluespace_radio, - ) - max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE /datum/armor/hardsuit/ce diff --git a/code/modules/hardsuits/suits/station/medical.dm b/code/modules/hardsuits/suits/station/medical.dm index 0fd308ed293..5d3ccb81c2d 100644 --- a/code/modules/hardsuits/suits/station/medical.dm +++ b/code/modules/hardsuits/suits/station/medical.dm @@ -10,17 +10,6 @@ helm_type = /obj/item/clothing/head/helmet/space/hardsuit/medical - allowed = list( - /obj/item/flashlight, - /obj/item/tank, - /obj/item/suit_cooling_unit, - /obj/item/storage/firstaid, - /obj/item/healthanalyzer, - /obj/item/stack/medical, - /obj/item/roller, - /obj/item/bluespace_radio, - ) - /datum/armor/hardsuit/medical melee = 0.3 melee_tier = 3.5 diff --git a/code/modules/hardsuits/suits/station/misc.dm b/code/modules/hardsuits/suits/station/misc.dm index 62757643e71..f3abe66c47a 100644 --- a/code/modules/hardsuits/suits/station/misc.dm +++ b/code/modules/hardsuits/suits/station/misc.dm @@ -9,14 +9,6 @@ offline_encumbrance = ITEM_ENCUMBRANCE_LEGACY_RIG_LIGHT * 2 offline_vision_restriction = 0 - allowed = list( - /obj/item/flashlight, - /obj/item/tank, - /obj/item/suit_cooling_unit, - /obj/item/storage/briefcase, - /obj/item/storage/secure/briefcase - ) - glove_type = null helm_type = null boot_type = null diff --git a/code/modules/hardsuits/suits/station/science.dm b/code/modules/hardsuits/suits/station/science.dm index bf781028e96..05b838f399e 100644 --- a/code/modules/hardsuits/suits/station/science.dm +++ b/code/modules/hardsuits/suits/station/science.dm @@ -10,26 +10,6 @@ helm_type = /obj/item/clothing/head/helmet/space/hardsuit/hazmat - allowed = list( - /obj/item/flashlight, - /obj/item/tank, - /obj/item/suit_cooling_unit, - /obj/item/stack/flag, - /obj/item/storage/excavation, - /obj/item/pickaxe, - /obj/item/healthanalyzer, - /obj/item/measuring_tape, - /obj/item/ano_scanner, - /obj/item/depth_scanner, - /obj/item/core_sampler, - /obj/item/gps, - /obj/item/beacon_locator, - /obj/item/radio/beacon, - /obj/item/pickaxe/hand, - /obj/item/storage/bag/fossils, - /obj/item/bluespace_radio, - ) - /datum/armor/hardsuit/ami melee = 0.3 melee_tier = 4 diff --git a/code/modules/hardsuits/suits/station/security.dm b/code/modules/hardsuits/suits/station/security.dm index 0c513869347..f8b7d364f72 100644 --- a/code/modules/hardsuits/suits/station/security.dm +++ b/code/modules/hardsuits/suits/station/security.dm @@ -9,15 +9,6 @@ helm_type = /obj/item/clothing/head/helmet/space/hardsuit/hazard - allowed = list( - /obj/item/gun, - /obj/item/flashlight, - /obj/item/tank, - /obj/item/suit_cooling_unit, - /obj/item/melee/baton, - /obj/item/bluespace_radio, - ) - /datum/armor/hardsuit/hazard melee = 0.3 melee_tier = 4 diff --git a/code/modules/hydroponics/seed_packets.dm b/code/modules/hydroponics/seed_packets.dm index 0f6c3c6ae84..76ce33cd83b 100644 --- a/code/modules/hydroponics/seed_packets.dm +++ b/code/modules/hydroponics/seed_packets.dm @@ -9,6 +9,7 @@ GLOBAL_LIST_BOILERPLATE(all_seed_packs, /obj/item/seeds) icon_state = "blank" worn_render_flags = WORN_RENDER_INHAND_NO_RENDER | WORN_RENDER_SLOT_NO_RENDER w_class = WEIGHT_CLASS_SMALL + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR var/seed_type var/datum/seed/seed diff --git a/code/modules/mining/tools/kinetic/kinetic_accelerator.dm b/code/modules/mining/tools/kinetic/kinetic_accelerator.dm index f3f1b2c1635..7f466416d23 100644 --- a/code/modules/mining/tools/kinetic/kinetic_accelerator.dm +++ b/code/modules/mining/tools/kinetic/kinetic_accelerator.dm @@ -23,6 +23,7 @@ cell_type = /obj/item/cell/device/weapon/empproof clothing_flags = NONE charge_meter = FALSE + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR projectile_type = /obj/projectile/kinetic charge_cost = 1200 diff --git a/code/modules/mining/tools/kinetic/kinetic_crusher.dm b/code/modules/mining/tools/kinetic/kinetic_crusher.dm index 6caa44f1723..06b28410bf3 100644 --- a/code/modules/mining/tools/kinetic/kinetic_crusher.dm +++ b/code/modules/mining/tools/kinetic/kinetic_crusher.dm @@ -19,6 +19,7 @@ damage_mode = DAMAGE_MODE_SHARP | DAMAGE_MODE_EDGE item_action_name = "Toggle Light" light_wedge = LIGHT_WIDE + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR // actions_types = list(/datum/action/item_action/toggle_light) // var/list/trophies = list() var/charged = TRUE @@ -269,6 +270,7 @@ ) item_state = "machete" w_class = WEIGHT_CLASS_SMALL + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR damage_force = 15 requires_wield = FALSE charge_overlay = FALSE diff --git a/code/modules/mining/tools/mine_items.dm b/code/modules/mining/tools/mine_items.dm index 311142d5598..5d8fbd1f6c3 100644 --- a/code/modules/mining/tools/mine_items.dm +++ b/code/modules/mining/tools/mine_items.dm @@ -23,6 +23,7 @@ w_class = WEIGHT_CLASS_BULKY materials_base = list(MAT_STEEL = 3750) worth_intrinsic = 75 + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR var/digspeed = 40 //moving the delay to an item var so R&D can make improved picks. --NEO var/sand_dig = FALSE origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINEERING = 1) @@ -292,6 +293,7 @@ attack_verb = list("bashed", "bludgeoned", "thrashed", "whacked") damage_mode = DAMAGE_MODE_EDGE worth_intrinsic = 50 + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR var/digspeed = 40 /obj/item/shovel/bone @@ -356,6 +358,7 @@ amount = 10 max_amount = 10 zmm_flags = ZMM_MANGLE_PLANES + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/upright = 0 var/base_state diff --git a/code/modules/mining/tools/resonator.dm b/code/modules/mining/tools/resonator.dm index 6571987a5aa..1cf02809017 100644 --- a/code/modules/mining/tools/resonator.dm +++ b/code/modules/mining/tools/resonator.dm @@ -14,6 +14,7 @@ w_class = WEIGHT_CLASS_NORMAL damage_force = 8 throw_force = 10 + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/cooldown = 0 var/fieldsactive = 0 var/burst_time = 50 diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index f32d32dad31..e07175ac73f 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -14,7 +14,7 @@ throw_range = 14 throw_force = 10 throw_speed = 3 - + var/static/list/holder_mob_icon_cache = list() var/mob/living/held_mob @@ -185,7 +185,7 @@ clothing_flags = ALLOWINTERNALS slot_flags = SLOT_HEAD | SLOT_OCLOTHING | SLOT_HOLSTER | SLOT_ICLOTHING | SLOT_ID | SLOT_MASK | SLOT_GLOVES | SLOT_BACK | SLOT_BELT | SLOT_FEET | SLOT_EARS | SLOT_EYES w_class = WEIGHT_CLASS_TINY - allowed = list(/obj/item/gun,/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/melee/baton) + suit_storage_class_allow = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR //Roach Types /obj/item/holder/roach diff --git a/code/modules/mob/inventory/inventory_slot.dm b/code/modules/mob/inventory/inventory_slot.dm index 0914908bd73..c0345a37563 100644 --- a/code/modules/mob/inventory/inventory_slot.dm +++ b/code/modules/mob/inventory/inventory_slot.dm @@ -791,10 +791,7 @@ GLOBAL_LIST_EMPTY(inventory_slot_type_cache) var/obj/item/suit_item = wearer.item_by_slot_id(SLOT_ID_SUIT) if(!suit_item) return FALSE - // todo: this check is ass - if(istype(I, /obj/item/pda) || istype(I, /obj/item/pen) || is_type_in_list(I, suit_item.allowed)) - return TRUE - return FALSE + return suit_item.can_suit_storage(I) /datum/inventory_slot/inventory/ears sort_order = 9500 diff --git a/code/modules/mob/living/silicon/robot/analyzer.dm b/code/modules/mob/living/silicon/robot/analyzer.dm index 57d9158f328..31ef9acc564 100644 --- a/code/modules/mob/living/silicon/robot/analyzer.dm +++ b/code/modules/mob/living/silicon/robot/analyzer.dm @@ -14,6 +14,7 @@ throw_range = 10 origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 1, TECH_ENGINEERING = 2) materials_base = list(MAT_STEEL = 500, MAT_GLASS = 200) + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/mode = 1; /obj/item/robotanalyzer/legacy_mob_melee_hook(mob/target, mob/user, clickchain_flags, list/params, mult, target_zone, intent) diff --git a/code/modules/paperwork/clipboard.dm b/code/modules/paperwork/clipboard.dm index 032d010d024..9b6b5eebad5 100644 --- a/code/modules/paperwork/clipboard.dm +++ b/code/modules/paperwork/clipboard.dm @@ -8,6 +8,7 @@ throw_speed = 3 throw_range = 7 slot_flags = SLOT_BELT + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR /// The stored pen var/obj/item/pen/pen diff --git a/code/modules/paperwork/paper/paper.dm b/code/modules/paperwork/paper/paper.dm index c062acebad9..9e44c022bcd 100644 --- a/code/modules/paperwork/paper/paper.dm +++ b/code/modules/paperwork/paper/paper.dm @@ -15,6 +15,7 @@ icon = 'icons/obj/bureaucracy.dmi' icon_state = "paper" item_state = "paper" + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR throw_force = 0 w_class = WEIGHT_CLASS_TINY throw_range = 1 diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 87ad2e600d5..a44fde0ed7d 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -15,11 +15,35 @@ */ /obj/item/pen desc = "It's a normal black ink pen." + description_info = {" + This is an item for writing down your thoughts, on paper or elsewhere. The following special commands are available: + Pen and crayon commands + \[br\] : Creates a linebreak. + \[center\] - \[/center\] : Centers the text. + \[h1\] - \[/h1\] : Makes the text a first level heading. + \[h2\] - \[/h2\] : Makes the text a second level headin. + \[h3\] - \[/h3\] : Makes the text a third level heading. + \[b\] - \[/b\] : Makes the text bold. + \[i\] - \[/i\] : Makes the text italic. + \[u\] - \[/u\] : Makes the text underlined. + \[large\] - \[/large\] : Increases the size of the text. + \[sign\] : Inserts a signature of your name in a foolproof way. + \[field\] : Inserts an invisible field which lets you start type from there. Useful for forms. + \[date\] : Inserts today's station date. + \[time\] : Inserts the current station time. + Pen exclusive commands + \[small\] - \[/small\] : Decreases the size of the text. + \[list\] - \[/list\] : A list. + \[*\] : A dot used for lists. + \[hr\] : Adds a horizontal rule. + "} + name = "pen" icon = 'icons/obj/bureaucracy.dmi' icon_state = "pen" item_state = "pen" slot_flags = SLOT_BELT | SLOT_EARS + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR throw_force = 0 w_class = WEIGHT_CLASS_TINY throw_speed = 7 diff --git a/code/modules/photography/camera.dm b/code/modules/photography/camera.dm index 68b32eec2c7..efdd468f182 100644 --- a/code/modules/photography/camera.dm +++ b/code/modules/photography/camera.dm @@ -8,6 +8,7 @@ worn_render_flags = NONE desc = "A polaroid camera. 10 photos left." item_flags = ITEM_NO_BLUDGEON | ITEM_ENCUMBERS_WHILE_HELD + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR w_class = WEIGHT_CLASS_SMALL slot_flags = SLOT_BELT materials_base = list(MAT_STEEL = 2000) diff --git a/code/modules/photography/film.dm b/code/modules/photography/film.dm index 4565eac0622..1520a85ee5c 100644 --- a/code/modules/photography/film.dm +++ b/code/modules/photography/film.dm @@ -5,6 +5,7 @@ desc = "A camera film cartridge. Insert it into a camera to reload it." icon = 'icons/modules/photography/film.dmi' icon_state = "film" + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR worn_render_flags = WORN_RENDER_INHAND_ALLOW_DEFAULT inhand_default_type = INHAND_DEFAULT_ICON_STORAGE inhand_state = "camera" diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 49cf676e5b9..3e71873e0b8 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -14,6 +14,7 @@ throw_speed = 3 throw_range = 5 w_class = WEIGHT_CLASS_NORMAL + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR /// Are we EMP immune? var/emp_proof = FALSE var/charge diff --git a/code/modules/projectiles/ammunition/ammo_magazine.dm b/code/modules/projectiles/ammunition/ammo_magazine.dm index 342afe7b36d..51110064221 100644 --- a/code/modules/projectiles/ammunition/ammo_magazine.dm +++ b/code/modules/projectiles/ammunition/ammo_magazine.dm @@ -10,6 +10,7 @@ desc = "A magazine for some kind of gun." item_flags = ITEM_EASY_LATHE_DECONSTRUCT | ITEM_ENCUMBERS_WHILE_HELD slot_flags = SLOT_BELT + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR icon = 'icons/system/error_32x32.dmi' inhand_state = "syringe_kit" diff --git a/code/modules/projectiles/guns/gun.dm b/code/modules/projectiles/guns/gun.dm index 344a139bb23..10ebb0b966b 100644 --- a/code/modules/projectiles/guns/gun.dm +++ b/code/modules/projectiles/guns/gun.dm @@ -50,6 +50,7 @@ item_state = "gun" item_flags = ITEM_ENCUMBERS_WHILE_HELD | ITEM_ENCUMBERS_ONLY_HELD slot_flags = SLOT_BELT|SLOT_HOLSTER + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR | SUIT_STORAGE_CLASS_ARMOR materials_base = list(MAT_STEEL = 2000) rad_flags = RAD_BLOCK_CONTENTS w_class = WEIGHT_CLASS_NORMAL diff --git a/code/modules/projectiles/guns/gun/projectile/ballistic/musket.dm b/code/modules/projectiles/guns/gun/projectile/ballistic/musket.dm index 7e4b0bd877f..65edc20cb6d 100644 --- a/code/modules/projectiles/guns/gun/projectile/ballistic/musket.dm +++ b/code/modules/projectiles/guns/gun/projectile/ballistic/musket.dm @@ -106,6 +106,7 @@ icon_state = "flintlock" item_state = "sawnshotgun" wielded_item_state = null + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR slot_flags = SLOT_BELT|SLOT_HOLSTER w_class = WEIGHT_CLASS_NORMAL diff --git a/code/modules/projectiles/guns/gun/projectile/energy/laser.dm b/code/modules/projectiles/guns/gun/projectile/energy/laser.dm index ebc060d3f4e..43220a2a0f1 100644 --- a/code/modules/projectiles/guns/gun/projectile/energy/laser.dm +++ b/code/modules/projectiles/guns/gun/projectile/energy/laser.dm @@ -272,6 +272,7 @@ projectile_type = /obj/projectile/beam/lasertag/blue cell_type = /obj/item/cell/device/weapon/recharge legacy_battery_lock = 1 + suit_storage_class = SUIT_STORAGE_CLASS_HARDWEAR | SUIT_STORAGE_CLASS_SOFTWEAR /obj/item/gun/projectile/energy/lasertag/blue icon_state = "bluetag" diff --git a/code/modules/reagents/items/hypospray.dm b/code/modules/reagents/items/hypospray.dm index ce9150f3656..ceb61f57b05 100644 --- a/code/modules/reagents/items/hypospray.dm +++ b/code/modules/reagents/items/hypospray.dm @@ -12,6 +12,7 @@ drop_sound = 'sound/items/drop/gun.ogg' pickup_sound = 'sound/items/pickup/gun.ogg' worn_render_flags = NONE + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR /// loaded vial var/obj/item/reagent_containers/glass/hypovial/loaded diff --git a/code/modules/reagents/items/spray.dm b/code/modules/reagents/items/spray.dm index fa7b112957e..a7bd3ab2d98 100644 --- a/code/modules/reagents/items/spray.dm +++ b/code/modules/reagents/items/spray.dm @@ -13,6 +13,7 @@ throw_range = 10 amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10) //Set to null instead of list, if there is only one. + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/spray_size = 3 var/list/spray_sizes = list(1,3) volume = 250 @@ -121,6 +122,7 @@ icon = 'icons/obj/weapons.dmi' icon_state = "pepperspray" item_state = "pepperspray" + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR possible_transfer_amounts = null volume = 40 worth_intrinsic = 85 diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index 09cb9d1497d..8e6e4f59f89 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -14,6 +14,7 @@ drop_sound = 'sound/items/drop/glass.ogg' pickup_sound = 'sound/items/pickup/glass.ogg' integrity_flags = INTEGRITY_ACIDPROOF + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR /obj/item/reagent_containers/dropper/examine(mob/user, dist) . = ..() diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index d9c40b610fb..3cd8e9f9908 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -152,6 +152,7 @@ base_icon_state = "beaker" item_state = "beaker" materials_base = list(MAT_GLASS = 500) + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR w_class = WEIGHT_CLASS_TINY drop_sound = 'sound/items/drop/glass.ogg' pickup_sound = 'sound/items/pickup/glass.ogg' diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 8ae3a212d15..f263b2e6e48 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -17,6 +17,7 @@ drop_sound = 'sound/items/drop/gun.ogg' pickup_sound = 'sound/items/pickup/gun.ogg' preserve_item = 1 + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR var/filled = 0 var/list/filled_reagents = list() var/hyposound // What sound do we play on use? diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 3f1accd9608..e94670401cf 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -11,6 +11,7 @@ drop_sound = 'sound/items/drop/food.ogg' pickup_sound = 'sound/items/pickup/food.ogg' rad_flags = RAD_NO_CONTAMINATE + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR possible_transfer_amounts = null w_class = WEIGHT_CLASS_TINY diff --git a/code/modules/reagents/reagent_containers/syringe.dm b/code/modules/reagents/reagent_containers/syringe.dm index 83398bfb9ad..626c26f720d 100644 --- a/code/modules/reagents/reagent_containers/syringe.dm +++ b/code/modules/reagents/reagent_containers/syringe.dm @@ -14,6 +14,7 @@ integrity_flags = INTEGRITY_ACIDPROOF rad_flags = RAD_NO_CONTAMINATE item_flags = ITEM_NO_BLUDGEON | ITEM_ENCUMBERS_WHILE_HELD | ITEM_EASY_LATHE_DECONSTRUCT + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR var/mode = SYRINGE_DRAW var/image/filling //holds a reference to the current filling overlay var/visible_name = "a syringe" diff --git a/code/modules/shuttles/landmarks.dm b/code/modules/shuttles/landmarks.dm index 687609659d6..e714ffef2cc 100644 --- a/code/modules/shuttles/landmarks.dm +++ b/code/modules/shuttles/landmarks.dm @@ -166,6 +166,7 @@ desc = "Burst transmitter used to broadcast all needed information for shuttle navigation systems. Has a flare attached for marking the spot where you probably shouldn't be standing." icon_state = "bluflare" light_color = "#3728ff" + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/active /obj/item/spaceflare/attack_self(mob/user, datum/event_args/actor/actor) diff --git a/code/modules/vore/fluffstuff/custom_clothes.dm b/code/modules/vore/fluffstuff/custom_clothes.dm index 78e8f9edd64..10eaf479c39 100644 --- a/code/modules/vore/fluffstuff/custom_clothes.dm +++ b/code/modules/vore/fluffstuff/custom_clothes.dm @@ -112,7 +112,6 @@ gas_transfer_coefficient = 0.01 permeability_coefficient = 0.02 body_cover_flags = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS - allowed = list(/obj/item/flashlight,/obj/item/tank) armor_type = /datum/armor/none inv_hide_flags = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT cold_protection_cover = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS @@ -217,14 +216,6 @@ icon_override = 'icons/vore/custom_clothes_vr.dmi' body_cover_flags = UPPER_TORSO|LOWER_TORSO|ARMS permeability_coefficient = 0.50 - allowed = list( - /obj/item/flashlight, /obj/item/atmos_analyzer, - /obj/item/radio, /obj/item/tank/emergency/oxygen, - /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, - /obj/item/reagent_containers/dropper,/obj/item/reagent_containers/syringe, - /obj/item/reagent_containers/glass/bottle,/obj/item/reagent_containers/glass/beaker, - /obj/item/reagent_containers/pill,/obj/item/storage/pill_bottle - ) armor_type = /datum/armor/security/light_formalwear /obj/item/clothing/suit/storage/trek/ds9/equipped(mob/user, slot, flags) diff --git a/code/modules/vore/fluffstuff/custom_items.dm b/code/modules/vore/fluffstuff/custom_items.dm index 0a0e322721d..166a400d6f4 100644 --- a/code/modules/vore/fluffstuff/custom_items.dm +++ b/code/modules/vore/fluffstuff/custom_items.dm @@ -1191,7 +1191,6 @@ origin_tech = list(TECH_MATERIAL = 2, TECH_COMBAT = 1) item_icons = list(SLOT_ID_LEFT_HAND = 'icons/mob/items/lefthand_melee.dmi', SLOT_ID_RIGHT_HAND = 'icons/mob/items/righthand_melee.dmi', SLOT_ID_BACK = 'icons/vore/custom_items_vr.dmi', SLOT_ID_SUIT = 'icons/vore/custom_items_vr.dmi') var/active_state = "wolfgirlsword" - allowed = list(/obj/item/shield/fluff/wolfgirlshield) damage_type = DAMAGE_TYPE_HALLOSS /obj/item/melee/fluffstuff/wolfgirlsword/dropped(mob/user, flags, atom/newLoc) diff --git a/code/modules/xenoarcheaology/sampling.dm b/code/modules/xenoarcheaology/sampling.dm index 3443b48d9f0..8ee7704f6ce 100644 --- a/code/modules/xenoarcheaology/sampling.dm +++ b/code/modules/xenoarcheaology/sampling.dm @@ -23,6 +23,7 @@ item_state = "screwdriver_brown" w_class = WEIGHT_CLASS_TINY worth_intrinsic = 50 + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/sampled_turf = "" var/num_stored_bags = 10 diff --git a/code/modules/xenoarcheaology/tools/equipment.dm b/code/modules/xenoarcheaology/tools/equipment.dm index 2c25abf6477..1c73c9b04f4 100644 --- a/code/modules/xenoarcheaology/tools/equipment.dm +++ b/code/modules/xenoarcheaology/tools/equipment.dm @@ -29,7 +29,6 @@ icon_state = "cespace_suit" item_state = "cespace_suit" armor_type = /datum/armor/general/biosuit/anomaly - allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/suit_cooling_unit,/obj/item/pickaxe) encumbrance = ITEM_ENCUMBRANCE_VOIDSUIT_ANOMALY weight = ITEM_WEIGHT_VOIDSUIT_ANOMALY // Pressure protection inherited from space suits diff --git a/code/modules/xenoarcheaology/tools/tools.dm b/code/modules/xenoarcheaology/tools/tools.dm index 0ebc853bf99..d80e02ebfe6 100644 --- a/code/modules/xenoarcheaology/tools/tools.dm +++ b/code/modules/xenoarcheaology/tools/tools.dm @@ -6,6 +6,7 @@ origin_tech = list(TECH_MATERIAL = 1) materials_base = list(MAT_STEEL = 100) w_class = WEIGHT_CLASS_SMALL + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR /obj/item/storage/bag/fossils name = "Fossil Satchel" @@ -18,6 +19,7 @@ max_combined_volume = WEIGHT_VOLUME_NORMAL * 50 max_single_weight_class = WEIGHT_CLASS_NORMAL insertion_whitelist = list(/obj/item/fossil) + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR /obj/item/storage/box/samplebags name = "sample bag box" @@ -40,6 +42,7 @@ materials_base = list(MAT_STEEL = 10000, MAT_GLASS = 5000) w_class = WEIGHT_CLASS_SMALL slot_flags = SLOT_BELT + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/last_scan_time = 0 var/scan_delay = 25 @@ -101,6 +104,7 @@ materials_base = list(MAT_STEEL = 1000, MAT_GLASS = 1000) w_class = WEIGHT_CLASS_SMALL slot_flags = SLOT_BELT + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/list/positive_locations = list() var/datum/depth_scan/current @@ -233,6 +237,7 @@ item_state = "electronic" origin_tech = list(TECH_MAGNET = 3, TECH_ENGINEERING = 2, TECH_BLUESPACE = 3) materials_base = list(MAT_STEEL = 1000, MAT_GLASS = 500) + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/frequency = FREQ_COMMON var/scan_ticks = 0 var/obj/item/radio/target_radio @@ -338,6 +343,7 @@ w_class = WEIGHT_CLASS_SMALL slot_flags = SLOT_BELT worth_intrinsic = 250 + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR var/mode = 1 //Start off scanning. 1 = scanning, 0 = measuring var/obj/item/ano_scanner/anomaly_scanner = null var/obj/item/depth_scanner/depth_scanner = null diff --git a/code/modules/xenoarcheaology/tools/tools_pickaxe.dm b/code/modules/xenoarcheaology/tools/tools_pickaxe.dm index 063f1ccdcc7..479fb7ae31d 100644 --- a/code/modules/xenoarcheaology/tools/tools_pickaxe.dm +++ b/code/modules/xenoarcheaology/tools/tools_pickaxe.dm @@ -12,6 +12,7 @@ drill_sound = 'sound/weapons/thudswoosh.ogg' drill_verb = "brushing" w_class = WEIGHT_CLASS_SMALL + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR /obj/item/pickaxe/one_pick name = "2cm pick" @@ -25,6 +26,7 @@ drill_sound = 'sound/items/Screwdriver.ogg' drill_verb = "delicately picking" w_class = WEIGHT_CLASS_SMALL + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR /obj/item/pickaxe/two_pick name = "4cm pick" @@ -38,6 +40,7 @@ drill_sound = 'sound/items/Screwdriver.ogg' drill_verb = "delicately picking" w_class = WEIGHT_CLASS_SMALL + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR /obj/item/pickaxe/three_pick name = "6cm pick" @@ -51,6 +54,7 @@ drill_sound = 'sound/items/Screwdriver.ogg' drill_verb = "delicately picking" w_class = WEIGHT_CLASS_SMALL + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR /obj/item/pickaxe/four_pick name = "8cm pick" @@ -64,6 +68,7 @@ drill_sound = 'sound/items/Screwdriver.ogg' drill_verb = "delicately picking" w_class = WEIGHT_CLASS_SMALL + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR /obj/item/pickaxe/five_pick name = "10cm pick" @@ -77,6 +82,7 @@ drill_sound = 'sound/items/Screwdriver.ogg' drill_verb = "delicately picking" w_class = WEIGHT_CLASS_SMALL + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR /obj/item/pickaxe/six_pick name = "12cm pick" @@ -90,6 +96,7 @@ drill_sound = 'sound/items/Screwdriver.ogg' drill_verb = "delicately picking" w_class = WEIGHT_CLASS_SMALL + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR /obj/item/pickaxe/hand name = "hand pickaxe" @@ -103,6 +110,7 @@ drill_sound = 'sound/items/Crowbar.ogg' drill_verb = "clearing" w_class = WEIGHT_CLASS_SMALL + suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR | SUIT_STORAGE_CLASS_HARDWEAR //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Pack for holding pickaxes diff --git a/dependencies.sh b/dependencies.sh index cfa9b2e42ed..a659f750fb3 100755 --- a/dependencies.sh +++ b/dependencies.sh @@ -17,7 +17,7 @@ export RUST_G_VERSION=3.0.0-experimental-graph-ops export NODE_VERSION_LTS=22.19.0 # SpacemanDMM git tag -export SPACEMAN_DMM_VERSION=suite-1.10 +export SPACEMAN_DMM_VERSION=suite-1.11 # Python version for mapmerge and other tools export PYTHON_VERSION=3.12.0