From 207fdcaf436ec589a71628906b2077010829fa85 Mon Sep 17 00:00:00 2001 From: private-tristan <54422837+private-tristan@users.noreply.github.com> Date: Mon, 23 Dec 2024 01:10:53 -0500 Subject: [PATCH] Makes PMC and RMC Smartguns use 10x28. Brought up damage to standard. (#601) --- code/datums/ammo/bullet/rifle.dm | 37 +++++++++++++++++++ code/game/objects/items/storage/belt.dm | 7 ++++ code/game/objects/items/storage/pouch.dm | 4 ++ code/modules/gear_presets/pmc.dm | 5 ++- code/modules/gear_presets/whiteout.dm | 5 +-- code/modules/projectiles/guns/smartgun.dm | 14 +++---- .../projectiles/magazines/specialist.dm | 6 +-- 7 files changed, 63 insertions(+), 15 deletions(-) diff --git a/code/datums/ammo/bullet/rifle.dm b/code/datums/ammo/bullet/rifle.dm index d7ec66c76f9..844642c303d 100644 --- a/code/datums/ammo/bullet/rifle.dm +++ b/code/datums/ammo/bullet/rifle.dm @@ -181,6 +181,43 @@ target.AddComponent(/datum/component/status_effect/toxic_buildup) knockback(target, fired_proj, max_range = 2) +// Terminator Smartgun + +/datum/ammo/bullet/rifle/heavy/dirty + name = "irradiated 10x28 bullet" + debilitate = list(0,0,0,3,0,0,0,1) + damage = 60 + shrapnel_chance = SHRAPNEL_CHANCE_TIER_7 + +/datum/ammo/bullet/rifle/heavy/ap/dirty + name = "irradiated armor-piercing 10x28 bullet" + debilitate = list(0,0,0,3,0,0,0,1) + damage = 45 + +// RMC Smartgun + +/datum/ammo/bullet/rifle/heavy/holo_target //Royal marines smartgun bullet has only diff between regular ammo is this one does holostacks and less damage + name = "holo-targeting 10x28 bullet" + damage = 50 + /// inflicts this many holo stacks per bullet hit + var/holo_stacks = 15 + /// modifies the default cap limit of 100 by this amount + var/bonus_damage_cap_increase = 0 + /// multiplies the default drain of 5 holo stacks per second by this amount + var/stack_loss_multiplier = 1 + +/datum/ammo/bullet/rifle/heavy/holo_target/on_hit_mob(mob/hit_mob, obj/projectile/bullet) + . = ..() + hit_mob.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time, bonus_damage_cap_increase, stack_loss_multiplier) + +/datum/ammo/bullet/rifle/heavy/holo_target/ap + name = "holo-targetting armor-piercing 10x28 bullet" + icon_state = "bullet" + + accuracy = HIT_ACCURACY_TIER_2 + damage = 35 + penetration = ARMOR_PENETRATION_TIER_8 + // Custom Specialist M4RA rounds /datum/ammo/bullet/rifle/heavy/spec diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index afdb765d3cf..d2405fc8ff9 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -1969,6 +1969,13 @@ has_gamemode_skin = TRUE /obj/item/storage/belt/gun/smartgunner/pmc/full/fill_preset_inventory() + handle_item_insertion(new /obj/item/weapon/gun/pistol/vp78()) + new /obj/item/ammo_magazine/pistol/vp78(src) + new /obj/item/ammo_magazine/smartgun(src) + new /obj/item/ammo_magazine/smartgun(src) + new /obj/item/ammo_magazine/smartgun(src) + +/obj/item/storage/belt/gun/smartgunner/wo/full/fill_preset_inventory() handle_item_insertion(new /obj/item/weapon/gun/pistol/vp78()) new /obj/item/ammo_magazine/pistol/vp78(src) new /obj/item/ammo_magazine/smartgun/dirty(src) diff --git a/code/game/objects/items/storage/pouch.dm b/code/game/objects/items/storage/pouch.dm index 8287596ede7..868ec43e209 100644 --- a/code/game/objects/items/storage/pouch.dm +++ b/code/game/objects/items/storage/pouch.dm @@ -511,6 +511,10 @@ new /obj/item/ammo_magazine/rifle/ap(src) /obj/item/storage/pouch/magazine/large/pmc_sg/fill_preset_inventory() + for(var/i = 1 to storage_slots) + new /obj/item/ammo_magazine/smartgun(src) + +/obj/item/storage/pouch/magazine/large/wo_sg/fill_preset_inventory() for(var/i = 1 to storage_slots) new /obj/item/ammo_magazine/smartgun/dirty(src) diff --git a/code/modules/gear_presets/pmc.dm b/code/modules/gear_presets/pmc.dm index 94dd12fb88d..1a7a2cf54d0 100644 --- a/code/modules/gear_presets/pmc.dm +++ b/code/modules/gear_presets/pmc.dm @@ -996,7 +996,6 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/smartgunner/veteran/pmc, WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/pmc, WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc/gunner, WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/m56_goggles/no_nightvision(new_human), WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/rmc, WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/pmc/leader, WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/black_vest, WEAR_ACCESSORY) @@ -1009,6 +1008,8 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/pistol/large/vp78, WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/smartgunner/pmc/full, WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/m56_goggles/no_nightvision(new_human), WEAR_EYES) + /datum/equipment_preset/pmc/pmc_gunner/get_antag_clothing_equipment() return list( @@ -1060,7 +1061,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), list("Sandbags x25", 10, /obj/item/stack/sandbags_empty/half, null, VENDOR_ITEM_RECOMMENDED), list("SPECIAL AMMUNITION", 0, null, null, null), - list("Irradiated smartgun drum (10x28mm)", 15, /obj/item/ammo_magazine/smartgun/dirty, null, VENDOR_ITEM_REGULAR), + list("Smartgun drum (10x28mm)", 15, /obj/item/ammo_magazine/smartgun, null, VENDOR_ITEM_REGULAR), list("ATTACHMENTS", 0, null, null, null), list("Extended Barrel", 10, /obj/item/attachable/extended_barrel, null, VENDOR_ITEM_REGULAR), diff --git a/code/modules/gear_presets/whiteout.dm b/code/modules/gear_presets/whiteout.dm index a2672338ed4..6347f24a4ef 100644 --- a/code/modules/gear_presets/whiteout.dm +++ b/code/modules/gear_presets/whiteout.dm @@ -141,7 +141,6 @@ new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/commando, WEAR_L_EAR) //head new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/veteran/pmc/commando, WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/m56_goggles/no_nightvision(new_human), WEAR_EYES) //uniform var/obj/item/clothing/under/marine/veteran/pmc/commando/M = new() var/obj/item/clothing/accessory/storage/webbing/W = new() @@ -161,8 +160,8 @@ new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/veteran/pmc/commando, WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/rmc, WEAR_FEET) //pockets - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large/pmc_sg, WEAR_R_STORE) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large/pmc_sg, WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large/wo_sg, WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large/wo_sg, WEAR_L_STORE) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/m56_goggles/whiteout, WEAR_EYES) diff --git a/code/modules/projectiles/guns/smartgun.dm b/code/modules/projectiles/guns/smartgun.dm index 5e9ee8b3a51..5bac07ea426 100644 --- a/code/modules/projectiles/guns/smartgun.dm +++ b/code/modules/projectiles/guns/smartgun.dm @@ -25,7 +25,7 @@ var/requires_battery = TRUE /// Whether the smartgun requires a harness to use var/requires_harness = TRUE - ammo = /datum/ammo/bullet/smartgun + ammo = /datum/ammo/bullet/rifle/heavy actions_types = list( /datum/action/item_action/smartgun/toggle_accuracy_improvement, /datum/action/item_action/smartgun/toggle_ammo_type, @@ -675,10 +675,6 @@ /obj/item/weapon/gun/smartgun/dirty name = "\improper M56D 'Dirty' smartgun" desc = "The actual firearm in the 4-piece M56D Smartgun System. If you have this, you're about to bring some serious pain to anyone in your way.\nYou may toggle firing restrictions by using a special action.\nAlt-click it to open the feed cover and allow for reloading." - current_mag = /obj/item/ammo_magazine/smartgun/dirty - ammo = /obj/item/ammo_magazine/smartgun/dirty - ammo_primary = /datum/ammo/bullet/smartgun/dirty//Toggled ammo type - ammo_secondary = /datum/ammo/bullet/smartgun/dirty/armor_piercing///Toggled ammo type flags_gun_features = GUN_WY_RESTRICTED|GUN_SPECIALIST|GUN_WIELDED_FIRING_ONLY /obj/item/weapon/gun/smartgun/dirty/Initialize(mapload, ...) @@ -689,6 +685,10 @@ //TERMINATOR SMARTGUN /obj/item/weapon/gun/smartgun/dirty/elite name = "\improper M56T 'Terminator' smartgun" + current_mag = /obj/item/ammo_magazine/smartgun/dirty + ammo = /obj/item/ammo_magazine/smartgun/dirty + ammo_primary = /datum/ammo/bullet/rifle/heavy/dirty //Toggled ammo type + ammo_secondary = /datum/ammo/bullet/rifle/heavy/ap/dirty ///Toggled ammo type desc = "The actual firearm in the 4-piece M56T Smartgun System. If you have this, you're about to bring some serious pain to anyone in your way.\nYou may toggle firing restrictions by using a special action.\nAlt-click it to open the feed cover and allow for reloading." /obj/item/weapon/gun/smartgun/dirty/elite/Initialize(mapload, ...) @@ -752,8 +752,8 @@ desc = "The actual firearm in the 2-piece L56A2 Smartgun System. This Variant is used by the Three World Empires Royal Marines Commando units.\nYou may toggle firing restrictions by using a special action.\nAlt-click it to open the feed cover and allow for reloading." current_mag = /obj/item/ammo_magazine/smartgun/holo_targetting ammo = /obj/item/ammo_magazine/smartgun/holo_targetting - ammo_primary = /datum/ammo/bullet/smartgun/holo_target //Toggled ammo type - ammo_secondary = /datum/ammo/bullet/smartgun/holo_target/ap ///Toggled ammo type + ammo_primary = /datum/ammo/bullet/rifle/heavy/holo_target //Toggled ammo type + ammo_secondary = /datum/ammo/bullet/rifle/heavy/holo_target/ap ///Toggled ammo type flags_gun_features = GUN_SPECIALIST|GUN_WIELDED_FIRING_ONLY icon = 'icons/obj/items/weapons/guns/guns_by_faction/twe_guns.dmi' icon_state = "magsg" diff --git a/code/modules/projectiles/magazines/specialist.dm b/code/modules/projectiles/magazines/specialist.dm index a0943dbd931..1e297b60dcd 100644 --- a/code/modules/projectiles/magazines/specialist.dm +++ b/code/modules/projectiles/magazines/specialist.dm @@ -106,16 +106,16 @@ /obj/item/ammo_magazine/smartgun/dirty name = "irradiated smartgun drum" - desc = "What at first glance appears to be a standard 500 round M56 Smartgun drum, is actually a drum loaded with irradiated rounds, providing an extra 'oomph' to to its bullets. The magazine itself is slightly modified to only fit in M56D or M56T smartguns, and is marked with a red X." + desc = "What at first glance appears to be a standard 500 round M56 Smartgun drum, is actually a drum loaded with irradiated rounds, providing an extra 'oomph' to to its bullets. The magazine itself is slightly modified to only fit in M56T smartguns, and is marked with a red X." icon_state = "m56_drum_dirty" - default_ammo = /datum/ammo/bullet/smartgun/dirty + default_ammo = /datum/ammo/bullet/rifle/heavy/dirty gun_type = /obj/item/weapon/gun/smartgun /obj/item/ammo_magazine/smartgun/holo_targetting name = "holotargetting smartgun drum" desc = "Holotargetting rounds for use in the royal marines commando L56A2 smartgun." icon_state = "m56_drum" - default_ammo = /datum/ammo/bullet/smartgun/holo_target + default_ammo = /datum/ammo/bullet/rifle/heavy/holo_target gun_type = /obj/item/weapon/gun/smartgun/rmc //------------------------------------------------------- //Flare gun. Close enough?