From b8a60766c6f72b7ba41ce4cdc343587e044ad606 Mon Sep 17 00:00:00 2001 From: KathrinBailey <53862927+KathrinBailey@users.noreply.github.com> Date: Thu, 13 May 2021 03:41:02 +0100 Subject: [PATCH] More prepwork for privateers (PR 2 of 6-ish maybe) (#5620) * all the stuff * Update energy.dm --- .../code/_globalvars/maint_loot_uncommon.dm | 4 +- .../faction/code/mapping/mapping_helpers.dm | 4 +- .../projectiles/guns/ballistic/automatic.dm | 95 ++++++-- .../projectiles/guns/ballistic/pistol.dm | 4 +- .../modules/projectiles/guns/energy/energy.dm | 229 ++++++++++++++++++ .../projectile/bullets/modular_projectiles.dm | 44 +++- .../research/designs/autolathe_designs.dm | 14 +- .../modular_weapons/icons/obj/ammo.dmi | Bin 2608 -> 4553 bytes .../icons/obj/guns/projectile.dmi | Bin 960 -> 5497 bytes .../icons/obj/guns/projectile40x32.dmi | Bin 1856 -> 1838 bytes .../modular_weapons/icons/obj/gunsets.dmi | Bin 0 -> 3119 bytes .../modular_weapons/icons/obj/projectiles.dmi | Bin 0 -> 2201 bytes .../modular_weapons/icons/obj/vending.dmi | Bin 0 -> 10520 bytes .../modular_weapons/sounds/laser_fire.ogg | Bin 0 -> 19653 bytes tgstation.dme | 1 + 15 files changed, 351 insertions(+), 44 deletions(-) create mode 100644 modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/energy/energy.dm create mode 100644 modular_skyrat/modules/modular_weapons/icons/obj/gunsets.dmi create mode 100644 modular_skyrat/modules/modular_weapons/icons/obj/projectiles.dmi create mode 100644 modular_skyrat/modules/modular_weapons/icons/obj/vending.dmi create mode 100644 modular_skyrat/modules/modular_weapons/sounds/laser_fire.ogg diff --git a/modular_skyrat/master_files/code/_globalvars/maint_loot_uncommon.dm b/modular_skyrat/master_files/code/_globalvars/maint_loot_uncommon.dm index 81221234712..ae256f04384 100644 --- a/modular_skyrat/master_files/code/_globalvars/maint_loot_uncommon.dm +++ b/modular_skyrat/master_files/code/_globalvars/maint_loot_uncommon.dm @@ -143,9 +143,9 @@ GLOBAL_LIST_INIT(uncommon_loot, list(//uncommon: useful items /obj/item/ammo_casing/a762 = 25, /obj/item/ammo_casing/c10mm = 25, /obj/item/ammo_casing/c32 = 50, - /obj/item/ammo_casing/c32_ap = 10, + /obj/item/ammo_casing/c32/ap = 10, /obj/item/ammo_casing/c32_incendiary = 10, - /obj/item/ammo_casing/c32_rubber = 50, + /obj/item/ammo_casing/c32/rubber = 50, /obj/item/ammo_casing/c38 = 100, /obj/item/ammo_casing/c38/dumdum = 20, /obj/item/ammo_casing/c38/hotshot = 20, diff --git a/modular_skyrat/modules/faction/code/mapping/mapping_helpers.dm b/modular_skyrat/modules/faction/code/mapping/mapping_helpers.dm index edacbcc08ad..8eaf9aa4a8b 100644 --- a/modular_skyrat/modules/faction/code/mapping/mapping_helpers.dm +++ b/modular_skyrat/modules/faction/code/mapping/mapping_helpers.dm @@ -170,8 +170,8 @@ new /obj/item/gun/ballistic/automatic/cfa_wildcat(src) new /obj/item/gun/ballistic/automatic/cfa_wildcat(src) for(var/i in 1 to 2) - new /obj/item/ammo_box/magazine/smg32(src) - new /obj/item/ammo_box/magazine/smg32/rubber(src) + new /obj/item/ammo_box/magazine/multi_sprite/cfa_wildcat(src) + new /obj/item/ammo_box/magazine/multi_sprite/cfa_wildcat(src) new /obj/item/gun/ballistic/automatic/assault_rifle/akm(src) for(var/i in 1 to 2) new /obj/item/ammo_box/magazine/akm(src) diff --git a/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/ballistic/automatic.dm b/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/ballistic/automatic.dm index 689cbef66ca..6fcc50adde2 100644 --- a/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/ballistic/automatic.dm @@ -4,46 +4,45 @@ // Magazines -/obj/item/ammo_box/magazine/smg32 - name = "smg magazine (.32)" - desc = "A .32 magazine with a 30-rnd capacity. An economically friendly but low damage calibre, even low-end autolathes can print .32 bullets." +/obj/item/ammo_box/magazine/multi_sprite/cfa_wildcat + name = "CFA Wildcat Magazine (.32)" + desc = "Magazines taking .32 ammunition; it fits in the CFA Wildcat. Alt+click to reskin it." icon = 'modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi' icon_state = "smg32" + possible_types = list(AMMO_TYPE_LETHAL, AMMO_TYPE_AP, AMMO_TYPE_RUBBER, AMMO_TYPE_INCENDIARY) ammo_type = /obj/item/ammo_casing/c32 caliber = "c32acp" max_ammo = 30 - multiple_sprites = 2 + multiple_sprites = AMMO_BOX_FULL_EMPTY_BASIC -/obj/item/ammo_box/magazine/smg32/rubber - name = "smg magazine (.32 rubber)" - icon_state = "smg32" - ammo_type = /obj/item/ammo_casing/c32_rubber +/obj/item/ammo_box/magazine/multi_sprite/cfa_wildcat/ap + ammo_type = /obj/item/ammo_casing/c32/ap + round_type = AMMO_TYPE_AP -/obj/item/ammo_box/magazine/smg32/ap - name = "smg magazine (.32 armor-piercing)" - icon_state = "smg32" - ammo_type = /obj/item/ammo_casing/c32_ap +/obj/item/ammo_box/magazine/multi_sprite/cfa_wildcat/rubber + ammo_type = /obj/item/ammo_casing/c32/rubber + round_type = AMMO_TYPE_RUBBER -/obj/item/ammo_box/magazine/smg32/incendiary - name = "smg magazine (.32 incendiary)" - icon_state = "smg32" +/obj/item/ammo_box/magazine/multi_sprite/cfa_wildcat/incendiary ammo_type = /obj/item/ammo_casing/c32_incendiary + round_type = AMMO_TYPE_INCENDIARY -/obj/item/ammo_box/magazine/smg32/empty +/obj/item/ammo_box/magazine/multi_sprite/cfa_wildcat/empty start_empty = 1 -/////////// -// SMG // -/////////// - +/////////////// +// Wildcat // +/////////////// +// 3rnd burst .32 calibre, 15 damage. +// Fills the role of a low damage, high magazine capacity secondary. /obj/item/gun/ballistic/automatic/cfa_wildcat name = "\improper CFA Wildcat" - desc = "An old SMG, this one is chambered in .32, a very common and dirt-cheap cartridge." + desc = "An old SMG, this one is chambered in .32, a very common and dirt-cheap cartridge. It has Cantalan Federal Arms etched above the magazine well." icon = 'modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile40x32.dmi' icon_state = "mp5" inhand_icon_state = "arg" selector_switch_icon = TRUE - mag_type = /obj/item/ammo_box/magazine/smg32 + mag_type = /obj/item/ammo_box/magazine/multi_sprite/cfa_wildcat can_suppress = FALSE burst_size = 3 fire_delay = 1.25 @@ -57,3 +56,55 @@ /obj/item/gun/ballistic/automatic/cfa_wildcat/no_mag spawnwithmagazine = FALSE + +/////////////// +// MP7 // +/////////////// + +/obj/item/gun/ballistic/automatic/cfa_lynx + name = "\improper CFA Lynx" + desc = "A carbine with a high magazine capacity. Chambered in 4.6x30mm. It has Cantalan Federal Arms etched above the magazine well." + icon = 'modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile.dmi' + icon_state = "mp7" + inhand_icon_state = "arg" + selector_switch_icon = FALSE + mag_type = /obj/item/ammo_box/magazine/multi_sprite/cfa_lynx + can_suppress = FALSE + burst_size = 3 + fire_delay = 0.5 + spread = 2 + mag_display = TRUE + empty_indicator = FALSE + fire_sound = 'sound/weapons/gun/smg/shot_alt.ogg' + weapon_weight = WEAPON_MEDIUM + has_gun_safety = FALSE + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/gun/ballistic/automatic/cfa_lynx/no_mag + spawnwithmagazine = FALSE + +/obj/item/ammo_box/magazine/multi_sprite/cfa_lynx + name = "CFA Lynx Magazine (4.6x30mm)" + desc = "A magazine for the CFA Lynx. It has a small inscription on the base, '4.6x30mm'. Alt+click to reskin it." + icon = 'modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi' + icon_state = "lynx" + possible_types = list(AMMO_TYPE_LETHAL, AMMO_TYPE_AP, AMMO_TYPE_RUBBER, AMMO_TYPE_INCENDIARY) + ammo_type = /obj/item/ammo_casing/c46x30mm + caliber = CALIBER_46X30MM + max_ammo = 40 + multiple_sprites = AMMO_BOX_FULL_EMPTY_BASIC + +/obj/item/ammo_box/magazine/multi_sprite/cfa_lynx/ap + ammo_type = /obj/item/ammo_casing/c46x30mm/ap + round_type = AMMO_TYPE_AP + +/obj/item/ammo_box/magazine/multi_sprite/cfa_lynx/rubber + ammo_type = /obj/item/ammo_casing/c46x30mm/rubber + round_type = AMMO_TYPE_RUBBER + +/obj/item/ammo_box/magazine/multi_sprite/cfa_lynx/incendiary + ammo_type = /obj/item/ammo_casing/c46x30mm/inc + round_type = AMMO_TYPE_INCENDIARY + +/obj/item/ammo_box/magazine/multi_sprite/cfa_lynx/empty + start_empty = TRUE diff --git a/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/ballistic/pistol.dm b/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/ballistic/pistol.dm index d20f698391e..27a92c9c257 100644 --- a/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/ballistic/pistol.dm +++ b/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/ballistic/pistol.dm @@ -40,7 +40,7 @@ /obj/item/ammo_box/magazine/multi_sprite/cfa_snub name = "CFA Snub Magazine (4.6x30mm)" desc = "An advanced magazine with smart type displays. Alt+click to reskin it." - icon = 'modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi' + icon = 'modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi' icon_state = "m46x30" possible_types = list(AMMO_TYPE_LETHAL, AMMO_TYPE_AP, AMMO_TYPE_RUBBER, AMMO_TYPE_INCENDIARY) ammo_type = /obj/item/ammo_casing/c46x30mm @@ -66,7 +66,7 @@ /obj/item/ammo_box/magazine/multi_sprite/cfa_ruby name = "CFA Ruby Magazine (10mm Magnum)" desc = "An advanced magazine with smart type displays. Alt+click to reskin it." - icon = 'modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi' + icon = 'modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi' icon_state = "m10mm" possible_types = list(AMMO_TYPE_LETHAL, AMMO_TYPE_AP, AMMO_TYPE_RUBBER, AMMO_TYPE_HOLLOWPOINT, AMMO_TYPE_INCENDIARY) ammo_type = /obj/item/ammo_casing/c10mm diff --git a/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/energy/energy.dm b/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/energy/energy.dm new file mode 100644 index 00000000000..94784ae6296 --- /dev/null +++ b/modular_skyrat/modules/modular_weapons/code/modules/projectiles/guns/energy/energy.dm @@ -0,0 +1,229 @@ +////////////////////// +// CFA Defender // +////////////////////// +// A mini disabler with 12 shot capacity in comparison to the normal disabler's 20. + +/obj/item/gun/energy/disabler/cfa_disabler + name = "CFA Responder" + desc = "A pocket-sized self-defense weapon popular with law enforcement due to its safe non-lethal payload that physically exhausts organic targets and cheap pricetag. The size makes it popular with smaller species, however, gives the obvious drawback of a smaller battery. It has Cantalan Federal Arms eteched into the grip." + icon = 'modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile.dmi' + icon_state = "cfa-disabler" + inhand_icon_state = null + ammo_type = list(/obj/item/ammo_casing/energy/disabler) + ammo_x_offset = 2 + w_class = WEIGHT_CLASS_SMALL + cell_type = /obj/item/stock_parts/cell/mini_egun + ammo_x_offset = 2 + charge_sections = 3 + can_flashlight = FALSE // Can't attach or detach the flashlight, and override it's icon update + gunlight_state = "cfa-disabler-light" + has_gun_safety = FALSE + +/obj/item/gun/energy/disabler/cfa_disabler/Initialize() + set_gun_light(new /obj/item/flashlight/seclite(src)) + return ..() + +////////////////////// +// CFA Phalanx // +////////////////////// +// Similar to the HoS's laser. Fires a bouncing non-lethal, lethal and knockdown projectile. + +/obj/item/gun/energy/e_gun/cfa_phalanx + name = "\improper Mk.II Phalanx Plasma Carbine" + desc = "Fires a disabling and lethal bouncing projectile, as well as a special muscle-seizing projectile that knocks targets down. It has Cantalan Federal Arms etched into the grip." + icon = 'modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile.dmi' + icon_state = "phalanx" + w_class = WEIGHT_CLASS_NORMAL + force = 10 + ammo_type = list(/obj/item/ammo_casing/energy/disabler/bounce, /obj/item/ammo_casing/energy/laser/bounce, /obj/item/ammo_casing/energy/electrode/knockdown) + ammo_x_offset = 1 + charge_sections = 5 + has_gun_safety = FALSE + cell_type = /obj/item/stock_parts/cell/hos_gun + +////////////////////// +// CFA Paladin // +////////////////////// +// Identical to a heavy laser. + +/obj/item/gun/energy/laser/cfa_paladin + name = "\improper Mk.IV Paladin Plasma Carbine" + desc = "Essentially a handheld laser cannon. This is solely for killing, and it's dual-laser system reflects that. It has Cantalan Federal Arms etched into the grip." + icon = 'modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile.dmi' + icon_state = "paladin" + force = 10 + ammo_type = list(/obj/item/ammo_casing/energy/laser/double) + charge_sections = 5 + has_gun_safety = FALSE + +////////////////////// +// Bounce Disabler // +////////////////////// +// It's a disabler that will always ricochet. + +/obj/item/ammo_casing/energy/disabler/bounce + projectile_type = /obj/projectile/beam/disabler/bounce + select_name = "disable" + e_cost = 60 + fire_sound = 'sound/weapons/taser2.ogg' + harmful = FALSE + +/obj/effect/projectile/tracer/disabler/bounce + name = "disabler" + icon = 'modular_skyrat/modules/modular_weapons/icons/obj/projectiles.dmi' + icon_state = "bouncebeam" + +/obj/projectile/beam/disabler/bounce + name = "disabler arc" + icon = 'modular_skyrat/modules/modular_weapons/icons/obj/projectiles.dmi' + icon_state = "bouncebeam" + damage = 30 + damage_type = STAMINA + flag = ENERGY + eyeblur = 1 + tracer_type = /obj/effect/projectile/tracer/disabler/bounce + light_range = 5 + light_power = 0.75 + speed = 1.4 + ricochets_max = 6 + ricochet_incidence_leeway = 170 + ricochet_chance = 130 + ricochet_decay_damage = 0.9 + +/obj/projectile/beam/disabler/bounce/check_ricochet_flag(atom/A) + return TRUE +// Allows the projectile to reflect on walls like how bullets ricochet. + +////////////////////// +// Bounce Laser // +////////////////////// +// It's a laser that will always ricochet. + +/obj/item/ammo_casing/energy/laser/bounce + projectile_type = /obj/projectile/beam/laser/bounce + select_name = "lethal" + e_cost = 100 + +/obj/projectile/beam/laser/bounce + name = "energy arc" + icon = 'modular_skyrat/modules/modular_weapons/icons/obj/projectiles.dmi' + icon_state = "bouncebeam_red" + damage = 20 + damage_type = BURN + flag = LASER + light_range = 5 + light_power = 0.75 + speed = 1.4 + ricochets_max = 6 + ricochet_incidence_leeway = 170 + ricochet_chance = 130 + ricochet_decay_damage = 0.9 + +/obj/projectile/beam/laser/bounce/check_ricochet_flag(atom/A) + return TRUE +// Allows the projectile to reflect on walls like how bullets ricochet. + +////////////////////// +// Knockdown Bolt // +////////////////////// +// A taser that had the same stamina impact as a disabler, but a five-second knockdown and taser hitter effects. + +/obj/item/ammo_casing/energy/electrode/knockdown + projectile_type = /obj/projectile/energy/electrode/knockdown + select_name = "knockdown" + fire_sound = 'sound/weapons/taser.ogg' + e_cost = 200 + harmful = FALSE + +/obj/projectile/energy/electrode/knockdown + name = "electrobolt" + icon = 'modular_skyrat/modules/modular_weapons/icons/obj/projectiles.dmi' + icon_state = "electro_bolt" + knockdown = 50 + stamina = 30 + range = 6 + +////////////////////// +// Single Laser // +////////////////////// +// Has an unique sprite, it's a low-powered laser for rapid fire. Pea-shooter tier. + +/obj/item/ammo_casing/energy/laser/single + projectile_type = /obj/projectile/beam/laser/single + e_cost = 50 + select_name = "lethal" + +/obj/projectile/beam/laser/single + name = "laser bolt" + icon = 'modular_skyrat/modules/modular_weapons/icons/obj/projectiles.dmi' + icon_state = "single_laser" + damage = 15 + eyeblur = 1 + light_range = 5 + light_power = 0.75 + speed = 0.5 + armour_penetration = 10 + +////////////////////// +// Double Laser // +////////////////////// +// Visually, this fires two lasers. In code, it's just one. It's fast and great for turrets. + +/obj/item/ammo_casing/energy/laser/double + projectile_type = /obj/projectile/beam/laser/double + e_cost = 150 + select_name = "lethal" + fire_sound = 'sound/weapons/lasercannonfire.ogg' + +/obj/projectile/beam/laser/double + name = "laser bolt" + icon = 'modular_skyrat/modules/modular_weapons/icons/obj/projectiles.dmi' + icon_state = "double_laser" + damage = 40 + eyeblur = 1 + light_range = 5 + light_power = 0.75 + speed = 0.5 + armour_penetration = 10 + +////////////////////// +// Energy Bullets // +////////////////////// +// Ballistic gunplay but it allows us to target a different part of the armour block. +// Also allows the benefits of lasers (blobs strains, xenos) over bullets to be used with ballistic gunplay. + +/obj/item/ammo_casing/caseless/laser + name = "Type I Plasma Projectile" + desc = "A chemical mixture that once triggered, creates a deadly projectile, melting it's own casing in the process." + icon = 'modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi' + icon_state = "plasma_shell" + worn_icon_state = "shell" + caliber = "Beam Shell" + custom_materials = list(/datum/material/iron=4000,/datum/material/plasma=250) + projectile_type = /obj/projectile/beam/laser/single + +/obj/item/ammo_casing/caseless/laser/double + name = "Type II Plasma Projectile" + desc = "A chemical mixture that once triggered, creates a deadly projectile, melting it's own casing in the process." + icon_state = "plasma_shell2" + worn_icon_state = "shell" + caliber = "Beam Shell" + custom_materials = list(/datum/material/iron=4000,/datum/material/plasma=500) + projectile_type = /obj/projectile/beam/laser/double + +/obj/item/ammo_casing/caseless/laser/bounce + name = "Type III Reflective Projectile (Lethal)" + desc = "A chemical mixture that once triggered, creates a deadly bouncing projectile, melting it's own casing in the process." + icon_state = "bounce_shell" + worn_icon_state = "shell" + caliber = "Beam Shell" + custom_materials = list(/datum/material/iron=4000,/datum/material/plasma=250) + projectile_type = /obj/projectile/beam/laser/bounce + +/obj/item/ammo_casing/caseless/laser/bounce/disabler + name = "Type III Reflective Projectile (Disabler)" + desc = "A chemical mixture that once triggered, creates bouncing disabler projectile, melting it's own casing in the process." + icon_state = "disabler_shell" + projectile_type = /obj/projectile/beam/disabler/bounce + + diff --git a/modular_skyrat/modules/modular_weapons/code/modules/projectiles/projectile/bullets/modular_projectiles.dm b/modular_skyrat/modules/modular_weapons/code/modules/projectiles/projectile/bullets/modular_projectiles.dm index d84e5b8024f..af4f1198fa5 100644 --- a/modular_skyrat/modules/modular_weapons/code/modules/projectiles/projectile/bullets/modular_projectiles.dm +++ b/modular_skyrat/modules/modular_weapons/code/modules/projectiles/projectile/bullets/modular_projectiles.dm @@ -14,31 +14,31 @@ /obj/projectile/bullet/c32 name = ".32 bullet" damage = 15 - wound_bonus = -50 + wound_bonus = 0 -/obj/item/ammo_casing/c32_rubber +/obj/item/ammo_casing/c32/rubber name = ".32 rubber bullet casing" desc = "A .32 rubber bullet casing." caliber = "c32acp" - projectile_type = /obj/projectile/bullet/c32_rubber + projectile_type = /obj/projectile/bullet/c32/rubber -/obj/projectile/bullet/c32_rubber +/obj/projectile/bullet/c32/rubber name = ".32 rubber bullet" damage = 5 stamina = 20 wound_bonus = -75 -/obj/item/ammo_casing/c32_ap +/obj/item/ammo_casing/c32/ap name = ".32 armor-piercing bullet" desc = "A .32 armor-piercing bullet casing." caliber = "c32acp" - projectile_type = /obj/projectile/bullet/c32_ap + projectile_type = /obj/projectile/bullet/c32/ap -/obj/projectile/bullet/c32_ap +/obj/projectile/bullet/c32/ap name = ".32 armor-piercing bullet" - damage = 10 + damage = 15 armour_penetration = 40 - wound_bonus = -10 + wound_bonus = -75 /obj/item/ammo_casing/c32_incendiary name = ".32 incendiary bullet" @@ -174,3 +174,29 @@ shrapnel_type = null sharpness = NONE embedding = null + +////// 7.62 ////// +//////////////////////// +///// 5.56x45mm ///// +// Very good at piercing armour at short range, not as good at going through armour at over 100m. But this is SS13... + +/// The 5.56 you see pretty much everyone under NATO use. +#define CALIBER_A556x45 "a556x45" +/obj/item/ammo_casing/a556x45 + name = "5.56x45mm bullet casing" + desc = "A 5.56mm rubber bullet casing." + caliber = CALIBER_A556x45 + projectile_type = /obj/projectile/bullet/a556x45 + +/obj/projectile/bullet/a556x45 + name = "5.56x45mm bullet" + damage = 50 + armour_penetration = 20 + stamina = 10 + speed = 0.2 + wound_bonus = 20 + bare_wound_bonus = 10 + +///// 5.56x45mm ///// +//////////////////////// +////// 7.62 ////// diff --git a/modular_skyrat/modules/modular_weapons/code/modules/research/designs/autolathe_designs.dm b/modular_skyrat/modules/modular_weapons/code/modules/research/designs/autolathe_designs.dm index 1d203e1b865..c15904ce885 100644 --- a/modular_skyrat/modules/modular_weapons/code/modules/research/designs/autolathe_designs.dm +++ b/modular_skyrat/modules/modular_weapons/code/modules/research/designs/autolathe_designs.dm @@ -16,20 +16,20 @@ build_path = /obj/item/ammo_casing/c32 category = list("hacked", "Security") -/datum/design/c32_rubber +/datum/design/c32/rubber name = ".32 Rubber Bullet" - id = "c32_rubber" + id = "c32/rubber" build_type = AUTOLATHE materials = list(/datum/material/iron = 1000) - build_path = /obj/item/ammo_casing/c32_rubber + build_path = /obj/item/ammo_casing/c32/rubber category = list("initial", "Security") -/datum/design/c32_ap +/datum/design/c32/ap name = ".32 Armor-Piercing Bullet" - id = "c32_ap" + id = "c32/ap" build_type = AUTOLATHE materials = list(/datum/material/iron = 2000) - build_path = /obj/item/ammo_casing/c32_ap + build_path = /obj/item/ammo_casing/c32/ap category = list("hacked", "Security") /datum/design/c32_incendiary @@ -45,7 +45,7 @@ id = "smg32acp" build_type = AUTOLATHE materials = list(/datum/material/iron = 3000) - build_path = /obj/item/ammo_box/magazine/smg32/empty + build_path = /obj/item/ammo_box/magazine/multi_sprite/cfa_wildcat/empty category = list("hacked", "Security") /datum/design/a762 diff --git a/modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi b/modular_skyrat/modules/modular_weapons/icons/obj/ammo.dmi index 0eff5f4e4a6cbe849513735ffd737d35b82015e7..b6badfba29431bff1942c3f2584e09be27bc52b6 100644 GIT binary patch literal 4553 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 diff --git a/modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile.dmi b/modular_skyrat/modules/modular_weapons/icons/obj/guns/projectile.dmi index 36f186d4d44d3e76ce91717d7b79555a6e61387d..4e108e276ab34d7428550a466ebf36aa686a944e 100644 GIT binary patch literal 5497 zcmbtYcQjmIyFN5B$}M!7^R@@tZ+CjR3{?y; z66bgQ`tq&9Ac~p%(d92&o0LUO|wRUSU`;t)a|Q%iOxQrP{z5 zWr_QXDCEQS!npm`r;IjDyQq~!s|^NSXr0g3I4TP4dj2=YkCyajIX{JBWtZMI9yAvF ziJR6unCFnVo*1`J$i7>s`d?81z|i+xS<%2h2Qv$HX7dRo-P?T@@X^qnEZ#dEW*A8F zR>a4!Ji6$oT5ySdxz`UP-4v~snW8}wbx%>DhMUY$$Bj@yMh*Wsjc2S6DNriwp3-zj z$L_P6OHjsY(%H*J!fZ-S>z%;qj+@OSXA5E3mo<6&+s&AAKl{8I98P^u3R!#JSGl$| zzny>!vKby8=Hg~yQg;Ie9lHT~avLCySR_n2f?0uEk&5dh7fFhGiaj8fN%ts~Wzgi2 zXoCmz5xRCtz4=NPmnYB>SJ0uqR#yy#q3l!*b^#c9o%v>%`$(3kC&!9Yxd{p zvn8C{w{K@PsO=HWv%K@kO1rtpk{!QLtCsx2LZZyRSP6+^VH))@UUOu3 zb?B8v9||=p=jyz@7~NI5YZ{Yp+LoUy?IUm~xr~yW9|x?0FKE<9PBfQrC#J&!>$`|) zU-5Ge<$$&_O6cXVsv+abf&Lc=q^Ga%#jGd<@=PGDW5@i2C0Vmb@8?=^uyemvS(W{- z3m1rB+(}zz*6K%oJjS@M_!Wn;Ut4Wr7z}3Re|j9Poug5d-fBp=)9mHsZ2h3+LEgQ& ztCA2jtIN3O1Su=V&j&&@#MfckSlL zHn6wYd3b2wA@!K@xrlZu%TgbiZckDY+v3?e&ZbiP%*5I~X=8`1UDI`+R4_$HD1 zy;y>K^gsSJzX$$74pk0qOq)tgDtPmJm_GV@1t{mtDHOLDIBha)nJjxH?%)&e3=m{q zx+glCsMPS8%OoZxIRfqr?crZ8>r;tHY5ZIJmwS?(OyREP4ZBfi$+gIFUWS=-&(A_8v3s{r*}uZaBcOER&) z+*5B;)A&`|;*jq2x~GP4%SFy_m0fM0v9fAb2kVr;u4VA+PP#@t-OW6nY#d)g@_cww z63w!N%7eSvs5@7joSg8N9GEBBNcplkxs#blX9=eZ2oD$H4mXF% zQHqAGsMB%+!F&4|{>!2AJwY`b=pJIa*3GT?!8r($Dr$b_y-iK5zbs9=d`G=Bq0Ehe zDrbrKyu7?Grj{BHy?_8R4T-V6Qpg3zZdahNlvHefzKKxt;GpiK*!D^I@*6y|pdMI= zsPR`LI=Gv$#C-MLINA0n$z8mNA1dj!yvfKMUhZ3Ls6+#L?8SRH%Og!L5-MuyE?z!9 zak=-_E-_kHRGYl(oMZ|ZX%9Cyx7k0j`}-b%d-JLjHN=OVB!w-r^TeXOc<0&0$cO>7 z5Hd^~4#6D`4X9ZOt#*zYRUV0k*)HFb=gOf|btFDMFnxF}Nmw`4v%zXFf~i5H2uec#OKF$_28gd=ZWVMIiCu`JJD&S0wVf+5mEF zA*+zZAUH#Z~Gpg)Wgh#-6ZqibKz#)V@fihU}!2-?~GE~r&iIRBvaPcCBb8-GsE~&NE(q`CYo)~yzFsvpc)B_3P07>t& zb)Q_gFlV#ICK5$vjg&A&VeQgBv~@p9>>w2!26m?5Xena;TNL5-;bXL{y}QlvZWs4; z@^U*T;r)cK*yzx?4~c-wtx)vxr({rveTKQUDPjA=s+Lu!A7-#fh&eRT?6327-vL#b ztI2Qz7u=zDp9_mOj;jO~@ur7n($z1E$-s~?M;_d?)1b^vuJRy&BjRx{Ab&WZlpid{ zn=$Gc{=tDZdW__25YHG>dsZQSR*@b#o;dMdbIcH(}xUem-Ng*i_9UPWNv zPkeMpJsTJA(ftO&w!yGvLbNv4)VDEUpsUd^Hfwi5wXS4$Zk~1dR7=w1aB^Y-eBy-X zfo%F@NX8g$)CX{cP*#~C$6gWE?`g4tCFoH=2cZFYN6rMC zYQ?9Wm?%ee?L^F+ZG0)xR8~Y!m%rT9M?^WQh{-~UT< zK1G#0nTTY?Y5tXp15 z&Ij&=t=4@#E;TajnGTgXp@WSE^c1mzVk$#ku38?NkyOn3q~B`)WjuYt;PT+mt-rK0Ju-TzAdv~X9=DM0hqN&}>C!^_D1_shM zc+>TA)Y-V7cBgLE=y8V0Yz|{Q&w@a;`+5MGyc$RhPLk$2tQRekiP7i)^pv!y1%d*{ z5F{F)c#{g4jT%w!4I!lzKKxe}TV=3_%uLx^MJv+Wdek7IPY;Xt2;8@6oYGP9Hw+E) zVFFn=D#VmK@jdO;OMeRpF3iO0XzwHFf=WH98N2*isf5!mtFt&cMD}bcF$TKwyA;G> zbp;;qmkqC}5s7vqXIA*jmL}iTeQyg0OXbrZt0)#?k-zdM)2O_Y`+Y>o&OCYXAo*H* zYoY(8^7wZI_!k0y%?}R^3Qt>?y2;Tr1xw2+mlhijlC%#I1_E!9RXY68GA9osj2dUl z{E6jn&2d`IVS?rzKDeWs^X2%LY0=n3Zy2XHyQJi-w^`8Hp9&H9+gC@CvslDI!d9 zoVcZz(@oizUvF1K+74PVtz}4hP1tUCDfQeza$@(L*|nlGy1g4fwp_X*Wm!^uyZ~%X zv>dBAD6^cE?Pw%GAuTN}oEA#we{TLF#AEIijevjv;|<(d%jvzgQ&}8k@-S-$PH)o)eq#%N}w%QD;Y+YVpOMBy6qo?Fni{A7CsefXC>HMg8DKW5XdHFe#Hzf zA5(+w?5uo(mzh0g35T_TeXUnrgP>EdIrnHjL#m%HmcO%g&yE)6(DvVHj_SA-7<8^% z0bAcrVC~J!3^s35Xwin6)@p5F>7@uiEsm7xi@-y|0z+f%7%B99(42p;^vnvd!kG3_ zPAlo$u^H?$gE9epWueUNAc#UE%r;{ZnU+fLR)vIN`z!eCead@%w=af{B7dO640@&* z27=d_y88vqLC&(o_ajY}`m23|@m>9snBpsD8%Le(fL<;>k>xZacU<+p7}w;w{p})E z&JC>fHR1Meepdfqa`f-DwbpOtkM^#Hydq^jDMu^{AD(!1rX%A6E&`)Q-2}ptQLZB# zW?tRPF9(S9* zyWXDa<~V$E9E-B4@3AHhev+W`xN!#wcl^{s3Awtg#vFxiog)Ss?3Xz~rS((DfeNvm z*)G{{28@yWjWxl7uPIeRMUuZaws=f_hCSQZtlUa*3YoLpEaOX3P^p-Qw!XL=#Q=cM z=8c{P2Z69kTbMPt|AXqsg^?VwjNW{tOx&d>U6&&xI5)RjbbdC*6R{%Q0o2nVIy*a6 zLltmmUWgow?FVDr*^+}PAcJk4OUKHRD=nF9B(MrG4vbGaAX{El6bwz?u=403b(Fbk zaG9>QM=xiEFi&WJ>kZu52^I_GiPS$XjAp_UXrQ%)V_%Fd(>3wMcQHYZk-2;}?1Kn) zWOjR?V5+Q@=>JDNm`Wx zJnB-!dP13)-_JxFFi8q`er~Qu#?W13n0zSHXYR7J{zlAt3acvEA{wfmvXk)85E28u zr`04@X$$6v&|6XW>!z-~PK|4p1>Xilq-To{rIn!ZRW9D`{&{rs{~+h}!B3R~`PDl# z2Wkp}8BdnKLlh?Iw=*(>tvzCspGilEmmi_fTLzZ%4Zb4daCvxr2+}EgOQr>~id7sL z+d|60EkGqxfUvNz)fQMvPLACRiEh#=yY%S2jhf2a?vI*FJ#TOxoN3~bTPXw;RRMV= z20GB-;YCi53Fu1C|q%&zQu!PaAbf!dugH}I_W*vU|3 zN`S5odbN&?D`>^Of{RS*D>4!c(d;qiq2;+;y)j%8xqBT`D+zUA(|?QwmZ% v(2QITo&{^pbCA6X5B-l+;s2}cU_;?bOf8B$On31|s=#vC00012P)t-sz`(#G zBP}!k0LRG6EiE^ema1A>WVyP$4-XGyZg@r`9+qT0S~4v%GBRXjWKd90Mn*=KmX>&U zc%Y!5udlC>SrB|o4N)-&Xg~|Vz`(JL9h-hC|I7d!aV~)X0004WQchCV=-0C=30lFbT(Fc5^#<|%@nE&aRpQk3GMzCwt)YG^dFn^^kx z4SMLIl*Zc(`wi^CB>bA+ijrsdg3W-W%*ZeNyxX(rsT$jRb2_r92i5g&p4k>T1 zd|O=Et$q~cmBZm6NAQ~G>q{jorQ@TL$Kz2}JqMGmTUB{|Gyv9@M#n`;Y8`Fq0ic1_ zg$CgIM)wP5leIPXz4*& zIMA)yB|Ru}38VwNrUzYzMMPj8(h(e(?-%6S{vdrj>c>f)#)#ly9mBxsl!*u+9m~M# z;X*o6|EF~f0}?Qh)iDgvo zkIS(qX!^f@oJmf8?Eh&)d_mB>?|-%;&>2YmX-+>GNc{=1pJ!SFgon>C48t%C!~9D$ z)CO#On_zss+JW_rZ6dY{FhVm+FkXOfzWM|sP15b|3C5gs0&RpS!Dw3Y1f!)+Fj`J9 iIKiNU6AXr7DER}5mniN3YWD^J0000V=-0C=30l+9|xFbsgt z@l%+8_S~_b?zqcn89l78V4Oxt#N;?wPRibX&I;+NSiVX4llUYXZ}sQ#>vYzK?~|G# zF#17%=>5~Ps;=0?eo0c?19p8($=j>qXd|R>6JYi<F=%Q}v5Yq4FFzo6F>J4Y1wsp5XtkD~-8Q zq0F6?TDbAuv=b4J0b|}K;i8t#=C{3Y;KukXBI_w|egi9M7#wEtOKXkn8dg#^+FpQ& zIyK0)CJ2wftv;R)|KHRfLt$wLSs+fx000G5Nkli*}ko5QbSy5by${7*n-> zsnMFIeg6mS?3IfwETES3%ttf?hMoQQqUZ3t(ens`AP9mWTwzF;*efiNEd_a&tNn7^ z#1{8-UA5=upiO{gTEnv?vblX23w_2fXHmq00#Oi`;%4E5Jt5V&NhNN+SondnkSL1$ zDsg?FKW)|$`a$SNAqomvvAEDLw@f&Hc?w0BRN`hBmk$cAW4ZK$$W;lyK+-(47@MQy zs+L3|&hv_eNZnA)<7P94Ju*RR;@BLKmEk%P#(d{4VW@k#Y@b#bhviqaBq}e~alTN^ zTUSmgZpM2F_0}dSfI8x~nOVHnKE11PD7c_SR8S|ynl2K1QKh(9L$~w#YZ4xRwK|ffiq2G2rWEEV)F8V;00D8j&UpzQCvcDXALGL z(}`tXUO)Q~b&V^$1>U@q$f=$50f}aK*A`ZiUtZ}ecVB4!5u4)h8q`bz-F8z$OygtKtLp$C4^SN5Tu+@GK z+xQK|_5!pD+${~MRux)HT3(;QWRvsZvop&>lI3!dG%Px~krG{B$Y2`t131IMMFmH{ zX6f}A+F`=>-?B3I5unK{4EqdXPYH3Pbc0`1l}Qy#-U0rdY^@f5GBw6JD5-f1$sH!| zUiMrISpNg49rrG|B6pbn)f<1NbPQH<_u0@whC@s473Tk!B+IA$SC&B#1VIo4K@bE% zJdp1G!#L^TKa7$d{==vk;y;XuLH>gqQS^wW800_Pj2nEIe5n8MXuf~9o$2jA47&q+ zdwTm1V-u3o)qfa&tCG(C!&rrM_a8>8q`UtxR-dA~|1e4!1VIo4K@bE%5ClQA!f%qP zt#q(wX>#-5-tr%7S>4x7G-a;E>nTKEAN}}||5#duMX~tbG5mw@TeSdTdpvHA$77%B zzkoE3GB_L#0Q*dA;QX=na&hnQ&Z#uZdtF)l%P!b1igxUObUN)$lHK{dIiJt&iF40u z1&5!U15Bq=fc0K%u>RTMwjRjpqkxO3_{YbEKYro%@d5ntRwG1HT-~ybBG$B$-S-7l|qjE}x(H_=VdA1RbuBM% zbmiZmw%>nnyOc^x%(5c&AJm4f3c(SS>6@>>Z;VgfU#7&^tCn}=-*~l6k}S->9^?HH zyRWEV0gLc)B_vM)YI?Yq=!sVY>sjsJ)RU-nAqf6l>awDO`6#6J`+PKzI~8s;3Nijo zJ!YzV@+*@~0d!JMQvg8b z*k%9#0Qr%>6@S5Q!Y~X#&&^jvaApF=w9_sKggC%2M1i`kMbcDpTC~4kI;3)fI5%5) zww|3RbGh9gj%T?$9mN2i(6#bMZa$WxxMLZbF^O>lST`XipKC!u2Z-U!!{E$-ZN2bV z8JLNpL{IT#C5p;x3y=5}zo?xllSN343w7VJL3ME^>$PDZ?>f!p{=EDD$^HOYA95RMk%FE800nwUL_t(|ob8

aDeYI|X12Ju+orw02VDX*^9J56k?sA%*urO`I157-ln8@mC2qBtu{WX~ zH><_1Hyb~277~V`UuW4I=+E1=Ec{^MhYJ$4V1MQ67Jjv77PGg79FkhxisFh%A#_BM zAB3(-M1h?4sm0iuB-gdXIr4eYum#aHRg1XQiqVM7h=w?}Ci2Dz9Wi6R^N=vo9Yx*C zisGpLnwD7Qr8cfNs(YL2sl=_sD3RXABqd14vTJ3Q%i5QBJ&pvIw8#ePq}0+)Y_F;k zw|{CGcF}%KEMlB>^ubI4spUOypvt=5L@co8b&X?EKui*1($V=!IU1=&#QbK1E&QN^gOW9*o<>PI+I|J^%m!00000004j~GT6`P zhECT#m^`nFg{9>49aWM;XTREFzHG@ zN|F?Lt?lbk^|Sm8m96ZfB&z+%9dta~FR1w_iR76L0000000000008*CaDMa9pMTqj z3a0u&Qoh~tv;^l_mbD3y9>DZAnMj8q-R*WM-Eqazw-r!+M$&&=_Kz&V4>|nfTH?5xQG6>_gd`UtRkW=Tt=b6Q1XP;&>MkSS1p zy>)r*1poj5000000Q&k5Q>C~6Fj0E@4-=)o|KN!4Kc_2(`wxzU;n=QlVub%NEyno| z_u(#|if{5CoXb9a`+su{{(~#i+JSBIADqihN{OcAKR6eeqL7OJ;9O{eN-F+? zbD;?e8Rj|sq<0zs000000002s4pjdX{*%6{9b@5NUulI=m2pqsDi1c$|J+1JYUxuD zUz!nn6}*wAjZqdZ<#)%355gbS0fgiEyg#4MLsK8bzOp}`YxCv6mw(HCqf#{alc%zZ zl<#&s&a+hB`0eJX_^}Ii3d0k-TrQ_e&gpvHU$57psk5xu;8)Ch4T|Z31K;wU9Mm13 zQ_oNz$s0d>9qK|f<E@vBj>7Yu`gxSsD=$7;C)va?vM3 z#CZ^Pzh`XU??c#J<$qR&QA&d%w)l%l-B*a&%{5g>F{!%caq&eXepnvN)l`6Q(A_k1eJ zl9ZH0qtV(r z_!Ch1`FT1_URnQi2-2FT2?B{{T3xFhpQvuUO=7yEEZLpGj2gcAD2~V+5 zrD2r8U@*x9VPaxa8;jCKp&1XKQ!WR?U@ECp6oZb2$!Xc2_wE^)U++nssHLM!NL}xP z#$&W8)L0u5wKmn}ISCnrRW`AqkSO$cO?4E4w})XOEsY>5=uqjY^jJo0Y7qi~I7obX zc^T)PSzTSNxew~@>8q@)R8i4oFv>|JN@G(qg>oe{G!%fzo0y!Jhbee@(YzZP84N~I zQ4#MEj)A)%3YBgGlV(s*q*E#=lsN#0!Ql!3Tn_dZ@^F|O91bYMk@9c=0N{H1r^&7^ z?qp||1Gtg@64_N>Uk?tGfdR7c0|0*yX&Xiy1ZG|V?mg(!pNo!50FkAP}9IcBkdpD|Nnvg?S|)w~-Y}Y2=XOq9^oSn9#Yn0w^BY{&~2m zvWUKs*?I+T+I@Fre`e|0hs1v3WM<0>p1t`qpsYHv=6+O)-p9pqeM}Ycq>QY)r0=8a zgAP7Ye@Y3;CnfZm^8r4?)3>tRZH=j)Jc!ZVaQ=xHDV{5Aq=}ratej&Bv#n|+dh|wv zUu%|aHFsFaB?)=(L=PhD3&Et9GxU_1*zs*H{6uE5m>4D2@)%b5&#=3o{)5PJt|r(x zygLq`7zVWv3U3$_yERoJr4+d}`Ob4-^LzNO9bL6#D|0irkO~n5;xWTx&<=FwDl_Gr zuqm|tc2b~9>)8?}{^`)jRM^MvMI}x#oVgA1g#paYrTEZ=%75D{BHKQ{9NT|6J@Cyd zWFhY@a-5>8-$p#Ab8T=Sz}M&YfUh&+xP59zGvk{Q!}B=&w&&8VRz60OROU4gQ+NRC z9gIZ^d3I*C!6_>PcL6t4HD{+!d&K^PpBe{qKD_UtdK%^6`ItUq=Uz|i$~;FhxfvwM zsc!&$%{Q?S0Q2v9muiurKJC_eCyXNy+#x3%CBx9>xY@4b08mmQkLWCk^@!5Bc~xEH zlQ**whj*)lWG1(aD0OXmVt&EXqg8F;>+LiHiAGnz2}Ynu>P4|;m0YbBvGfV2-&$&3xj1C+4E^Pk zg@Pjys7Im_Mp0aQOhh3Is|K*%STVxTSb;Q2p#XVU)OYKY-Wd*vM!kM=YN15pUG49V zuAUhB#HZIp*MDKa)Wo%&(OFtdk}lx+@QYNuTcL->8g$qStv2Wab0TND5f)Q+7;E`r zx4V-=;( z-f3Ce8eHGonWc1j2MJjX^F9{bwk@O;c$V9pewR1XUSoFTY2dQx5tQoOcIt+R{m|Hh z!^|)IZROG356K61v6czEBI)#4tAuiW;q`_)E1HA$7UwJMhYFk+>+$(3tXWY>@f@GX zH(@uGpIDTd4sed?pq3A+EBsfB-t!<8_1im~%)W>%E+;aHUB7=PF2QD+Ew=EpFFv{@ z!a!DgW0uUq>$$2K8>e~z)V{g_?M6;i@<6%{y@~O@d!ep0Cq7X;-!k9aI>ke>Nna zr~tR|`-tY8#h^z6b!hXyxjWxc?{@vKSbTaq?BR^<)Xy)%GWOo*5IYGNx03PVek9u? z+`cDbs^eYGC5I*c>S(Bsc(t0i7kn*eH7lj*0SzE z`S^;9b$G>;6)CXEEjM@C;?gCPLx!}{!^jY5Euo_8UhcdS8KNVda_ou*z%DNW*ky~@ zMZ2f2dECM+Ngf5pbfhL&kFnrmd%I$&h|X1ec}7&8=K+$>3Wb(RD$9wgL(IxOW3~VjUO=8pl~4E z9jJW2WY*&9#<8pp4~NuPdaAM_+9gwjV_FlXX_-GT|F&Zn)3Qa^ORJW&pNnfu)cFD_ z{RP~qX@uF!VJxJqQ8B>IQ7q_gKr<$^Gn-@(bvAVad<{3x5dTH@^C84oLsL1sH8Lf>ejjdI zn8EUGfCnhq#CA*i`Griw%h|bfc#lyuPidgxVjj0{duM>%y&H76|W8;SPWJ{$6C$SDNE4W%Z2t8`>o7zUGVmsprzDBDq@NsU`ZDu#(Nl zVTnYYJR8$dUrq>Quv(*d{){3t{OGXRGJ*1SF{S$ui9~ur#xoug><(ftl9Q{zk8`Nn#H| z-}=1PQ)cbY@eAEk*;_dSA6e$2NuG`#Wt97)c7kt;D*!{ON6CVT%I?xqSCbWw-o~N6 zu9V?*LXJ?y@qwFp@XA24adsadU78fYI{#P{%`D+$g?6oo7TOAoi-s5I?u@NA`av$r zuX03P1ujwkjQYQY#*|G5AAMi@(pk16!4&oBxuKU$E!Hi*&C1x`tS%6XIePtVjE4vC zWW7y9D3eOsYUnOG4hg}B97{;glNh}IliAWv)b@t1*)M(;h&V)`zrUM-8}e=twNooz z!dw(ce*F~UhSBANWVW;%UnmmLd2{B7<6+37sE>COXRPfoum2=!<&P!7Q2J&#fNSu5 zzE=ajl*_QDSs3$R?vVY8?EsYaS_uEeLy%{8T5(PIGVYaBQ5DdUw60woCWF@kWR2fq zN>@BQg_`^kaZ;(c#0&&$FU!wI0%Mm;qHcCLujY`N=#inf8v66&@o!9f$pn1kI&z_37SUxeC>iu<-(z1B3yQu zSo$AUoEppj1-Lm`x0lQ1H8*Cvm2>h$0fhg*uXcg%-r>qY!=Gwn5EkjN`n%_r7?3zZcJo=l6U*-_P%%g}DhA@-z|vz=bn4v^sIp$v7cc zPjoaa40mFUVb^Q|4c!A=?|b0`z3%!05K7LcwjpCw_*iB&_vDmXa;zqY6favQ#-TXCrw*gz+GAzAbD-G3N@`)lEIEB#{^0yfsFZ8j{_8LgR*EGq>0Qk{lg&|162?c7Ofu$4j}sS2Nxo!06h~9K`BHxq^)06CFkN8IfQ8 z@dTvf7fA!cc6BE8?Er(-EFGo%%|@gVn{wUGg*LLm+WjJ^piC=k006cpI77W_p=3I_ zBT3kVuX|>pSVmG7;)-~%ZET;p`1ZF}tH0nEx*D3y5;Sf2P>Polp`+`9mf`@IU4}<654%GPsTe9 zTNOnW3s~xPvj*SE#g^31)^VjAm5-bOuoi?-;{2tWF91w}14uj-Ut#R|ZBmkJi(r~R z^Wy=Y4V4IPd0bp*pu9(ag7c-AVjE44Gcz;ERy@)~AX#S!l9esEF*i~CW?wnw3&;qJ|l=ad*IN?jyZKX&Si7;*orp*j-aLq;a zR}z`nu1y^cAM{2>x~@LbFB_O%SS2j$dJwHk1UWyzEf!5tEg>*@ZB0#Ee$B&CdU*Bj zn;!`RG1a_J$mFU-GI8&$c<`S*ce+~ztCF0Mz+ugvx6%ioTB5N_xf+DdC#@}n$gs#9 zftVD8>QbF~r07clEsx_h+xkY`aXy1HXh3qCIOjj_d2@!1u|23>xwY`p>8Xdn5!c?~ z=anTn=EAE~v96@C$c;U^@+EFW^atdf^)Yic9?kYIM9fw7*OJ&{g@pMcen|c8=^6I( zuO)Zaq2Nwm+3Ho8LMmt>E2j#ig~&vH{ex}8t>dDjm@<)J{}NUg;=_EGqWntt3O!`F zvE8D+BUx@%adxrTA}XIB_}+Fp>blE|wY9Tr4nNg~i;S1D>myEZQ$|xO9LnSJ`6-o? zdw)UmUJ?7ULvm7+CLkcRLCmxoCKe}xP7B$DGg}H!)G<6!GI(rl=}o}Q}Dz9x*_r#>AzMa zi9C%fe{j6{G~PZUtf#uatQIhKooUfPN1slOeBL%M30iv5`nJrfEus)buIPPN|Wl^{SO5$(sUwI-SAv^0=| zl69{6g~I}MFhxppq2sJJCIvxo6$5uJ74sQgapAGwo%;#BIksi~OKhFrN)v-Gvqe=FYm!PvlL8jDpZ|O8%P!KJB377FKK;q=B(!r)!yu*|e)B2T(w2cyXFN3;j>>Wb%$a>z6WLTO&iu5pyGp0!!8iK{uC9Co3hVx~VY>yFk50K$g3Wj& z!TCmbD!WO(mBBbFFO&g~(;XJ()-SJFH}6gtBfsZk2o)P=Fe=ex?`;D6y@v=NcQ#Mz2s&;B~wLU*H_#rlAO?qVDga5^X z{kk^p?tX*zZtz9lv@Z_|o|)`t*(Bdwt086u&mj53E_&pKu=A!1k81P|FJq-{$Fx0$ zCU_Uh{a-Mt)5t<<$OgBN6r`y?HFe&3(wNxF9`EF62V~ZZXlR@b zIK%HmKXl4(UteeSX^_kXm({B^<8_oeK@knh2glv@#;Xf*ryrhnD1-aTDoy7&s8v5IIP%`P{1=%ovUp3NVf}Sv7dcIadsfKSg zI8;Xsoh@VusEVrx8&PZprxsSB8e&1VYBiM?c(gXW3!pY;BW19})Q_nG?)^7dCXBl4 z9ybRW6{&FE%_}Q3*28H&`6Axda+mGS_6W4-0fAq<`bQS&-8PVJ!guthi`@Nj7+iZ z`oDepyp15$!ymDIFG_ITSR33$oBqZlnLvA_xD{W2nEZEFC)O9RP4f L=7!b!PSJk@dy*0x literal 0 HcmV?d00001 diff --git a/modular_skyrat/modules/modular_weapons/icons/obj/vending.dmi b/modular_skyrat/modules/modular_weapons/icons/obj/vending.dmi new file mode 100644 index 0000000000000000000000000000000000000000..e3751ad0770217ab4353ac48fedccc0ba4ec9f0a GIT binary patch literal 10520 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 literal 0 HcmV?d00001 diff --git a/modular_skyrat/modules/modular_weapons/sounds/laser_fire.ogg b/modular_skyrat/modules/modular_weapons/sounds/laser_fire.ogg new file mode 100644 index 0000000000000000000000000000000000000000..7b003b8cc8b63f0edb922916ccc10bb7702c5962 GIT binary patch literal 19653 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 PPTSD5S