Skip to content

Commit

Permalink
Merge pull request #5825 from Stutternov/Security-Changes
Browse files Browse the repository at this point in the history
Marshal Gun Changes (w/ New Gun!) & Marshal Disk Changes
  • Loading branch information
Trilbyspaceclone authored Nov 13, 2024
2 parents 4c97610 + 599a88a commit 519f9d1
Show file tree
Hide file tree
Showing 15 changed files with 126 additions and 51 deletions.
4 changes: 4 additions & 0 deletions code/datums/autolathe/guns.dm
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,10 @@
name = "NM 7.62x39mm \"Copperhead\" rifle"
build_path = /obj/item/gun/projectile/automatic/mamba/copperhead

/datum/design/autolathe/gun/viper
name = "NM 7.62x39mm \"Viper\" DMR"
build_path = /obj/item/gun/projectile/automatic/mamba/viper

/datum/design/autolathe/gun/python
name = "NM 7.62x39mm \"Python\" heavy sniper"
build_path = /obj/item/gun/projectile/automatic/mamba/python
Expand Down
1 change: 1 addition & 0 deletions code/game/machinery/vendor/weapon_kit_vendors.dm
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,7 @@
/obj/machinery/vending/marshal_kit/proc/RedeemRangerPrimary(obj/item/voucher/voucher, mob/redeemer)
var/items = list(
"Spec-Op Kit" = /obj/item/storage/box/m_kit/specop,
"Viper Kit" = /obj/item/storage/box/m_kit/viper,
"Custer Kit" = /obj/item/storage/box/m_kit/custer,
"Peacekeeper Kit" = /obj/item/storage/box/m_kit/peacekeeper)
var/selection = items[input(redeemer, "Pick your primary weapon", "Marshal Voucher Redemption") as null|anything in items]
Expand Down
22 changes: 11 additions & 11 deletions code/game/objects/items/weapons/autolathe_disk/gun_parts_disks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -32,31 +32,31 @@ Avoid any disks here being found or used commonly beyond an intended purpose, ot
)

// Marshal-specific disk, used by Marshals for high-end gun crafting. MOST gun parts should be here, but thankfully licenses keep it at limited-use.
// For mass-production, Guild should be used. Only thing this disk has that Guild does not is heavy rifle barrles, AMR barrels, rubber grips, and machinegun mechanisms.
// Infinate given gun parts are mass-printed by Guild, orderable by LS, and can be taken from broken down guns. Guild can mass-produce better, but only Marshals can print high-end.
/obj/item/computer_hardware/hard_drive/portable/design/gun_parts/marshal
disk_name = "NM - \"Gunsmiths United\" firearm parts"
icon_state = "marshal"

license = 20
license = -1
designs = list(
/datum/design/autolathe/part/grip/wood = 0,
/datum/design/autolathe/part/grip/wood,
/datum/design/autolathe/part/grip/plastic,
/datum/design/autolathe/part/grip/serb,
/datum/design/autolathe/part/grip/rubber,
/datum/design/autolathe/part/mechanism/pistol,
/datum/design/autolathe/part/mechanism/revolver,
/datum/design/autolathe/part/mechanism/shotgun,
/datum/design/autolathe/part/mechanism/autorifle = 1,
/datum/design/autolathe/part/mechanism/autorifle,
/datum/design/autolathe/part/mechanism/smg,
/datum/design/autolathe/part/mechanism/machinegun = 1,
/datum/design/autolathe/part/mechanism/machinegun,
/datum/design/autolathe/part/barrel/pistol,
/datum/design/autolathe/part/barrel/magnum,
/datum/design/autolathe/part/barrel/kurtz = 1,
/datum/design/autolathe/part/barrel/carbine = 1,
/datum/design/autolathe/part/barrel/rifle = 1,
/datum/design/autolathe/part/barrel/heavy = 1,
/datum/design/autolathe/part/barrel/kurtz,
/datum/design/autolathe/part/barrel/carbine,
/datum/design/autolathe/part/barrel/rifle,
/datum/design/autolathe/part/barrel/heavy,
/datum/design/autolathe/part/barrel/shotgun,
/datum/design/autolathe/part/barrel/amr = 5,
/datum/design/autolathe/part/barrel/amr,
)

// Bootleg-gun production stuff. Found in loot-piles, can be bought by LSS for a slightly inflated price.
Expand Down Expand Up @@ -133,7 +133,7 @@ Avoid any disks here being found or used commonly beyond an intended purpose, ot
/datum/design/autolathe/gun_frame/mamba,
/datum/design/autolathe/gun_frame/opshot,
/datum/design/autolathe/gun_frame/wind,
/datum/design/autolathe/gun_frame/takeshi //No more Omni and DP, both are BS guns like smhing my Smh on my SMH
/datum/design/autolathe/gun_frame/takeshi
)
//Rearranged into Pistol > Revolver > SMG > Carbine > Shotgun > Rifle > MG for better clarity

Expand Down
20 changes: 19 additions & 1 deletion code/game/objects/items/weapons/autolathe_disk/marshal.dm
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
/datum/design/autolathe/gun/ion_pistol = 5,
//launcher
/datum/design/autolathe/gun/grenade_launcher_lenar = 7,
//sniper
//sniper - Left here for now till Python can be made off a Mamba frame.
/datum/design/autolathe/gun/python = 5,
//flaregun
/datum/design/autolathe/gun/flare_gun,
Expand Down Expand Up @@ -254,6 +254,24 @@
/datum/design/autolathe/ammo/rifle_lethal = 4,
)

/obj/item/computer_hardware/hard_drive/portable/design/guns/viper
disk_name = "NM - 7.62mm Viper DMR"
icon_state = "marshal"

license = 16
designs = list(
/datum/design/autolathe/gun/viper = 6,
/datum/design/autolathe/ammo/rifle_short_practice = 0,
/datum/design/autolathe/ammo/rifle_short_rubber,
/datum/design/autolathe/ammo/rifle_short,
/datum/design/autolathe/ammo/rifle_short_lethal = 2,
/datum/design/autolathe/ammo/rifle_practice = 1,
/datum/design/autolathe/ammo/rifle_rubber = 2,
/datum/design/autolathe/ammo/rifle = 2,
/datum/design/autolathe/ammo/rifle_lethal = 4,
)

// 8.6 Rifles
/obj/item/computer_hardware/hard_drive/portable/design/guns/python
disk_name = "NM - 7.62mm Python Heavy Rifle"
icon_state = "marshal"
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/weapons/storage/hardcases.dm
Original file line number Diff line number Diff line change
Expand Up @@ -515,7 +515,7 @@ obj/item/storage/hcases/attackby(obj/item/W, mob/user)
if(!stamped)
stamped = TRUE
var/list/options = list() // Moved the Galaxy to secondary selection
options["Osprey - precision rifle"] = list(/obj/item/gun/projectile/automatic/omnirifle/scoped/fancy,/obj/item/ammo_magazine/heavy_rifle_408,/obj/item/ammo_magazine/heavy_rifle_408, /obj/item/ammo_magazine/heavy_rifle_408/rubber, /obj/item/storage/pouch/ammo)
options["Python - precision rifle"] = list(/obj/item/gun/projectile/automatic/mamba/python,/obj/item/ammo_magazine/heavy_rifle_408,/obj/item/ammo_magazine/heavy_rifle_408, /obj/item/ammo_magazine/heavy_rifle_408/rubber, /obj/item/storage/pouch/ammo)
options["SWAT - combat shotgun"] = list(/obj/item/gun/projectile/shotgun/pump/swat, /obj/item/ammo_magazine/speed_loader_shotgun, /obj/item/ammo_magazine/speed_loader_shotgun, /obj/item/ammo_magazine/speed_loader_shotgun/beanbag, /obj/item/ammo_magazine/ammobox/c10x24_small, /obj/item/storage/pouch/tubular)
options["Ostwind - police carbine"] = list(/obj/item/gun/projectile/automatic/ostwind, /obj/item/ammo_magazine/light_rifle_257, /obj/item/ammo_magazine/light_rifle_257, /obj/item/ammo_magazine/light_rifle_257/rubber/pepperball, /obj/item/storage/pouch/ammo)
options["Gleam - Assault Laser"] = list(/obj/item/gun/energy/lasercore/militia/blaster, /obj/item/cell/medium/high, /obj/item/cell/medium/high, /obj/item/cell/medium/high, /obj/item/storage/pouch/tubular)
Expand Down
15 changes: 14 additions & 1 deletion code/game/objects/items/weapons/storage/marshal_kits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -92,11 +92,13 @@
new /obj/item/ammo_magazine/rifle_75/rubber(src)
new /obj/item/ammo_magazine/rifle_75(src)
new /obj/item/ammo_magazine/rifle_75(src)
new /obj/item/ammo_casing/grenade(src) //One flash, one baton shell for actual use on the copperhead.
new /obj/item/ammo_casing/grenade/flash(src)
new /obj/item/storage/pouch/ammo(src)

//Ranger kits
/obj/item/storage/box/m_kit/custer
name = "Custer Kit"
name = "Custer lever action kit"
desc = "The standard Marshal box kit containing a Custer lever action rifle, a variant of the famous Armstrong repeating rifle chambered in 8.6mm."

populate_contents()
Expand All @@ -106,6 +108,17 @@
new /obj/item/ammo_magazine/speed_loader_heavy_rifle_408(src) //Still a full packet this way
new /obj/item/storage/pouch/ammo(src)

/obj/item/storage/box/m_kit/viper
name = "Viper marksman rifle kit"
desc = "The standard Marshal box kit containing a Viper DMR, a variant of the typical Mamba frame but in 7.62 with a recoil compensating stock. Perfect for marksmen."

populate_contents()
new /obj/item/gun/projectile/automatic/mamba/viper(src)
new /obj/item/ammo_magazine/rifle_75/rubber(src)
new /obj/item/ammo_magazine/rifle_75(src)
new /obj/item/ammo_magazine/rifle_75(src)
new /obj/item/storage/pouch/ammo(src)

/obj/item/storage/box/m_kit/specop
name = "Spec-Op Caseless SMG Kit"
desc = "The standard Marshal box kit containing a Spec-Op submachinegun, a powerhouse for operators prefering silenced and traceless weapons."
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/random/lathe_disks/guns.dm
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@
/obj/item/computer_hardware/hard_drive/portable/design/guns/pulse_rifle = 1,
/obj/item/computer_hardware/hard_drive/portable/design/guns/sa_kalashnikov = 2,
/obj/item/computer_hardware/hard_drive/portable/design/guns/tac_kalashnikov = 1,
/obj/item/computer_hardware/hard_drive/portable/design/guns/python = 1,
/obj/item/computer_hardware/hard_drive/portable/design/guns/viper = 1,
/obj/item/computer_hardware/hard_drive/portable/design/guns/copperhead = 2,
/obj/item/computer_hardware/hard_drive/portable/design/blackshield/luger = 3,
/obj/item/computer_hardware/hard_drive/portable/design/guns/bulldog = 3,
Expand Down
12 changes: 7 additions & 5 deletions code/modules/projectiles/guns/energy/laser/peacekeeper.dm
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,17 @@
cell_type = /obj/item/cell/medium
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2)
matter = list(MATERIAL_PLASTEEL = 12, MATERIAL_STEEL = 8, MATERIAL_WOOD = 10, MATERIAL_SILVER = 4)
fire_delay = 15
init_recoil = CARBINE_RECOIL(1)
init_recoil = CARBINE_RECOIL(1.2) //More recoil than abdicator, but it fires faster so..
damage_multiplier = 1
penetration_multiplier = 0.7
penetration_multiplier = 1

proj_step_multiplier = 0.7 //Akin to abdicator, bit slower, but only because I fear if higher taser will be STRONG. Should be 30%.

price_tag = 900
gun_tags = list(GUN_LASER, GUN_ENERGY)
init_firemodes = list(
list(mode_name="stunshot", projectile_type=/obj/item/projectile/energy/electrode/stunshot, fire_sound= 'sound/weapons/energy/Taser.ogg', charge_cost = 200, icon="stun"),
list(mode_name="buckshot", projectile_type=/obj/item/projectile/bullet/pellet/shotgun/energy, fire_sound='sound/weapons/guns/fire/sunrise_fire.ogg', charge_cost = 100, icon="kill"),
list(mode_name="stunshot", projectile_type=/obj/item/projectile/energy/electrode/stunshot, fire_sound= 'sound/weapons/energy/Taser.ogg', fire_delay = 10, charge_cost = 150, icon="stun"),
list(mode_name="buckshot", projectile_type=/obj/item/projectile/bullet/pellet/shotgun/energy, fire_sound='sound/weapons/guns/fire/sunrise_fire.ogg', fire_delay = 15, charge_cost = 100, icon="kill"),
)
serial_type = "NM"

Expand Down
4 changes: 2 additions & 2 deletions code/modules/projectiles/guns/energy/pulse/glock.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
desc = "The \"Galaxy\" plasma pistol is an odd sight, to say the least.. \
Its externals appear to be based into a modified \"Sky\" pistol frame with elements from the various energy weapons being crammed into its exterior. \
If you can get past its crude appearance, it appears to be a well made firearm; sporting an improved grip compared to the pistol it was based off \
and flexibility in firemodes; sporting a plasma setting, a laser setting and an emergency ion setting! \
and flexibility in firemodes; sporting a plasma setting, a stun-bolt setting, and an emergency ion setting! \
On the bottom of the grip appears to have a covered access port, a scipt \"M\" letter etched over the cover."
icon = 'icons/obj/guns/energy/plasglock.dmi'
icon_state = "plaslock"
Expand All @@ -27,7 +27,7 @@
gun_tags = list(GUN_LASER, GUN_ENERGY, GUN_SIGHT)
init_firemodes = list(
list(mode_name="plasma bolt", mode_desc="Hard hitting plasma bolts to reduce armor", projectile_type=/obj/item/projectile/plasma, fire_sound='sound/weapons/energy/pulse.ogg', charge_cost=120, fire_delay=8, icon="destroy", projectile_color = "#00AAFF"),
list(mode_name="laser", mode_desc="Weak laser to pierce armor and skin", projectile_type=/obj/item/projectile/beam, fire_sound='sound/weapons/energy/laser_pistol.ogg', charge_cost=80, fire_delay=0.5, icon="kill", projectile_color = "#00AAFF"),
list(mode_name="stunshot", mode_desc="A strong bolt of electricty, capable of taking down targets with only minor long-lasting damage", projectile_type=/obj/item/projectile/energy/electrode/stunshot, fire_sound='sound/weapons/energy/Taser.ogg', charge_cost=100, fire_delay=0.5, icon="vaporize", projectile_color = "#00AAFF"),
list(mode_name="ion shot", mode_desc="An iodizing shot to disable cells, electronics and cybernetics ", projectile_type=/obj/item/projectile/ion, fire_sound='sound/effects/supermatter.ogg', fire_delay=12, charge_cost=300, icon="charge", projectile_color = "#ff7f24"),
)
serial_type = "NM"
Expand Down
71 changes: 53 additions & 18 deletions code/modules/projectiles/guns/projectile/automatic/mamba.dm
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,44 @@
. = ..()
update_icon()

////////////////////
//7.62mm Viper DMR//
////////////////////
/obj/item/gun/projectile/automatic/mamba/viper
name = "\"Viper\" marksman rifle"
desc = "The \"Viper\" designated marksman rifle appears to be a design based off the Nadezhda Marshal's \"Mamba\" carbine. \
Chambered in 7.62 and sporting a special recoil-compensating stock, along with an improved scope, the \"Viper\" acts as a perfect intermediate rifle between that of a battle rifle and a sniper; perfect for flexibility in the field."
icon_state = "viper"
item_state = "viper"
icon = 'icons/obj/guns/projectile/viper.dmi'
fire_sound = 'sound/weapons/guns/fire/rifle.ogg'
w_class = ITEM_SIZE_HUGE
slot_flags = SLOT_BACK
caliber = CAL_RIFLE
load_method = SINGLE_CASING|MAGAZINE
mag_well = MAG_WELL_RIFLE
matter = list(MATERIAL_PLASTEEL = 15, MATERIAL_PLASTIC = 10)
gun_tags = list(GUN_PROJECTILE, GUN_SILENCABLE, GUN_MAGWELL, GUN_SIGHT)
price_tag = 1200
damage_multiplier = 1.2 //Better damage than AS-VAL, lacks autmatic fire
penetration_multiplier = 1.2 //Same pen as AS-VAL
extra_damage_mult_scoped = 0.2 //1.4 bonus damage when scoped. ZOOM.
zoom_factors = list(0.8)
init_recoil = RIFLE_RECOIL(1) //Lower than AS-VAL
folding_stock = FALSE
init_firemodes = list(
SEMI_AUTO_NODELAY,
BURST_2_ROUND_NOLOSS,
)
gun_parts = list(/obj/item/part/gun/frame/mamba = 1, /obj/item/part/gun/grip/rubber = 1, /obj/item/part/gun/mechanism/autorifle = 1, /obj/item/part/gun/barrel/lrifle = 1)

/////////////////////////////////////////
//7.62mm Copperhead w/ grenade launcher//
/////////////////////////////////////////
/obj/item/gun/projectile/automatic/mamba/copperhead
name = "\"Copperhead\" battle rifle"
desc = "The \"Copperhead\" rifle appears to be a design based off the Nadezhda Marshal's \"Mamba\" carbine. \
Chambered in 7.62mm and sporting a carry handle the Copperhead is intended both as a squad support weapon and as a battle rifle sporting a recoil compensating stock as well as an underbarrel grenade launcher to ensure both uses."
Chambered in 7.62mm and sporting a carry handle the \"Copperhead\" is intended both as a squad support weapon and as a battle rifle sporting a recoil compensating stock as well as an underbarrel grenade launcher to ensure both uses."
icon_state = "copperhead"
item_state = "copperhead"
icon = 'icons/obj/guns/projectile/copperhead.dmi'
Expand All @@ -80,18 +111,19 @@
load_method = SINGLE_CASING|MAGAZINE
mag_well = MAG_WELL_RIFLE
matter = list(MATERIAL_PLASTEEL = 15, MATERIAL_PLASTIC = 10)
gun_tags = list(GUN_PROJECTILE, GUN_SILENCABLE, GUN_MAGWELL, GUN_SIGHT)
price_tag = 1200
damage_multiplier = 1.2
penetration_multiplier = 1.1
damage_multiplier = 1.2 //Same as AK
penetration_multiplier = 1.1 //Higher than AK
zoom_factors = list(0.4)
init_recoil = CARBINE_RECOIL(1)
init_recoil = RIFLE_RECOIL(1)
folding_stock = FALSE
init_firemodes = list(
SEMI_AUTO_NODELAY,
FULL_AUTO_300,
list(mode_name="fire 40mm grenade", mode_desc="Shoot the built in underbarrel grenade launcher", burst=1, fire_delay=null, move_delay=null, icon="grenade", use_launcher=1)
)
gun_parts = list(/obj/item/part/gun/frame/mamba = 1, /obj/item/part/gun/grip/rubber = 1, /obj/item/part/gun/mechanism/autorifle = 1, /obj/item/part/gun/barrel/lrifle = 1)
gun_parts = list(/obj/item/part/gun/frame/mamba = 1, /obj/item/part/gun/grip/serb = 1, /obj/item/part/gun/mechanism/autorifle = 1, /obj/item/part/gun/barrel/lrifle = 1)
var/obj/item/gun/projectile/underslung/launcher

/obj/item/gun/projectile/automatic/mamba/copperhead/Initialize()
Expand Down Expand Up @@ -140,32 +172,35 @@
/obj/item/gun/projectile/automatic/mamba/python
name = "\"Python\" heavy sniper"
desc = "A fine work of the Nadezhda Marshal gunsmiths is the Python, a heavy rifle with a state of the art smart scope displaying wind speeds, built in range finding, nightvision capability and an internal stabilization system. \
Chambered in 7.62mm for stability, the normally mediocre round punches above its weight to compete with larger 8.6x70mm rifles."
Chambered in the heavy 8.6mm for velocity and armor peircing capability, able to punch well above its weight even compared to other 8.6mm rifles. However, due to its design, it seems incapable of taking drum magazines."
icon_state = "python"
item_state = "python"
icon = 'icons/obj/guns/projectile/python.dmi'
fire_sound = 'sound/weapons/guns/fire/python.ogg'
w_class = ITEM_SIZE_HUGE
slot_flags = SLOT_BACK
caliber = CAL_RIFLE
mag_well = MAG_WELL_RIFLE
caliber = CAL_HRIFLE
mag_well = MAG_WELL_HRIFLE //No drum mags, for now. Smaller 14 round mags only due to how hard it slaps.
matter = list(MATERIAL_PLASTEEL = 20, MATERIAL_PLASTIC = 12)
price_tag = 1400
fire_delay = 15
damage_multiplier = 1.2
fire_delay = 10 //To avoid being a constant spam-click fire gun. Hits way too hard for fast fire rate.
damage_multiplier = 1.2 //~33 damage base. Same as longarm.
penetration_multiplier = 1.4
zoom_factors = list(1.2)
extra_damage_mult_scoped = 0.4
init_recoil = CARBINE_RECOIL(1.2)
zoom_factors = list(0.6, 1.2)
extra_damage_mult_scoped = 0.4 //1.6 total; STRONG due to chambered in 8.6mm. ~42 damage base.
init_recoil = RIFLE_RECOIL(0.8) //More recoil than Longarm, because it slaps harder.
see_invisible_gun = SEE_INVISIBLE_NOLIGHTING
gun_tags = list(GUN_PROJECTILE, GUN_MAGWELL, GUN_SIGHT)
gun_tags = list(GUN_PROJECTILE, GUN_SILENCABLE, GUN_MAGWELL, GUN_SIGHT)
folding_stock = FALSE
init_firemodes = list(
list(mode_name="semi-automatic", mode_desc = "A semi-automatic firemode.", mode_type = /datum/firemode/automatic, fire_delay=15, icon="semi"
list(mode_name="semi-automatic", mode_desc = "A semi-automatic firemode.", mode_type = /datum/firemode/automatic, fire_delay=10, icon="semi"
))

wield_delay = 1.5 SECOND
wield_delay_factor = 0.4 // 40 vig to insta wield , heavy class rifle
wield_delay_factor = 0.5 // 50 vig to insta wield , heavy class sniper rifle

//Can't be crafted rn, needs change made to ability to take gun barrel etc. So - you can break it down, but not create new ones.
gun_parts = list(/obj/item/stack/material/plasteel = 5, /obj/item/part/gun/grip/rubber = 1, /obj/item/part/gun/mechanism/autorifle = 1, /obj/item/part/gun/barrel/hrifle = 1)

/obj/item/gun/projectile/automatic/mamba/python/Initialize()
. = ..()
Expand All @@ -176,7 +211,7 @@
icon_state = "frame_mamba"
matter = list(MATERIAL_PLASTEEL = 8)
result = /obj/item/gun/projectile/automatic/mamba
gripvars = list(/obj/item/part/gun/grip/black, /obj/item/part/gun/grip/rubber)
resultvars = list(/obj/item/gun/projectile/automatic/mamba, /obj/item/gun/projectile/automatic/mamba/copperhead)
gripvars = list(/obj/item/part/gun/grip/black, /obj/item/part/gun/grip/serb, /obj/item/part/gun/grip/rubber)
resultvars = list(/obj/item/gun/projectile/automatic/mamba, /obj/item/gun/projectile/automatic/mamba/copperhead, /obj/item/gun/projectile/automatic/mamba/viper)
mechanismvar = /obj/item/part/gun/mechanism/autorifle
barrelvars = list(/obj/item/part/gun/barrel/srifle, /obj/item/part/gun/barrel/lrifle)
Loading

0 comments on commit 519f9d1

Please sign in to comment.