diff --git a/code/__defines/items_clothing.dm b/code/__defines/items_clothing.dm index 8508ed6b312..24479ca0ec4 100644 --- a/code/__defines/items_clothing.dm +++ b/code/__defines/items_clothing.dm @@ -3,24 +3,23 @@ #define CANDLE_LUM 3 // For how bright candles are. // Item inventory slot bitmasks. -#define SLOT_OCLOTHING BITFLAG(0) -#define SLOT_ICLOTHING BITFLAG(1) -#define SLOT_GLOVES BITFLAG(2) -#define SLOT_EYES BITFLAG(3) -#define SLOT_EARS BITFLAG(4) -#define SLOT_MASK BITFLAG(5) -#define SLOT_HEAD BITFLAG(6) -#define SLOT_FEET BITFLAG(7) -#define SLOT_ID BITFLAG(8) -#define SLOT_BELT BITFLAG(9) -#define SLOT_BACK BITFLAG(10) -#define SLOT_POCKET BITFLAG(11) // This is to allow items with a w_class of 3 or 4 to fit in pockets. -#define SLOT_DENYPOCKET BITFLAG(12) // This is to deny items with a w_class of 2 or 1 from fitting in pockets. -#define SLOT_TWOEARS BITFLAG(13) -#define SLOT_TIE BITFLAG(14) -#define SLOT_HOLSTER BITFLAG(15) -#define SLOT_WRISTS BITFLAG(16) -#define SLOT_S_STORE BITFLAG(17) +#define SLOT_OCLOTHING (1<<0) +#define SLOT_ICLOTHING (1<<1) +#define SLOT_GLOVES (1<<2) +#define SLOT_EYES (1<<3) +#define SLOT_EARS (1<<4) +#define SLOT_MASK (1<<5) +#define SLOT_HEAD (1<<6) +#define SLOT_FEET (1<<7) +#define SLOT_ID (1<<8) +#define SLOT_BELT (1<<9) +#define SLOT_BACK (1<<10) +#define SLOT_POCKET (1<<11) // This is to allow items with a w_class of 3 or 4 to fit in pockets. +#define SLOT_DENYPOCKET (1<<12) // This is to deny items with a w_class of 2 or 1 from fitting in pockets. +#define SLOT_TWOEARS (1<<13) +#define SLOT_TIE (1<<14) +#define SLOT_HOLSTER (1<<15) +#define SLOT_WRISTS (1<<16) // Flags bitmasks. #define NOBLUDGEON 0x1 // When an item has this it produces no "X has been hit by Y with Z" message with the default handler. diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 989e491c5bd..b86c58ffcfb 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -396,8 +396,7 @@ var/list/global/slot_flags_enumeration = list( "[slot_w_uniform]" = SLOT_ICLOTHING, "[slot_wear_id]" = SLOT_ID, "[slot_tie]" = SLOT_TIE, - "[slot_wrists]" = SLOT_WRISTS, - "[slot_s_store]" = SLOT_S_STORE + "[slot_wrists]" = SLOT_WRISTS ) //the mob M is attempting to equip this item into the slot passed through as 'slot'. Return 1 if it can do this and 0 if it can't. @@ -463,16 +462,13 @@ var/list/global/slot_flags_enumeration = list( if( w_class > 2 && !(slot_flags & SLOT_POCKET) ) return 0 if(slot_s_store) - var/can_hold_s_store = (slot_flags & SLOT_S_STORE) - if(!can_hold_s_store && H.species.can_hold_s_store(src)) - can_hold_s_store = TRUE - if(can_hold_s_store) + if(isvaurca(H) && src.w_class <= ITEMSIZE_SMALL) return TRUE if(!H.wear_suit && (slot_wear_suit in mob_equip)) if(!disable_warning) to_chat(H, "You need a suit before you can attach this [name].") return 0 - if(!H.wear_suit?.allowed) + if(!H.wear_suit.allowed) if(!disable_warning) to_chat(usr, "You somehow have a suit with no defined allowed items for suit storage, stop that.") return 0 diff --git a/code/modules/materials/material_recipes.dm b/code/modules/materials/material_recipes.dm index d01fb562b1e..95b2b9674f2 100644 --- a/code/modules/materials/material_recipes.dm +++ b/code/modules/materials/material_recipes.dm @@ -114,7 +114,6 @@ recipes += new /datum/stack_recipe_list("[display_name] weaponry", list( - new /datum/stack_recipe("makeshift magazine (5.56mm)", /obj/item/ammo_magazine/a556/makeshift/empty, 5, time = 20), new /datum/stack_recipe("grenade casing", /obj/item/grenade/chem_grenade), new /datum/stack_recipe("firearm receiver", /obj/item/receivergun, 15, time = 25, one_per_turf = 0, on_floor = 0), new /datum/stack_recipe("shield fittings", /obj/item/material/shieldbits, 10, time = 25), diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index 85910624a6d..b60ee2d8e9f 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -93,12 +93,7 @@ This saves us from having to call add_fingerprint() any time something is put in if (wear_suit.flags_inv & HIDEJUMPSUIT) update_uniform = 1 if(s_store) - var/can_keep_s_store = FALSE - if(s_store.slot_flags & SLOT_S_STORE) - can_keep_s_store = TRUE - if(!can_keep_s_store && species.can_hold_s_store(s_store)) - can_keep_s_store = TRUE - if(!can_keep_s_store) + if(!(isvaurca(src) && s_store.w_class <= ITEMSIZE_SMALL)) drop_from_inventory(s_store) wear_suit = null update_inv_wear_suit() diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index d496b23bcc9..1144f7c5d46 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -774,7 +774,4 @@ if(C?.can_support) stance_damage -=2 - return stance_damage - -/datum/species/proc/can_hold_s_store(var/obj/item/I) - return FALSE \ No newline at end of file + return stance_damage \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca.dm b/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca.dm index da82a599386..34cc21d87ac 100644 --- a/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca.dm +++ b/code/modules/mob/living/carbon/human/species/station/vaurca/vaurca.dm @@ -159,8 +159,3 @@ /datum/species/bug/is_naturally_insulated() return TRUE - -/datum/species/bug/can_hold_s_store(obj/item/I) - if(I.w_class <= ITEMSIZE_SMALL) - return TRUE - return FALSE \ No newline at end of file diff --git a/code/modules/projectiles/ammunition/boxes.dm b/code/modules/projectiles/ammunition/boxes.dm index 677bf03fdd6..355e81d90f3 100644 --- a/code/modules/projectiles/ammunition/boxes.dm +++ b/code/modules/projectiles/ammunition/boxes.dm @@ -236,7 +236,7 @@ max_ammo = 15 /obj/item/ammo_magazine/a556/carbine/empty - initial_ammo = 0 + max_ammo = 0 /obj/item/ammo_magazine/a556/carbine/practice name = "carbine magazine (5.56mm practice)" @@ -248,16 +248,6 @@ origin_tech = list(TECH_COMBAT = 3) ammo_type = /obj/item/ammo_casing/a556/ap -/obj/item/ammo_magazine/a556/makeshift - name = "makeshift magazine (5.56mm)" - icon_state = "5.56m" - origin_tech = list(TECH_COMBAT = 1) - matter = list(DEFAULT_WALL_MATERIAL = 600) - max_ammo = 7 - -/obj/item/ammo_magazine/a556/makeshift/empty - initial_ammo = 0 - /obj/item/ammo_magazine/a50 name = "magazine (.50)" icon_state = "50ae" diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index 7bd1e49757b..6723f9fe898 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -90,7 +90,6 @@ to_chat(user, "\The [src] jams!") balloon_alert(user, SPAN_RED("JAM")) jam_num = rand(2, 5) // gotta attackself two to five times to unjam - return FALSE return TRUE /obj/item/gun/projectile/proc/process_chambered() diff --git a/code/modules/projectiles/guns/projectile/rifle.dm b/code/modules/projectiles/guns/projectile/rifle.dm index 6cb22012254..fec6381f8f1 100644 --- a/code/modules/projectiles/guns/projectile/rifle.dm +++ b/code/modules/projectiles/guns/projectile/rifle.dm @@ -59,25 +59,13 @@ caliber = "a556" ammo_type = null magazine_type = null - allowed_magazines = list(/obj/item/ammo_magazine/a556/makeshift) - load_method = MAGAZINE - max_shells = 7 + max_shells = 4 can_sawoff = FALSE needspin = FALSE has_safety = FALSE - slot_flags = SLOT_BACK|SLOT_S_STORE // can be stored in suit slot due to built in sling - - jam_chance = -10 - -/obj/item/gun/projectile/shotgun/pump/rifle/pipegun/handle_pump_loading() - if(ammo_magazine && length(ammo_magazine.stored_ammo)) - var/obj/item/ammo_casing/AC = ammo_magazine.stored_ammo[1] //load next casing. - if(AC) - AC.forceMove(src) - ammo_magazine.stored_ammo -= AC - chambered = AC + jam_chance = 0 /obj/item/gun/projectile/shotgun/pump/rifle/pipegun/examine(mob/user) . = ..() diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index 09827778aa2..be7c41d0ee2 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -68,7 +68,8 @@ /obj/item/gun/projectile/shotgun/pump/unique_action(mob/living/user) if(jam_num) - to_chat(user, SPAN_WARNING("\The [src] is jammed!")) + return + else if(unjam_cooldown + 2 SECONDS > world.time) return if(world.time >= recentpump + 10) pump(user) @@ -87,17 +88,14 @@ playsound(src.loc, chambered.drop_sound, DROP_SOUND_VOLUME, FALSE, required_asfx_toggles = ASFX_DROPSOUND) chambered = null - handle_pump_loading() - - update_maptext() - update_icon() - -/obj/item/gun/projectile/shotgun/pump/proc/handle_pump_loading() if(length(loaded)) var/obj/item/ammo_casing/AC = loaded[1] //load next casing. loaded -= AC //Remove casing from loaded list. chambered = AC + update_maptext() + update_icon() + /obj/item/gun/projectile/shotgun/pump/combat name = "combat shotgun" desc = "Built for close quarters combat, the Hephaestus Industries KS-40 is widely regarded as a weapon of choice for repelling boarders." diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index d08a0f41496..9376172a00d 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ