diff --git a/code/datums/uplink/ammunition.dm b/code/datums/uplink/ammunition.dm index b086e656c4..e82763671e 100644 --- a/code/datums/uplink/ammunition.dm +++ b/code/datums/uplink/ammunition.dm @@ -27,6 +27,10 @@ name = "Pistol Magazine (.45)" path = /obj/item/ammo_magazine/m45 +/datum/uplink_item/item/ammo/c45mcompact + name = "Pistol Magazine (.45 Compact)" + path = /obj/item/ammo_magazine/m45/compact + /datum/uplink_item/item/ammo/c45map name = "Pistol Magazine (.45 AP)" path = /obj/item/ammo_magazine/m45/ap @@ -130,4 +134,4 @@ /datum/uplink_item/item/ammo/cell name = "weapon cell" - path = /obj/item/cell/device/weapon \ No newline at end of file + path = /obj/item/cell/device/weapon diff --git a/code/datums/uplink/visible_weapons.dm b/code/datums/uplink/visible_weapons.dm index 5752328a62..6449a53465 100644 --- a/code/datums/uplink/visible_weapons.dm +++ b/code/datums/uplink/visible_weapons.dm @@ -138,7 +138,7 @@ name = "Combat Shotgun" item_cost = 75 path = /obj/item/gun/projectile/shotgun/pump/combat - + /datum/uplink_item/item/visible_weapons/semishotgun name = "Semi-Automatic Shotgun" item_cost = 100 @@ -154,6 +154,11 @@ item_cost = 30 path = /obj/item/gun/energy/gun/compact +/datum/uplink_item/item/visible_weapons/compact_45 + name = "Compact .45 pistol" + item_cost = 40 + path = /obj/item/gun/projectile/compact_45 + /datum/uplink_item/item/visible_weapons/lasercannon name = "Laser Cannon" item_cost = 60 diff --git a/code/game/objects/random/guns_and_ammo.dm b/code/game/objects/random/guns_and_ammo.dm index 6ef99fc8a0..df8d4b3460 100644 --- a/code/game/objects/random/guns_and_ammo.dm +++ b/code/game/objects/random/guns_and_ammo.dm @@ -26,11 +26,14 @@ prob(2);/obj/item/gun/energy/ionrifle, prob(2);/obj/item/gun/energy/ionrifle/pistol, prob(3);/obj/item/gun/energy/toxgun, - prob(3);/obj/item/gun/energy/taser, + prob(1);/obj/item/gun/energy/taser, + prob(1);/obj/item/gun/energy/taser/disabler, prob(2);/obj/item/gun/energy/crossbow/largecrossbow, prob(3);/obj/item/gun/energy/stunrevolver, prob(2);/obj/item/gun/energy/stunrevolver/vintage, - prob(3);/obj/item/gun/energy/gun/compact) + prob(3);/obj/item/gun/energy/gun/compact, + prob(2);/obj/item/gun/energy/gun/pocket + ) /obj/random/energy/highend name = "Random Energy Weapon" @@ -48,7 +51,10 @@ prob(3);/obj/item/gun/energy/xray, prob(1);/obj/item/gun/energy/sniperrifle, prob(2);/obj/item/gun/energy/crossbow/largecrossbow, - prob(3);/obj/item/gun/energy/gun/compact) + prob(3);/obj/item/gun/energy/gun/compact, + prob(2);/obj/item/gun/energy/gun/pocket, + prob(1);/obj/item/gun/energy/monorifle, + prob(1);/obj/item/gun/energy/lasershotgun) /obj/random/energy/sec name = "Random Security Energy Weapon" @@ -72,6 +78,8 @@ prob(2);/obj/item/gun/projectile/automatic/sts35, prob(2);/obj/item/gun/projectile/automatic/z8, prob(2);/obj/item/gun/projectile/automatic/combatsmg, + prob(2);/obj/item/gun/projectile/automatic/pearlshield, + prob(2);/obj/item/gun/projectile/automatic/p90, prob(4);/obj/item/gun/projectile/colt, prob(2);/obj/item/gun/projectile/deagle, prob(1);/obj/item/gun/projectile/deagle/camo, @@ -84,7 +92,8 @@ prob(3);/obj/item/gun/projectile/sec/wood, prob(4);/obj/item/gun/projectile/p92x, prob(3);/obj/item/gun/projectile/p92x/brown, - prob(4);/obj/item/gun/projectile/pistol, + prob(2);/obj/item/gun/projectile/pistol, + prob(2);/obj/item/gun/projectile/pistol/alt, prob(5);/obj/item/gun/projectile/pirate, prob(2);/obj/item/gun/projectile/revolver, prob(4);/obj/item/gun/projectile/revolver/deckard, @@ -92,12 +101,16 @@ prob(2);/obj/item/gun/projectile/revolver/judge, prob(3);/obj/item/gun/projectile/revolver/lemat, prob(2);/obj/item/gun/projectile/revolver/mateba, + prob(2);/obj/item/gun/projectile/revolver/webley, + prob(2);/obj/item/gun/projectile/revolver/webley/large, prob(4);/obj/item/gun/projectile/shotgun/doublebarrel, prob(3);/obj/item/gun/projectile/shotgun/doublebarrel/sawn, prob(3);/obj/item/gun/projectile/shotgun/pump, prob(2);/obj/item/gun/projectile/shotgun/pump/combat, prob(4);/obj/item/gun/projectile/shotgun/pump/rifle, + prob(1);/obj/item/gun/projectile/shotgun/pump/rifle/antique, prob(3);/obj/item/gun/projectile/shotgun/pump/rifle/lever, + prob(3);/obj/item/gun/projectile/shotgun/pump/rifle/lever/brushgun, prob(2);/obj/item/gun/projectile/shotgun/semi, prob(2);/obj/item/gun/projectile/silenced) @@ -123,10 +136,19 @@ prob(1);/obj/item/gun/projectile/shotgun/pump/combat, prob(1);/obj/item/gun/projectile/shotgun/semi) +/obj/random/sidearm + name = "Random Sidearm" + desc = "This is a random one-handed sidearm of any type." + icon_state = "gun" + +/obj/random/sidearm/item_to_spawn() + return pick(prob(5);/obj/random/handgun, + prob(5);/obj/random/revolver, + prob(5);/obj/random/energy_pistol) + /obj/random/handgun - name = "Random Handgun" - desc = "This is a random sidearm." - icon = 'icons/obj/gun.dmi' + name = "Random Pistol" + desc = "This is a random semi-auto sidearm." icon_state = "gun" /obj/random/handgun/item_to_spawn() @@ -136,10 +158,38 @@ prob(3);/obj/item/gun/projectile/p92x/brown, prob(3);/obj/item/gun/projectile/colt, prob(2);/obj/item/gun/projectile/luger, - prob(2);/obj/item/gun/energy/gun, prob(2);/obj/item/gun/projectile/pistol, + prob(2);/obj/item/gun/projectile/pistol/alt, + prob(2);/obj/item/gun/projectile/luger/brown, + prob(1);/obj/item/gun/projectile/compact_45) + +/obj/random/energy_pistol + name = "Random Energy Pistol" + desc = "This is a random energy sidearm." + icon_state = "gun_energy" +/obj/random/energy_pistol/item_to_spawn() + return pick(prob(2);/obj/item/gun/energy/gun, prob(1);/obj/item/gun/energy/retro, - prob(1);/obj/item/gun/projectile/luger/brown) + prob(1);/obj/item/gun/energy/gun/compact, + prob(1);/obj/item/gun/energy/gun/pocket) + +/obj/random/revolver + name = "Random Revolver" + desc = "This is a random revolver." + icon_state = "gun" + +/obj/random/revolver/item_to_spawn() + return pick(prob(4);/obj/item/gun/projectile/revolver, + prob(4);/obj/item/gun/projectile/revolver/mateba, + prob(3);/obj/item/gun/projectile/revolver/detective, + prob(3);/obj/item/gun/projectile/revolver/detective45, + prob(3);/obj/item/gun/projectile/revolver/deckard, + prob(2);/obj/item/gun/projectile/revolver/judge, + prob(2);/obj/item/gun/projectile/revolver/lemat, + prob(2);/obj/item/gun/projectile/revolver/webley, + prob(1);/obj/item/gun/projectile/revolver/webley/auto, + prob(1);/obj/item/gun/projectile/revolver/webley/magnetic, + prob(1);/obj/item/gun/projectile/revolver/webley/large) /obj/random/handgun/sec name = "Random Security Handgun" @@ -239,7 +289,6 @@ /obj/random/projectile/random name = "Random Projectile Weapon" desc = "This is a random projectile weapon." - icon = 'icons/obj/gun.dmi' icon_state = "gun_2" /obj/random/projectile/random/item_to_spawn() @@ -283,6 +332,11 @@ /obj/item/gun/projectile/automatic/combatsmg, /obj/item/ammo_magazine/m9mmt, /obj/item/ammo_magazine/m9mmt + ), + prob(2);list( + /obj/item/gun/projectile/automatic/pearlshield, + /obj/item/ammo_magazine/m9mmt, + /obj/item/ammo_magazine/m9mmt ) ) @@ -291,8 +345,6 @@ desc = "Loot for PoIs." icon_state = "gun_rifle" -//Concerns about the bullpup, but currently seems to be only a slightly stronger z8. But we shall see. - /obj/random/multiple/gun/projectile/rifle/item_to_spawn() return pick( prob(2);list( @@ -365,9 +417,9 @@ /obj/item/ammo_magazine/m44 ), prob(1);list( - /obj/item/gun/projectile/deagle/camo, - /obj/item/ammo_magazine/m44, - /obj/item/ammo_magazine/m44 + /obj/item/gun/projectile/compact_45, + /obj/item/ammo_magazine/m45/compact, + /obj/item/ammo_magazine/m45/compact ), prob(1);list( /obj/item/gun/projectile/deagle/gold, @@ -465,6 +517,11 @@ /obj/item/gun/projectile/revolver/webley/auto, /obj/item/ammo_magazine/s44, /obj/item/ammo_magazine/s44 + ), + prob(1);list( + /obj/item/gun/projectile/revolver/webley/magnetic, + /obj/item/ammo_magazine/s44, + /obj/item/ammo_magazine/s44 ) ) diff --git a/code/modules/fishing/fishing.dm b/code/modules/fishing/fishing.dm index 6780fa9e62..532c9a086b 100644 --- a/code/modules/fishing/fishing.dm +++ b/code/modules/fishing/fishing.dm @@ -191,7 +191,7 @@ GLOBAL_LIST_INIT(generic_fishing_chance_list, list(FISHING_RARE = 5, FISHING_UNC /obj/random/tool/powermaint = 5, /obj/random/unidentified_medicine/combat_medicine = 1, /obj/random/tool/alien = 1, - /obj/random/handgun = 1, + /obj/random/sidearm = 1, /mob/living/simple_mob/animal/sif/hooligan_crab = 1 )) diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index 8e74081045..b9012df920 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -135,6 +135,11 @@ name = "magazine (.45 BB)" ammo_type = /obj/item/ammo_casing/a45/bb +/obj/item/ammo_magazine/m45/compact + name = "compact pistol magazine (.45)" + matter = list(MAT_STEEL = 375) //metal costs are very roughly based around 1 .45 casing = 75 metal + max_ammo = 5 + /obj/item/ammo_magazine/m45uzi name = "stick magazine (.45)" icon_state = "uzi45" @@ -857,4 +862,4 @@ ammo_type = /obj/item/ammo_casing/cap matter = list(MAT_STEEL = 600) max_ammo = 7 - multiple_sprites = 1 \ No newline at end of file + multiple_sprites = 1 diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index b65ea5a7fb..10f5ac03d7 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -172,7 +172,7 @@ flux in a nuclear reactor core. This incredible technology may help YOU achieve high excitation rates with small laser volumes!" icon_state = "lasercannon" item_state = null - wielded_item_state = "mhdhowitzer-wielded" //Placeholder + wielded_item_state = "laser" //Placeholder origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_POWER = 3) slot_flags = SLOT_BELT|SLOT_BACK projectile_type = /obj/item/projectile/beam/heavylaser/cannon @@ -240,7 +240,6 @@ name = "antique mono-rifle" desc = "An old laser rifle. This one can only fire once before requiring recharging." description_fluff = "Modeled after ancient hunting rifles, this rifle was dubbed the 'Rainy Day Special' by some, due to its use as some barmens' fight-stopper of choice. One shot is all it takes, or so they say." - icon = 'icons/obj/energygun.dmi' icon_state = "mono" item_state = "shotgun" origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 4, TECH_POWER = 3) @@ -317,9 +316,8 @@ /obj/item/gun/energy/lasershotgun name = "laser scattergun" icon = 'icons/obj/energygun.dmi' - item_state = "laser" icon_state = "scatter" + item_state = null desc = "A strange Almachi weapon, utilizing a refracting prism to turn a single laser blast into a diverging cluster." origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 1, TECH_MATERIAL = 4) - - projectile_type = /obj/item/projectile/scatter/laser \ No newline at end of file + projectile_type = /obj/item/projectile/scatter/laser diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index aa442cb862..0af15366f7 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -21,12 +21,11 @@ self_recharge = 1 use_external_power = 1 - /obj/item/gun/energy/gun/burst name = "burst laser" desc = "The Lawson Arms FM-2t is a versatile energy based weapon, capable of switching between stun or kill with a three round burst option for both settings." description_fluff = "Lawson Arms is Hephaestus Industries’ main personal-energy-weapon branding, often sold alongside MarsTech projectile weapons to security and law enforcement agencies." - icon_state = "fm-2tstun100" //May resprite this to be more rifley + icon_state = "riflestun100" item_state = null //so the human update icon uses the icon_state instead. charge_cost = 100 force = 8 @@ -35,16 +34,16 @@ projectile_type = /obj/item/projectile/beam/stun/weak origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 2, TECH_ILLEGAL = 3) - modifystate = "fm-2tstun" + modifystate = "riflestun" // requires_two_hands = 1 // one_handed_penalty = 30 firemodes = list( - list(mode_name="stun", burst=1, projectile_type=/obj/item/projectile/beam/stun/weak, modifystate="fm-2tstun", charge_cost = 100), - list(mode_name="stun burst", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,0,0), dispersion=list(0.0, 0.2, 0.5), projectile_type=/obj/item/projectile/beam/stun/weak, modifystate="fm-2tstun"), - list(mode_name="lethal", burst=1, projectile_type=/obj/item/projectile/beam/burstlaser, modifystate="fm-2tkill", charge_cost = 200), - list(mode_name="lethal burst", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,0,0), dispersion=list(0.0, 0.2, 0.5), projectile_type=/obj/item/projectile/beam/burstlaser, modifystate="fm-2tkill"), + list(mode_name="stun", burst=1, projectile_type=/obj/item/projectile/beam/stun/weak, modifystate="riflestun", charge_cost = 100), + list(mode_name="stun burst", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,0,0), dispersion=list(0.0, 0.2, 0.5), projectile_type=/obj/item/projectile/beam/stun/weak, modifystate="riflestun"), + list(mode_name="lethal", burst=1, projectile_type=/obj/item/projectile/beam/burstlaser, modifystate="riflekill", charge_cost = 200), + list(mode_name="lethal burst", burst=3, fire_delay=null, move_delay=4, burst_accuracy=list(0,0,0), dispersion=list(0.0, 0.2, 0.5), projectile_type=/obj/item/projectile/beam/burstlaser, modifystate="riflekill"), ) /obj/item/gun/energy/gun/nuclear @@ -83,4 +82,19 @@ firemodes = list( list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun/med, modifystate="PDWstun", charge_cost = 240), list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, modifystate="PDWkill", charge_cost = 480), - ) \ No newline at end of file + ) + +//What if we went smaller? +/obj/item/gun/energy/gun/pocket + name = "subcompact energy gun" + desc = "The LAEP90-S Perunika is a subcompact variant of the versatile Perun energy sidearm, for use by plainclothes security personnel with a desire for concealability." + description_fluff = "Lawson Arms is Hephaestus Industries’ main personal-energy-weapon branding, often sold alongside MarsTech projectile weapons to security and law enforcement agencies." + w_class = ITEMSIZE_SMALL + icon_state = "egunstun100" + item_state = "energystun" + + modifystate = "egunstun" + firemodes = list( + list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun/med, modifystate="egunstun", charge_cost = 240), + list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, modifystate="egunkill", charge_cost = 480), + ) diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 214e90edd1..677c9e6ded 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -23,6 +23,13 @@ charge_cost = 400 recharge_time = 7 //Time it takes for shots to recharge (in ticks) +/obj/item/gun/energy/taser/disabler + name = "disabler" + desc = "The RayZar S500 Disabler is a high-powered derivative of the same Mk30 taser design used by NanoTrasen security, and is capable of overloading prosthetic energy cells. It's use is heavily regulated due to potential for long-term effects on the body." + icon_state = "disabler" + projectile_type = /obj/item/projectile/beam/stun/disabler + charge_cost = 480 + /obj/item/gun/energy/taser/mounted/cyborg/swarm name = "disabler" desc = "An archaic device which attacks the target's nervous-system or control circuits." @@ -110,4 +117,4 @@ icon_state = "snubstunrevolver" item_state = "stunrevolver" w_class = ITEMSIZE_SMALL - origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_POWER = 2) \ No newline at end of file + origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_POWER = 2) diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm index e9c5fedd76..00621840ee 100644 --- a/code/modules/projectiles/guns/projectile/automatic.dm +++ b/code/modules/projectiles/guns/projectile/automatic.dm @@ -1,7 +1,7 @@ /obj/item/gun/projectile/automatic //This should never be spawned in, it is just here because of code necessities. name = "daka SMG" desc = "A small SMG. You really shouldn't be able to get this gun. Uses 9mm rounds." - icon_state = "c05r" //Used because it's not used anywhere else + icon_state = "smg" //Used because it's not used anywhere else load_method = SPEEDLOADER ammo_type = /obj/item/ammo_casing/a9mm projectile_type = /obj/item/projectile/bullet/pistol @@ -370,6 +370,27 @@ /obj/item/gun/projectile/automatic/p90/update_icon() icon_state = "p90smg-[ammo_magazine ? round(ammo_magazine.stored_ammo.len, 6) : "empty"]" +/obj/item/gun/projectile/automatic/pearlshield + name = "\improper Tajaran PDW" + desc = "A century old Rhemazar military weapon adapted to use human-standard cartridges, the PCA-A9 Karik has been the standard submachine gun of the Pearlshield military since 2549. Uses 9mm rounds." + description_fluff = "Pearlshield Consolidated Armories are far from the most cutting edge firearm manufacturer, but the Tajaran’s long tradition of war is rivaled only by humanity, \ + and the introduction of human technology to the Tajaran arms market has resulted in something of a revolution in finding new ways to kill each other at long distances with bullets. \ + Usually made with mass-production in mind, PCA weapons combine an eye for design with a great desire to make people dead." + icon_state = "pdw" + item_state = "c20r" + w_class = ITEMSIZE_NORMAL + caliber = "9mm" + origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 2) + slot_flags = SLOT_BELT + load_method = MAGAZINE + magazine_type = /obj/item/ammo_magazine/m9mmt + allowed_magazines = list(/obj/item/ammo_magazine/m9mm, /obj/item/ammo_magazine/m9mmt) + + firemodes = list( + list(mode_name="semiauto", burst=1, fire_delay=0), + list(mode_name="3-round bursts", burst=3, fire_delay=null, move_delay=6, burst_accuracy=list(0,-15,-30), dispersion=list(0.0, 0.6, 0.6)) + ) + /obj/item/gun/projectile/automatic/tommygun name = "\improper Tommy Gun" desc = "This weapon was made famous by gangsters in the 20th century. Cybersun Industries is currently reproducing these for a target market of historic gun collectors and classy criminals. Uses .45 rounds." @@ -452,4 +473,4 @@ if(ammo_magazine) icon_state = "combatsmg" else - icon_state = "combatsmg-empty" \ No newline at end of file + icon_state = "combatsmg-empty" diff --git a/code/modules/projectiles/guns/projectile/boltaction.dm b/code/modules/projectiles/guns/projectile/boltaction.dm index c376eb1f8f..02a75b20ff 100644 --- a/code/modules/projectiles/guns/projectile/boltaction.dm +++ b/code/modules/projectiles/guns/projectile/boltaction.dm @@ -17,6 +17,17 @@ action_sound = 'sound/weapons/riflebolt.ogg' pump_animation = "boltaction-cycling" +//////Antique Variant////// +/obj/item/gun/projectile/shotgun/pump/rifle/antique + name = "antique bolt-action rifle" + desc = "A cheaply produced rifle dating from at least the late 21st century, if not before. Hand loaded. Uses 7.62mm rounds." + description_fluff = "These faux-wood plastic unbranded bolt-action rifles were mass produced in the millions to equip early Icarus Front supporters during staged revolutions in the 2090s,\ + though the design had circulated on the internet for at least fifty years prior. Surviving examples are relatively common, but generally unreliable as weapons due to their advanced age." + icon_state = "surplus" + item_state = "boltaction_c" + load_method = SINGLE_CASING + max_shells = 7 + ////////Practice Rifle//////// /obj/item/gun/projectile/shotgun/pump/rifle/practice // For target practice name = "practice bolt-action rifle" @@ -76,6 +87,22 @@ /obj/item/gun/projectile/shotgun/pump/rifle/lever/vintage name = "vintage repeater" desc = "An iconic manually operated lever action rifle, offering adequate stopping power due to it's still powerful cartridge while at the same time having a rather respectable firing rate due to it's mechanism. It is very probable this is a replica instead of a museum piece, but rifles of this pattern still see usage as colonist guns in some far off regions. Uses 7.62mm rounds." + description_fluff = null item_state = "levercarbine" icon_state = "levercarbine" pump_animation = "levercarbine-cycling" + +/obj/item/gun/projectile/shotgun/pump/rifle/lever/brushgun + name = "brush gun" + desc = "The Hedberg-Hammarstrom Myrkvidhr is a high-caliber lever-action hunting rifle designed specifically for tackling the hardy and often armoured wildlife of Sif." + icon_state = "brushgun" + pump_animation = "brushgun-cycling" + max_shells = 8 + ammo_type = /obj/item/ammo_casing/a44/rifle + caliber = ".44" + +/obj/item/gun/projectile/shotgun/pump/rifle/lever/brushgun/Initialize() + if(prob(50)) + icon_state = "trailgun" + pump_animation = "trailgun_cycling" + . = ..() diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm index 5454853d71..d22cb1e514 100644 --- a/code/modules/projectiles/guns/projectile/pistol.dm +++ b/code/modules/projectiles/guns/projectile/pistol.dm @@ -55,7 +55,7 @@ options["NT Mk. 58"] = "secguncomp" options["NT Mk. 58 Custom"] = "secgundark" options["MarsTech P11 Spur"] = "colt" - options["MarsTech P59 Massif"] = "fnseven" + options["MarsTech P59 Massif"] = "civil" options["ProTek YC9"] = "usp" options["ProTek Minx"] = "VP78" options["Jindal T15 Chooha"] = "p08" @@ -232,9 +232,22 @@ /obj/item/gun/projectile/pistol/update_icon() ..() if(silenced) - icon_state = "pistol-silencer" + if(ammo_magazine) + icon_state = "[initial(icon_state)]-silencer" + else + icon_state = "[initial(icon_state)]-silencer-e" else - icon_state = "pistol" + if(ammo_magazine) + icon_state = "[initial(icon_state)]" + else + icon_state = "[initial(icon_state)]-e" + +/obj/item/gun/projectile/pistol/alt + name = "compact government pistol" + desc = "The Jindal PF. A compact, easily concealable gun, though it's only compatible with compact magazines. Uses 9mm rounds." + description_fluff = "The Jindal Arms PF was the company's first entry into the compact pistols market, and has served as the standard issue firearm \ + of Tau Ceti government security forces since their consolidation in 2332." + icon_state = "compact" /obj/item/silencer name = "silencer" @@ -246,7 +259,7 @@ /obj/item/gun/projectile/pirate name = "zip gun" desc = "Little more than a barrel, handle, and firing mechanism, cheap makeshift firearms like this one are not uncommon in frontier systems." - icon_state = "sawnshotgun" + icon_state = "zipgun" item_state = "sawnshotgun" handle_casings = CYCLE_CASINGS //player has to take the old casing out manually before reloading load_method = SINGLE_CASING @@ -339,4 +352,28 @@ icon_state = "p92x-brown" /obj/item/gun/projectile/p92x/large - magazine_type = /obj/item/ammo_magazine/m9mm/large // Spawns with illegal magazines. \ No newline at end of file + magazine_type = /obj/item/ammo_magazine/m9mm/large // Spawns with illegal magazines. + +/obj/item/gun/projectile/compact_45 + name = "compact .45 pistol" + desc = "A compact and easily concealable gun with surprising firepower, though it's only compatible with compact magazines. Uses .45 rounds." + description_fluff = "The MarsTech Ecureuil is the company's most popular compact .45 model. Perhaps best known as the official service pistol of the Free Relan Federation, despite a notoriously low magazine capacity." + icon_state = "ecureuil" + item_state = null + w_class = ITEMSIZE_SMALL + magazine_type = /obj/item/ammo_magazine/m45/compact + allowed_magazines = list(/obj/item/ammo_magazine/m45/compact) + projectile_type = /obj/item/projectile/bullet/pistol/medium + caliber = ".45" + origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3) + load_method = MAGAZINE + +/obj/item/gun/projectile/compact_45/update_icon() + ..() + if(ammo_magazine) + icon_state = "[initial(icon_state)]" + else + icon_state = "[initial(icon_state)]-e" + +/obj/item/gun/projectile/compact_45/tactical + icon_state = "tac_ecureuil" diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index 127ba14a39..aad53b698b 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -42,7 +42,7 @@ name = "mateba" desc = "This unique looking handgun is named after an Italian company famous for the original manufacture of these revolvers, and pasta kneading machines. Uses .357 rounds." // Yes I'm serious. -Spades icon_state = "mateba" - origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2) + /obj/item/gun/projectile/revolver/detective name = "revolver" @@ -71,6 +71,14 @@ to_chat(M, "You name the gun [input]. Say hello to your new friend.") return 1 +/obj/item/gun/projectile/revolver/gold + name = "trophy revolver" + desc = "A prestigious engraved version of the MarsTech R1 Snubnose, mass-produced for presentation to long-serving law enforcement personnel upon retirement. Uses .38-Special rounds." + icon_state = "detective_gold" + origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 4) + caliber = ".38" + ammo_type = /obj/item/ammo_casing/a38 + /obj/item/gun/projectile/revolver/detective45 name = ".45 revolver" desc = "A basic revolver, popular among some law enforcement agencies for its simple, long-lasting construction, modified for .45 rounds and a seven-shot cylinder." @@ -80,7 +88,6 @@ ammo_type = /obj/item/ammo_casing/a45/rubber max_shells = 7 - /obj/item/gun/projectile/revolver/detective45/verb/rename_gun() set name = "Name Gun" set category = "Object" @@ -108,12 +115,14 @@ var/mob/M = usr var/list/options = list() options["MarsTech R1 Snubnose"] = "detective" - options["ProTek Cowboy"] = "GP100" options["MarsTech Frontiersman Classic"] = "detective_peacemaker" options["MarsTech Frontiersman Shadow"] = "detective_peacemaker_dark" options["MarsTech Panther"] = "detective_panther" - options["Jindal Duke"] = "lemat_old" + options["ProTek Cowboy"] = "GP100" + options["Jindal Duke"] = "lombardi_police" + options["Jindal Viscount Snub"] = "detective_black" options["H-H Sindri"] = "webley" + options["H-H Brokkr"] = "nagant" options["Lombardi Buzzard"] = "detective_buzzard" options["Lombardi Constable Deluxe 2502"] = "detective_constable" var/choice = input(M,"Choose your sprite!","Resprite Gun") in options @@ -151,8 +160,8 @@ /obj/item/gun/projectile/revolver/capgun name = "cap gun" desc = "Looks almost like the real thing! Ages 8 and up." - icon_state = "revolver" - item_state = "revolver" + icon_state = "detective_fitz" + item_state = "detective_fitz" caliber = "caps" origin_tech = list(TECH_COMBAT = 1, TECH_MATERIAL = 1) handle_casings = CYCLE_CASINGS @@ -176,7 +185,7 @@ // ToDo: Remove accuracy debuf in exchange for slightly injuring your hand every time you fire it. /obj/item/gun/projectile/revolver/lemat - name = "Mako Revolver" + name = "Mako revolver" desc = "The Bishamonten P100 Mako is a 9 shot revolver with a secondary firing barrel loading shotgun shells. For when you really need something dead. A rare yet deadly collector's item. Uses .38-Special and 12g rounds depending on the barrel." description_fluff = "The Bishamonten Company operated from roughly 2150-2280 - the height of the first extrasolar colonisation boom - before filing for bankruptcy and selling off its assets to various companies that would go on to become today’s TSCs. \ Focused on sleek ‘futurist’ designs which have largely fallen out of fashion but remain popular with collectors and people hoping to make some quick thalers from replica weapons. \ @@ -269,8 +278,6 @@ else . += "It has a secondary barrel that is empty." - -//Ported from Bay /obj/item/gun/projectile/revolver/webley name = "patrol revolver" desc = "A rugged top break revolver commonly issued to members of the SifGuard. Uses .44 magnum rounds." @@ -288,6 +295,31 @@ name = "autorevolver" icon_state = "mosley" desc = "A shiny Fosbery Autococker automatic revolver, with black accents. Marketed as the 'Revolver for the Modern Era'. Uses .44 magnum rounds." + description_fluff = null fire_delay = 5.7 //Autorevolver. Also synced with the animation fire_anim = "mosley_fire" origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 2) + +/obj/item/gun/projectile/revolver/webley/large + name = "heavy revolver" + desc = "A high-capacity magnum revolver, polished to a mirror shine. Uses .44 magnum rounds." + description_fluff = "The Hedberg-Hammarstrom Wyrm was designed as a SifGuard sidearm, but the prototype was rejected in favour of the lighter Althing. \ + Introduced to the consumer market by popular demand a few years later, the Wyrm has been a hit with collectors ever since." + icon_state = "revolver_stainless" + max_shells = 8 + +/obj/item/gun/projectile/revolver/webley/magnetic + name = "Auditor revolver" + desc = "A high-powered revolver with a electromagnetically assisted firing mechanism for enhanced armor-piercing capability using standard ammunition. Uses .44 magnum rounds." + description_fluff = "The Lawson Arms LAM-2 Auditor is an experimental hybrid design using an electronic firing mechanism to propel standard ballistic ammunition at absurd velocities. \ + Though prohibitively expensive to both obtain and maintain, the Auditor is a favourite with those particular gunmen with near unlimited budgets." + icon_state = "inspector" + projectile_type = /obj/item/projectile/bullet/pistol/strong/ap + origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_MAGNET = 2) + +/obj/item/gun/projectile/revolver/webley/magnetic/update_icon() + cut_overlays() + if(loaded.len==0) + add_overlay("inspector_off") + else + add_overlay("inspector_on") diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index a412e705b6..66769687fc 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -90,7 +90,7 @@ /obj/item/gun/projectile/shotgun/doublebarrel name = "double-barreled shotgun" - desc = "A truely classic weapon. No need to change what works. Uses 12g rounds." + desc = "A truly classic weapon. No need to change what works. Uses 12g rounds." icon_state = "dshotgun" item_state = "dshotgun" //SPEEDLOADER because rapid unloading. @@ -104,6 +104,7 @@ caliber = "12g" origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 1) ammo_type = /obj/item/ammo_casing/a12g/beanbag + var/sawn_off = FALSE burst_delay = 0 firemodes = list( @@ -117,6 +118,7 @@ /obj/item/gun/projectile/shotgun/doublebarrel/flare name = "signal shotgun" desc = "A double-barreled shotgun meant to fire signal flash shells. Uses 12g rounds." + icon_state = "dshotgun_g" ammo_type = /obj/item/ammo_casing/a12g/flash /obj/item/gun/projectile/shotgun/doublebarrel/unload_ammo(user, allow_dump) @@ -135,7 +137,9 @@ burst = burstsetting return if(do_after(user, 30)) //SHIT IS STEALTHY EYYYYY - icon_state = "sawnshotgun" + if(sawn_off) + return + icon_state = "[initial(icon_state)]-sawn" item_state = "sawnshotgun" w_class = ITEMSIZE_NORMAL force = 5 @@ -144,18 +148,20 @@ name = "sawn-off shotgun" desc = "Omar's coming!" to_chat(user, "You shorten the barrel of \the [src]!") + sawn_off = TRUE else ..() /obj/item/gun/projectile/shotgun/doublebarrel/sawn name = "sawn-off shotgun" desc = "Omar's coming!" // I'm not gonna add "Uses 12g rounds." to this one. I'll just let this reference go undisturbed. - icon_state = "sawnshotgun" + icon_state = "dshotgun-sawn" item_state = "sawnshotgun" slot_flags = SLOT_BELT|SLOT_HOLSTER ammo_type = /obj/item/ammo_casing/a12g/pellet w_class = ITEMSIZE_NORMAL force = 5 + sawn_off = TRUE //Sjorgen Inertial Shotgun /obj/item/gun/projectile/shotgun/semi @@ -171,4 +177,3 @@ load_method = SINGLE_CASING max_shells = 5 ammo_type = /obj/item/ammo_casing/a12g/beanbag - \ No newline at end of file diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index c59cfb980a..7a121fbcb7 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -131,6 +131,9 @@ damage = 60 hud_state = "pistol_heavy" +/obj/item/projectile/bullet/pistol/strong/ap + armor_penetration = 15 + /obj/item/projectile/bullet/pistol/rubber/strong // "Rubber" bullets for high power pistols. fire_sound = 'sound/weapons/gunshot3.ogg' // Rubber shots have less powder, but these still have more punch than normal rubber shot. damage = 10 diff --git a/code/modules/xenobio/items/weapons.dm b/code/modules/xenobio/items/weapons.dm index 0304bff0b7..e91bbd7ae8 100644 --- a/code/modules/xenobio/items/weapons.dm +++ b/code/modules/xenobio/items/weapons.dm @@ -45,7 +45,7 @@ name = "xeno taser gun" desc = "Straight out of NT's testing laboratories, this small gun is used to subdue non-humanoid xeno life forms. \ While marketed towards handling slimes, it may be useful for other creatures." - icon_state = "taserold" + icon_state = "taserblueold" fire_sound = 'sound/weapons/taser2.ogg' charge_cost = 120 // Twice as many shots. projectile_type = /obj/item/projectile/beam/stun/xeno diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi index e0cc8433d6..d54d49e8c6 100644 Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ diff --git a/icons/mob/belt_mirror.dmi b/icons/mob/belt_mirror.dmi index 3881b1c746..7b27432ccb 100644 Binary files a/icons/mob/belt_mirror.dmi and b/icons/mob/belt_mirror.dmi differ diff --git a/icons/mob/items/lefthand_guns.dmi b/icons/mob/items/lefthand_guns.dmi index 904a70a4bd..7690273a89 100644 Binary files a/icons/mob/items/lefthand_guns.dmi and b/icons/mob/items/lefthand_guns.dmi differ diff --git a/icons/mob/items/righthand_guns.dmi b/icons/mob/items/righthand_guns.dmi index 9fbef51dab..42aaeeb73a 100644 Binary files a/icons/mob/items/righthand_guns.dmi and b/icons/mob/items/righthand_guns.dmi differ diff --git a/icons/obj/energygun.dmi b/icons/obj/energygun.dmi index 73c39449bb..41377839fd 100644 Binary files a/icons/obj/energygun.dmi and b/icons/obj/energygun.dmi differ diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index 8f26ffad37..afeaaf47e1 100644 Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ diff --git a/icons/obj/gun2.dmi b/icons/obj/gun2.dmi index 6b81e46b90..e802e3a85f 100644 Binary files a/icons/obj/gun2.dmi and b/icons/obj/gun2.dmi differ diff --git a/maps/submaps/surface_submaps/mountains/vault5.dmm b/maps/submaps/surface_submaps/mountains/vault5.dmm index 254093aae9..d5a4ecbe62 100644 --- a/maps/submaps/surface_submaps/mountains/vault5.dmm +++ b/maps/submaps/surface_submaps/mountains/vault5.dmm @@ -14,7 +14,7 @@ "d" = ( /obj/effect/alien/weeds, /obj/structure/bed/nest, -/obj/random/handgun, +/obj/random/sidearm, /turf/simulated/mineral/floor/ignore_mapgen, /area/submap/cave/vault5) "e" = (