mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 02:09:41 +00:00
249 lines
8.2 KiB
Plaintext
249 lines
8.2 KiB
Plaintext
/obj/item/weapon/gun/projectile/colt
|
|
var/unique_reskin
|
|
name = "vintage .45 pistol"
|
|
desc = "A cheap Martian knock-off of a Colt M1911. Uses .45 rounds."
|
|
magazine_type = /obj/item/ammo_magazine/c45m
|
|
icon_state = "colt"
|
|
caliber = ".45"
|
|
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
|
|
fire_sound = 'sound/weapons/Gunshot_light.ogg'
|
|
load_method = MAGAZINE
|
|
|
|
/obj/item/weapon/gun/projectile/colt/detective
|
|
desc = "A Martian recreation of an old Terran pistol. Uses .45 rounds."
|
|
magazine_type = /obj/item/ammo_magazine/c45m/rubber
|
|
|
|
/obj/item/weapon/gun/projectile/colt/detective/update_icon()
|
|
if(ammo_magazine)
|
|
if(unique_reskin)
|
|
icon_state = unique_reskin
|
|
else
|
|
icon_state = initial(icon_state)
|
|
else
|
|
if(unique_reskin)
|
|
icon_state = "[unique_reskin]-e"
|
|
else
|
|
icon_state = "[initial(icon_state)]-e"
|
|
|
|
/obj/item/weapon/gun/projectile/colt/detective/verb/rename_gun()
|
|
set name = "Name Gun"
|
|
set category = "Object"
|
|
set desc = "Rename your gun. If you're Security."
|
|
|
|
var/mob/M = usr
|
|
if(!M.mind) return 0
|
|
var/job = M.mind.assigned_role
|
|
if(job != "Detective" && job != "Security Officer" && job != "Warden" && job != "Head of Security")
|
|
M << "<span class='notice'>You don't feel cool enough to name this gun, chump.</span>"
|
|
return 0
|
|
|
|
var/input = sanitizeSafe(input("What do you want to name the gun?", ,""), MAX_NAME_LEN)
|
|
|
|
if(src && input && !M.stat && in_range(M,src))
|
|
name = input
|
|
M << "You name the gun [input]. Say hello to your new friend."
|
|
return 1
|
|
|
|
/obj/item/weapon/gun/projectile/colt/detective/verb/reskin_gun()
|
|
set name = "Resprite gun"
|
|
set category = "Object"
|
|
set desc = "Click to choose a sprite for your gun."
|
|
|
|
var/mob/M = usr
|
|
var/list/options = list()
|
|
options["NT Mk. 58"] = "secguncomp"
|
|
options["NT Mk. 58 Custom"] = "secgundark"
|
|
options["Colt M1911"] = "colt"
|
|
options["USP"] = "usp"
|
|
options["H&K VP"] = "VP78"
|
|
options["P08 Luger"] = "p08"
|
|
options["P08 Luger, Brown"] = "p08b"
|
|
var/choice = input(M,"What do you want the gun's sprite to be?","Resprite Gun") in options
|
|
if(src && choice && !M.stat && in_range(M,src))
|
|
icon_state = options[choice]
|
|
unique_reskin = options[choice]
|
|
M << "Your gun is now sprited as [choice]. Say hello to your new friend."
|
|
return 1
|
|
|
|
/obj/item/weapon/gun/projectile/sec
|
|
name = ".45 pistol"
|
|
desc = "The NT Mk58 is a cheap, ubiquitous sidearm, produced by a NanoTrasen subsidiary. Found pretty much everywhere humans are. Uses .45 rounds."
|
|
icon_state = "secguncomp"
|
|
magazine_type = /obj/item/ammo_magazine/c45m/rubber
|
|
caliber = ".45"
|
|
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2)
|
|
fire_sound = 'sound/weapons/Gunshot_light.ogg'
|
|
load_method = MAGAZINE
|
|
|
|
/obj/item/weapon/gun/projectile/sec/update_icon()
|
|
..()
|
|
if(ammo_magazine)
|
|
icon_state = "secguncomp"
|
|
else
|
|
icon_state = "secguncomp-e"
|
|
|
|
/obj/item/weapon/gun/projectile/sec/flash
|
|
name = ".45 signal pistol"
|
|
magazine_type = /obj/item/ammo_magazine/c45m/flash
|
|
|
|
/obj/item/weapon/gun/projectile/sec/wood
|
|
desc = "The NT Mk58 is a cheap, ubiquitous sidearm, produced by a NanoTrasen subsidiary. This one has a sweet wooden grip. Uses .45 rounds."
|
|
name = "custom .45 Pistol"
|
|
icon_state = "secgundark"
|
|
|
|
/obj/item/weapon/gun/projectile/sec/wood/update_icon()
|
|
..()
|
|
if(ammo_magazine)
|
|
icon_state = "secgundark"
|
|
else
|
|
icon_state = "secgundark-e"
|
|
|
|
/obj/item/weapon/gun/projectile/silenced
|
|
name = "silenced pistol"
|
|
desc = "A small, quiet, easily concealable gun. Uses .45 rounds."
|
|
icon_state = "silenced_pistol"
|
|
w_class = 3
|
|
caliber = ".45"
|
|
silenced = 1
|
|
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2, TECH_ILLEGAL = 8)
|
|
load_method = MAGAZINE
|
|
magazine_type = /obj/item/ammo_magazine/c45m
|
|
|
|
/obj/item/weapon/gun/projectile/deagle
|
|
name = "desert eagle"
|
|
desc = "A robust handgun that uses .50 AE ammo"
|
|
icon_state = "deagle"
|
|
item_state = "deagle"
|
|
force = 14.0
|
|
caliber = ".50"
|
|
load_method = MAGAZINE
|
|
magazine_type = /obj/item/ammo_magazine/a50
|
|
auto_eject = 1
|
|
|
|
/obj/item/weapon/gun/projectile/deagle/gold
|
|
desc = "A gold plated gun folded over a million times by superior martian gunsmiths. Uses .50 AE ammo."
|
|
icon_state = "deagleg"
|
|
item_state = "deagleg"
|
|
|
|
/obj/item/weapon/gun/projectile/deagle/camo
|
|
desc = "A Deagle brand Deagle for operators operating operationally. Uses .50 AE ammo."
|
|
icon_state = "deaglecamo"
|
|
item_state = "deagleg"
|
|
auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg'
|
|
|
|
|
|
|
|
/obj/item/weapon/gun/projectile/gyropistol
|
|
name = "gyrojet pistol"
|
|
desc = "A bulky pistol designed to fire self propelled rounds"
|
|
icon_state = "gyropistol"
|
|
max_shells = 8
|
|
caliber = "75"
|
|
fire_sound = 'sound/effects/Explosion1.ogg'
|
|
origin_tech = list(TECH_COMBAT = 3)
|
|
ammo_type = "/obj/item/ammo_casing/a75"
|
|
load_method = MAGAZINE
|
|
magazine_type = /obj/item/ammo_magazine/a75
|
|
auto_eject = 1
|
|
auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg'
|
|
|
|
/obj/item/weapon/gun/projectile/gyropistol/update_icon()
|
|
..()
|
|
if(ammo_magazine)
|
|
icon_state = "gyropistolloaded"
|
|
else
|
|
icon_state = "gyropistol"
|
|
|
|
/obj/item/weapon/gun/projectile/pistol
|
|
name = "holdout pistol"
|
|
desc = "The Lumoco Arms P3 Whisper. A small, easily concealable gun. Uses 9mm rounds."
|
|
icon_state = "pistol"
|
|
item_state = null
|
|
w_class = 2
|
|
caliber = "9mm"
|
|
silenced = 0
|
|
origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 2, TECH_ILLEGAL = 2)
|
|
fire_sound = 'sound/weapons/Gunshot_light.ogg'
|
|
load_method = MAGAZINE
|
|
magazine_type = /obj/item/ammo_magazine/mc9mm
|
|
|
|
/obj/item/weapon/gun/projectile/pistol/flash
|
|
name = "holdout signal pistol"
|
|
magazine_type = /obj/item/ammo_magazine/mc9mm/flash
|
|
|
|
/obj/item/weapon/gun/projectile/pistol/attack_hand(mob/living/user as mob)
|
|
if(user.get_inactive_hand() == src)
|
|
if(silenced)
|
|
if(!user.item_is_in_hands(src))
|
|
..()
|
|
return
|
|
user << "<span class='notice'>You unscrew [silenced] from [src].</span>"
|
|
user.put_in_hands(silenced)
|
|
silenced = 0
|
|
w_class = 2
|
|
update_icon()
|
|
return
|
|
..()
|
|
|
|
/obj/item/weapon/gun/projectile/pistol/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
|
|
user << "<span class='notice'>You'll need [src] in your hands to do that.</span>"
|
|
return
|
|
user.drop_item()
|
|
user << "<span class='notice'>You screw [I] onto [src].</span>"
|
|
silenced = I //dodgy?
|
|
w_class = 3
|
|
I.loc = src //put the silencer into the gun
|
|
update_icon()
|
|
return
|
|
..()
|
|
|
|
/obj/item/weapon/gun/projectile/pistol/update_icon()
|
|
..()
|
|
if(silenced)
|
|
icon_state = "pistol-silencer"
|
|
else
|
|
icon_state = "pistol"
|
|
|
|
/obj/item/weapon/silencer
|
|
name = "silencer"
|
|
desc = "a silencer"
|
|
icon = 'icons/obj/gun.dmi'
|
|
icon_state = "silencer"
|
|
w_class = 2
|
|
|
|
/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"
|
|
item_state = "sawnshotgun"
|
|
handle_casings = CYCLE_CASINGS //player has to take the old casing out manually before reloading
|
|
load_method = SINGLE_CASING
|
|
max_shells = 1 //literally just a barrel
|
|
|
|
var/global/list/ammo_types = list(
|
|
/obj/item/ammo_casing/a357 = ".357",
|
|
/obj/item/ammo_casing/c9mmf = "9mm",
|
|
/obj/item/ammo_casing/c45f = ".45",
|
|
/obj/item/ammo_casing/a10mm = "10mm",
|
|
/obj/item/ammo_casing/shotgun = "12 gauge",
|
|
/obj/item/ammo_casing/shotgun = "12 gauge",
|
|
/obj/item/ammo_casing/shotgun/pellet = "12 gauge",
|
|
/obj/item/ammo_casing/shotgun/pellet = "12 gauge",
|
|
/obj/item/ammo_casing/shotgun/pellet = "12 gauge",
|
|
/obj/item/ammo_casing/shotgun/beanbag = "12 gauge",
|
|
/obj/item/ammo_casing/shotgun/stunshell = "12 gauge",
|
|
/obj/item/ammo_casing/shotgun/flash = "12 gauge",
|
|
/obj/item/ammo_casing/a762 = "7.62mm",
|
|
/obj/item/ammo_casing/a556 = "5.56mm"
|
|
)
|
|
|
|
/obj/item/weapon/gun/projectile/pirate/New()
|
|
ammo_type = pick(ammo_types)
|
|
desc += " Uses [ammo_types[ammo_type]] rounds."
|
|
|
|
var/obj/item/ammo_casing/ammo = ammo_type
|
|
caliber = initial(ammo.caliber)
|
|
..()
|