diff --git a/code/__DEFINES/guns.dm b/code/__DEFINES/guns.dm index 2ea9d11ce43d..4492c78012e2 100644 --- a/code/__DEFINES/guns.dm +++ b/code/__DEFINES/guns.dm @@ -47,12 +47,13 @@ #define AUTOFIRE_SUCCESS (1<<1) ///Base CO special weapons options -#define CO_GUNS list(CO_GUN_MATEBA, CO_GUN_MATEBA_SPECIAL, CO_GUN_DEAGLE) +#define CO_GUNS list(CO_GUN_MATEBA, CO_GUN_MATEBA_SPECIAL, CO_GUN_M47, CO_GUN_DEAGLE) ///Council CO special weapons options #define COUNCIL_CO_GUNS list(CO_GUN_MATEBA_COUNCIL, CO_GUN_DEAGLE_COUNCIL) #define CO_GUN_MATEBA "Mateba" +#define CO_GUN_M47 "M47 Handgun" #define CO_GUN_MATEBA_SPECIAL "Mateba Special" #define CO_GUN_DEAGLE "Desert Eagle" #define CO_GUN_MATEBA_COUNCIL "Colonel's Mateba" diff --git a/code/datums/ammo/bullet/pistol.dm b/code/datums/ammo/bullet/pistol.dm index 8b5239ba9127..1efb2254ba9e 100644 --- a/code/datums/ammo/bullet/pistol.dm +++ b/code/datums/ammo/bullet/pistol.dm @@ -95,15 +95,41 @@ sound_override = null // Used by M1911, Deagle and KT-42 +/datum/ammo/bullet/pistol/heavy/New() + ..() + RegisterSignal(src, COMSIG_AMMO_POINT_BLANK, PROC_REF(handle_battlefield_execution)) + /datum/ammo/bullet/pistol/heavy name = "heavy pistol bullet" headshot_state = HEADSHOT_OVERLAY_MEDIUM accuracy = -HIT_ACCURACY_TIER_3 accuracy_var_low = PROJECTILE_VARIANCE_TIER_6 damage = 55 + damage_falloff = DAMAGE_FALLOFF_TIER_5 penetration = ARMOR_PENETRATION_TIER_3 shrapnel_chance = SHRAPNEL_CHANCE_TIER_2 +/datum/ammo/bullet/pistol/heavy/m47/apimpact + name = "heavy ap pistol bullet" + damage = 45 + penetration = ARMOR_PENETRATION_TIER_10 + debilitate = list(0,1.5,0,0,0,1,0,0) + flags_ammo_behavior = AMMO_BALLISTIC + +/datum/ammo/bullet/pistol/m47/impact + name = "heavy impact pistol bullet" + damage = 50 + penetration = ARMOR_PENETRATION_TIER_1 + debilitate = list(0,1.5,0,0,0,1,0,0) + flags_ammo_behavior = AMMO_BALLISTIC + +/datum/ammo/bullet/pistol/m47/hp + name = "heavy pistol hollowpoint" + damage = 70 + penetration = ARMOR_PENETRATION_TIER_1 + +// 50 cal + /datum/ammo/bullet/pistol/heavy/super //Commander's variant name = ".50 heavy pistol bullet" damage = 60 @@ -129,10 +155,6 @@ debilitate = list(0,1.5,0,0,0,1,0,0) flags_ammo_behavior = AMMO_BALLISTIC -/datum/ammo/bullet/pistol/heavy/super/highimpact/New() - ..() - RegisterSignal(src, COMSIG_AMMO_POINT_BLANK, PROC_REF(handle_battlefield_execution)) - /datum/ammo/bullet/pistol/heavy/super/highimpact/on_hit_mob(mob/M, obj/projectile/P) knockback(M, P, 4) diff --git a/code/game/machinery/vending/vendor_types/crew/commanding_officer.dm b/code/game/machinery/vending/vendor_types/crew/commanding_officer.dm index dd2fc9c4a5b7..abd9401a0bc0 100644 --- a/code/game/machinery/vending/vendor_types/crew/commanding_officer.dm +++ b/code/game/machinery/vending/vendor_types/crew/commanding_officer.dm @@ -17,7 +17,10 @@ GLOBAL_LIST_INIT(cm_vending_gear_commanding_officer, list( list("High Impact AP Mateba Speedloader (.454)", 20, /obj/item/ammo_magazine/revolver/mateba/highimpact/ap, null, VENDOR_ITEM_REGULAR), list("High Impact Desert Eagle Magazine (.50)", 15, /obj/item/ammo_magazine/pistol/heavy/super/highimpact, null, VENDOR_ITEM_RECOMMENDED), list("High Impact AP Desert Eagle Magazine (.50)", 20, /obj/item/ammo_magazine/pistol/heavy/super/highimpact/ap, null, VENDOR_ITEM_REGULAR), - + list("M47A2 Magazine", 10, /obj/item/ammo_magazine/pistol/m47, null, VENDOR_ITEM_REGULAR), + list("M47A2 HP Magazine", 15, /obj/item/ammo_magazine/pistol/m47/hp, null, VENDOR_ITEM_REGULAR), + list("M47A2 High Impact Magazine", 15, /obj/item/ammo_magazine/pistol/m47/impact, null, VENDOR_ITEM_REGULAR), + list("M47A2 AP High Impact Magazine", 15, /obj/item/ammo_magazine/pistol/m47/apimpact, null, VENDOR_ITEM_REGULAR), list("SHOTGUN AMMUNITION", 0, null, null, null), list("Buckshot Shells", 20, /obj/item/ammo_magazine/shotgun/buckshot, null, VENDOR_ITEM_REGULAR), list("Shotgun Slugs", 20, /obj/item/ammo_magazine/shotgun/slugs, null, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/intelligence_officer.dm b/code/game/machinery/vending/vendor_types/intelligence_officer.dm index 63d3e93873d2..e9311ca79b83 100644 --- a/code/game/machinery/vending/vendor_types/intelligence_officer.dm +++ b/code/game/machinery/vending/vendor_types/intelligence_officer.dm @@ -21,6 +21,8 @@ GLOBAL_LIST_INIT(cm_vending_gear_intelligence_officer, list( list("M44 Marksman Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/marksman, null, VENDOR_ITEM_REGULAR), list("M4A3 HP Magazine", 5, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR), list("M4A3 AP Magazine", 5, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR), + list("M47A2 Magazine", 5, /obj/item/ammo_magazine/pistol/m47, null, VENDOR_ITEM_REGULAR), + list("M47A2 HP Magazine", 10, /obj/item/ammo_magazine/pistol/m47/hp, null, VENDOR_ITEM_REGULAR), list("VP78 Magazine", 5, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR), list("SU-6 Smartpistol Magazine (.45)", 10, /obj/item/ammo_magazine/pistol/smart, null, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/requisitions.dm b/code/game/machinery/vending/vendor_types/requisitions.dm index a4328bad5ea4..d98b74fe5314 100644 --- a/code/game/machinery/vending/vendor_types/requisitions.dm +++ b/code/game/machinery/vending/vendor_types/requisitions.dm @@ -33,6 +33,7 @@ list("RESTRICTED FIREARMS", -1, null, null), list("VP78 Pistol", floor(scale * 4), /obj/item/storage/box/guncase/vp78, VENDOR_ITEM_REGULAR), list("SU-6 Smart Pistol", floor(scale * 3), /obj/item/storage/box/guncase/smartpistol, VENDOR_ITEM_REGULAR), + list("M47A2 Offensive Handgun", floor(scale * 2), /obj/item/storage/box/guncase/m47a2, VENDOR_ITEM_REGULAR), list("MOU-53 Shotgun", floor(scale * 2), /obj/item/storage/box/guncase/mou53, VENDOR_ITEM_REGULAR), list("XM88 Heavy Rifle", floor(scale * 3), /obj/item/storage/box/guncase/xm88, VENDOR_ITEM_REGULAR), list("M41AE2 Heavy Pulse Rifle", 2.5, /obj/item/storage/box/guncase/lmg, VENDOR_ITEM_REGULAR), @@ -264,6 +265,8 @@ list("RESTRICTED FIREARM AMMUNITION", -1, null, null), list("VP78 Magazine", 11, /obj/item/ammo_magazine/pistol/vp78, VENDOR_ITEM_REGULAR), list("SU-6 Smartpistol Magazine (.45)", 13, /obj/item/ammo_magazine/pistol/smart, VENDOR_ITEM_REGULAR), + list("M47A2 Magazine", 13, /obj/item/ammo_magazine/pistol/m47, VENDOR_ITEM_REGULAR), + list("M47A2 HP Magazine", floor(scale * 2), /obj/item/ammo_magazine/pistol/m47/hp, VENDOR_ITEM_REGULAR), list("M240 Incinerator Tank", floor(scale * 3), /obj/item/ammo_magazine/flamer_tank, VENDOR_ITEM_REGULAR), list("M41AE2 Box Magazine (10x24mm)", floor(scale * 3), /obj/item/ammo_magazine/rifle/lmg, VENDOR_ITEM_REGULAR), list("M41A MK1 Magazine (10x24mm)", 4.5, /obj/item/ammo_magazine/rifle/m41aMK1, VENDOR_ITEM_REGULAR), diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 14961c69eaf5..4d5ed10ae237 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -1177,6 +1177,31 @@ new /obj/item/ammo_magazine/pistol(src) new /obj/item/ammo_magazine/pistol(src) + + +/obj/item/storage/belt/gun/m4a3/m47/co/fill_preset_inventory() + handle_item_insertion(new /obj/item/weapon/gun/pistol/m47/co()) + new /obj/item/ammo_magazine/pistol/m47/impact(src) + new /obj/item/ammo_magazine/pistol/m47/impact(src) + new /obj/item/ammo_magazine/pistol/m47/apimpact(src) + new /obj/item/ammo_magazine/pistol/m47/apimpact(src) + new /obj/item/ammo_magazine/pistol/m47/hp(src) + new /obj/item/ammo_magazine/pistol/m47/hp(src) + +/obj/item/storage/belt/gun/m4a3/m47/intel/fill_preset_inventory() + handle_item_insertion(new /obj/item/weapon/gun/pistol/m47()) + new /obj/item/ammo_magazine/pistol/m47(src) + new /obj/item/ammo_magazine/pistol/m47(src) + new /obj/item/ammo_magazine/pistol/m47(src) + new /obj/item/ammo_magazine/pistol/m47(src) + new /obj/item/ammo_magazine/pistol/m47(src) + new /obj/item/ammo_magazine/pistol/m47(src) + +/obj/item/storage/belt/gun/m4a3/m47/foreconco/fill_preset_inventory() + handle_item_insertion(new /obj/item/weapon/gun/pistol/m47/co()) + new /obj/item/ammo_magazine/pistol/m47/impact(src) + new /obj/item/ammo_magazine/pistol/m47/hp(src) + /obj/item/storage/belt/gun/m4a3/mod88/fill_preset_inventory() handle_item_insertion(new /obj/item/weapon/gun/pistol/mod88()) for(var/i = 1 to storage_slots - 1) diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 6e086e651a10..f0abde9590b1 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -107,7 +107,7 @@ name = "\improper SensorMate HUD" desc = "A much older heads-up display that displays the last known biometric data from suit sensors of any given individual." icon_state = "sensorhud" - deactive_state = "sensorhud_d" + deactive_state = "sensorhaud_d" flags_armor_protection = 0 toggleable = TRUE hud_type = MOB_HUD_MEDICAL_ADVANCED diff --git a/code/modules/cm_marines/equipment/guncases.dm b/code/modules/cm_marines/equipment/guncases.dm index cbbb791f8f0b..d0b85a9d38f4 100644 --- a/code/modules/cm_marines/equipment/guncases.dm +++ b/code/modules/cm_marines/equipment/guncases.dm @@ -44,6 +44,15 @@ new /obj/item/storage/belt/gun/smartpistol/full_nogun(src) new /obj/item/weapon/gun/pistol/smart(src) +//----------- +/obj/item/storage/box/guncase/m47a2 + name = "\improper M47A2 pistol case" + desc = "A gun case containing the lucrative M47A2 Offensive Handgun." + can_hold = list() + storage_slots = 1 + +/obj/item/storage/box/guncase/m47a2/fill_preset_inventory() + new /obj/item/storage/belt/gun/m4a3/m47/intel(src) //------------ /obj/item/storage/box/guncase/mou53 name = "\improper MOU53 shotgun case" diff --git a/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm b/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm index c27fa213592f..000e6b08bdab 100644 --- a/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm +++ b/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm @@ -65,11 +65,17 @@ /datum/equipment_preset/survivor/forecon/proc/add_forecon_weapon_pistol(mob/living/carbon/human/new_human) var/random_pistol = rand(1,5) switch(random_pistol) - if(1 , 2) + if(1) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3(new_human), WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/m1911(new_human), WEAR_IN_BELT) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/m1911(new_human), WEAR_IN_BELT) new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/m1911(new_human), WEAR_IN_BELT) + if (2) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/m47(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/m47(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/m47(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/m47(new_human), WEAR_IN_BELT) if(3 , 4) new_human.equip_to_slot_or_del(new /obj/item/storage/large_holster/m39, WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smg/m39(new_human), WEAR_IN_BELT) @@ -265,11 +271,7 @@ new_human.equip_to_slot_or_del(uniform, WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/windbreaker/windbreaker_green(new_human), WEAR_JACKET) ..() - new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/mateba/cmateba(new_human), WEAR_WAIST) - new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/revolver/mateba/cmateba(new_human), WEAR_R_HAND) - new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/mateba(new_human), WEAR_IN_BELT) - new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/mateba(new_human), WEAR_IN_BELT) - new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/mateba(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/m47/foreconco(new_human), WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range/designator(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/cigarette/cigar(new_human), WEAR_IN_BACK) new_human.equip_to_slot_or_del(new /obj/item/tool/lighter/zippo/gold(new_human), WEAR_IN_BACK) diff --git a/code/modules/gear_presets/uscm.dm b/code/modules/gear_presets/uscm.dm index 0450e74353ef..20ed2f12cf45 100644 --- a/code/modules/gear_presets/uscm.dm +++ b/code/modules/gear_presets/uscm.dm @@ -236,6 +236,7 @@ new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/intel(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/m47/intel(new_human), WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) /datum/equipment_preset/uscm/intel/load_status(mob/living/carbon/human/new_human) @@ -250,12 +251,10 @@ utility_under = list(/obj/item/clothing/under/marine/officer/intel) /datum/equipment_preset/uscm/intel/full/load_gear(mob/living/carbon/human/new_human) - - var/obj/item/clothing/under/marine/officer/intel/U = new(new_human) - new_human.equip_to_slot_or_del(U, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/intel (new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/intel(new_human), WEAR_L_EAR) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp78(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/m47/intel(new_human), WEAR_WAIST) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/rto/intel(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/medium/rto/intel(src), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(src), WEAR_HANDS) diff --git a/code/modules/gear_presets/uscm_ship.dm b/code/modules/gear_presets/uscm_ship.dm index ba4a8a684321..975d295f1576 100644 --- a/code/modules/gear_presets/uscm_ship.dm +++ b/code/modules/gear_presets/uscm_ship.dm @@ -419,6 +419,8 @@ if(CO_GUN_MATEBA) sidearmpath = /obj/item/storage/belt/gun/mateba/cmateba/full kit = /obj/item/storage/mateba_case/captain + if(CO_GUN_M47) + sidearmpath = /obj/item/storage/belt/gun/m4a3/m47/co/ if(CO_GUN_MATEBA_SPECIAL) sidearmpath = /obj/item/storage/belt/gun/mateba/cmateba/special if(CO_GUN_MATEBA_COUNCIL) diff --git a/code/modules/gear_presets/wo.dm b/code/modules/gear_presets/wo.dm index 17138b208a58..625c576d639f 100644 --- a/code/modules/gear_presets/wo.dm +++ b/code/modules/gear_presets/wo.dm @@ -55,6 +55,8 @@ if(CO_GUN_MATEBA) sidearmpath = /obj/item/storage/belt/gun/mateba/cmateba/full kit = /obj/item/storage/mateba_case/captain + if(CO_GUN_M47) + sidearmpath = /obj/item/storage/belt/gun/m4a3/m47/co/ if(CO_GUN_MATEBA_SPECIAL) sidearmpath = /obj/item/storage/belt/gun/mateba/cmateba/special if(CO_GUN_MATEBA_COUNCIL) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index f670fa682154..794ff49c8749 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -44,6 +44,7 @@ var/empty_sound = 'sound/weapons/smg_empty_alarm.ogg' //We don't want these for guns that don't have them. var/reload_sound = null + var/reload_volume = 25 var/cocked_sound = null ///world.time value, to prevent COCK COCK COCK COCK var/cock_cooldown = 0 @@ -857,10 +858,11 @@ User can be passed as null, (a gun reloading itself for instance), so we need to cock_gun(user) user.visible_message(SPAN_NOTICE("[user] loads [magazine] into [src]!"), SPAN_NOTICE("You load [magazine] into [src]!"), null, 3, CHAT_TYPE_COMBAT_ACTION) - if(reload_sound) + if(reload_sound && reload_volume) + playsound(user, reload_sound, reload_volume, 1, 5 ) + else playsound(user, reload_sound, 25, 1, 5) - //Drop out the magazine. Keep the ammo type for next time so we don't need to replace it every time. //This can be passed with a null user, so we need to check for that as well. /obj/item/weapon/gun/proc/unload(mob/user, reload_override = 0, drop_override = 0, loc_override = 0) //Override for reloading mags after shooting, so it doesn't interrupt burst. Drop is for dropping the magazine on the ground. diff --git a/code/modules/projectiles/guns/pistols.dm b/code/modules/projectiles/guns/pistols.dm index 3a85db687b26..9db7540675d4 100644 --- a/code/modules/projectiles/guns/pistols.dm +++ b/code/modules/projectiles/guns/pistols.dm @@ -151,6 +151,57 @@ /obj/item/weapon/gun/pistol/m1911/socom/equipped starting_attachment_types = list(/obj/item/attachable/suppressor, /obj/item/attachable/lasersight, /obj/item/attachable/reflex) +// A version of the M1911 for COs and FORECON. + +/obj/item/weapon/gun/pistol/m47 + name = "\improper M47A2 offensive handgun" + desc = "It's hard to keep a classic down. While Armat's M80A3, an update on the 1911 failed to make it into standard adoption during the Marine '70s revitalization, a variant of their handgun was picked up by FORECON and specialized units within the USCM. 14 rounds of .45, extended barrel, and integrated night sights - more than enough features to justify its designation as an 'Offensive Handgun.'" + icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi' + icon_state = "m47" + item_state = "m4a3" + fire_sound = 'sound/weapons/gun_m47.ogg' + firesound_volume = 80 + reload_sound = 'sound/weapons/reload_m47.ogg' + reload_volume = 60 + unload_sound = 'sound/weapons/unload_m47.ogg' + fire_rattle = 'sound/weapons/gun_m47.ogg' + cocked_sound = 'sound/weapons/cocking_m47.ogg' + pickup_sound = 'sound/weapons/draw_m47.ogg' + empty_sound = null + flags_gun_features = GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED|GUN_AUTO_EJECTOR|GUN_AMMO_COUNTER + current_mag = /obj/item/ammo_magazine/pistol/m47 + attachable_allowed = list( + /obj/item/attachable/suppressor, + /obj/item/attachable/reddot, + /obj/item/attachable/reflex, + /obj/item/attachable/flashlight, + /obj/item/attachable/lasersight, + /obj/item/attachable/extended_barrel, + /obj/item/attachable/heavy_barrel, + ) + +/obj/item/weapon/gun/pistol/m47/set_gun_attachment_offsets() + attachable_offset = list("muzzle_x" = 26, "muzzle_y" = 20,"rail_x" = 12, "rail_y" = 22, "under_x" = 21, "under_y" = 17, "stock_x" = 21, "stock_y" = 17) + + +/obj/item/weapon/gun/pistol/m47/set_gun_config_values() + ..() + set_fire_delay(FIRE_DELAY_TIER_7) + accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_6 + accuracy_mult_unwielded = BASE_ACCURACY_MULT + scatter = SCATTER_AMOUNT_TIER_7 + scatter_unwielded = SCATTER_AMOUNT_TIER_5 + recoil = RECOIL_AMOUNT_TIER_4 + recoil_unwielded = RECOIL_AMOUNT_TIER_3 + damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_3 + +/obj/item/weapon/gun/pistol/m47/co + name = "\improper custom M47A2 offensive handgun" + desc_lore = "The feeding ramp is polished to a mirror sheen, with a reinforced slide, and tightened locking mechanisms in the frame for added precision. The thumb safety is extended to make it easier on the finger, with a long-type trigger with non-slip grooves. A ring hammer. The base of the trigger guards's been filed down for a higher grip, too. And not only that, but nearly every other part of this gun has been expertly crafted and customized by USMC armourers." + unacidable = TRUE + indestructible = 1 + current_mag = /obj/item/ammo_magazine/pistol/m47/impact + //------------------------------------------------------- //Beretta 92FS, the gun McClane carries around in Die Hard. Very similar to the service pistol, all around. @@ -236,6 +287,8 @@ icon = 'icons/obj/items/weapons/guns/guns_by_faction/colony.dmi' icon_state = "c_deagle" item_state = "c_deagle" + unacidable = TRUE + indestructible = 1 current_mag = /obj/item/ammo_magazine/pistol/heavy/super/highimpact black_market_value = 100 diff --git a/code/modules/projectiles/guns/revolvers.dm b/code/modules/projectiles/guns/revolvers.dm index 1c2adc2360a3..43cb9d932eba 100644 --- a/code/modules/projectiles/guns/revolvers.dm +++ b/code/modules/projectiles/guns/revolvers.dm @@ -548,7 +548,8 @@ icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi' icon_state = "mateba" item_state = "mateba" - + unacidable = TRUE + indestructible = 1 fire_sound = 'sound/weapons/gun_mateba.ogg' current_mag = /obj/item/ammo_magazine/internal/revolver/mateba force = 15 diff --git a/code/modules/projectiles/magazines/pistols.dm b/code/modules/projectiles/magazines/pistols.dm index 11e6fe9dbfeb..fb5cc89a4796 100644 --- a/code/modules/projectiles/magazines/pistols.dm +++ b/code/modules/projectiles/magazines/pistols.dm @@ -58,6 +58,34 @@ max_rounds = 7 gun_type = /obj/item/weapon/gun/pistol/m1911 +//------------------------------------------------------- +//M47 + +/obj/item/ammo_magazine/pistol/m47 + name = "\improper M47A2 Magazine" + default_ammo = /datum/ammo/bullet/pistol/heavy + caliber = ".45" + icon_state = "m47" + max_rounds = 14 + gun_type = /obj/item/weapon/gun/pistol/m47 + +/obj/item/ammo_magazine/pistol/m47/hp + name = "\improper M47A2 Hollowpoint Magazine" + desc = "A pistol magazine. This one contains hollowpoint bullets, which have noticeably higher stopping power on unarmored targets, and noticeably less on armored targets." + default_ammo = /datum/ammo/bullet/pistol/m47/hp + ammo_band_color = AMMO_BAND_COLOR_HOLLOWPOINT + +/obj/item/ammo_magazine/pistol/m47/apimpact + name = "\improper M47 Armor-Piercing Impact Magazine" + desc = "A pistol magazine. This one contains armor-piercing bullets, which have noticeably higher stopping power on well-armored targets, and noticeably less on unarmored or lightly-armored targets." + default_ammo = /datum/ammo/bullet/pistol/heavy/m47/apimpact + ammo_band_color = AMMO_BAND_COLOR_AP + +/obj/item/ammo_magazine/pistol/m47/impact + name = "\improper M47 High Impact Magazine" + desc = "A pistol magazine. This one contains armor-piercing bullets, which have noticeably higher stopping power on well-armored targets, and noticeably less on unarmored or lightly-armored targets." + default_ammo = /datum/ammo/bullet/pistol/m47/impact + ammo_band_color = AMMO_BAND_COLOR_HIGH_IMPACT //------------------------------------------------------- //88M4 based off VP70 diff --git a/icons/obj/items/clothing/belts.dmi b/icons/obj/items/clothing/belts.dmi index e26ee644d638..378638c5e0e0 100644 Binary files a/icons/obj/items/clothing/belts.dmi and b/icons/obj/items/clothing/belts.dmi differ diff --git a/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi b/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi index 8b3b5e0f1c80..3ed0d4b6bc5a 100644 Binary files a/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi and b/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi differ diff --git a/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi b/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi index 1f0b98967a25..cf4515b6a1fb 100644 Binary files a/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi and b/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi differ diff --git a/sound/weapons/cocking_m47.ogg b/sound/weapons/cocking_m47.ogg new file mode 100644 index 000000000000..a9d9ea53aa61 Binary files /dev/null and b/sound/weapons/cocking_m47.ogg differ diff --git a/sound/weapons/draw_m47.ogg b/sound/weapons/draw_m47.ogg new file mode 100644 index 000000000000..a63bdfe4aecb Binary files /dev/null and b/sound/weapons/draw_m47.ogg differ diff --git a/sound/weapons/gun_m47.ogg b/sound/weapons/gun_m47.ogg new file mode 100644 index 000000000000..be94e723d2cb Binary files /dev/null and b/sound/weapons/gun_m47.ogg differ diff --git a/sound/weapons/reload_m47.ogg b/sound/weapons/reload_m47.ogg new file mode 100644 index 000000000000..000a59d2844c Binary files /dev/null and b/sound/weapons/reload_m47.ogg differ diff --git a/sound/weapons/unload_m47.ogg b/sound/weapons/unload_m47.ogg new file mode 100644 index 000000000000..ceb652a5323b Binary files /dev/null and b/sound/weapons/unload_m47.ogg differ