mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-29 03:32:28 +00:00
Guns update
This commit is contained in:
@@ -183,9 +183,9 @@
|
||||
caliber = "a762"
|
||||
projectile_type = "/obj/item/projectile/bullet"
|
||||
|
||||
/obj/item/ammo_casing/a545
|
||||
desc = "A 5.45mm bullet casing."
|
||||
caliber = "a545"
|
||||
/obj/item/ammo_casing/a556
|
||||
desc = "A 5.56mm bullet casing."
|
||||
caliber = "a556"
|
||||
projectile_type = "/obj/item/projectile/bullet/heavybullet"
|
||||
|
||||
/obj/item/ammo_casing/rocket
|
||||
|
||||
@@ -116,6 +116,17 @@
|
||||
..()
|
||||
icon_state = "[initial(icon_state)]-[ammo_count() ? "8" : "0"]"
|
||||
|
||||
/obj/item/ammo_box/magazine/uzim9mm
|
||||
name = "uzi magazine (9mm)"
|
||||
icon_state = "uzi9mm-32"
|
||||
ammo_type = /obj/item/ammo_casing/c9mm
|
||||
caliber = "9mm"
|
||||
max_ammo = 32
|
||||
|
||||
/obj/item/ammo_box/magazine/uzim9mm/update_icon()
|
||||
..()
|
||||
icon_state = "uzi9mm-[round(ammo_count(),4)]"
|
||||
|
||||
/obj/item/ammo_box/magazine/smgm9mm
|
||||
name = "SMG magazine (9mm)"
|
||||
icon_state = "smg9mm"
|
||||
@@ -163,17 +174,14 @@
|
||||
multiple_sprites = 2
|
||||
max_ammo = 8
|
||||
|
||||
/obj/item/ammo_box/magazine/m545
|
||||
name = "box magazine (5.45mm)"
|
||||
icon_state = "5.45m"
|
||||
/obj/item/ammo_box/magazine/m556
|
||||
name = "toploader magazine (5.56mm)"
|
||||
icon_state = "5.56m"
|
||||
origin_tech = "combat=5;syndicate=1"
|
||||
ammo_type = "/obj/item/ammo_casing/a545"
|
||||
caliber = "a545"
|
||||
ammo_type = /obj/item/ammo_casing/a556
|
||||
caliber = "a556"
|
||||
max_ammo = 30
|
||||
|
||||
/obj/item/ammo_box/magazine/m545/update_icon()
|
||||
..()
|
||||
icon_state = "[initial(icon_state)]-[round(ammo_count(),10)]"
|
||||
multiple_sprites = 2
|
||||
|
||||
/obj/item/ammo_box/magazine/m762
|
||||
name = "box magazine (7.62mm)"
|
||||
|
||||
@@ -43,6 +43,8 @@
|
||||
var/can_flashlight = 0
|
||||
var/heavy_weapon = 0
|
||||
var/randomspread = 0
|
||||
|
||||
var/burst_size = 1
|
||||
|
||||
proc/ready_to_fire()
|
||||
if(world.time >= last_fired + fire_delay)
|
||||
@@ -124,9 +126,6 @@
|
||||
user << "<span class='warning'>[src] is not ready to fire again!"
|
||||
return
|
||||
|
||||
if(!process_chambered()) //CHECK
|
||||
return click_empty(user)
|
||||
|
||||
if(heavy_weapon)
|
||||
if(user.get_inactive_hand())
|
||||
recoil = 4 //one-handed kick
|
||||
@@ -142,48 +141,55 @@
|
||||
|
||||
var/spread = 0
|
||||
var/turf/targloc = get_turf(target)
|
||||
if(chambered)
|
||||
for (var/i = max(1, chambered.pellets), i > 0, i--) //Previous way of doing it fucked up math for spreading. This way, even the first projectile is part of the spread code.
|
||||
if(i != max(1, chambered.pellets)) //Have we fired the initial chambered bullet yet?
|
||||
in_chamber = new chambered.projectile_type()
|
||||
for(var/f = 1 to burst_size)
|
||||
if(!process_chambered()) //CHECK
|
||||
return click_empty(user)
|
||||
|
||||
if(chambered)
|
||||
for (var/i = max(1, chambered.pellets), i > 0, i--) //Previous way of doing it fucked up math for spreading. This way, even the first projectile is part of the spread code.
|
||||
if(i != max(1, chambered.pellets)) //Have we fired the initial chambered bullet yet?
|
||||
in_chamber = new chambered.projectile_type()
|
||||
ready_projectile(target, user)
|
||||
prepare_shot(in_chamber)
|
||||
if(chambered.deviation)
|
||||
if(randomspread) //Random spread
|
||||
spread = (rand() - 0.5) * chambered.deviation
|
||||
else //Smart spread
|
||||
spread = (i / chambered.pellets - 0.5) * chambered.deviation
|
||||
if(!process_projectile(targloc, user, params, spread))
|
||||
return 0
|
||||
else
|
||||
ready_projectile(target, user)
|
||||
prepare_shot(in_chamber)
|
||||
if(chambered.deviation)
|
||||
if(randomspread) //Random spread
|
||||
spread = (rand() - 0.5) * chambered.deviation
|
||||
else //Smart spread
|
||||
spread = (i / chambered.pellets - 0.5) * chambered.deviation
|
||||
if(!process_projectile(targloc, user, params, spread))
|
||||
return 0
|
||||
else
|
||||
ready_projectile(target, user)
|
||||
prepare_shot(in_chamber)
|
||||
if(!process_projectile(targloc, user, params, spread))
|
||||
return 0
|
||||
|
||||
if(recoil)
|
||||
spawn()
|
||||
shake_camera(user, recoil + 1, recoil)
|
||||
if(recoil)
|
||||
spawn()
|
||||
shake_camera(user, recoil + 1, recoil)
|
||||
|
||||
if(silenced)
|
||||
playsound(user, fire_sound, 10, 1)
|
||||
else
|
||||
playsound(user, fire_sound, 50, 1)
|
||||
user.visible_message("<span class='warning'>[user] fires [src][reflex ? " by reflex":""]!</span>", \
|
||||
"<span class='warning'>You fire [src][reflex ? "by reflex":""]!</span>", \
|
||||
"You hear a [istype(in_chamber, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!")
|
||||
if(silenced)
|
||||
playsound(user, fire_sound, 10, 1)
|
||||
else
|
||||
playsound(user, fire_sound, 50, 1)
|
||||
if(f == 1) // Only print this once
|
||||
user.visible_message("<span class='warning'>[user] fires [src][reflex ? " by reflex":""]!</span>", \
|
||||
"<span class='warning'>You fire [src][reflex ? "by reflex":""]!</span>", \
|
||||
"You hear a [istype(in_chamber, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!")
|
||||
|
||||
if(heavy_weapon)
|
||||
if(user.get_inactive_hand())
|
||||
if(prob(15))
|
||||
user.visible_message("<span class='danger'>[src] flies out of [user]'s hands!</span>", "<span class='userdanger'>[src] kicks out of your grip!</span>")
|
||||
user.drop_item()
|
||||
if(heavy_weapon)
|
||||
if(user.get_inactive_hand())
|
||||
if(prob(15))
|
||||
user.visible_message("<span class='danger'>[src] flies out of [user]'s hands!</span>", "<span class='userdanger'>[src] kicks out of your grip!</span>")
|
||||
user.drop_item()
|
||||
break
|
||||
|
||||
update_icon()
|
||||
if(user.hand)
|
||||
user.update_inv_l_hand()
|
||||
else
|
||||
user.update_inv_r_hand()
|
||||
update_icon()
|
||||
if(user.hand)
|
||||
user.update_inv_l_hand()
|
||||
else
|
||||
user.update_inv_r_hand()
|
||||
sleep(fire_delay)
|
||||
|
||||
/obj/item/weapon/gun/proc/ready_projectile(atom/target as mob|obj|turf, mob/living/user)
|
||||
in_chamber.firer = user
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/item/weapon/gun/energy/hos
|
||||
name = "head of security's energy gun"
|
||||
name = "\improper X-01 MultiPhase Energy Gun"
|
||||
desc = "This is a modern recreation of the captain's antique laser gun. This gun has several unique fire modes, but lacks the ability to recharge over time."
|
||||
icon_state = "hoslaser"
|
||||
item_state = null //so the human update icon uses the icon_state instead.
|
||||
|
||||
@@ -17,12 +17,13 @@
|
||||
clumsy_check = 0
|
||||
|
||||
obj/item/weapon/gun/energy/laser/retro
|
||||
name ="retro laser"
|
||||
name ="retro laser gun"
|
||||
icon_state = "retro"
|
||||
desc = "An older model of the basic lasergun, no longer used by Nanotrasen's security or military forces. Nevertheless, it is still quite deadly and easy to maintain, making it a favorite amongst pirates and other outlaws."
|
||||
|
||||
|
||||
/obj/item/weapon/gun/energy/laser/captain
|
||||
name = "\improper QSJ-01 premium laser pistol"
|
||||
icon_state = "caplaser"
|
||||
item_state = "caplaser"
|
||||
icon_override = 'icons/mob/in-hand/guns.dmi'
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
|
||||
|
||||
/obj/item/weapon/gun/energy/mindflayer
|
||||
name = "mind flayer"
|
||||
name = "\improper Mind Flayer"
|
||||
desc = "A prototype weapon recovered from the ruins of Research-Station Epsilon."
|
||||
icon_state = "xray"
|
||||
projectile_type = "/obj/item/projectile/beam/mindflayer"
|
||||
|
||||
@@ -1,25 +1,55 @@
|
||||
/obj/item/weapon/gun/projectile/automatic //Hopefully someone will find a way to make these fire in bursts or something. --Superxpdude
|
||||
name = "prototype SMG"
|
||||
desc = "A lightweight, prototype 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors."
|
||||
icon_state = "saber"
|
||||
/obj/item/weapon/gun/projectile/automatic
|
||||
w_class = 3.0
|
||||
origin_tech = "combat=4;materials=2"
|
||||
automatic = 1
|
||||
mag_type = "/obj/item/ammo_box/magazine/smgm9mm"
|
||||
var/alarmed = 0
|
||||
var/select = 1
|
||||
can_suppress = 1
|
||||
fire_delay = 0
|
||||
isHandgun()
|
||||
return 0
|
||||
burst_size = 3
|
||||
fire_delay = 2
|
||||
action_button_name = "Toggle Firemode"
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/isHandgun()
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/proto
|
||||
name = "\improper Nanotrasen Saber SMG"
|
||||
desc = "A prototype three-round burst 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors."
|
||||
icon_state = "saber"
|
||||
mag_type = "/obj/item/ammo_box/magazine/smgm9mm"
|
||||
origin_tech = "combat=4;materials=2"
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/update_icon()
|
||||
..()
|
||||
overlays.Cut()
|
||||
if(!select)
|
||||
overlays += "[initial(icon_state)]semi"
|
||||
if(select == 1)
|
||||
overlays += "[initial(icon_state)]burst"
|
||||
icon_state = "[initial(icon_state)][magazine ? "-[magazine.max_ammo]" : ""][chambered ? "" : "-e"][silenced ? "-suppressed" : ""]"
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/attackby(var/obj/item/A as obj, mob/user as mob, params)
|
||||
if(..() && chambered)
|
||||
alarmed = 0
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/ui_action_click()
|
||||
burst_select()
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/verb/burst_select()
|
||||
var/mob/living/carbon/human/user = usr
|
||||
select = !select
|
||||
if(!select)
|
||||
burst_size = 1
|
||||
fire_delay = 0
|
||||
user << "<span class='notice'>You switch to semi-automatic.</span>"
|
||||
else
|
||||
burst_size = initial(burst_size)
|
||||
fire_delay = initial(fire_delay)
|
||||
user << "<span class='notice'>You switch to [burst_size] round burst.</span>"
|
||||
|
||||
playsound(user, 'sound/weapons/empty.ogg', 100, 1)
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/proc/empty_alarm()
|
||||
if(!chambered && !get_ammo() && !alarmed)
|
||||
@@ -29,13 +59,15 @@
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/c20r
|
||||
name = "syndicate SMG"
|
||||
desc = "A lightweight, bullpup .45 SMG, designated 'C-20r'. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp."
|
||||
name = "\improper C-20r SMG"
|
||||
desc = "A two-round burst .45 SMG, designated 'C-20r'. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp."
|
||||
icon_state = "c20r"
|
||||
item_state = "c20r"
|
||||
origin_tech = "combat=5;materials=2;syndicate=8"
|
||||
mag_type = "/obj/item/ammo_box/magazine/smgm45"
|
||||
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
|
||||
fire_delay = 2
|
||||
burst_size = 2
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/c20r/New()
|
||||
..()
|
||||
@@ -52,9 +84,16 @@
|
||||
icon_state = "c20r[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""][chambered ? "" : "-e"][silenced ? "-suppressed" : ""]"
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/mini_uzi
|
||||
name = "\improper 'Type U3' Uzi"
|
||||
desc = "A lightweight, burst-fire submachine gun, for when you really want someone dead. Uses 9mm rounds."
|
||||
icon_state = "mini-uzi"
|
||||
origin_tech = "combat=5;materials=2;syndicate=8"
|
||||
mag_type = "/obj/item/ammo_box/magazine/uzim9mm"
|
||||
burst_size = 2
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/l6_saw
|
||||
name = "syndicate LMG"
|
||||
name = "\improper L6 SAW LMG"
|
||||
desc = "A heavily modified 7.62 light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the reciever below the designation."
|
||||
icon_state = "l6closed100"
|
||||
item_state = "l6closedmag"
|
||||
@@ -66,19 +105,17 @@
|
||||
|
||||
var/cover_open = 0
|
||||
can_suppress = 0
|
||||
|
||||
|
||||
|
||||
burst_size = 5
|
||||
fire_delay = 3
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/l6_saw/attack_self(mob/user as mob)
|
||||
cover_open = !cover_open
|
||||
user << "<span class='notice'>You [cover_open ? "open" : "close"] [src]'s cover.</span>"
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/l6_saw/update_icon()
|
||||
icon_state = "l6[cover_open ? "open" : "closed"][magazine ? round(magazine.ammo_count() * 2, 25) : "-empty"]"
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/l6_saw/afterattack(atom/target as mob|obj|turf, mob/living/user as mob|obj, flag, params) //what I tried to do here is just add a check to see if the cover is open or not and add an icon_state change because I can't figure out how c-20rs do it with overlays
|
||||
if(cover_open)
|
||||
user << "<span class='notice'>[src]'s cover is open! Close it before firing!</span>"
|
||||
@@ -86,7 +123,6 @@
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/l6_saw/attack_hand(mob/user as mob)
|
||||
if(loc != user)
|
||||
..()
|
||||
@@ -109,113 +145,78 @@
|
||||
return
|
||||
..()
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/bulldog
|
||||
name = "syndicate shotgun"
|
||||
desc = "A compact, mag-fed semi-automatic shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines."
|
||||
icon_state = "bulldog"
|
||||
item_state = "bulldog"
|
||||
icon_override = 'icons/mob/in-hand/guns.dmi'
|
||||
w_class = 3.0
|
||||
origin_tech = "combat=5;materials=4;syndicate=6"
|
||||
mag_type = "/obj/item/ammo_box/magazine/m12g"
|
||||
fire_sound = 'sound/weapons/Gunshot4.ogg'
|
||||
can_suppress = 0
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/bulldog/New()
|
||||
..()
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/bulldog/proc/update_magazine()
|
||||
if(magazine)
|
||||
src.overlays = 0
|
||||
overlays += "[magazine.icon_state]"
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/bulldog/update_icon()
|
||||
src.overlays = 0
|
||||
update_magazine()
|
||||
icon_state = "bulldog[chambered ? "" : "-e"]"
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/bulldog/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag)
|
||||
..()
|
||||
empty_alarm()
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/c90gl
|
||||
name = "syndicate assault rifle"
|
||||
desc = "A bullpup and compact 5.45x39 assault rifle with a unique toploading design, designated 'C-90gl'. Has an attached underbarrel grenade launcher which can be toggled on and off."
|
||||
icon_state = "c90gl"
|
||||
item_state = "c90gl"
|
||||
/obj/item/weapon/gun/projectile/automatic/m90
|
||||
name = "\improper M-90gl Carbine"
|
||||
desc = "A three-round burst 5.56 toploading carbine, designated 'M-90gl'. Has an attached underbarrel grenade launcher which can be toggled on and off."
|
||||
icon_state = "m90"
|
||||
item_state = "m90"
|
||||
icon_override = 'icons/mob/in-hand/guns.dmi'
|
||||
origin_tech = "combat=5;materials=2;syndicate=8"
|
||||
mag_type = "/obj/item/ammo_box/magazine/m545"
|
||||
mag_type = "/obj/item/ammo_box/magazine/m556"
|
||||
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
|
||||
action_button_name = "Toggle Grenade Launcher"
|
||||
can_suppress = 0
|
||||
var/select = 1 //1 for boolets, 0 for explosions.
|
||||
var/obj/item/weapon/gun/projectile/revolver/grenadelauncher/underbarrel
|
||||
burst_size = 3
|
||||
fire_delay = 2
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/c90gl/New()
|
||||
/obj/item/weapon/gun/projectile/automatic/m90/New()
|
||||
..()
|
||||
underbarrel = new /obj/item/weapon/gun/projectile/revolver/grenadelauncher(src)
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/c90gl/afterattack(var/atom/target, var/mob/living/user, flag, params)
|
||||
if(select)
|
||||
/obj/item/weapon/gun/projectile/automatic/m90/afterattack(var/atom/target, var/mob/living/user, flag, params)
|
||||
if(select == 2)
|
||||
underbarrel.afterattack(target, user, flag, params)
|
||||
else
|
||||
..()
|
||||
empty_alarm()
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/m90/attackby(var/obj/item/A, mob/user, params)
|
||||
if(istype(A, /obj/item/ammo_casing))
|
||||
if(istype(A, text2path(underbarrel.magazine.ammo_type)))
|
||||
underbarrel.attack_self()
|
||||
underbarrel.attackby(A, user, params)
|
||||
else
|
||||
underbarrel.afterattack(target, user, flag, params)
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/c90gl/attackby(var/obj/item/A, mob/user, params)
|
||||
if(select)
|
||||
..()
|
||||
else
|
||||
underbarrel.attackby(A, user, params)
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/c90gl/attack_self(var/mob/living/user)
|
||||
if(select)
|
||||
..()
|
||||
else
|
||||
underbarrel.attack_self(user)
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/c90gl/update_icon()
|
||||
/obj/item/weapon/gun/projectile/automatic/m90/update_icon()
|
||||
..()
|
||||
overlays.Cut()
|
||||
if(select)
|
||||
overlays += "c90prim"
|
||||
else
|
||||
overlays += "c90gren"
|
||||
icon_state = "c90gl[magazine ? "-[Ceiling(get_ammo(0)/6)*6]" : ""][chambered ? "" : "-e"]"
|
||||
switch(select)
|
||||
if(0)
|
||||
overlays += "[initial(icon_state)]semi"
|
||||
if(1)
|
||||
overlays += "[initial(icon_state)]burst"
|
||||
if(2)
|
||||
overlays += "[initial(icon_state)]gren"
|
||||
icon_state = "[initial(icon_state)][magazine ? "" : "-e"]"
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/c90gl/proc/underbarrel_swap()
|
||||
/obj/item/weapon/gun/projectile/automatic/m90/burst_select()
|
||||
var/mob/living/carbon/human/user = usr
|
||||
if(select)
|
||||
select = 0
|
||||
user << "<span class='notice'>You switch to grenades.</span>"
|
||||
else
|
||||
select = 1
|
||||
user << "<span class='notice'>You switch to bullets.</span>"
|
||||
|
||||
switch(select)
|
||||
if(0)
|
||||
select = 1
|
||||
burst_size = initial(burst_size)
|
||||
fire_delay = initial(fire_delay)
|
||||
user << "<span class='notice'>You switch to [burst_size] round burst.</span>"
|
||||
if(1)
|
||||
select = 2
|
||||
user << "<span class='notice'>You switch to grenades.</span>"
|
||||
if(2)
|
||||
select = 0
|
||||
burst_size = 1
|
||||
fire_delay = 0
|
||||
user << "<span class='notice'>You switch to semi-auto.</span>"
|
||||
playsound(user, 'sound/weapons/empty.ogg', 100, 1)
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/c90gl/ui_action_click()
|
||||
underbarrel_swap()
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/tommygun
|
||||
name = "tommy gun"
|
||||
name = "\improper Thompson SMG"
|
||||
desc = "A genuine 'Chicago Typewriter'."
|
||||
icon_state = "tommygun"
|
||||
item_state = "tommygun"
|
||||
@@ -223,4 +224,20 @@
|
||||
origin_tech = "combat=5;materials=1;syndicate=2"
|
||||
mag_type = "/obj/item/ammo_box/magazine/tommygunm45"
|
||||
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
|
||||
can_suppress = 0
|
||||
can_suppress = 0
|
||||
burst_size = 4
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/ar
|
||||
name = "ARG"
|
||||
desc = "A robust assault rile used by Nanotrasen fighting forces."
|
||||
icon_state = "arg"
|
||||
item_state = "arg"
|
||||
slot_flags = 0
|
||||
origin_tech = "combat=5;materials=1"
|
||||
mag_type = "/obj/item/ammo_box/magazine/m556"
|
||||
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
|
||||
can_suppress = 0
|
||||
burst_size = 3
|
||||
fire_delay = 1
|
||||
|
||||
@@ -3,14 +3,17 @@
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/gyropistol
|
||||
name = "gyrojet pistol"
|
||||
name = "\improper Gyrojet rocket pistol"
|
||||
desc = "A prototype pistol designed to fire self propelled rockets."
|
||||
icon_state = "gyropistol"
|
||||
fire_sound = 'sound/effects/Explosion1.ogg'
|
||||
origin_tech = "combat=3"
|
||||
mag_type = "/obj/item/ammo_box/magazine/m75"
|
||||
isHandgun()
|
||||
return 1
|
||||
burst_size = 1
|
||||
fire_delay = 0
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/gyropistol/isHandgun()
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/gyropistol/New()
|
||||
..()
|
||||
@@ -36,6 +39,7 @@
|
||||
icon_state = "dshotgun-sawn"
|
||||
item_state = "gun"
|
||||
mag_type = "/obj/item/ammo_box/magazine/internal/cylinder/grenadelauncher"
|
||||
fire_sound = 'sound/weapons/grenadelaunch.ogg'
|
||||
w_class = 3
|
||||
|
||||
/obj/item/weapon/gun/projectile/revolver/grenadelauncher/attackby(var/obj/item/A, mob/user, params)
|
||||
|
||||
@@ -1,56 +1,50 @@
|
||||
/obj/item/weapon/gun/projectile/automatic/pistol
|
||||
name = "syndicate pistol"
|
||||
name = "\improper FK-69 pistol"
|
||||
desc = "A small, easily concealable 10mm handgun. Has a threaded barrel for suppressors."
|
||||
icon_state = "pistol"
|
||||
w_class = 2
|
||||
origin_tech = "combat=2;materials=2;syndicate=2"
|
||||
mag_type = "/obj/item/ammo_box/magazine/m10mm"
|
||||
can_suppress = 1
|
||||
isHandgun()
|
||||
return 1
|
||||
burst_size = 1
|
||||
fire_delay = 0
|
||||
action_button_name = null
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/pistol/isHandgun()
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/pistol/update_icon()
|
||||
..()
|
||||
icon_state = "[initial(icon_state)][chambered ? "" : "-e"][silenced ? "-suppressed" : ""]"
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/m2411
|
||||
name = "M2411"
|
||||
/obj/item/weapon/gun/projectile/automatic/pistol/m2411
|
||||
name = "\improper M2411 pistol"
|
||||
desc = "John Browning's classic updated for the modern day. Uses .45 rounds."
|
||||
icon_state = "m2411"
|
||||
w_class = 3.0
|
||||
origin_tech = "combat=3;materials=2"
|
||||
mag_type = "/obj/item/ammo_box/magazine/m45"
|
||||
isHandgun()
|
||||
return 1
|
||||
can_suppress = 0
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/m2411/update_icon()
|
||||
..()
|
||||
icon_state = "[initial(icon_state)][chambered ? "" : "-e"]"
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/deagle
|
||||
name = "desert eagle"
|
||||
/obj/item/weapon/gun/projectile/automatic/pistol/deagle
|
||||
name = "\improper Desert Eagle pistol"
|
||||
desc = "A robust .50 AE handgun."
|
||||
icon_state = "deagle"
|
||||
force = 14.0
|
||||
mag_type = "/obj/item/ammo_box/magazine/m50"
|
||||
isHandgun()
|
||||
return 1
|
||||
can_suppress = 0
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/deagle/update_icon()
|
||||
/obj/item/weapon/gun/projectile/automatic/pistol/deagle/update_icon()
|
||||
..()
|
||||
icon_state = "[initial(icon_state)][magazine ? "" : "-e"]"
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/deagle/gold
|
||||
/obj/item/weapon/gun/projectile/automatic/pistol/deagle/gold
|
||||
desc = "A gold plated desert eagle folded over a million times by superior martian gunsmiths. Uses .50 AE ammo."
|
||||
icon_state = "deagleg"
|
||||
item_state = "deagleg"
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/deagle/camo
|
||||
/obj/item/weapon/gun/projectile/automatic/pistol/deagle/camo
|
||||
desc = "A Deagle brand Deagle for operators operating operationally. Uses .50 AE ammo."
|
||||
icon_state = "deaglecamo"
|
||||
item_state = "deagleg"
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/item/weapon/gun/projectile/revolver
|
||||
name = "\improper .357 revolver"
|
||||
desc = "A suspicious revolver. Uses .357 ammo."
|
||||
name = "revolver"
|
||||
icon_state = "revolver"
|
||||
mag_type = "/obj/item/ammo_box/magazine/internal/cylinder"
|
||||
|
||||
@@ -65,6 +65,7 @@
|
||||
usr << "[get_ammo(0,0)] of those are live rounds."
|
||||
|
||||
/obj/item/weapon/gun/projectile/revolver/detective
|
||||
name = "\improper .38 Mars Special"
|
||||
desc = "A cheap Martian knock-off of a classic law enforcement firearm. Uses .38-special rounds."
|
||||
name = "revolver"
|
||||
icon_state = "detective"
|
||||
@@ -154,8 +155,8 @@
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/revolver/mateba
|
||||
name = "autorevolver"
|
||||
desc = "A retro high-powered mateba autorevolver typically used by officers of the New Russia military. Uses .357 ammo." //>10mm hole >.357
|
||||
name = "\improper Unica 6 auto-revolver"
|
||||
desc = "A retro high-powered autorevolver typically used by officers of the New Russia military. Uses .357 ammo." //>10mm hole >.357
|
||||
icon_state = "mateba"
|
||||
origin_tech = "combat=2;materials=2"
|
||||
|
||||
@@ -163,7 +164,7 @@
|
||||
// You can spin the chamber to randomize the position of the bullet.
|
||||
|
||||
/obj/item/weapon/gun/projectile/revolver/russian
|
||||
name = "Russian Revolver"
|
||||
name = "\improper Russian Revolver"
|
||||
desc = "A Russian-made revolver for drinking games. Uses .357 ammo, and has a mechanism that spins the chamber before each trigger pull."
|
||||
origin_tech = "combat=2;materials=2"
|
||||
mag_type = "/obj/item/ammo_box/magazine/internal/cylinder/rus357"
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
///////////////////////
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/boltaction
|
||||
name = "bolt action rifle"
|
||||
name = "\improper Mosin Nagant rifle"
|
||||
desc = "This piece of junk looks like something that could have been used 700 years ago."
|
||||
icon_state = "moistnugget"
|
||||
item_state = "moistnugget"
|
||||
@@ -238,3 +238,39 @@
|
||||
return
|
||||
else
|
||||
sawn_state = SAWN_INTACT
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog
|
||||
name = "\improper MLG-12 'Bulldog' Shotgun"
|
||||
desc = "A compact, mag-fed semi-automatic shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines."
|
||||
icon_state = "bulldog"
|
||||
item_state = "bulldog"
|
||||
icon_override = 'icons/mob/in-hand/guns.dmi'
|
||||
w_class = 3.0
|
||||
origin_tech = "combat=5;materials=4;syndicate=6"
|
||||
mag_type = "/obj/item/ammo_box/magazine/m12g"
|
||||
fire_sound = 'sound/weapons/Gunshot4.ogg'
|
||||
can_suppress = 0
|
||||
burst_size = 2
|
||||
fire_delay = 1
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/New()
|
||||
..()
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/proc/update_magazine()
|
||||
if(magazine)
|
||||
src.overlays = 0
|
||||
overlays += "[magazine.icon_state]"
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/update_icon()
|
||||
src.overlays = 0
|
||||
update_magazine()
|
||||
icon_state = "bulldog[chambered ? "" : "-e"]"
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/projectile/automatic/shotgun/bulldog/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag)
|
||||
..()
|
||||
empty_alarm()
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user