From 3178b95b6cab8784b928909965fa4ff11d16f2dd Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Sun, 18 Feb 2018 13:03:05 -0600 Subject: [PATCH] POLARIS: Moves most boxes to use starts_with --- .../objects/items/weapons/storage/backpack.dm | 28 +- .../objects/items/weapons/storage/bags.dm | 187 +++++---- .../objects/items/weapons/storage/belt.dm | 103 +++-- .../objects/items/weapons/storage/bible.dm | 13 +- .../objects/items/weapons/storage/boxes.dm | 385 ++++-------------- .../objects/items/weapons/storage/fancy.dm | 102 ++--- .../objects/items/weapons/storage/firstaid.dm | 335 +++++---------- .../objects/items/weapons/storage/lockbox.dm | 36 +- .../objects/items/weapons/storage/misc.dm | 11 +- .../objects/items/weapons/storage/secure.dm | 17 +- .../objects/items/weapons/storage/storage.dm | 4 +- .../objects/items/weapons/storage/toolbox.dm | 93 +++-- .../items/weapons/storage/uplink_kits.dm | 339 +++++++-------- .../objects/items/weapons/storage/wallets.dm | 2 +- code/modules/power/cable.dm | 6 + icons/mob/items/lefthand_storage.dmi | Bin 23274 -> 23374 bytes icons/mob/items/righthand_storage.dmi | Bin 23341 -> 23540 bytes 17 files changed, 623 insertions(+), 1038 deletions(-) diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index c564ebe4662..10072cd4cc2 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -47,22 +47,18 @@ max_storage_space = ITEMSIZE_COST_NORMAL * 14 // 56 storage_cost = INVENTORY_STANDARD_SPACE + 1 - New() - ..() +/obj/item/weapon/storage/backpack/holding/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/storage/backpack/holding)) + user << "The Bluespace interfaces of the two devices conflict and malfunction." + qdel(W) return + . = ..() - attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/storage/backpack/holding)) - user << "The Bluespace interfaces of the two devices conflict and malfunction." - qdel(W) - return - ..() - - //Please don't clutter the parent storage item with stupid hacks. - can_be_inserted(obj/item/W as obj, stop_messages = 0) - if(istype(W, /obj/item/weapon/storage/backpack/holding)) - return 1 - return ..() +//Please don't clutter the parent storage item with stupid hacks. +/obj/item/weapon/storage/backpack/holding/can_be_inserted(obj/item/W as obj, stop_messages = 0) + if(istype(W, /obj/item/weapon/storage/backpack/holding)) + return 1 + return ..() /obj/item/weapon/storage/backpack/santabag name = "\improper Santa's gift bag" @@ -197,9 +193,7 @@ item_state_slots = list(slot_r_hand_str = "briefcase", slot_l_hand_str = "briefcase") /obj/item/weapon/storage/backpack/satchel/withwallet - New() - ..() - new /obj/item/weapon/storage/wallet/random( src ) + starts_with = list(/obj/item/weapon/storage/wallet/random) /obj/item/weapon/storage/backpack/satchel/norm name = "satchel" diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index 01ca1c77966..165855e50ef 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -112,121 +112,116 @@ storage_slots = 7 allow_quick_empty = 1 // this function is superceded - New() - ..() - //verbs -= /obj/item/weapon/storage/verb/quick_empty - //verbs += /obj/item/weapon/storage/bag/sheetsnatcher/quick_empty - can_be_inserted(obj/item/W as obj, stop_messages = 0) - if(!istype(W,/obj/item/stack/material)) - if(!stop_messages) - usr << "The snatcher does not accept [W]." - return 0 - var/current = 0 - for(var/obj/item/stack/material/S in contents) - current += S.amount - if(capacity == current)//If it's full, you're done - if(!stop_messages) - usr << "The snatcher is full." - return 0 - return 1 +/obj/item/weapon/storage/bag/sheetsnatcher/can_be_inserted(obj/item/W as obj, stop_messages = 0) + if(!istype(W,/obj/item/stack/material)) + if(!stop_messages) + usr << "The snatcher does not accept [W]." + return 0 + var/current = 0 + for(var/obj/item/stack/material/S in contents) + current += S.amount + if(capacity == current)//If it's full, you're done + if(!stop_messages) + usr << "The snatcher is full." + return 0 + return 1 // Modified handle_item_insertion. Would prefer not to, but... - handle_item_insertion(obj/item/W as obj, prevent_warning = 0) - var/obj/item/stack/material/S = W - if(!istype(S)) return 0 +/obj/item/weapon/storage/bag/sheetsnatcher/handle_item_insertion(obj/item/W as obj, prevent_warning = 0) + var/obj/item/stack/material/S = W + if(!istype(S)) return 0 - var/amount - var/inserted = 0 - var/current = 0 - for(var/obj/item/stack/material/S2 in contents) - current += S2.amount - if(capacity < current + S.amount)//If the stack will fill it up - amount = capacity - current + var/amount + var/inserted = 0 + var/current = 0 + for(var/obj/item/stack/material/S2 in contents) + current += S2.amount + if(capacity < current + S.amount)//If the stack will fill it up + amount = capacity - current + else + amount = S.amount + + for(var/obj/item/stack/material/sheet in contents) + if(S.type == sheet.type) // we are violating the amount limitation because these are not sane objects + sheet.amount += amount // they should only be removed through procs in this file, which split them up. + S.amount -= amount + inserted = 1 + break + + if(!inserted || !S.amount) + usr.remove_from_mob(S) + usr.update_icons() //update our overlays + if (usr.client && usr.s_active != src) + usr.client.screen -= S + S.dropped(usr) + if(!S.amount) + qdel(S) else - amount = S.amount + S.loc = src - for(var/obj/item/stack/material/sheet in contents) - if(S.type == sheet.type) // we are violating the amount limitation because these are not sane objects - sheet.amount += amount // they should only be removed through procs in this file, which split them up. - S.amount -= amount - inserted = 1 - break - - if(!inserted || !S.amount) - usr.remove_from_mob(S) - usr.update_icons() //update our overlays - if (usr.client && usr.s_active != src) - usr.client.screen -= S - S.dropped(usr) - if(!S.amount) - qdel(S) - else - S.loc = src - - orient2hud(usr) - if(usr.s_active) - usr.s_active.show_to(usr) - update_icon() - return 1 + orient2hud(usr) + if(usr.s_active) + usr.s_active.show_to(usr) + update_icon() + return 1 // Sets up numbered display to show the stack size of each stored mineral // NOTE: numbered display is turned off currently because it's broken - orient2hud(mob/user as mob) - var/adjusted_contents = contents.len +/obj/item/weapon/storage/bag/sheetsnatcher/orient2hud(mob/user as mob) + var/adjusted_contents = contents.len - //Numbered contents display - var/list/datum/numbered_display/numbered_contents - if(display_contents_with_number) - numbered_contents = list() - adjusted_contents = 0 - for(var/obj/item/stack/material/I in contents) - adjusted_contents++ - var/datum/numbered_display/D = new/datum/numbered_display(I) - D.number = I.amount - numbered_contents.Add( D ) - - var/row_num = 0 - var/col_count = min(7,storage_slots) -1 - if (adjusted_contents > 7) - row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. - src.slot_orient_objs(row_num, col_count, numbered_contents) - return + //Numbered contents display + var/list/datum/numbered_display/numbered_contents + if(display_contents_with_number) + numbered_contents = list() + adjusted_contents = 0 + for(var/obj/item/stack/material/I in contents) + adjusted_contents++ + var/datum/numbered_display/D = new/datum/numbered_display(I) + D.number = I.amount + numbered_contents.Add( D ) + var/row_num = 0 + var/col_count = min(7,storage_slots) -1 + if (adjusted_contents > 7) + row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. + src.slot_orient_objs(row_num, col_count, numbered_contents) + return // Modified quick_empty verb drops appropriate sized stacks - quick_empty() - var/location = get_turf(src) - for(var/obj/item/stack/material/S in contents) - while(S.amount) - var/obj/item/stack/material/N = new S.type(location) - var/stacksize = min(S.amount,N.max_amount) - N.amount = stacksize - S.amount -= stacksize - if(!S.amount) - qdel(S) // todo: there's probably something missing here - orient2hud(usr) - if(usr.s_active) - usr.s_active.show_to(usr) - update_icon() +/obj/item/weapon/storage/bag/sheetsnatcher/quick_empty() + var/location = get_turf(src) + for(var/obj/item/stack/material/S in contents) + while(S.amount) + var/obj/item/stack/material/N = new S.type(location) + var/stacksize = min(S.amount,N.max_amount) + N.amount = stacksize + S.amount -= stacksize + if(!S.amount) + qdel(S) // todo: there's probably something missing here + orient2hud(usr) + if(usr.s_active) + usr.s_active.show_to(usr) + update_icon() // Instead of removing - remove_from_storage(obj/item/W as obj, atom/new_location) - var/obj/item/stack/material/S = W - if(!istype(S)) return 0 +/obj/item/weapon/storage/bag/sheetsnatcher/remove_from_storage(obj/item/W as obj, atom/new_location) + var/obj/item/stack/material/S = W + if(!istype(S)) return 0 - //I would prefer to drop a new stack, but the item/attack_hand code - // that calls this can't recieve a different object than you clicked on. - //Therefore, make a new stack internally that has the remainder. - // -Sayu + //I would prefer to drop a new stack, but the item/attack_hand code + // that calls this can't recieve a different object than you clicked on. + //Therefore, make a new stack internally that has the remainder. + // -Sayu - if(S.amount > S.max_amount) - var/obj/item/stack/material/temp = new S.type(src) - temp.amount = S.amount - S.max_amount - S.amount = S.max_amount + if(S.amount > S.max_amount) + var/obj/item/stack/material/temp = new S.type(src) + temp.amount = S.amount - S.max_amount + S.amount = S.max_amount - return ..(S,new_location) + return ..(S,new_location) // ----------------------------- // Sheet Snatcher (Cyborg) diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 9e98fe58eca..23fccf51ac8 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -59,23 +59,25 @@ /obj/item/device/integrated_electronics/wirer, ) -/obj/item/weapon/storage/belt/utility/full/New() - ..() - new /obj/item/weapon/screwdriver(src) - new /obj/item/weapon/wrench(src) - new /obj/item/weapon/weldingtool(src) - new /obj/item/weapon/crowbar(src) - new /obj/item/weapon/wirecutters(src) - new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange")) +/obj/item/weapon/storage/belt/utility/full + starts_with = list( + /obj/item/weapon/screwdriver, + /obj/item/weapon/wrench, + /obj/item/weapon/weldingtool, + /obj/item/weapon/crowbar, + /obj/item/weapon/wirecutters, + /obj/item/stack/cable_coil/random_belt + ) -/obj/item/weapon/storage/belt/utility/atmostech/New() - ..() - new /obj/item/weapon/screwdriver(src) - new /obj/item/weapon/wrench(src) - new /obj/item/weapon/weldingtool(src) - new /obj/item/weapon/crowbar(src) - new /obj/item/weapon/wirecutters(src) - new /obj/item/device/t_scanner(src) +/obj/item/weapon/storage/belt/utility/atmostech + starts_with = list( + /obj/item/weapon/screwdriver, + /obj/item/weapon/wrench, + /obj/item/weapon/weldingtool, + /obj/item/weapon/crowbar, + /obj/item/weapon/wirecutters, + /obj/item/device/t_scanner + ) /obj/item/weapon/storage/belt/utility/chief name = "chief engineer's toolbelt" @@ -83,15 +85,16 @@ icon_state = "utilitybelt_ce" item_state = "utility_ce" -/obj/item/weapon/storage/belt/utility/chief/full/New() - ..() - new /obj/item/weapon/screwdriver/power(src) - new /obj/item/weapon/crowbar/power(src) - new /obj/item/weapon/weldingtool/experimental(src) - new /obj/item/device/multitool(src) - new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange")) - new /obj/item/weapon/extinguisher/mini(src) - new /obj/item/device/analyzer(src) +/obj/item/weapon/storage/belt/utility/chief/full + starts_with = list( + /obj/item/weapon/screwdriver/power, + /obj/item/weapon/crowbar/power, + /obj/item/weapon/weldingtool/experimental, + /obj/item/device/multitool, + /obj/item/stack/cable_coil/random_belt, + /obj/item/weapon/extinguisher/mini, + /obj/item/device/analyzer + ) /obj/item/weapon/storage/belt/medical name = "medical belt" @@ -216,14 +219,8 @@ /obj/item/device/soulstone ) -/obj/item/weapon/storage/belt/soulstone/full/New() - ..() - new /obj/item/device/soulstone(src) - new /obj/item/device/soulstone(src) - new /obj/item/device/soulstone(src) - new /obj/item/device/soulstone(src) - new /obj/item/device/soulstone(src) - new /obj/item/device/soulstone(src) +/obj/item/weapon/storage/belt/soulstone/full + starts_with = list(/obj/item/device/soulstone = 6) /obj/item/weapon/storage/belt/utility/alien name = "alien belt" @@ -232,15 +229,16 @@ icon_state = "belt" item_state = "security" -/obj/item/weapon/storage/belt/utility/alien/full/New() - ..() - new /obj/item/weapon/screwdriver/alien(src) - new /obj/item/weapon/wrench/alien(src) - new /obj/item/weapon/weldingtool/alien(src) - new /obj/item/weapon/crowbar/alien(src) - new /obj/item/weapon/wirecutters/alien(src) - new /obj/item/device/multitool/alien(src) - new /obj/item/stack/cable_coil/alien(src) +/obj/item/weapon/storage/belt/utility/alien/full + starts_with = list( + /obj/item/weapon/screwdriver/alien, + /obj/item/weapon/wrench/alien, + /obj/item/weapon/weldingtool/alien, + /obj/item/weapon/crowbar/alien, + /obj/item/weapon/wirecutters/alien, + /obj/item/device/multitool/alien, + /obj/item/stack/cable_coil/alien + ) /obj/item/weapon/storage/belt/medical/alien name = "alien belt" @@ -277,16 +275,17 @@ /obj/item/weapon/surgical ) -/obj/item/weapon/storage/belt/medical/alien/New() - ..() - new /obj/item/weapon/surgical/scalpel/alien(src) - new /obj/item/weapon/surgical/hemostat/alien(src) - new /obj/item/weapon/surgical/retractor/alien(src) - new /obj/item/weapon/surgical/circular_saw/alien(src) - new /obj/item/weapon/surgical/FixOVein/alien(src) - new /obj/item/weapon/surgical/bone_clamp/alien(src) - new /obj/item/weapon/surgical/cautery/alien(src) - new /obj/item/weapon/surgical/surgicaldrill/alien(src) +/obj/item/weapon/storage/belt/medical/alien + starts_with = list( + /obj/item/weapon/surgical/scalpel/alien, + /obj/item/weapon/surgical/hemostat/alien, + /obj/item/weapon/surgical/retractor/alien, + /obj/item/weapon/surgical/circular_saw/alien, + /obj/item/weapon/surgical/FixOVein/alien, + /obj/item/weapon/surgical/bone_clamp/alien, + /obj/item/weapon/surgical/cautery/alien, + /obj/item/weapon/surgical/surgicaldrill/alien + ) /obj/item/weapon/storage/belt/champion name = "championship belt" diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm index 933970b335b..783d8cd74ae 100644 --- a/code/game/objects/items/weapons/storage/bible.dm +++ b/code/game/objects/items/weapons/storage/bible.dm @@ -14,12 +14,13 @@ icon_state ="bible" /obj/item/weapon/storage/bible/booze/New() - ..() - new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer(src) - new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer(src) - new /obj/item/weapon/spacecash/c100(src) - new /obj/item/weapon/spacecash/c100(src) - new /obj/item/weapon/spacecash/c100(src) + starts_with = list( + /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer, + /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer, + /obj/item/weapon/spacecash/c100, + /obj/item/weapon/spacecash/c100, + /obj/item/weapon/spacecash/c100 + ) /obj/item/weapon/storage/bible/afterattack(atom/A, mob/user as mob, proximity) if(!proximity) return diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 8e4fb5f6cfa..5f3bbcc0c3c 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -75,393 +75,250 @@ name = "box of latex gloves" desc = "Contains white gloves." icon_state = "latex" - -/obj/item/weapon/storage/box/gloves/New() - ..() - for(var/i = 1 to 7) - new /obj/item/clothing/gloves/sterile/latex(src) + starts_with = list(/obj/item/clothing/gloves/sterile/latex = 7) /obj/item/weapon/storage/box/masks name = "box of sterile masks" desc = "This box contains masks of sterility." icon_state = "sterile" - -/obj/item/weapon/storage/box/masks/New() - ..() - for(var/i = 1 to 7) - new /obj/item/clothing/mask/surgical(src) + starts_with = list(/obj/item/clothing/mask/surgical = 7) /obj/item/weapon/storage/box/syringes name = "box of syringes" desc = "A box full of syringes." icon_state = "syringe" - -/obj/item/weapon/storage/box/syringes/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/reagent_containers/syringe(src) + starts_with = list(/obj/item/weapon/reagent_containers/syringe = 7) /obj/item/weapon/storage/box/syringegun name = "box of syringe gun cartridges" desc = "A box full of compressed gas cartridges." icon_state = "syringe" - -/obj/item/weapon/storage/box/syringegun/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/syringe_cartridge(src) + starts_with = list(/obj/item/weapon/syringe_cartridge = 7) /obj/item/weapon/storage/box/beakers name = "box of beakers" icon_state = "beaker" - -/obj/item/weapon/storage/box/beakers/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/reagent_containers/glass/beaker(src) + starts_with = list(/obj/item/weapon/reagent_containers/glass/beaker = 7) /obj/item/weapon/storage/box/injectors name = "box of DNA injectors" desc = "This box contains injectors it seems." - -/obj/item/weapon/storage/box/injectors/New() - ..() - for(var/i = 1 to 3) - new /obj/item/weapon/dnainjector/h2m(src) - for(var/i = 1 to 3) - new /obj/item/weapon/dnainjector/m2h(src) + starts_with = list( + /obj/item/weapon/dnainjector/h2m = 3, + /obj/item/weapon/dnainjector/m2h = 3 + ) /obj/item/weapon/storage/box/blanks name = "box of blank shells" desc = "It has a picture of a gun and several warning symbols on the front." icon_state = "blankshot_box" item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") + starts_with = list(/obj/item/ammo_casing/a12g/blank = 8) -/obj/item/weapon/storage/box/blanks/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/blank(src) - -/obj/item/weapon/storage/box/blanks/large/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/blank(src) +/obj/item/weapon/storage/box/blanks/large + starts_with = list(/obj/item/ammo_casing/a12g/blank = 16) /obj/item/weapon/storage/box/beanbags name = "box of beanbag shells" desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." icon_state = "beanshot_box" item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") - -/obj/item/weapon/storage/box/beanbags/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/beanbag(src) + starts_with = list(/obj/item/ammo_casing/a12g/beanbag = 8) /obj/item/weapon/storage/box/beanbags/large/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/beanbag(src) + starts_with = list(/obj/item/ammo_casing/a12g/beanbag = 16) /obj/item/weapon/storage/box/shotgunammo name = "box of shotgun slugs" desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." icon_state = "lethalshellshot_box" item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") + starts_with = list(/obj/item/ammo_casing/a12g = 8) -/obj/item/weapon/storage/box/shotgunammo/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g(src) - -/obj/item/weapon/storage/box/shotgunammo/large/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g(src) +/obj/item/weapon/storage/box/shotgunammo/large + starts_with = list(/obj/item/ammo_casing/a12g = 16) /obj/item/weapon/storage/box/shotgunshells name = "box of shotgun shells" desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." icon_state = "lethalslug_box" item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") + starts_with = list(/obj/item/ammo_casing/a12g/pellet = 8) -/obj/item/weapon/storage/box/shotgunshells/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/pellet(src) - -/obj/item/weapon/storage/box/shotgunshells/large/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/pellet(src) +/obj/item/weapon/storage/box/shotgunshells/large + starts_with = list(/obj/item/ammo_casing/a12g/pellet = 16) /obj/item/weapon/storage/box/flashshells name = "box of illumination shells" desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." icon_state = "illumshot_box" item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") + starts_with = list(/obj/item/ammo_casing/a12g/flash = 8) -/obj/item/weapon/storage/box/flashshells/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/flash(src) - -/obj/item/weapon/storage/box/flashshells/large/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/flash(src) +/obj/item/weapon/storage/box/flashshells/large + starts_with = list(/obj/item/ammo_casing/a12g/flash = 16) /obj/item/weapon/storage/box/stunshells name = "box of stun shells" desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." icon_state = "stunshot_box" item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") + starts_with = list(/obj/item/ammo_casing/a12g/stunshell = 8) -/obj/item/weapon/storage/box/stunshells/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/stunshell(src) - -/obj/item/weapon/storage/box/stunshells/large/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/stunshell(src) +/obj/item/weapon/storage/box/stunshells/large + starts_with = list(/obj/item/ammo_casing/a12g/stunshell = 16) /obj/item/weapon/storage/box/practiceshells name = "box of practice shells" desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." icon_state = "blankshot_box" item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") + starts_with = list(/obj/item/ammo_casing/a12g/practice = 8) -/obj/item/weapon/storage/box/practiceshells/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/practice(src) - -/obj/item/weapon/storage/box/practiceshells/large/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/practice(src) +/obj/item/weapon/storage/box/practiceshells/large + starts_with = list(/obj/item/ammo_casing/a12g/practice = 16) /obj/item/weapon/storage/box/empshells name = "box of emp shells" desc = "It has a picture of a gun and several warning symbols on the front." icon_state = "empshot_box" item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") + starts_with = list(/obj/item/ammo_casing/a12g/emp = 8) -/obj/item/weapon/storage/box/empshells/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/emp(src) - -/obj/item/weapon/storage/box/empshells/large/New() - ..() - for(var/i = 1 to 8) - new /obj/item/ammo_casing/a12g/emp(src) +/obj/item/weapon/storage/box/empshells/large + starts_with = list(/obj/item/ammo_casing/a12g/emp = 16) /obj/item/weapon/storage/box/sniperammo name = "box of 14.5mm shells" desc = "It has a picture of a gun and several warning symbols on the front.
WARNING: Live ammunition. Misuse may result in serious injury or death." - -/obj/item/weapon/storage/box/sniperammo/New() - ..() - for(var/i = 1 to 7) - new /obj/item/ammo_casing/a145(src) + starts_with = list(/obj/item/ammo_casing/a145 = 7) /obj/item/weapon/storage/box/flashbangs name = "box of flashbangs (WARNING)" desc = "WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use." icon_state = "flashbang" - -/obj/item/weapon/storage/box/flashbangs/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/grenade/flashbang(src) + starts_with = list(/obj/item/weapon/grenade/flashbang = 7) /obj/item/weapon/storage/box/emps name = "box of emp grenades" desc = "A box containing 5 military grade EMP grenades.
WARNING: Do not use near unshielded electronics or biomechanical augmentations, death or permanent paralysis may occur." icon_state = "emp" - -/obj/item/weapon/storage/box/emps/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/grenade/empgrenade(src) + starts_with = list(/obj/item/weapon/grenade/empgrenade = 7) /obj/item/weapon/storage/box/empslite name = "box of low yield emp grenades" desc = "A box containing 5 low yield EMP grenades.
WARNING: Do not use near unshielded electronics or biomechanical augmentations, death or permanent paralysis may occur." icon_state = "emp" - -/obj/item/weapon/storage/box/empslite/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/grenade/empgrenade/low_yield(src) + starts_with = list(/obj/item/weapon/grenade/empgrenade/low_yield = 7) /obj/item/weapon/storage/box/smokes name = "box of smoke bombs" desc = "A box containing 7 smoke bombs." icon_state = "flashbang" - -/obj/item/weapon/storage/box/smokes/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/grenade/smokebomb(src) + starts_with = list(/obj/item/weapon/grenade/smokebomb = 7) /obj/item/weapon/storage/box/anti_photons name = "box of anti-photon grenades" desc = "A box containing 7 experimental photon disruption grenades." icon_state = "flashbang" - -/obj/item/weapon/storage/box/anti_photons/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/grenade/anti_photon(src) + starts_with = list(/obj/item/weapon/grenade/anti_photon = 7) /obj/item/weapon/storage/box/frags name = "box of fragmentation grenades (WARNING)" desc = "A box containing 7 military grade fragmentation grenades.
WARNING: These devices are extremely dangerous and can cause limb loss or death in repeated use." icon_state = "frag" - -/obj/item/weapon/storage/box/frags/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/grenade/explosive(src) + starts_with = list(/obj/item/weapon/grenade/explosive = 7) /obj/item/weapon/storage/box/frags_half_box name = "box of fragmentation grenades (WARNING)" desc = "A box containing 4 military grade fragmentation grenades.
WARNING: These devices are extremely dangerous and can cause limb loss or death in repeated use." icon_state = "frag" - -/obj/item/weapon/storage/box/frags_half_box/New() - ..() - for(var/i = 1 to 4) - new /obj/item/weapon/grenade/explosive(src) + starts_with = list(/obj/item/weapon/grenade/explosive = 4) /obj/item/weapon/storage/box/metalfoam name = "box of metal foam grenades." desc = "A box containing 7 metal foam grenades." icon_state = "flashbang" - -/obj/item/weapon/storage/box/metalfoam/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/grenade/chem_grenade/metalfoam(src) + starts_with = list(/obj/item/weapon/grenade/chem_grenade/metalfoam = 7) /obj/item/weapon/storage/box/teargas name = "box of teargas grenades" desc = "A box containing 7 teargas grenades." icon_state = "flashbang" - -/obj/item/weapon/storage/box/teargas/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/grenade/chem_grenade/teargas(src) + starts_with = list(/obj/item/weapon/grenade/chem_grenade/teargas = 7) /obj/item/weapon/storage/box/flare name = "box of flares" desc = "A box containing 4 flares." - -/obj/item/weapon/storage/box/flare/New() - ..() - for(var/i = 1 to 4) - new /obj/item/device/flashlight/flare(src) + starts_with = list(/obj/item/device/flashlight/flare = 4) /obj/item/weapon/storage/box/trackimp name = "boxed tracking implant kit" desc = "Box full of scum-bag tracking utensils." icon_state = "implant" - -/obj/item/weapon/storage/box/trackimp/New() - ..() - for(var/i = 1 to 4) - new /obj/item/weapon/implantcase/tracking(src) - new /obj/item/weapon/implanter(src) - new /obj/item/weapon/implantpad(src) - new /obj/item/weapon/locator(src) + starts_with = list( + /obj/item/weapon/implantcase/tracking = 4, + /obj/item/weapon/implanter, + /obj/item/weapon/implantpad, + /obj/item/weapon/locator + ) /obj/item/weapon/storage/box/chemimp name = "boxed chemical implant kit" desc = "Box of stuff used to implant chemicals." icon_state = "implant" - -/obj/item/weapon/storage/box/chemimp/New() - ..() - for(var/i = 1 to 5) - new /obj/item/weapon/implantcase/chem(src) - new /obj/item/weapon/implanter(src) - new /obj/item/weapon/implantpad(src) + starts_with = list( + /obj/item/weapon/implantcase/chem = 5, + /obj/item/weapon/implanter, + /obj/item/weapon/implantpad + ) /obj/item/weapon/storage/box/camerabug name = "mobile camera pod box" desc = "A box containing some mobile camera pods." icon_state = "pda" - -/obj/item/weapon/storage/box/camerabug/New() - ..() - for(var/i = 1 to 6) - new /obj/item/device/camerabug(src) - new /obj/item/device/bug_monitor(src) + starts_with = list( + /obj/item/device/camerabug = 6, + /obj/item/device/bug_monitor + ) /obj/item/weapon/storage/box/rxglasses name = "box of prescription glasses" desc = "This box contains nerd glasses." icon_state = "glasses" - -/obj/item/weapon/storage/box/rxglasses/New() - ..() - for(var/i = 1 to 7) - new /obj/item/clothing/glasses/regular(src) + starts_with = list(/obj/item/clothing/glasses/regular = 7) /obj/item/weapon/storage/box/cdeathalarm_kit name = "death alarm kit" desc = "Box of stuff used to implant death alarms." icon_state = "implant" item_state_slots = list(slot_r_hand_str = "syringe_kit", slot_l_hand_str = "syringe_kit") - -/obj/item/weapon/storage/box/cdeathalarm_kit/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/implantcase/death_alarm(src) - new /obj/item/weapon/implanter(src) + starts_with = list( + /obj/item/weapon/implantcase/death_alarm = 7, + /obj/item/weapon/implanter + ) /obj/item/weapon/storage/box/condimentbottles name = "box of condiment bottles" desc = "It has a large ketchup smear on it." - -/obj/item/weapon/storage/box/condimentbottles/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/reagent_containers/food/condiment(src) + starts_with = list(/obj/item/weapon/reagent_containers/food/condiment = 7) /obj/item/weapon/storage/box/cups name = "box of paper cups" desc = "It has pictures of paper cups on the front." - -/obj/item/weapon/storage/box/cups/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/reagent_containers/food/drinks/sillycup(src) + starts_with = list(/obj/item/weapon/reagent_containers/food/drinks/sillycup = 7) /obj/item/weapon/storage/box/donkpockets name = "box of donk-pockets" desc = "Instructions: Heat in microwave. Product will cool if not eaten within seven minutes." icon_state = "donk_kit" - -/obj/item/weapon/storage/box/donkpockets/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) + starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/donkpocket = 7) /obj/item/weapon/storage/box/sinpockets name = "box of sin-pockets" desc = "Instructions: Crush bottom of package to initiate chemical heating. Wait for 20 seconds before consumption. Product will cool if not eaten within seven minutes." icon_state = "donk_kit" - -/obj/item/weapon/storage/box/sinpockets/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket(src) + starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket = 7) /obj/item/weapon/storage/box/monkeycubes name = "monkey cube box" @@ -469,88 +326,51 @@ icon = 'icons/obj/food.dmi' icon_state = "monkeycubebox" can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube) - -/obj/item/weapon/storage/box/monkeycubes/New() - ..() - if(type == /obj/item/weapon/storage/box/monkeycubes) - for(var/i = 1 to 4) - new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped(src) + starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped = 4) /obj/item/weapon/storage/box/monkeycubes/farwacubes name = "farwa cube box" desc = "Drymate brand farwa cubes, shipped from Meralar. Just add water!" - -/obj/item/weapon/storage/box/monkeycubes/farwacubes/New() - ..() - for(var/i = 1 to 4) - new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/farwacube(src) + starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/farwacube = 4) /obj/item/weapon/storage/box/monkeycubes/stokcubes name = "stok cube box" desc = "Drymate brand stok cubes, shipped from Moghes. Just add water!" - -/obj/item/weapon/storage/box/monkeycubes/stokcubes/New() - ..() - for(var/i = 1 to 4) - new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/stokcube(src) + starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/stokcube = 4) /obj/item/weapon/storage/box/monkeycubes/neaeracubes name = "neaera cube box" desc = "Drymate brand neaera cubes, shipped from Jargon 4. Just add water!" - -/obj/item/weapon/storage/box/monkeycubes/neaeracubes/New() - ..() - for(var/i = 1 to 4) - new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/neaeracube(src) + starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped/neaeracube = 4) /obj/item/weapon/storage/box/ids name = "box of spare IDs" desc = "Has so many empty IDs." icon_state = "id" - -/obj/item/weapon/storage/box/ids/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/card/id(src) + starts_with = list(/obj/item/weapon/card/id = 7) /obj/item/weapon/storage/box/seccarts name = "box of spare R.O.B.U.S.T. Cartridges" desc = "A box full of R.O.B.U.S.T. Cartridges, used by Security." icon_state = "pda" - -/obj/item/weapon/storage/box/seccarts/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/cartridge/security(src) + starts_with = list(/obj/item/weapon/cartridge/security = 7) /obj/item/weapon/storage/box/handcuffs name = "box of spare handcuffs" desc = "A box full of handcuffs." icon_state = "handcuff" - -/obj/item/weapon/storage/box/handcuffs/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/handcuffs(src) + starts_with = list(/obj/item/weapon/handcuffs = 7) /obj/item/weapon/storage/box/mousetraps name = "box of Pest-B-Gon mousetraps" desc = "WARNING: Keep out of reach of children." icon_state = "mousetraps" - -/obj/item/weapon/storage/box/mousetraps/New() - ..() - for(var/i = 1 to 7) - new /obj/item/device/assembly/mousetrap(src) + starts_with = list(/obj/item/device/assembly/mousetrap = 7) /obj/item/weapon/storage/box/pillbottles name = "box of pill bottles" desc = "It has pictures of pill bottles on its front." - -/obj/item/weapon/storage/box/pillbottles/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/storage/pill_bottle(src) + starts_with = list(/obj/item/weapon/storage/pill_bottle = 7) /obj/item/weapon/storage/box/snappops name = "snap pop box" @@ -558,11 +378,7 @@ icon = 'icons/obj/toy.dmi' icon_state = "spbox" can_hold = list(/obj/item/toy/snappop) - -/obj/item/weapon/storage/box/snappops/New() - ..() - for(var/i = 1 to 8) - new /obj/item/toy/snappop(src) + starts_with = list(/obj/item/toy/snappop = 8) /obj/item/weapon/storage/box/matches name = "matchbox" @@ -572,11 +388,7 @@ w_class = ITEMSIZE_TINY slot_flags = SLOT_BELT can_hold = list(/obj/item/weapon/flame/match) - -/obj/item/weapon/storage/box/matches/New() - ..() - for(var/i=1 to 10) - new /obj/item/weapon/flame/match(src) + starts_with = list(/obj/item/weapon/flame/match = 10) /obj/item/weapon/storage/box/matches/attackby(obj/item/weapon/flame/match/W as obj, mob/user as mob) if(istype(W) && !W.lit && !W.burnt) @@ -591,11 +403,7 @@ name = "box of injectors" desc = "Contains autoinjectors." icon_state = "syringe" - -/obj/item/weapon/storage/box/autoinjectors/New() - ..() - for (var/i = 1 to 7) - new /obj/item/weapon/reagent_containers/hypospray/autoinjector(src) + starts_with = list(/obj/item/weapon/reagent_containers/hypospray/autoinjector = 7) /obj/item/weapon/storage/box/lights name = "box of replacement bulbs" @@ -608,30 +416,21 @@ max_storage_space = ITEMSIZE_COST_SMALL * 24 //holds 24 items of w_class 2 use_to_pickup = 1 // for picking up broken bulbs, not that most people will try -/obj/item/weapon/storage/box/lights/bulbs/New() - ..() - for(var/i = 1 to 24) - new /obj/item/weapon/light/bulb(src) +/obj/item/weapon/storage/box/lights/bulbs + starts_with = list(/obj/item/weapon/light/bulb = 24) /obj/item/weapon/storage/box/lights/tubes name = "box of replacement tubes" icon_state = "lighttube" - -/obj/item/weapon/storage/box/lights/tubes/New() - ..() - for(var/i = 1 to 24) - new /obj/item/weapon/light/tube(src) + starts_with = list(/obj/item/weapon/light/tube = 24) /obj/item/weapon/storage/box/lights/mixed name = "box of replacement lights" icon_state = "lightmixed" - -/obj/item/weapon/storage/box/lights/mixed/New() - ..() - for(var/i = 1 to 16) - new /obj/item/weapon/light/tube(src) - for(var/i = 1 to 8) - new /obj/item/weapon/light/bulb(src) + starts_with = list( + /obj/item/weapon/light/tube = 16, + /obj/item/weapon/light/bulb = 8 + ) /obj/item/weapon/storage/box/freezer name = "portable freezer" @@ -664,17 +463,9 @@ /obj/item/weapon/storage/box/ambrosia name = "ambrosia seeds box" desc = "Contains the seeds you need to get a little high." - -/obj/item/weapon/storage/box/ambrosia/New() - ..() - for(var/i = 1 to 7) - new /obj/item/seeds/ambrosiavulgarisseed(src) + starts_with = list(/obj/item/seeds/ambrosiavulgarisseed = 7) /obj/item/weapon/storage/box/ambrosiadeus name = "ambrosia deus seeds box" desc = "Contains the seeds you need to get a proper healthy high." - -/obj/item/weapon/storage/box/ambrosiadeus/New() - ..() - for(var/i = 1 to 7) - new /obj/item/seeds/ambrosiadeusseed(src) + starts_with = list(/obj/item/seeds/ambrosiadeusseed = 7) diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 8cc10444ef8..251e5483e19 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -52,12 +52,7 @@ /obj/item/weapon/reagent_containers/food/snacks/egg, /obj/item/weapon/reagent_containers/food/snacks/boiledegg ) - -/obj/item/weapon/storage/fancy/egg_box/New() - ..() - for(var/i=1 to storage_slots) - new /obj/item/weapon/reagent_containers/food/snacks/egg(src) - return + starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/egg = 12) /* * Candle Box @@ -72,12 +67,7 @@ item_state = "candlebox5" throwforce = 2 slot_flags = SLOT_BELT - -/obj/item/weapon/storage/fancy/candle_box/New() - ..() - for(var/i=1 to 5) - new /obj/item/weapon/flame/candle(src) - return + starts_with = list(/obj/item/weapon/flame/candle = 5) /* * Crayon Box @@ -93,31 +83,36 @@ can_hold = list( /obj/item/weapon/pen/crayon ) + starts_with = list( + /obj/item/weapon/pen/crayon/red, + /obj/item/weapon/pen/crayon/orange, + /obj/item/weapon/pen/crayon/yellow, + /obj/item/weapon/pen/crayon/green, + /obj/item/weapon/pen/crayon/blue, + /obj/item/weapon/pen/crayon/purple + ) -/obj/item/weapon/storage/fancy/crayons/New() - ..() - new /obj/item/weapon/pen/crayon/red(src) - new /obj/item/weapon/pen/crayon/orange(src) - new /obj/item/weapon/pen/crayon/yellow(src) - new /obj/item/weapon/pen/crayon/green(src) - new /obj/item/weapon/pen/crayon/blue(src) - new /obj/item/weapon/pen/crayon/purple(src) +/obj/item/weapon/storage/fancy/crayons/initialize() + . = ..() update_icon() /obj/item/weapon/storage/fancy/crayons/update_icon() - overlays = list() //resets list - overlays += image('icons/obj/crayons.dmi',"crayonbox") + var/mutable_appearance/ma = new(src) + ma.plane = plane + ma.layer = layer + ma.overlays = list() for(var/obj/item/weapon/pen/crayon/crayon in contents) - overlays += image('icons/obj/crayons.dmi',crayon.colourName) + ma.overlays += image('icons/obj/crayons.dmi',crayon.colourName) + appearance = ma /obj/item/weapon/storage/fancy/crayons/attackby(obj/item/W as obj, mob/user as mob) if(istype(W,/obj/item/weapon/pen/crayon)) switch(W:colourName) if("mime") - usr << "This crayon is too sad to be contained in this box." + to_chat(usr,"This crayon is too sad to be contained in this box.") return if("rainbow") - usr << "This crayon is too powerful to be contained in this box." + to_chat(usr,"This crayon is too powerful to be contained in this box.") return ..() @@ -136,13 +131,12 @@ storage_slots = 6 can_hold = list(/obj/item/clothing/mask/smokable/cigarette, /obj/item/weapon/flame/lighter) icon_type = "cigarette" + starts_with = list(/obj/item/clothing/mask/smokable/cigarette = 6) var/brand = "\improper Trans-Stellar Duty-free" -/obj/item/weapon/storage/fancy/cigarettes/New() - ..() +/obj/item/weapon/storage/fancy/cigarettes/initialize() + . = ..() flags |= NOREACT - for(var/i = 1 to storage_slots) - new /obj/item/clothing/mask/smokable/cigarette(src) create_reagents(15 * storage_slots)//so people can inject cigarettes without opening a packet, now with being able to inject the whole one flags |= OPENCONTAINER if(brand) @@ -201,10 +195,6 @@ icon_state = "Bpacket" brand = "\improper Acme Co. cigarette" -// New() -// ..() -// fill_cigarre_package(src,list("fuel" = 15)) - // New exciting ways to kill your lungs! - Earthcrusher // /obj/item/weapon/storage/fancy/cigarettes/luckystars @@ -248,12 +238,11 @@ storage_slots = 7 can_hold = list(/obj/item/clothing/mask/smokable/cigarette/cigar) icon_type = "cigar" + starts_with = list(/obj/item/clothing/mask/smokable/cigarette/cigar = 7) -/obj/item/weapon/storage/fancy/cigar/New() - ..() +/obj/item/weapon/storage/fancy/cigar/initialize() + . = ..() flags |= NOREACT - for(var/i = 1 to storage_slots) - new /obj/item/clothing/mask/smokable/cigarette/cigar(src) create_reagents(15 * storage_slots) /obj/item/weapon/storage/fancy/cigar/update_icon() @@ -261,10 +250,10 @@ return /obj/item/weapon/storage/fancy/cigar/remove_from_storage(obj/item/W as obj, atom/new_location) - var/obj/item/clothing/mask/smokable/cigarette/cigar/C = W - if(!istype(C)) return - reagents.trans_to_obj(C, (reagents.total_volume/contents.len)) - ..() + var/obj/item/clothing/mask/smokable/cigarette/cigar/C = W + if(!istype(C)) return + reagents.trans_to_obj(C, (reagents.total_volume/contents.len)) + ..() /* * Vial Box @@ -277,12 +266,7 @@ name = "vial storage box" storage_slots = 6 can_hold = list(/obj/item/weapon/reagent_containers/glass/beaker/vial) - -/obj/item/weapon/storage/fancy/vials/New() - ..() - for(var/i=1 to 6) - new /obj/item/weapon/reagent_containers/glass/beaker/vial(src) - return + starts_with = list(/obj/item/weapon/reagent_containers/glass/beaker/vial = 6) /obj/item/weapon/storage/lockbox/vials name = "secure vial storage box" @@ -296,8 +280,8 @@ storage_slots = 6 req_access = list(access_virology) -/obj/item/weapon/storage/lockbox/vials/New() - ..() +/obj/item/weapon/storage/lockbox/vials/initialize() + . = ..() update_icon() /obj/item/weapon/storage/lockbox/vials/update_icon(var/itemremoved = 0) @@ -330,19 +314,19 @@ /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white, /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/truffle ) + starts_with = list( + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece, + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece, + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece, + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white, + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white, + /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/truffle + ) -/obj/item/weapon/storage/fancy/heartbox/New() - ..() - new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece(src) - new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece(src) - new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece(src) - new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white(src) - new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/white(src) - new /obj/item/weapon/reagent_containers/food/snacks/chocolatepiece/truffle(src) +/obj/item/weapon/storage/fancy/heartbox/initialize() + . = ..() update_icon() - return /obj/item/weapon/storage/fancy/heartbox/update_icon(var/itemremoved = 0) if (contents.len == 0) icon_state = "heartbox_empty" - return \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index 43b7c9e22b9..929c55e5616 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -13,158 +13,147 @@ icon_state = "firstaid" throw_speed = 2 throw_range = 8 - var/empty = 0 max_storage_space = ITEMSIZE_COST_SMALL * 7 // 14 + var/list/icon_variety +/obj/item/weapon/storage/firstaid/initialize() + . = ..() + if(icon_variety) + icon_state = pick(icon_variety) + icon_variety = null /obj/item/weapon/storage/firstaid/fire name = "fire first aid kit" desc = "It's an emergency medical kit for when the toxins lab spontaneously burns down." icon_state = "ointment" item_state_slots = list(slot_r_hand_str = "firstaid-ointment", slot_l_hand_str = "firstaid-ointment") - - New() - ..() - if (empty) return - - icon_state = pick("ointment","firefirstaid") - - new /obj/item/device/healthanalyzer( src ) - new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src ) - new /obj/item/stack/medical/ointment( src ) - new /obj/item/stack/medical/ointment( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) - new /obj/item/weapon/reagent_containers/pill/kelotane( src ) //Replaced ointment with these since they actually work --Errorage - return - + icon_variety = list("ointment","firefirstaid") + starts_with = list( + /obj/item/device/healthanalyzer, + /obj/item/weapon/reagent_containers/hypospray/autoinjector, + /obj/item/stack/medical/ointment, + /obj/item/stack/medical/ointment, + /obj/item/weapon/reagent_containers/pill/kelotane, + /obj/item/weapon/reagent_containers/pill/kelotane, + /obj/item/weapon/reagent_containers/pill/kelotane + ) /obj/item/weapon/storage/firstaid/regular icon_state = "firstaid" - - New() - ..() - if (empty) return - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/bruise_pack(src) - new /obj/item/stack/medical/ointment(src) - new /obj/item/stack/medical/ointment(src) - new /obj/item/device/healthanalyzer(src) - new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src ) - return + starts_with = list( + /obj/item/stack/medical/bruise_pack, + /obj/item/stack/medical/bruise_pack, + /obj/item/stack/medical/bruise_pack, + /obj/item/stack/medical/ointment, + /obj/item/stack/medical/ointment, + /obj/item/device/healthanalyzer, + /obj/item/weapon/reagent_containers/hypospray/autoinjector + ) /obj/item/weapon/storage/firstaid/toxin name = "poison first aid kit" //IRL the term used would be poison first aid kit. desc = "Used to treat when one has a high amount of toxins in their body." icon_state = "antitoxin" item_state_slots = list(slot_r_hand_str = "firstaid-toxin", slot_l_hand_str = "firstaid-toxin") - - New() - ..() - if (empty) return - - icon_state = pick("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3") - - new /obj/item/weapon/reagent_containers/syringe/antitoxin( src ) - new /obj/item/weapon/reagent_containers/syringe/antitoxin( src ) - new /obj/item/weapon/reagent_containers/syringe/antitoxin( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/weapon/reagent_containers/pill/antitox( src ) - new /obj/item/device/healthanalyzer( src ) - return + icon_variety = list("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3") + starts_with = list( + /obj/item/weapon/reagent_containers/syringe/antitoxin, + /obj/item/weapon/reagent_containers/syringe/antitoxin, + /obj/item/weapon/reagent_containers/syringe/antitoxin, + /obj/item/weapon/reagent_containers/pill/antitox, + /obj/item/weapon/reagent_containers/pill/antitox, + /obj/item/weapon/reagent_containers/pill/antitox, + /obj/item/device/healthanalyzer + ) /obj/item/weapon/storage/firstaid/o2 name = "oxygen deprivation first aid kit" desc = "A box full of oxygen goodies." icon_state = "o2" item_state_slots = list(slot_r_hand_str = "firstaid-o2", slot_l_hand_str = "firstaid-o2") - - New() - ..() - if (empty) return - new /obj/item/weapon/reagent_containers/pill/dexalin( src ) - new /obj/item/weapon/reagent_containers/pill/dexalin( src ) - new /obj/item/weapon/reagent_containers/pill/dexalin( src ) - new /obj/item/weapon/reagent_containers/pill/dexalin( src ) - new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src ) - new /obj/item/weapon/reagent_containers/syringe/inaprovaline( src ) - new /obj/item/device/healthanalyzer( src ) - return + starts_with = list( + /obj/item/weapon/reagent_containers/pill/dexalin, + /obj/item/weapon/reagent_containers/pill/dexalin, + /obj/item/weapon/reagent_containers/pill/dexalin, + /obj/item/weapon/reagent_containers/pill/dexalin, + /obj/item/weapon/reagent_containers/hypospray/autoinjector, + /obj/item/weapon/reagent_containers/syringe/inaprovaline, + /obj/item/device/healthanalyzer + ) /obj/item/weapon/storage/firstaid/adv name = "advanced first aid kit" desc = "Contains advanced medical treatments, for serious boo-boos." icon_state = "advfirstaid" item_state_slots = list(slot_r_hand_str = "firstaid-advanced", slot_l_hand_str = "firstaid-advanced") - -/obj/item/weapon/storage/firstaid/adv/New() - ..() - if (empty) return - new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src ) - new /obj/item/stack/medical/advanced/bruise_pack(src) - new /obj/item/stack/medical/advanced/bruise_pack(src) - new /obj/item/stack/medical/advanced/bruise_pack(src) - new /obj/item/stack/medical/advanced/ointment(src) - new /obj/item/stack/medical/advanced/ointment(src) - new /obj/item/stack/medical/splint(src) - return + starts_with = list( + /obj/item/weapon/reagent_containers/hypospray/autoinjector, + /obj/item/stack/medical/advanced/bruise_pack, + /obj/item/stack/medical/advanced/bruise_pack, + /obj/item/stack/medical/advanced/bruise_pack, + /obj/item/stack/medical/advanced/ointment, + /obj/item/stack/medical/advanced/ointment, + /obj/item/stack/medical/splint + ) /obj/item/weapon/storage/firstaid/combat name = "combat medical kit" desc = "Contains advanced medical treatments." icon_state = "bezerk" item_state_slots = list(slot_r_hand_str = "firstaid-advanced", slot_l_hand_str = "firstaid-advanced") - -/obj/item/weapon/storage/firstaid/combat/New() - ..() - if (empty) return - new /obj/item/weapon/storage/pill_bottle/bicaridine(src) - new /obj/item/weapon/storage/pill_bottle/dermaline(src) - new /obj/item/weapon/storage/pill_bottle/dexalin_plus(src) - new /obj/item/weapon/storage/pill_bottle/dylovene(src) - new /obj/item/weapon/storage/pill_bottle/tramadol(src) - new /obj/item/weapon/storage/pill_bottle/spaceacillin(src) - new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting(src) - new /obj/item/stack/medical/splint(src) - new /obj/item/device/healthanalyzer/advanced(src) - return + starts_with = list( + /obj/item/weapon/storage/pill_bottle/bicaridine, + /obj/item/weapon/storage/pill_bottle/dermaline, + /obj/item/weapon/storage/pill_bottle/dexalin_plus, + /obj/item/weapon/storage/pill_bottle/dylovene, + /obj/item/weapon/storage/pill_bottle/tramadol, + /obj/item/weapon/storage/pill_bottle/spaceacillin, + /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting, + /obj/item/stack/medical/splint, + /obj/item/device/healthanalyzer/advanced + ) /obj/item/weapon/storage/firstaid/surgery name = "surgery kit" - desc = "Contains tools for surgery." - max_storage_space = ITEMSIZE_COST_NORMAL * 6 // Formally 21. Odd numbers should be avoided for a system based on exponents of 2. + desc = "Contains tools for surgery. Has precise foam fitting for safe transport and automatically sterilizes the content between uses." + icon_state = "surgerykit" + item_state = "firstaid-surgery" max_w_class = ITEMSIZE_NORMAL -/obj/item/weapon/storage/firstaid/surgery/New() - ..() - if (empty) return - new /obj/item/weapon/surgical/bonesetter(src) - new /obj/item/weapon/surgical/cautery(src) - new /obj/item/weapon/surgical/circular_saw(src) - new /obj/item/weapon/surgical/hemostat(src) - new /obj/item/weapon/surgical/retractor(src) - new /obj/item/weapon/surgical/scalpel(src) - new /obj/item/weapon/surgical/surgicaldrill(src) - new /obj/item/weapon/surgical/bonegel(src) - new /obj/item/weapon/surgical/FixOVein(src) - new /obj/item/stack/medical/advanced/bruise_pack(src) - new /obj/item/device/healthanalyzer/enhanced(src) - return + can_hold = list( + /obj/item/weapon/surgical/bonesetter, + /obj/item/weapon/surgical/cautery, + /obj/item/weapon/surgical/circular_saw, + /obj/item/weapon/surgical/hemostat, + /obj/item/weapon/surgical/retractor, + /obj/item/weapon/surgical/scalpel, + /obj/item/weapon/surgical/surgicaldrill, + /obj/item/weapon/surgical/bonegel, + /obj/item/weapon/surgical/FixOVein, + /obj/item/stack/medical/advanced/bruise_pack, + /obj/item/stack/nanopaste, + /obj/item/device/healthanalyzer/enhanced + ) + + starts_with = list( + /obj/item/weapon/surgical/bonesetter, + /obj/item/weapon/surgical/cautery, + /obj/item/weapon/surgical/circular_saw, + /obj/item/weapon/surgical/hemostat, + /obj/item/weapon/surgical/retractor, + /obj/item/weapon/surgical/scalpel, + /obj/item/weapon/surgical/surgicaldrill, + /obj/item/weapon/surgical/bonegel, + /obj/item/weapon/surgical/FixOVein, + /obj/item/stack/medical/advanced/bruise_pack, + /obj/item/device/healthanalyzer/enhanced + ) /obj/item/weapon/storage/firstaid/clotting name = "clotting kit" desc = "Contains chemicals to stop bleeding." max_storage_space = ITEMSIZE_COST_SMALL * 7 - -/obj/item/weapon/storage/firstaid/clotting/New() - ..() - if (empty) - return - for(var/i = 1 to 8) - new /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting(src) - return + starts_with = list(/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting = 8) /* * Pill Bottles @@ -187,167 +176,59 @@ /obj/item/weapon/storage/pill_bottle/antitox name = "bottle of Dylovene pills" desc = "Contains pills used to counter toxins." - -/obj/item/weapon/storage/pill_bottle/antitox/New() //25u each - ..() - new /obj/item/weapon/reagent_containers/pill/antitox(src) - new /obj/item/weapon/reagent_containers/pill/antitox(src) - new /obj/item/weapon/reagent_containers/pill/antitox(src) - new /obj/item/weapon/reagent_containers/pill/antitox(src) - new /obj/item/weapon/reagent_containers/pill/antitox(src) - new /obj/item/weapon/reagent_containers/pill/antitox(src) - new /obj/item/weapon/reagent_containers/pill/antitox(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/antitox = 7) /obj/item/weapon/storage/pill_bottle/bicaridine name = "bottle of Bicaridine pills" desc = "Contains pills used to stabilize the severely injured." - -/obj/item/weapon/storage/pill_bottle/bicaridine/New() - ..() - new /obj/item/weapon/reagent_containers/pill/bicaridine(src) - new /obj/item/weapon/reagent_containers/pill/bicaridine(src) - new /obj/item/weapon/reagent_containers/pill/bicaridine(src) - new /obj/item/weapon/reagent_containers/pill/bicaridine(src) - new /obj/item/weapon/reagent_containers/pill/bicaridine(src) - new /obj/item/weapon/reagent_containers/pill/bicaridine(src) - new /obj/item/weapon/reagent_containers/pill/bicaridine(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/bicaridine = 7) /obj/item/weapon/storage/pill_bottle/dexalin_plus name = "bottle of Dexalin Plus pills" desc = "Contains pills used to treat extreme cases of oxygen deprivation." - -/obj/item/weapon/storage/pill_bottle/dexalin_plus/New() - ..() - new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src) - new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src) - new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src) - new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src) - new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src) - new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src) - new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/dexalin_plus = 7) /obj/item/weapon/storage/pill_bottle/dermaline name = "bottle of Dermaline pills" desc = "Contains pills used to treat burn wounds." - -/obj/item/weapon/storage/pill_bottle/dermaline/New() - ..() - new /obj/item/weapon/reagent_containers/pill/dermaline(src) - new /obj/item/weapon/reagent_containers/pill/dermaline(src) - new /obj/item/weapon/reagent_containers/pill/dermaline(src) - new /obj/item/weapon/reagent_containers/pill/dermaline(src) - new /obj/item/weapon/reagent_containers/pill/dermaline(src) - new /obj/item/weapon/reagent_containers/pill/dermaline(src) - new /obj/item/weapon/reagent_containers/pill/dermaline(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/dermaline = 7) /obj/item/weapon/storage/pill_bottle/dylovene name = "bottle of Dylovene pills" desc = "Contains pills used to treat toxic substances in the blood." - -/obj/item/weapon/storage/pill_bottle/dylovene/New() //15u each - ..() - new /obj/item/weapon/reagent_containers/pill/dylovene(src) - new /obj/item/weapon/reagent_containers/pill/dylovene(src) - new /obj/item/weapon/reagent_containers/pill/dylovene(src) - new /obj/item/weapon/reagent_containers/pill/dylovene(src) - new /obj/item/weapon/reagent_containers/pill/dylovene(src) - new /obj/item/weapon/reagent_containers/pill/dylovene(src) - new /obj/item/weapon/reagent_containers/pill/dylovene(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/dylovene = 7) /obj/item/weapon/storage/pill_bottle/inaprovaline name = "bottle of Inaprovaline pills" desc = "Contains pills used to stabilize patients." - -/obj/item/weapon/storage/pill_bottle/inaprovaline/New() - ..() - new /obj/item/weapon/reagent_containers/pill/inaprovaline(src) - new /obj/item/weapon/reagent_containers/pill/inaprovaline(src) - new /obj/item/weapon/reagent_containers/pill/inaprovaline(src) - new /obj/item/weapon/reagent_containers/pill/inaprovaline(src) - new /obj/item/weapon/reagent_containers/pill/inaprovaline(src) - new /obj/item/weapon/reagent_containers/pill/inaprovaline(src) - new /obj/item/weapon/reagent_containers/pill/inaprovaline(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/inaprovaline = 7) /obj/item/weapon/storage/pill_bottle/kelotane name = "bottle of kelotane pills" desc = "Contains pills used to treat burns." - -/obj/item/weapon/storage/pill_bottle/kelotane/New() - ..() - new /obj/item/weapon/reagent_containers/pill/kelotane(src) - new /obj/item/weapon/reagent_containers/pill/kelotane(src) - new /obj/item/weapon/reagent_containers/pill/kelotane(src) - new /obj/item/weapon/reagent_containers/pill/kelotane(src) - new /obj/item/weapon/reagent_containers/pill/kelotane(src) - new /obj/item/weapon/reagent_containers/pill/kelotane(src) - new /obj/item/weapon/reagent_containers/pill/kelotane(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/kelotane = 7) /obj/item/weapon/storage/pill_bottle/spaceacillin name = "bottle of Spaceacillin pills" desc = "A theta-lactam antibiotic. Effective against many diseases likely to be encountered in space." - -/obj/item/weapon/storage/pill_bottle/spaceacillin/New() - ..() - new /obj/item/weapon/reagent_containers/pill/spaceacillin(src) - new /obj/item/weapon/reagent_containers/pill/spaceacillin(src) - new /obj/item/weapon/reagent_containers/pill/spaceacillin(src) - new /obj/item/weapon/reagent_containers/pill/spaceacillin(src) - new /obj/item/weapon/reagent_containers/pill/spaceacillin(src) - new /obj/item/weapon/reagent_containers/pill/spaceacillin(src) - new /obj/item/weapon/reagent_containers/pill/spaceacillin(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/spaceacillin = 7) /obj/item/weapon/storage/pill_bottle/tramadol name = "bottle of Tramadol pills" desc = "Contains pills used to relieve pain." - -/obj/item/weapon/storage/pill_bottle/tramadol/New() - ..() - new /obj/item/weapon/reagent_containers/pill/tramadol(src) - new /obj/item/weapon/reagent_containers/pill/tramadol(src) - new /obj/item/weapon/reagent_containers/pill/tramadol(src) - new /obj/item/weapon/reagent_containers/pill/tramadol(src) - new /obj/item/weapon/reagent_containers/pill/tramadol(src) - new /obj/item/weapon/reagent_containers/pill/tramadol(src) - new /obj/item/weapon/reagent_containers/pill/tramadol(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/tramadol = 7) /obj/item/weapon/storage/pill_bottle/citalopram name = "bottle of Citalopram pills" desc = "Contains pills used to stabilize a patient's mood." - -/obj/item/weapon/storage/pill_bottle/citalopram/New() - ..() - new /obj/item/weapon/reagent_containers/pill/citalopram(src) - new /obj/item/weapon/reagent_containers/pill/citalopram(src) - new /obj/item/weapon/reagent_containers/pill/citalopram(src) - new /obj/item/weapon/reagent_containers/pill/citalopram(src) - new /obj/item/weapon/reagent_containers/pill/citalopram(src) - new /obj/item/weapon/reagent_containers/pill/citalopram(src) - new /obj/item/weapon/reagent_containers/pill/citalopram(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/citalopram = 7) /obj/item/weapon/storage/pill_bottle/carbon name = "bottle of Carbon pills" desc = "Contains pills used to neutralise chemicals in the stomach." - -/obj/item/weapon/storage/pill_bottle/carbon/New() - ..() - new /obj/item/weapon/reagent_containers/pill/carbon(src) - new /obj/item/weapon/reagent_containers/pill/carbon(src) - new /obj/item/weapon/reagent_containers/pill/carbon(src) - new /obj/item/weapon/reagent_containers/pill/carbon(src) - new /obj/item/weapon/reagent_containers/pill/carbon(src) - new /obj/item/weapon/reagent_containers/pill/carbon(src) - new /obj/item/weapon/reagent_containers/pill/carbon(src) + starts_with = list(/obj/item/weapon/reagent_containers/pill/carbon = 7) /obj/item/weapon/storage/pill_bottle/iron name = "bottle of Iron pills" desc = "Contains pills used to aid in blood regeneration." - -/obj/item/weapon/storage/pill_bottle/iron/New() - ..() - new /obj/item/weapon/reagent_containers/pill/iron(src) - new /obj/item/weapon/reagent_containers/pill/iron(src) - new /obj/item/weapon/reagent_containers/pill/iron(src) - new /obj/item/weapon/reagent_containers/pill/iron(src) - new /obj/item/weapon/reagent_containers/pill/iron(src) - new /obj/item/weapon/reagent_containers/pill/iron(src) - new /obj/item/weapon/reagent_containers/pill/iron(src) \ No newline at end of file + starts_with = list(/obj/item/weapon/reagent_containers/pill/iron = 7) diff --git a/code/game/objects/items/weapons/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm index e52ad4d8121..e9527b23134 100644 --- a/code/game/objects/items/weapons/storage/lockbox.dm +++ b/code/game/objects/items/weapons/storage/lockbox.dm @@ -77,36 +77,28 @@ /obj/item/weapon/storage/lockbox/loyalty name = "lockbox of loyalty implants" req_access = list(access_security) - - New() - ..() - new /obj/item/weapon/implantcase/loyalty(src) - new /obj/item/weapon/implantcase/loyalty(src) - new /obj/item/weapon/implantcase/loyalty(src) - new /obj/item/weapon/implanter/loyalty(src) - + starts_with = list( + /obj/item/weapon/implantcase/loyalty = 3, + /obj/item/weapon/implanter/loyalty + ) /obj/item/weapon/storage/lockbox/clusterbang name = "lockbox of clusterbangs" desc = "You have a bad feeling about opening this." req_access = list(access_security) - - New() - ..() - new /obj/item/weapon/grenade/flashbang/clusterbang(src) + starts_with = list(/obj/item/weapon/grenade/flashbang/clusterbang) /obj/item/weapon/storage/lockbox/medal name = "lockbox of medals" desc = "A lockbox filled with commemorative medals, it has the NanoTrasen logo stamped on it." req_access = list(access_heads) storage_slots = 7 - - New() - ..() - new /obj/item/clothing/accessory/medal/conduct(src) - new /obj/item/clothing/accessory/medal/bronze_heart(src) - new /obj/item/clothing/accessory/medal/nobel_science(src) - new /obj/item/clothing/accessory/medal/silver/valor(src) - new /obj/item/clothing/accessory/medal/silver/security(src) - new /obj/item/clothing/accessory/medal/gold/captain(src) - new /obj/item/clothing/accessory/medal/gold/heroism(src) \ No newline at end of file + starts_with = list( + /obj/item/clothing/accessory/medal/conduct, + /obj/item/clothing/accessory/medal/bronze_heart, + /obj/item/clothing/accessory/medal/nobel_science, + /obj/item/clothing/accessory/medal/silver/valor, + /obj/item/clothing/accessory/medal/silver/security, + /obj/item/clothing/accessory/medal/gold/captain, + /obj/item/clothing/accessory/medal/gold/heroism + ) diff --git a/code/game/objects/items/weapons/storage/misc.dm b/code/game/objects/items/weapons/storage/misc.dm index 64952046a56..d103fbc6ef2 100644 --- a/code/game/objects/items/weapons/storage/misc.dm +++ b/code/game/objects/items/weapons/storage/misc.dm @@ -6,17 +6,14 @@ icon = 'icons/obj/food.dmi' icon_state = "donutbox" name = "donut box" - var/startswith = 6 max_storage_space = ITEMSIZE_COST_SMALL * 6 can_hold = list(/obj/item/weapon/reagent_containers/food/snacks/donut) foldable = /obj/item/stack/material/cardboard + starts_with = list(/obj/item/weapon/reagent_containers/food/snacks/donut/normal = 6) -/obj/item/weapon/storage/box/donut/New() - ..() - for(var/i=1 to startswith) - new /obj/item/weapon/reagent_containers/food/snacks/donut/normal(src) +/obj/item/weapon/storage/box/donut/initialize() + . = ..() update_icon() - return /obj/item/weapon/storage/box/donut/update_icon() overlays.Cut() @@ -26,4 +23,4 @@ i++ /obj/item/weapon/storage/box/donut/empty - startswith = 0 + empty = TRUE diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm index 4d9be129f73..78a2d940ad8 100644 --- a/code/game/objects/items/weapons/storage/secure.dm +++ b/code/game/objects/items/weapons/storage/secure.dm @@ -184,15 +184,10 @@ anchored = 1.0 density = 0 cant_hold = list(/obj/item/weapon/storage/secure/briefcase) + starts_with = list( + /obj/item/weapon/paper, + /obj/item/weapon/pen + ) - New() - ..() - new /obj/item/weapon/paper(src) - new /obj/item/weapon/pen(src) - - attack_hand(mob/user as mob) - return attack_self(user) - -/obj/item/weapon/storage/secure/safe/HoS/New() - ..() - //new /obj/item/weapon/storage/lockbox/clusterbang(src) This item is currently broken... and probably shouldnt exist to begin with (even though it's cool) +/obj/item/weapon/storage/secure/safe/attack_hand(mob/user as mob) + return attack_self(user) diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 6309a0a3f3d..2dd5116546c 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -36,6 +36,7 @@ var/collection_mode = 1; //0 = pick one at a time, 1 = pick all on tile var/use_sound = "rustle" //sound played when used. null for no sound. var/list/starts_with //Things to spawn on the box on spawn + var/empty //Mapper override to spawn an empty version of a container that usually has stuff /obj/item/weapon/storage/Destroy() close_all() @@ -576,12 +577,13 @@ src.closer.hud_layerise() orient2hud() - if(LAZYLEN(starts_with)) + if(LAZYLEN(starts_with) && !empty) for(var/newtype in starts_with) var/count = starts_with[newtype] || 1 //Could have left it blank. while(count) count-- new newtype(src) + starts_with = null //Reduce list count. calibrate_size() diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm index 21bebfa399a..c4174eb4c09 100644 --- a/code/game/objects/items/weapons/storage/toolbox.dm +++ b/code/game/objects/items/weapons/storage/toolbox.dm @@ -19,48 +19,50 @@ name = "emergency toolbox" icon_state = "red" item_state_slots = list(slot_r_hand_str = "toolbox_red", slot_l_hand_str = "toolbox_red") - -/obj/item/weapon/storage/toolbox/emergency/New() - ..() - new /obj/item/weapon/crowbar/red(src) - new /obj/item/weapon/extinguisher/mini(src) + starts_with = list( + /obj/item/weapon/crowbar/red, + /obj/item/weapon/extinguisher/mini, + /obj/item/device/radio + ) +/obj/item/weapon/storage/toolbox/emergency/initialize() if(prob(50)) new /obj/item/device/flashlight(src) else new /obj/item/device/flashlight/flare(src) - new /obj/item/device/radio(src) + . = ..() /obj/item/weapon/storage/toolbox/mechanical name = "mechanical toolbox" icon_state = "blue" item_state_slots = list(slot_r_hand_str = "toolbox_blue", slot_l_hand_str = "toolbox_blue") - -/obj/item/weapon/storage/toolbox/mechanical/New() - ..() - new /obj/item/weapon/screwdriver(src) - new /obj/item/weapon/wrench(src) - new /obj/item/weapon/weldingtool(src) - new /obj/item/weapon/crowbar(src) - new /obj/item/device/analyzer(src) - new /obj/item/weapon/wirecutters(src) + starts_with = list( + /obj/item/weapon/screwdriver, + /obj/item/weapon/wrench, + /obj/item/weapon/weldingtool, + /obj/item/weapon/crowbar, + /obj/item/device/analyzer, + /obj/item/weapon/wirecutters + ) /obj/item/weapon/storage/toolbox/electrical name = "electrical toolbox" icon_state = "yellow" item_state_slots = list(slot_r_hand_str = "toolbox_yellow", slot_l_hand_str = "toolbox_yellow") - -/obj/item/weapon/storage/toolbox/electrical/New() - ..() - new /obj/item/weapon/screwdriver(src) - new /obj/item/weapon/wirecutters(src) - new /obj/item/device/t_scanner(src) - new /obj/item/weapon/crowbar(src) - new /obj/item/stack/cable_coil/random(src,30) - new /obj/item/stack/cable_coil/random(src,30) + starts_with = list( + /obj/item/weapon/screwdriver, + /obj/item/weapon/wirecutters, + /obj/item/device/t_scanner, + /obj/item/weapon/crowbar, + /obj/item/stack/cable_coil/random_belt, + /obj/item/stack/cable_coil/random_belt + ) +/obj/item/weapon/storage/toolbox/electrical/initialize() + . = ..() if(prob(5)) new /obj/item/clothing/gloves/yellow(src) else new /obj/item/stack/cable_coil/random(src,30) + calibrate_size() /obj/item/weapon/storage/toolbox/syndicate name = "black and red toolbox" @@ -68,29 +70,26 @@ item_state_slots = list(slot_r_hand_str = "toolbox_syndi", slot_l_hand_str = "toolbox_syndi") origin_tech = list(TECH_COMBAT = 1, TECH_ILLEGAL = 1) force = 14 - var/powertools = FALSE + starts_with = list( + /obj/item/clothing/gloves/yellow, + /obj/item/weapon/screwdriver, + /obj/item/weapon/wrench, + /obj/item/weapon/weldingtool, + /obj/item/weapon/crowbar, + /obj/item/weapon/wirecutters, + /obj/item/device/multitool + ) /obj/item/weapon/storage/toolbox/syndicate/powertools - powertools = TRUE - -/obj/item/weapon/storage/toolbox/syndicate/New() // This is found in maint, so it should have the basics, plus some gloves. - ..() //all storage items need this to work properly! - if(powertools) - new /obj/item/clothing/gloves/yellow(src) - new /obj/item/weapon/screwdriver/power(src) - new /obj/item/weapon/weldingtool/experimental(src) - new /obj/item/weapon/crowbar/power(src) - new /obj/item/device/multitool(src) - new /obj/item/stack/cable_coil/random(src,30) - new /obj/item/device/analyzer(src) - else - new /obj/item/clothing/gloves/yellow(src) - new /obj/item/weapon/screwdriver(src) - new /obj/item/weapon/wrench(src) - new /obj/item/weapon/weldingtool(src) - new /obj/item/weapon/crowbar(src) - new /obj/item/weapon/wirecutters(src) - new /obj/item/device/multitool(src) + starts_with = list( + /obj/item/clothing/gloves/yellow, + /obj/item/weapon/screwdriver/power, + /obj/item/weapon/weldingtool/experimental, + /obj/item/weapon/crowbar/power, + /obj/item/device/multitool, + /obj/item/stack/cable_coil/random_belt, + /obj/item/device/analyzer + ) /obj/item/weapon/storage/toolbox/lunchbox max_storage_space = ITEMSIZE_COST_SMALL * 4 //slightly smaller than a toolbox @@ -103,8 +102,7 @@ var/filled = FALSE attack_verb = list("lunched") -/obj/item/weapon/storage/toolbox/lunchbox/New() - ..() +/obj/item/weapon/storage/toolbox/lunchbox/initialize() if(filled) var/list/lunches = lunchables_lunches() var/lunch = lunches[pick(lunches)] @@ -117,6 +115,7 @@ var/list/drinks = lunchables_drinks() var/drink = drinks[pick(drinks)] new drink(src) + . = ..() /obj/item/weapon/storage/toolbox/lunchbox/filled filled = TRUE diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index f82feb91dd1..5c0f8373400 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -1,76 +1,66 @@ -/obj/item/weapon/storage/box/syndicate/ - New() - ..() - switch (pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "murder" = 1, "freedom" = 1, "hacker" = 1, "lordsingulo" = 1, "smoothoperator" = 1))) - if("bloodyspai") - new /obj/item/clothing/under/chameleon(src) - new /obj/item/clothing/mask/gas/voice(src) - new /obj/item/weapon/card/id/syndicate(src) - new /obj/item/clothing/shoes/syndigaloshes(src) - return +/obj/item/weapon/storage/box/syndicate/initialize() + switch (pickweight(list("bloodyspai" = 1, "stealth" = 1, "screwed" = 1, "guns" = 1, "murder" = 1, "freedom" = 1, "hacker" = 1, "lordsingulo" = 1, "smoothoperator" = 1))) + if("bloodyspai") + new /obj/item/clothing/under/chameleon(src) + new /obj/item/clothing/mask/gas/voice(src) + new /obj/item/weapon/card/id/syndicate(src) + new /obj/item/clothing/shoes/syndigaloshes(src) - if("stealth") - new /obj/item/weapon/gun/energy/crossbow(src) - new /obj/item/weapon/pen/reagent/paralysis(src) - new /obj/item/device/chameleon(src) - return + if("stealth") + new /obj/item/weapon/gun/energy/crossbow(src) + new /obj/item/weapon/pen/reagent/paralysis(src) + new /obj/item/device/chameleon(src) - if("screwed") - new /obj/effect/spawner/newbomb/timer/syndicate(src) - new /obj/effect/spawner/newbomb/timer/syndicate(src) - new /obj/item/device/powersink(src) - new /obj/item/clothing/suit/space/syndicate(src) - new /obj/item/clothing/head/helmet/space/syndicate(src) - new /obj/item/clothing/mask/gas/syndicate(src) - new /obj/item/weapon/tank/emergency/oxygen/double(src) - return + if("screwed") + new /obj/effect/spawner/newbomb/timer/syndicate(src) + new /obj/effect/spawner/newbomb/timer/syndicate(src) + new /obj/item/device/powersink(src) + new /obj/item/clothing/suit/space/syndicate(src) + new /obj/item/clothing/head/helmet/space/syndicate(src) + new /obj/item/clothing/mask/gas/syndicate(src) + new /obj/item/weapon/tank/emergency/oxygen/double(src) - if("guns") - new /obj/item/weapon/gun/projectile/revolver(src) - new /obj/item/ammo_magazine/s357(src) - new /obj/item/weapon/card/emag(src) - new /obj/item/weapon/plastique(src) - new /obj/item/weapon/plastique(src) - return + if("guns") + new /obj/item/weapon/gun/projectile/revolver(src) + new /obj/item/ammo_magazine/s357(src) + new /obj/item/weapon/card/emag(src) + new /obj/item/weapon/plastique(src) + new /obj/item/weapon/plastique(src) - if("murder") - new /obj/item/weapon/melee/energy/sword(src) - new /obj/item/clothing/glasses/thermal/syndi(src) - new /obj/item/weapon/card/emag(src) - new /obj/item/clothing/shoes/syndigaloshes(src) - return + if("murder") + new /obj/item/weapon/melee/energy/sword(src) + new /obj/item/clothing/glasses/thermal/syndi(src) + new /obj/item/weapon/card/emag(src) + new /obj/item/clothing/shoes/syndigaloshes(src) - if("freedom") - var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src) - O.imp = new /obj/item/weapon/implant/freedom(O) - var/obj/item/weapon/implanter/U = new /obj/item/weapon/implanter(src) - U.imp = new /obj/item/weapon/implant/uplink(U) - return + if("freedom") + var/obj/item/weapon/implanter/O = new /obj/item/weapon/implanter(src) + O.imp = new /obj/item/weapon/implant/freedom(O) + var/obj/item/weapon/implanter/U = new /obj/item/weapon/implanter(src) + U.imp = new /obj/item/weapon/implant/uplink(U) - if("hacker") - new /obj/item/device/encryptionkey/syndicate(src) - new /obj/item/weapon/aiModule/syndicate(src) - new /obj/item/weapon/card/emag(src) - new /obj/item/device/encryptionkey/binary(src) - return + if("hacker") + new /obj/item/device/encryptionkey/syndicate(src) + new /obj/item/weapon/aiModule/syndicate(src) + new /obj/item/weapon/card/emag(src) + new /obj/item/device/encryptionkey/binary(src) - if("lordsingulo") - new /obj/item/device/radio/beacon/syndicate(src) - new /obj/item/clothing/suit/space/syndicate(src) - new /obj/item/clothing/head/helmet/space/syndicate(src) - new /obj/item/clothing/mask/gas/syndicate(src) - new /obj/item/weapon/tank/emergency/oxygen/double(src) - new /obj/item/weapon/card/emag(src) - return + if("lordsingulo") + new /obj/item/device/radio/beacon/syndicate(src) + new /obj/item/clothing/suit/space/syndicate(src) + new /obj/item/clothing/head/helmet/space/syndicate(src) + new /obj/item/clothing/mask/gas/syndicate(src) + new /obj/item/weapon/tank/emergency/oxygen/double(src) + new /obj/item/weapon/card/emag(src) - if("smoothoperator") - new /obj/item/weapon/storage/box/syndie_kit/g9mm(src) - new /obj/item/weapon/storage/bag/trash(src) - new /obj/item/weapon/soap/syndie(src) - new /obj/item/bodybag(src) - new /obj/item/clothing/under/suit_jacket(src) - new /obj/item/clothing/shoes/laceup(src) - return + if("smoothoperator") + new /obj/item/weapon/storage/box/syndie_kit/g9mm(src) + new /obj/item/weapon/storage/bag/trash(src) + new /obj/item/weapon/soap/syndie(src) + new /obj/item/bodybag(src) + new /obj/item/clothing/under/suit_jacket(src) + new /obj/item/clothing/shoes/laceup(src) + . = ..() /obj/item/weapon/storage/box/syndie_kit name = "box" @@ -80,118 +70,97 @@ /obj/item/weapon/storage/box/syndie_kit/imp_freedom name = "boxed freedom implant (with injector)" -/obj/item/weapon/storage/box/syndie_kit/imp_freedom/New() - ..() +/obj/item/weapon/storage/box/syndie_kit/imp_freedom/initialize() var/obj/item/weapon/implanter/O = new(src) O.imp = new /obj/item/weapon/implant/freedom(O) O.update() - return + . = ..() /obj/item/weapon/storage/box/syndie_kit/imp_compress name = "box (C)" - -/obj/item/weapon/storage/box/syndie_kit/imp_compress/New() - new /obj/item/weapon/implanter/compressed(src) - ..() - return + starts_with = list(/obj/item/weapon/implanter/compressed) /obj/item/weapon/storage/box/syndie_kit/imp_explosive name = "box (E)" - -/obj/item/weapon/storage/box/syndie_kit/imp_explosive/New() - new /obj/item/weapon/implanter/explosive(src) - ..() - return + starts_with = list(/obj/item/weapon/implanter/explosive) /obj/item/weapon/storage/box/syndie_kit/imp_uplink name = "boxed uplink implant (with injector)" -/obj/item/weapon/storage/box/syndie_kit/imp_uplink/New() - ..() +/obj/item/weapon/storage/box/syndie_kit/imp_uplink/initialize() var/obj/item/weapon/implanter/O = new(src) O.imp = new /obj/item/weapon/implant/uplink(O) O.update() - return + . = ..() /obj/item/weapon/storage/box/syndie_kit/space name = "boxed space suit and helmet" - -/obj/item/weapon/storage/box/syndie_kit/space/New() - ..() - new /obj/item/clothing/suit/space/syndicate(src) - new /obj/item/clothing/head/helmet/space/syndicate(src) - new /obj/item/clothing/mask/gas/syndicate(src) - new /obj/item/weapon/tank/emergency/oxygen/double(src) - return + starts_with = list( + /obj/item/clothing/suit/space/syndicate, + /obj/item/clothing/head/helmet/space/syndicate, + /obj/item/clothing/mask/gas/syndicate, + /obj/item/weapon/tank/emergency/oxygen/double + ) /obj/item/weapon/storage/box/syndie_kit/chameleon name = "chameleon kit" desc = "Comes with all the clothes you need to impersonate most people. Acting lessons sold seperately." - -/obj/item/weapon/storage/box/syndie_kit/chameleon/New() - ..() - new /obj/item/clothing/under/chameleon(src) - new /obj/item/clothing/head/chameleon(src) - new /obj/item/clothing/suit/chameleon(src) - new /obj/item/clothing/shoes/chameleon(src) - new /obj/item/weapon/storage/backpack/chameleon(src) - new /obj/item/clothing/gloves/chameleon(src) - new /obj/item/clothing/mask/chameleon(src) - new /obj/item/clothing/glasses/chameleon(src) - new /obj/item/clothing/accessory/chameleon(src) - new /obj/item/weapon/gun/energy/chameleon(src) + starts_with = list( + /obj/item/clothing/under/chameleon, + /obj/item/clothing/head/chameleon, + /obj/item/clothing/suit/chameleon, + /obj/item/clothing/shoes/chameleon, + /obj/item/weapon/storage/backpack/chameleon, + /obj/item/clothing/gloves/chameleon, + /obj/item/clothing/mask/chameleon, + /obj/item/clothing/glasses/chameleon, + /obj/item/clothing/accessory/chameleon, + /obj/item/weapon/gun/energy/chameleon + ) /obj/item/weapon/storage/box/syndie_kit/clerical name = "clerical kit" desc = "Comes with all you need to fake paperwork. Assumes you have passed basic writing lessons." - -/obj/item/weapon/storage/box/syndie_kit/clerical/New() - ..() - new /obj/item/weapon/stamp/chameleon(src) - new /obj/item/weapon/pen/chameleon(src) - new /obj/item/device/destTagger(src) - new /obj/item/weapon/packageWrap(src) - new /obj/item/weapon/hand_labeler(src) + starts_with = list( + /obj/item/weapon/stamp/chameleon, + /obj/item/weapon/pen/chameleon, + /obj/item/device/destTagger, + /obj/item/weapon/packageWrap, + /obj/item/weapon/hand_labeler + ) /obj/item/weapon/storage/box/syndie_kit/spy name = "spy kit" desc = "For when you want to conduct voyeurism from afar." - -/obj/item/weapon/storage/box/syndie_kit/spy/New() - ..() - new /obj/item/device/camerabug/spy(src) - new /obj/item/device/camerabug/spy(src) - new /obj/item/device/camerabug/spy(src) - new /obj/item/device/camerabug/spy(src) - new /obj/item/device/camerabug/spy(src) - new /obj/item/device/camerabug/spy(src) - new /obj/item/device/bug_monitor/spy(src) + starts_with = list( + /obj/item/device/camerabug/spy = 6, + /obj/item/device/bug_monitor/spy + ) /obj/item/weapon/storage/box/syndie_kit/g9mm name = "\improper Smooth operator" desc = "Compact 9mm with silencer kit." - -/obj/item/weapon/storage/box/syndie_kit/g9mm/New() - ..() - new /obj/item/weapon/gun/projectile/pistol(src) - new /obj/item/weapon/silencer(src) + starts_with = list( + /obj/item/weapon/gun/projectile/pistol, + /obj/item/weapon/silencer + ) /obj/item/weapon/storage/box/syndie_kit/toxin name = "toxin kit" desc = "An apple will not be enough to keep the doctor away after this." - -/obj/item/weapon/storage/box/syndie_kit/toxin/New() - ..() - new /obj/item/weapon/reagent_containers/glass/beaker/vial/random/toxin(src) - new /obj/item/weapon/reagent_containers/syringe(src) + starts_with = list( + /obj/item/weapon/reagent_containers/glass/beaker/vial/random/toxin, + /obj/item/weapon/reagent_containers/syringe + ) /obj/item/weapon/storage/box/syndie_kit/cigarette name = "\improper Tricky smokes" desc = "Comes with the following brands of cigarettes, in this order: 2xFlash, 2xSmoke, 1xMindBreaker, 1xTricordrazine. Avoid mixing them up." -/obj/item/weapon/storage/box/syndie_kit/cigarette/New() - ..() +/obj/item/weapon/storage/box/syndie_kit/cigarette/initialize() + . = ..() var/obj/item/weapon/storage/fancy/cigarettes/pack + pack = new /obj/item/weapon/storage/fancy/cigarettes(src) fill_cigarre_package(pack, list("aluminum" = 5, "potassium" = 5, "sulfur" = 5)) pack.desc += " 'F' has been scribbled on it." @@ -222,6 +191,8 @@ new /obj/item/weapon/flame/lighter/zippo(src) + calibrate_size() + /proc/fill_cigarre_package(var/obj/item/weapon/storage/fancy/cigarettes/C, var/list/reagents) for(var/reagent in reagents) C.reagents.add_reagent(reagent, reagents[reagent] * C.storage_slots) @@ -229,72 +200,52 @@ /obj/item/weapon/storage/box/syndie_kit/ewar_voice name = "Electrowarfare and Voice Synthesiser kit" desc = "Kit for confounding organic and synthetic entities alike." - -/obj/item/weapon/storage/box/syndie_kit/ewar_voice/New() - ..() - new /obj/item/rig_module/electrowarfare_suite(src) - new /obj/item/rig_module/voice(src) - + starts_with = list( + /obj/item/rig_module/electrowarfare_suite, + /obj/item/rig_module/voice + ) /obj/item/weapon/storage/secure/briefcase/money name = "suspicious briefcase" desc = "An ominous briefcase that has the unmistakeable smell of old, stale, cigarette smoke, and gives those who look at it a bad feeling." - - - - -/obj/item/weapon/storage/secure/briefcase/money/New() - ..() - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) - new /obj/item/weapon/spacecash/c1000(src) + starts_with = list(/obj/item/weapon/spacecash/c1000 = 10) /obj/item/weapon/storage/box/syndie_kit/combat_armor name = "combat armor kit" desc = "Contains a full set of combat armor." + starts_with = list( + /obj/item/clothing/head/helmet/combat, + /obj/item/clothing/suit/armor/combat, + /obj/item/clothing/gloves/arm_guard/combat, + /obj/item/clothing/shoes/leg_guard/combat + ) -/obj/item/weapon/storage/box/syndie_kit/combat_armor/New() - ..() - new /obj/item/clothing/head/helmet/combat(src) - new /obj/item/clothing/suit/armor/combat(src) - new /obj/item/clothing/gloves/arm_guard/combat(src) - new /obj/item/clothing/shoes/leg_guard/combat(src) - return +/obj/item/weapon/storage/box/syndie_kit/demolitions + starts_with = list( + /obj/item/weapon/syndie/c4explosive, + /obj/item/weapon/screwdriver + ) -/obj/item/weapon/storage/box/syndie_kit/demolitions/New() - ..() - new /obj/item/weapon/syndie/c4explosive(src) - new /obj/item/weapon/screwdriver(src) - -/obj/item/weapon/storage/box/syndie_kit/demolitions_heavy/New() - ..() - new /obj/item/weapon/syndie/c4explosive/heavy(src) - new /obj/item/weapon/screwdriver(src) - -/obj/item/weapon/storage/box/syndie_kit/demolitions_super_heavy/New() - ..() - new /obj/item/weapon/syndie/c4explosive/heavy/super_heavy(src) - new /obj/item/weapon/screwdriver(src) +/obj/item/weapon/storage/box/syndie_kit/demolitions_heavy + starts_with = list( + /obj/item/weapon/syndie/c4explosive/heavy, + /obj/item/weapon/screwdriver + ) +/obj/item/weapon/storage/box/syndie_kit/demolitions_super_heavy + starts_with = list( + /obj/item/weapon/syndie/c4explosive/heavy/super_heavy, + /obj/item/weapon/screwdriver + ) /obj/item/weapon/storage/secure/briefcase/rifle name = "secure briefcase" - -/obj/item/weapon/storage/secure/briefcase/rifle/New() - ..() - new /obj/item/sniper_rifle_part/barrel(src) - new /obj/item/sniper_rifle_part/stock(src) - new /obj/item/sniper_rifle_part/trigger_group(src) - - for(var/i = 1 to 4) - new /obj/item/ammo_casing/a145(src) + starts_with = list( + /obj/item/sniper_rifle_part/barrel, + /obj/item/sniper_rifle_part/stock, + /obj/item/sniper_rifle_part/trigger_group, + /obj/item/ammo_casing/a145 = 4 + ) /obj/item/weapon/storage/secure/briefcase/fuelrod name = "heavy briefcase" @@ -303,14 +254,12 @@ description_antag = "This case will likely contain a charged fuel rod gun, and a few fuel rods to go with it. It can only hold the fuel rod gun, fuel rods, batteries, a screwdriver, and stock machine parts." force = 12 //Anti-rad lined i.e. Lead, probably gonna hurt a bit if you get bashed with it. can_hold = list(/obj/item/weapon/gun/magnetic/fuelrod, /obj/item/weapon/fuel_assembly, /obj/item/weapon/cell, /obj/item/weapon/stock_parts, /obj/item/weapon/screwdriver) - - -/obj/item/weapon/storage/secure/briefcase/fuelrod/New() - ..() - new /obj/item/weapon/gun/magnetic/fuelrod(src) - new /obj/item/weapon/fuel_assembly/deuterium(src) - new /obj/item/weapon/fuel_assembly/deuterium(src) - new /obj/item/weapon/fuel_assembly/tritium(src) - new /obj/item/weapon/fuel_assembly/tritium(src) - new /obj/item/weapon/fuel_assembly/phoron(src) - new /obj/item/weapon/screwdriver(src) + starts_with = list( + /obj/item/weapon/gun/magnetic/fuelrod, + /obj/item/weapon/fuel_assembly/deuterium, + /obj/item/weapon/fuel_assembly/deuterium, + /obj/item/weapon/fuel_assembly/tritium, + /obj/item/weapon/fuel_assembly/tritium, + /obj/item/weapon/fuel_assembly/phoron, + /obj/item/weapon/screwdriver + ) diff --git a/code/game/objects/items/weapons/storage/wallets.dm b/code/game/objects/items/weapons/storage/wallets.dm index 30d81e1ba96..02be9fdfaf6 100644 --- a/code/game/objects/items/weapons/storage/wallets.dm +++ b/code/game/objects/items/weapons/storage/wallets.dm @@ -118,4 +118,4 @@ name = "women's wallet" desc = "A stylish wallet typically used by women." icon_state = "girl_wallet" - item_state_slots = list(slot_r_hand_str = "wowallet", slot_l_hand_str = "wowallet") \ No newline at end of file + item_state_slots = list(slot_r_hand_str = "wowallet", slot_l_hand_str = "wowallet") diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index fadd699c845..853705abed6 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -882,6 +882,12 @@ obj/structure/cable/proc/cableColor(var/colorC) color = pick(COLOR_RED, COLOR_BLUE, COLOR_LIME, COLOR_WHITE, COLOR_PINK, COLOR_YELLOW, COLOR_CYAN, COLOR_SILVER, COLOR_GRAY, COLOR_BLACK, COLOR_MAROON, COLOR_OLIVE, COLOR_LIME, COLOR_TEAL, COLOR_NAVY, COLOR_PURPLE, COLOR_BEIGE, COLOR_BROWN) ..() +/obj/item/stack/cable_coil/random_belt/New() + stacktype = /obj/item/stack/cable_coil + color = pick(COLOR_RED, COLOR_YELLOW, COLOR_ORANGE) + amount = 30 + ..() + //Endless alien cable coil /obj/item/stack/cable_coil/alien diff --git a/icons/mob/items/lefthand_storage.dmi b/icons/mob/items/lefthand_storage.dmi index c4518a59ecf5f32e0be1debd3ecd262ed948c880..530823eb77a5d75d0932bc64529d14ee834932d4 100644 GIT binary patch literal 23374 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

#R`oBrW%tcF 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 literal 23341 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