Firearms 1

This commit is contained in:
Casey
2022-03-25 23:55:54 -04:00
committed by CHOMPStation2
parent b23bf87ef5
commit 51bd77e5c2
12 changed files with 517 additions and 133 deletions

View File

@@ -33,6 +33,27 @@
options["Stun Revolver"] = list(/obj/item/weapon/gun/energy/stunrevolver/detective, /obj/item/weapon/cell/device/weapon, /obj/item/weapon/cell/device/weapon)
options["Taser"] = list(/obj/item/weapon/gun/energy/taser, /obj/item/weapon/cell/device/weapon, /obj/item/weapon/cell/device/weapon)
var/choice = tgui_input_list(user,"Please, select an option.", "Stun Gun!", options)
if(src && choice)
var/list/things_to_spawn = options[choice]
for(var/new_type in things_to_spawn) // Spawn all the things, the gun and the ammo.
var/atom/movable/AM = new new_type(get_turf(src))
if(istype(AM, /obj/item/weapon/gun))
to_chat(user, "You have chosen \the [AM]. Say hello to your new friend.")
qdel(src)
/*
* CentCom Pistol
*/
/obj/item/gunbox/centcom
name = "centcom sidearm box"
desc = "A secure box containing a lethal sidearm used by Central Command."
w_class = ITEMSIZE_HUGE
/obj/item/gunbox/centcom/attack_self(mob/living/user)
var/list/options = list()
options["Écureuil (10mm)"] = list(/obj/item/weapon/gun/projectile/ecureuil, /obj/item/ammo_magazine/m10mm/pistol, /obj/item/ammo_magazine/m10mm/pistol)
options["Écureuil Olive (10mm)"] = list(/obj/item/weapon/gun/projectile/ecureuil/tac, /obj/item/ammo_magazine/m10mm/pistol, /obj/item/ammo_magazine/m10mm/pistol)
options["Écureuil Tan (10mm)"] = list(/obj/item/weapon/gun/projectile/ecureuil/tac2, /obj/item/ammo_magazine/m10mm/pistol, /obj/item/ammo_magazine/m10mm/pistol)
var/choice = tgui_input_list(user,"Please, select an option.", "Gun!", options)
if(src && choice)
var/list/things_to_spawn = options[choice]
for(var/new_type in things_to_spawn) // Spawn all the things, the gun and the ammo.

View File

@@ -29,11 +29,17 @@
/obj/item/device/radio/headset/heads/hop,
/obj/item/device/radio/headset/heads/hop/alt,
/obj/item/weapon/storage/box/ids = 2,
<<<<<<< HEAD
///obj/item/weapon/gun/energy/gun, //YW Edit,
/obj/item/weapon/gun/energy/gun/martin, //VOREStation Add,
/obj/item/weapon/storage/box/commandkeys, //VOREStation Add,
/obj/item/weapon/storage/box/servicekeys, //VOREStation Add,
///obj/item/weapon/gun/projectile/sec/flash, //VOREStation Removal,
=======
/obj/item/weapon/gun/energy/gun/compact,
/obj/item/weapon/storage/box/commandkeys,
/obj/item/weapon/storage/box/servicekeys,
>>>>>>> cce944d043... Merge pull request #12522 from GhostActual/Firearms1
/obj/item/device/flash)
/obj/structure/closet/secure_closet/hop2

View File

@@ -85,7 +85,7 @@ var/global/datum/unarmed_attack/hardclaws/unarmed_hardclaws = new()
var/mob/living/carbon/human/H = nif.human
H.adjustHalLoss(30)
var/obj/item/weapon/gun/energy/gun/martin/dazzle/dgun = new(get_turf(H))
var/obj/item/weapon/gun/energy/gun/compact/dazzle/dgun = new(get_turf(H))
H.put_in_hands(dgun)
nif.notify("Weapon deployed!",TRUE)
used = TRUE
@@ -93,10 +93,6 @@ var/global/datum/unarmed_attack/hardclaws/unarmed_hardclaws = new()
uninstall()
//The gun to go with this implant
/obj/item/weapon/gun/energy/gun/martin/dazzle
/obj/item/weapon/gun/energy/gun/compact/dazzle
name = "Microlaser"
desc = "A tiny nanofabricated laser."
icon = 'icons/obj/gun_vr.dmi'
icon_state = "PDW"
item_state = "gun"

View File

@@ -108,6 +108,38 @@
name = "speedloader (.38 haywire)"
ammo_type = /obj/item/ammo_casing/a38/emp
// Makarov
/obj/item/ammo_magazine/m38/makarov
name = "makarov magazine (.38)"
icon_state = "45"
origin_tech = list(TECH_COMBAT = 2)
mag_type = MAGAZINE
matter = list(MAT_STEEL = 480)
caliber = ".38"
ammo_type = /obj/item/ammo_casing/a38
max_ammo = 8
multiple_sprites = 1
/obj/item/ammo_magazine/m38/makarov/rubber
name = "makarov magazine (.38 rubber)"
ammo_type = /obj/item/ammo_casing/a38/rubber
// Giskard
/obj/item/ammo_magazine/m38/giskard
name = "magazine (.38)"
icon_state = "m91"
origin_tech = list(TECH_COMBAT = 2)
mag_type = MAGAZINE
matter = list(MAT_STEEL = 540)
caliber = ".38"
ammo_type = /obj/item/ammo_casing/a38
max_ammo = 10
multiple_sprites = 1
/obj/item/ammo_magazine/m38/giskard/rubber
name = "makarov magazine (.38 rubber)"
ammo_type = /obj/item/ammo_casing/a38/rubber
///////// .45 /////////
/obj/item/ammo_magazine/m45
@@ -345,6 +377,25 @@
name = "compact magazine (9mm practice)"
ammo_type = /obj/item/ammo_casing/a9mm/practice
// Luger
/obj/item/ammo_magazine/m9mm/luger
name = "\improper \"Mäuse\" magazine (9mm)"
icon_state = "9x19p"
origin_tech = list(TECH_COMBAT = 2)
mag_type = MAGAZINE
matter = list(MAT_STEEL = 480)
caliber = "9mm"
ammo_type = /obj/item/ammo_casing/a9mm
max_ammo = 8
multiple_sprites = 1
/obj/item/ammo_magazine/m9mm/luger/empty
initial_ammo = 0
/obj/item/ammo_magazine/m9mm/luger/rubber
name = "\improper \"Mäuse\" magazine (9mm rubber)"
ammo_type = /obj/item/ammo_casing/a9mm/rubber
// SMG
/obj/item/ammo_magazine/m9mmt
name = "top mounted magazine (9mm)"
@@ -431,7 +482,7 @@
ammo_type = /obj/item/ammo_casing/a9mm/ap
matter = list(MAT_STEEL = 2000)
/obj/item/ammo_magazine/m9mmR/saber/empty
/obj/item/ammo_magazine/m9mmAdvanced/empty
initial_ammo = 0
///////// 10mm /////////
@@ -450,6 +501,45 @@
/obj/item/ammo_magazine/m10mm/empty
initial_ammo = 0
/obj/item/ammo_magazine/m10mm/practice
name = "magazine (10mm practice)"
matter = list(MAT_STEEL = 1000)
ammo_type = /obj/item/ammo_casing/a10mm/practice
/obj/item/ammo_magazine/m10mm/rubber
name = "magazine (10mm rubber)"
matter = list(MAT_STEEL = 1000)
ammo_type = /obj/item/ammo_casing/a10mm/rubber
/obj/item/ammo_magazine/m10mm/emp
name = "magazine (10mm haywire)"
matter = list(MAT_STEEL = 1500, MAT_URANIUM = 2000)
ammo_type = /obj/item/ammo_casing/a10mm/emp
// Pistol
/obj/item/ammo_magazine/m10mm/pistol
icon_state = "m91"
matter = list(MAT_STEEL = 1000)
max_ammo = 12
/obj/item/ammo_magazine/m10mm/pistol/practice
name = "magazine (10mm practice)"
matter = list(MAT_STEEL = 800)
ammo_type = /obj/item/ammo_casing/a10mm/practice
/obj/item/ammo_magazine/m10mm/pistol/rubber
name = "magazine (10mm rubber)"
matter = list(MAT_STEEL = 800)
ammo_type = /obj/item/ammo_casing/a10mm/rubber
/obj/item/ammo_magazine/m10mm/pistol/emp
name = "magazine (10mm haywire)"
matter = list(MAT_STEEL = 1000, MAT_URANIUM = 1500)
ammo_type = /obj/item/ammo_casing/a10mm/emp
/obj/item/ammo_magazine/m10mm/pistol/empty
initial_ammo = 0
///////// 5.45mm /////////
/obj/item/ammo_magazine/m545

View File

@@ -80,21 +80,7 @@
//////////////////// Energy Weapons ////////////////////
// ------------ Energy Luger ------------
/obj/item/weapon/gun/energy/gun/eluger
name = "energy Luger"
desc = "The finest sidearm produced by RauMauser. Although its battery cannot be removed, its ergonomic design makes it easy to shoot, allowing for rapid follow-up shots. It also has the ability to toggle between stun and kill."
icon = 'icons/obj/gun_vr.dmi'
icon_state = "elugerstun100"
item_state = "gun"
fire_delay = null // Lugers are quite comfortable to shoot, thus allowing for more controlled follow-up shots. Rate of fire similar to a laser carbine.
battery_lock = 1 // In exchange for balance, you cannot remove the battery. Also there's no sprite for that and I fucking suck at sprites. -Ace
origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2, TECH_ILLEGAL = 2) // Illegal tech cuz Space Nazis
modifystate = "elugerstun"
fire_sound = 'sound/weapons/Taser.ogg'
firemodes = list(
list(mode_name="stun", charge_cost=120,projectile_type=/obj/item/projectile/beam/stun, modifystate="elugerstun", fire_sound='sound/weapons/Taser.ogg'),
list(mode_name="lethal", charge_cost=240,projectile_type=/obj/item/projectile/beam/eluger, modifystate="elugerkill", fire_sound='sound/weapons/eluger.ogg'),
)
//MOVED TO nuclear.dm
//////////////////// Eris Ported Guns ////////////////////
//HoP gun

View File

@@ -1,53 +1,125 @@
/*
* Energy Gun
*/
/obj/item/weapon/gun/energy/gun
name = "energy gun"
desc = "Another bestseller of Lawson Arms, the LAEP90 Perun is a versatile energy based sidearm, capable of switching between low and high capacity projectile settings. In other words: Stun or Kill."
desc = "Another bestseller of Lawson Arms, the LAEP80 Thor is a versatile energy based pistol, capable of switching between low and high capacity projectile settings. In other words: Stun or Kill."
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 = "energystun100"
item_state = null //so the human update icon uses the icon_state instead.
fire_delay = 10 // Handguns should be inferior to two-handed weapons.
icon_state = "egunstun"
item_state = null //so the human update icon uses the icon_state instead.
fire_delay = 8
projectile_type = /obj/item/projectile/beam/stun/med
origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2)
modifystate = "egunstun"
firemodes = list(
list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun/med, modifystate="egunstun", fire_sound='sound/weapons/Taser.ogg', charge_cost = 240),
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, modifystate="egunkill", fire_sound='sound/weapons/Laser.ogg', charge_cost = 480),
)
/*
* Energy Rifle
*/
/obj/item/weapon/gun/energy/gun/rifle
name = "energy rifle"
desc = "Another bestseller of Lawson Arms, the LAEP100 Svarog is a versatile energy rifle, capable of switching between low and high capacity projectile settings. In other words: Stun or Kill."
icon_state = "riflestun"
item_state = null //so the human update icon uses the icon_state instead.
wielded_item_state = "riflestun-wielded"
force = 8
w_class = ITEMSIZE_LARGE
fire_delay = 6
one_handed_penalty = 30
projectile_type = /obj/item/projectile/beam/stun
origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 3)
modifystate = "riflestun"
firemodes = list(
list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, modifystate="riflestun", fire_sound='sound/weapons/Taser.ogg', wielded_item_state="riflestun-wielded", charge_cost = 120),
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, modifystate="riflekill", fire_sound='sound/weapons/Laser.ogg', wielded_item_state="riflekill-wielded", charge_cost = 240),
)
/*
* Energy Carbine (Burst Laser)
*/
/obj/item/weapon/gun/energy/gun/burst
name = "energy carbine"
desc = "The Lawson Arms FM-2t is a versatile energy based carbine made from modifying the original LAEP100 design. It is capable of switching between stun or kill with a three round burst option for both settings."
icon_state = "energystun"
item_state = null //so the human update icon uses the icon_state instead.
force = 8
<<<<<<< HEAD
w_class = ITEMSIZE_HUGE //Probably gonna make it a rifle sooner or later //CHOMP Edit, and so I did.
slot_flags = SLOT_BELT|SLOT_BACK //CHOMP Edit. Let's make it so that if it doesn't fit in a backpack, it doesn't fit in a holster either.
=======
w_class = ITEMSIZE_LARGE
>>>>>>> cce944d043... Merge pull request #12522 from GhostActual/Firearms1
fire_delay = 6
projectile_type = /obj/item/projectile/beam/stun/weak
origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 2, TECH_ILLEGAL = 3)
modifystate = "energystun"
firemodes = list(
list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun/med, modifystate="energystun", charge_cost = 240),
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, modifystate="energykill", charge_cost = 480),
list(mode_name="stun", burst=1, projectile_type=/obj/item/projectile/beam/stun/weak, modifystate="energystun", 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="energystun"),
list(mode_name="lethal", burst=1, projectile_type=/obj/item/projectile/beam/burstlaser, modifystate="energykill", 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="energykill"),
)
/*
* Energy PDW (Martin)
*/
/obj/item/weapon/gun/energy/gun/compact
name = "personal energy weapon"
desc = "The RayZar EW20 \"Martin\" personal energy weapon - or PEW - is Ward-Takahasi's entry into the variable capacity energy gun market. New users are advised to 'set RayZars to stun'."
description_fluff = "RayZar is Ward-Takahashis main consumer weapons brand, known for producing and licensing a wide variety of specialist energy weapons of various types and quality primarily for the civilian market."
icon_state = "PDWstun"
fire_sound = 'sound/weapons/Taser.ogg'
w_class = ITEMSIZE_SMALL
projectile_type = /obj/item/projectile/beam/stun/med
origin_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 3)
modifystate = "PDWstun"
firemodes = list(
list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun/med, modifystate="PDWstun", fire_sound='sound/weapons/Taser.ogg', charge_cost = 240),
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, modifystate="PDWkill", fire_sound='sound/weapons/Laser.ogg', charge_cost = 480),
)
/*
* Energy Luger
*/
/obj/item/weapon/gun/energy/gun/eluger
name = "energy Luger"
desc = "The finest sidearm produced by RauMauser. Although its battery cannot be removed, its ergonomic design makes it easy to shoot, allowing for rapid follow-up shots. It also has the ability to toggle between stun and kill."
icon_state = "ep08stun"
item_state = "gun"
fire_delay = null // Lugers are quite comfortable to shoot, thus allowing for more controlled follow-up shots. Rate of fire similar to a laser carbine.
battery_lock = 1 // In exchange for balance, you cannot remove the battery. Also there's no sprite for that and I fucking suck at sprites. -Ace
projectile_type = /obj/item/projectile/beam/stun/med
origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2, TECH_ILLEGAL = 2) // Illegal tech cuz Space Nazis
modifystate = "ep08stun"
firemodes = list(
list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, modifystate="ep08stun", fire_sound='sound/weapons/Taser.ogg', charge_cost = 120),
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam/eluger, modifystate="ep08kill", fire_sound='sound/weapons/Laser.ogg', charge_cost = 240),
)
/*
* Mounted Energy Gun
*/
/obj/item/weapon/gun/energy/gun/mounted
name = "mounted energy gun"
self_recharge = 1
use_external_power = 1
/obj/item/weapon/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
item_state = null //so the human update icon uses the icon_state instead.
charge_cost = 100
force = 8
w_class = ITEMSIZE_HUGE //Probably gonna make it a rifle sooner or later //CHOMP Edit, and so I did.
slot_flags = SLOT_BELT|SLOT_BACK //CHOMP Edit. Let's make it so that if it doesn't fit in a backpack, it doesn't fit in a holster either.
fire_delay = 6
projectile_type = /obj/item/projectile/beam/stun/weak
origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 2, TECH_ILLEGAL = 3)
modifystate = "fm-2tstun"
// 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"),
)
/*
* Nuclear Energy Gun
*/
/obj/item/weapon/gun/energy/gun/nuclear
name = "advanced energy gun"
desc = "An energy gun with an experimental miniaturized reactor, based on a Lawson Arms platform."
@@ -62,26 +134,7 @@
battery_lock = 1
modifystate = null
// requires_two_hands = 1
// one_handed_penalty = 15 // It's rather bulky, so holding it in one hand is a little harder than with two, however it's not 'required'.
firemodes = list(
list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, modifystate="nucgunstun", charge_cost = 240),
list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, modifystate="nucgunkill", charge_cost = 480),
)
//Functionally a Perun, but flavoured.
/obj/item/weapon/gun/energy/gun/compact
name = "personal energy weapon"
desc = "The RayZar EW20 Cygnus personal energy weapon - or PEW - is Ward-Takahasi's entry into the variable capacity energy gun market. New users are advised to 'set RayZars to stun'."
description_fluff = "RayZar is Ward-Takahashis main consumer weapons brand, known for producing and licensing a wide variety of specialist energy weapons of various types and quality primarily for the civilian market."
icon_state = "PDWstun100"
projectile_type = /obj/item/projectile/beam/stun/med
origin_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 3)
modifystate = "PDWstun"
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),
)

View File

@@ -1,14 +0,0 @@
/*
// Virgo's very own file for overriding Polaris' eguns! Should include: Regular egun, Advanced egun, burst egun, mounted egun
//
// NOTICE: All the eguns are child objects of the base thing. If you modify the base egun, all the other eguns will inherit it unless they explicitly override it.
*/
/obj/item/weapon/gun/energy/gun
icon = 'icons/obj/eguns_vr.dmi' //makes the egun look for icons here instead. ALL of the eguns.
/obj/item/weapon/gun/energy/gun/burst
icon = 'icons/obj/gun.dmi' //Points it back at the default file so eguns_vr.dmi doesn't need to mirror all the sprites
/obj/item/weapon/gun/energy/gun/nuclear
icon = 'icons/obj/gun.dmi' //Points it back at the default file so eguns_vr.dmi doesn't need to mirror all the sprites

View File

@@ -1,10 +1,18 @@
/*
* Gram
*/
/obj/item/weapon/gun/projectile/contender
name = "H-H Gram"
desc = "Hedberg-Hammarstrom's flagship one-shot hand-cannon. For when you really want to make a hole. This one has been modified to work almost like a bolt-action. Uses .357 rounds."
description_fluff = "Sifs largest home-grown firearms manufacturer, the Hedberg-Hammarstrom company offers a range of high-quality, high-cost hunting rifles and shotguns designed with the Sivian wilderness - and its wildlife - in mind. \
The company operates just one production plant in Kalmar, but their weapons have found popularity on garden worlds as far afield as the Tajaran homeworld due to their excellent build quality, precision, and stopping power."
name = "\improper \"Gram\" Contender"
desc = "Hedberg-Hammarstrom's flagship one-shot hand-cannon. For when you \
really want to make a hole. This one has been modified to work almost like \
a bolt-action. Uses .357 rounds."
description_fluff = "The Hedberg-Hammarstrom company offers a range of high-quality, \
high-cost hunting rifles and shotguns designed with the Sivian wilderness - and its \
wildlife - in mind. The company operates just one production plant in Kalmar, but \
their weapons have found popularity on garden worlds as far afield as the Tajaran \
homeworld due to their excellent build quality, precision, and stopping power."
icon_state = "pockrifle"
var/icon_retracted = "pockrifle-empty"
var/icon_retracted = "pockrifle-e"
item_state = "revolver"
caliber = ".357"
handle_casings = HOLD_CASINGS
@@ -39,8 +47,13 @@
return
..()
/*
* Balmung
*/
/obj/item/weapon/gun/projectile/contender/tacticool
name = "H-H Balmung"
desc = "A later model of the Hedberg-Hammarstrom Gram, reinvented with a tactical look. For when you really want to make a hole. This one has been modified to work almost like a bolt-action. Uses .357 rounds."
name = "\improper \"Balmung\" Contender"
desc = "A later model of the Hedberg-Hammarstrom \"Gram\", reinvented with a \
tactical look. For when you really want to make a hole. This one has been \
modified to work almost like a bolt-action. Uses .357 rounds."
icon_state = "pockrifle_b"
icon_retracted = "pockrifle_b-empty"
icon_retracted = "pockrifle_b-e"

View File

@@ -73,14 +73,6 @@
to_chat(M, "Your gun is now sprited as [choice]. Say hello to your new friend.")
return 1
/*//apart of reskins that have two sprites, touching may result in frustration and breaks
/obj/item/weapon/gun/projectile/colt/detective/attack_hand(var/mob/living/user)
if(!unique_reskin && loc == user)
reskin_gun(user)
return
..()
*/
/*
* Security Sidearm
*/
@@ -106,13 +98,12 @@
icon_state = "secgun-e"
/obj/item/weapon/gun/projectile/sec/flash
name = ".45 signal pistol"
magazine_type = /obj/item/ammo_magazine/m45/flash
move_delay = 0 // CHOMPEdit: Pistols have move_delay of 0
/obj/item/weapon/gun/projectile/sec/wood
name = "custom .45 pistol"
desc = "The MT Mk58 is a cheap, ubiquitous sidearm, produced by MarsTech. This one has a sweet wooden grip. Uses .45 rounds."
name = "custom .45 Pistol"
icon_state = "secgunb"
/obj/item/weapon/gun/projectile/sec/wood/update_icon()
@@ -144,6 +135,13 @@
/obj/item/weapon/gun/projectile/silenced/empty
magazine_type = null
/obj/item/weapon/gun/projectile/silenced/update_icon()
..()
if(ammo_magazine)
icon_state = "silenced_pistol"
else
icon_state = "silenced_pistol-e"
/*
* Deagle
*/
@@ -182,7 +180,7 @@
/*
* Gyro Pistol (Admin Abuse in gun form)
*/
/obj/item/weapon/gun/projectile/gyropistol // Does this even appear anywhere outside of admin abuse?
/obj/item/weapon/gun/projectile/gyropistol
name = "gyrojet pistol"
desc = "Speak softly, and carry a big gun. Fires rare .75 caliber self-propelled exploding bolts--because fuck you and everything around you."
icon_state = "gyropistol"
@@ -205,12 +203,22 @@
else
icon_state = "gyropistol"
/*
* Silencer
*/
/obj/item/weapon/silencer
name = "silencer"
desc = "a silencer"
icon = 'icons/obj/gun.dmi'
icon_state = "silencer"
w_class = ITEMSIZE_SMALL
/*
* Compact Pistol
*/
/obj/item/weapon/gun/projectile/pistol
name = "compact pistol"
desc = "The Lumoco Arms P3 Whisper. A compact, easily concealable gun, though it's only compatible with compact magazines. Uses 9mm rounds."
desc = "The Lumoco Arms P3 \"Whisper\". A compact, easily concealable gun, though it's only compatible with compact magazines. Uses 9mm rounds."
icon_state = "pistol"
item_state = null
w_class = ITEMSIZE_SMALL
@@ -224,7 +232,6 @@
move_delay = 0 // CHOMPEdit: Pistols have move_delay of 0
/obj/item/weapon/gun/projectile/pistol/flash
name = "compact signal pistol"
magazine_type = /obj/item/ammo_magazine/m9mm/compact/flash
/obj/item/weapon/gun/projectile/pistol/attack_hand(mob/living/user as mob)
@@ -256,21 +263,70 @@
..()
/obj/item/weapon/gun/projectile/pistol/update_icon()
..()
if(silenced)
icon_state = "pistol-silencer"
if(ammo_magazine)
if(silenced)
icon_state = "pistol-s"
else
icon_state = "pistol"
else
icon_state = "pistol"
if(silenced)
icon_state = "pistol-s-e"
else
icon_state = "pistol-e"
/*
* Silencer
* Pistol
*/
/obj/item/weapon/silencer
name = "silencer"
desc = "a silencer"
icon = 'icons/obj/gun.dmi'
icon_state = "silencer"
w_class = ITEMSIZE_SMALL
/obj/item/weapon/gun/projectile/aps
name = "pistol"
desc = "The Lumoco Arms P6 \"Rustle\". A standard self-defense pistol that takes standard magazines. Uses 9mm rounds."
icon_state = "aps"
item_state = null
caliber = "9mm"
silenced = 0
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2, TECH_ILLEGAL = 2)
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/m9mm
allowed_magazines = list(/obj/item/ammo_magazine/m9mm)
projectile_type = /obj/item/projectile/bullet/pistol
/obj/item/weapon/gun/projectile/aps/attack_hand(mob/living/user as mob)
if(user.get_inactive_hand() == src)
if(silenced)
if(!user.item_is_in_hands(src))
..()
return
to_chat(user, "<span class='notice'>You unscrew [silenced] from [src].</span>")
user.put_in_hands(silenced)
silenced = 0
update_icon()
return
..()
/obj/item/weapon/gun/projectile/aps/attackby(obj/item/I as obj, mob/living/user as mob)
if(istype(I, /obj/item/weapon/silencer))
if(!user.item_is_in_hands(src)) //if we're not in his hands
to_chat(user, "<span class='notice'>You'll need [src] in your hands to do that.</span>")
return
user.drop_item()
to_chat(user, "<span class='notice'>You screw [I] onto [src].</span>")
silenced = I //dodgy?
I.loc = src //put the silencer into the gun
update_icon()
return
..()
/obj/item/weapon/gun/projectile/aps/update_icon()
if(ammo_magazine)
if(silenced)
icon_state = "aps-s"
else
icon_state = "aps"
else
if(silenced)
icon_state = "aps-s-e"
else
icon_state = "aps-e"
/*
* Zip Gun (yar har)
@@ -278,7 +334,7 @@
/obj/item/weapon/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
@@ -329,18 +385,20 @@
* Luger
*/
/obj/item/weapon/gun/projectile/luger
name = "\improper Jindal T15 Chooha"
desc = "Almost seventy percent guaranteed not to be a cheap rimworld knockoff! Accuracy, easy handling, and its distinctive appearance make it popular among gun collectors. Uses 9mm rounds."
name = "\improper Jindal T15 \"Mäuse\""
desc = "Almost seventy percent guaranteed not to be a cheap rimworld knockoff! Accuracy, easy handling, and its distinctive appearance \
make it popular among gun collectors. Uses 9mm rounds."
description_fluff = "While Jindals rugged, affordable weapons intended for the colonial sector are a major export of Tau Ceti, \
the Jindal Arms company is perhaps best known for its liberal sale of production licenses to just about any fledgling rimworld venture who asks, and has cash to spare. \
While Jindals 'authentic' Binma-built weapons are renowned for their reliability, the same cannot be said for the hundreds of low-grade (But technically legal) \
copies circulating the squalid habitats and smoke-filled junk ships of the frontier."
icon_state = "p08"
the Jindal Arms company is perhaps best known for its liberal sale of production licenses to just about any fledgling rimworld \
venture who asks, and has cash to spare. While Jindals 'authentic' Binma-built weapons are renowned for their reliability, the \
same cannot be said for the hundreds of low-grade (But technically legal) copies circulating the squalid habitats and smoke-filled \
junk ships of the frontier."
icon_state = "p08a"
origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 2)
caliber = "9mm"
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/m9mm/compact
allowed_magazines = list(/obj/item/ammo_magazine/m9mm/compact)
magazine_type = /obj/item/ammo_magazine/m9mm/luger
allowed_magazines = list(/obj/item/ammo_magazine/m9mm/luger)
projectile_type = /obj/item/projectile/bullet/pistol
/obj/item/weapon/gun/projectile/luger/update_icon()
@@ -351,9 +409,10 @@
icon_state = "[initial(icon_state)]-e"
/obj/item/weapon/gun/projectile/luger/brown
name = "\improper Jindal KP-45W"
name = "\improper Jindal T15b \"Mäuse\""
description_fluff = "While wholly owned by Hephaestus Industries, the Jindal Arms brand does not appear prominently in most company catalogues \
(Perhaps owing to its less than prestigious image), instead being sold almost exclusively through retailers and advertising platforms targeting the 'independent roughneck' demographic."
(Perhaps owing to its less than prestigious image), instead being sold almost exclusively through retailers and advertising platforms targeting \
the 'independent roughneck' demographic."
icon_state = "p08b"
/*
@@ -384,4 +443,173 @@
icon_state = "p92xb"
/obj/item/weapon/gun/projectile/p92x/large
magazine_type = /obj/item/ammo_magazine/m9mm/large // Spawns with illegal magazines.
magazine_type = /obj/item/ammo_magazine/m9mm/large // Spawns with illegal magazines.
/obj/item/weapon/gun/projectile/p92x/large/preban
magazine_type = /obj/item/ammo_magazine/m9mm/large/preban // Spawns with big magazines that are legal.
/obj/item/weapon/gun/projectile/p92x/large/preban/hp
magazine_type = /obj/item/ammo_magazine/m9mm/large/preban/hp // Spawns with legal hollow-point mag
/*
* Giskard (Eris Port)
*/
/obj/item/weapon/gun/projectile/giskard
name = "\improper \"Giskard\" holdout pistol"
desc = "The FS HG .38 \"Giskard\" can even fit into the pocket! Uses .38 rounds."
icon_state = "giskardcivil"
item_state = "giskardcivil"
caliber = ".38"
magazine_type = /obj/item/ammo_magazine/m38
allowed_magazines = list(/obj/item/ammo_magazine/m38)
load_method = MAGAZINE
w_class = ITEMSIZE_SMALL
fire_sound = 'sound/weapons/gunshot_pathetic.ogg'
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 3)
/obj/item/weapon/gun/projectile/giskard/update_icon()
..()
if(ammo_magazine && ammo_magazine.stored_ammo.len)
icon_state = "giskardcivil"
else
icon_state = "giskardcivil_empty"
/obj/item/weapon/gun/projectile/giskard/olivaw
name = "\improper \"Olivaw\" holdout burst-pistol"
desc = "The FS HG .38 \"Olivaw\" is a more advanced version of the \"Giskard\". \
This one seems to have a two-round burst-fire mode. Uses .38 rounds."
icon_state = "olivawcivil"
item_state = "giskardcivil"
firemodes = list(
list(mode_name="semiauto", burst=1, fire_delay=1.2, move_delay=null, burst_accuracy=null, dispersion=null),
list(mode_name="2-round bursts", burst=2, fire_delay=0.2, move_delay=4, burst_accuracy=list(0,-15), dispersion=list(1.2, 1.8)),
)
/obj/item/weapon/gun/projectile/giskard/olivaw/update_icon()
..()
if(ammo_magazine && ammo_magazine.stored_ammo.len)
icon_state = "olivawcivil"
else
icon_state = "olivawcivil-e"
/*
* Makarov
*/
/obj/item/weapon/gun/projectile/makarov
name = "makarov"
desc = "A small, rugged pistol from a bygone era. Uses .38 rounds."
icon_state = "makarov"
item_state = "gun"
caliber = ".38"
magazine_type = /obj/item/ammo_magazine/m38
allowed_magazines = list(/obj/item/ammo_magazine/m38)
projectile_type = /obj/item/projectile/bullet/pistol/medium
load_method = MAGAZINE
w_class = ITEMSIZE_SMALL
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
/obj/item/weapon/gun/projectile/makarov/update_icon()
if(ammo_magazine)
icon_state = "Makarov"
else
icon_state = "Makarov-e"
/*
* N99 (Fallout)
*/
/obj/item/weapon/gun/projectile/n99
name = "promotional pistol"
desc = "A very robust looking pistol that was made to promote 'Radius: Legend of the Demon Core', a popular \
post-apocolyptic TV series. It's rare to come across as marketing swiftly switched to a toy version as \
opposed to a live weapon due to safety concerns. Uses 10mm rounds."
icon_state = "n99"
item_state = "gun"
caliber = "10mm"
magazine_type = /obj/item/ammo_magazine/m10mm/pistol
allowed_magazines = list(/obj/item/ammo_magazine/m10mm/pistol)
projectile_type = /obj/item/projectile/bullet/pistol/medium
load_method = MAGAZINE
w_class = ITEMSIZE_NORMAL
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
/obj/item/weapon/gun/projectile/n99/update_icon()
if(ammo_magazine)
icon_state = "n99"
else
icon_state = "n99-e"
/obj/item/weapon/gun/projectile/n80
icon_state = "n80"
/obj/item/weapon/gun/projectile/n80/update_icon()
if(ammo_magazine)
icon_state = "n80"
else
icon_state = "n80-e"
/*
* Écureuil 10mm Pistol (Skyrat Port)
*/
/obj/item/weapon/gun/projectile/ecureuil
name = "\improper \"Écureuil\" 10mm pistol"
desc = "The 10mm MarsTech sidearm \"Écureuil\" is a well known military grade pistol. \
It's mostly used by ranking members of NanoTrasen as a means of self defense. Uses 10mm rounds."
icon_state = "ecureuil"
item_state = "gun"
caliber = "10mm"
magazine_type = /obj/item/ammo_magazine/m10mm/pistol
allowed_magazines = list(/obj/item/ammo_magazine/m10mm/pistol)
projectile_type = /obj/item/projectile/bullet/pistol/medium
load_method = MAGAZINE
w_class = ITEMSIZE_NORMAL
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
/obj/item/weapon/gun/projectile/ecureuil/update_icon()
if(ammo_magazine)
icon_state = "ecureuil"
else
icon_state = "ecureuil-e"
/obj/item/weapon/gun/projectile/ecureuil/tac
name = "\improper Tactical \"Écureuil\" 10mm pistol"
icon_state = "tac_ecureuil"
/obj/item/weapon/gun/projectile/ecureuil/tac/update_icon()
if(ammo_magazine)
icon_state = "tac_ecureuil"
else
icon_state = "tac_ecureuil-e"
/obj/item/weapon/gun/projectile/ecureuil/tac2
name = "\improper Tactical \"Écureuil\" 10mm pistol"
icon_state = "tac_ecureuil"
/obj/item/weapon/gun/projectile/ecureuil/tac2/update_icon()
if(ammo_magazine)
icon_state = "tac2_ecureuil"
else
icon_state = "tac2_ecureuil-e"
/*
* Lamia (Eris Port)
*/
/obj/item/weapon/gun/projectile/lamia
name = "\improper FS HG .44 \"Lamia\""
desc = "The FS HG .44 \"Lamia\" is the epitome of power in a handheld device. Uses .44 rounds."
icon_state = "lamia"
item_state = "revolver"
caliber = ".44"
magazine_type = /obj/item/ammo_magazine/m44/rubber
allowed_magazines = list(/obj/item/ammo_magazine/m44,/obj/item/ammo_magazine/m44/rubber)
load_method = MAGAZINE
auto_eject = 1
auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg'
origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 4)
/obj/item/weapon/gun/projectile/lamia/update_icon()
cut_overlays()
if(!ammo_magazine)
return
var/ratio = ammo_magazine.stored_ammo.len * 100 / ammo_magazine.max_ammo
ratio = round(ratio, 33)
add_overlay("lamia_[ratio]")

View File

@@ -50,7 +50,6 @@
damage = 30
armor_penetration = 10
/obj/item/projectile/beam/midlaser
damage = 40
armor_penetration = 10

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 108 KiB

View File

@@ -3795,7 +3795,10 @@
#include "code\modules\projectiles\guns\energy\netgun_vr.dm"
#include "code\modules\projectiles\guns\energy\netgun_yw.dm"
#include "code\modules\projectiles\guns\energy\nuclear.dm"
<<<<<<< HEAD
#include "code\modules\projectiles\guns\energy\nuclear_yw.dm"
=======
>>>>>>> cce944d043... Merge pull request #12522 from GhostActual/Firearms1
#include "code\modules\projectiles\guns\energy\particle.dm"
#include "code\modules\projectiles\guns\energy\phase.dm"
#include "code\modules\projectiles\guns\energy\protector_vr.dm"
@@ -3841,8 +3844,11 @@
#include "code\modules\projectiles\guns\projectile\dartgun_vr.dm"
#include "code\modules\projectiles\guns\projectile\leveraction.dm"
#include "code\modules\projectiles\guns\projectile\pistol.dm"
<<<<<<< HEAD
#include "code\modules\projectiles\guns\projectile\pistol_vr.dm"
#include "code\modules\projectiles\guns\projectile\pistol_yw.dm"
=======
>>>>>>> cce944d043... Merge pull request #12522 from GhostActual/Firearms1
#include "code\modules\projectiles\guns\projectile\revolver.dm"
#include "code\modules\projectiles\guns\projectile\revolver_vr.dm"
#include "code\modules\projectiles\guns\projectile\revolver_yw.dm"