mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-24 09:02:27 +00:00
Mandatory gun update (#1685)
-added new sprites for rubber and rifles casings -made bullets path less dumb -added some new gun sprites, like the large crossbow and zipguns -added a new tatical sprite mask, with support for unathi, tajaran and vox -added back sprites for some items like bats and scythes -fixed being able to saw off sawn-off shotguns forever and ever -fixed a typo on the custom loadout -nerfed the brain damage of the mind flayer, since brain damage is lethal now
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
var/caliber = "" //Which kind of guns it can be loaded into
|
||||
var/projectile_type //The bullet type to create when New() is called
|
||||
var/obj/item/projectile/BB = null //The loaded bullet - make it so that the projectiles are created only when needed?
|
||||
var/spent_icon = null
|
||||
var/spent_icon = "s-casing-spent"
|
||||
|
||||
/obj/item/ammo_casing/New()
|
||||
..()
|
||||
@@ -25,7 +25,7 @@
|
||||
/obj/item/ammo_casing/proc/expend()
|
||||
. = BB
|
||||
BB = null
|
||||
set_dir(pick(cardinal)) //spin spent casings
|
||||
set_dir(pick(alldirs)) //spin spent casings
|
||||
update_icon()
|
||||
|
||||
/obj/item/ammo_casing/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
@@ -112,7 +112,7 @@
|
||||
user << "<span class='warning'>[src] is full!</span>"
|
||||
return
|
||||
user.remove_from_mob(C)
|
||||
C.loc = src
|
||||
C.forceMove(src)
|
||||
stored_ammo.Insert(1, C) //add to the head of the list
|
||||
update_icon()
|
||||
|
||||
@@ -122,8 +122,8 @@
|
||||
return
|
||||
user << "<span class='notice'>You empty [src].</span>"
|
||||
for(var/obj/item/ammo_casing/C in stored_ammo)
|
||||
C.loc = user.loc
|
||||
C.set_dir(pick(cardinal))
|
||||
C.forceMove(user.loc)
|
||||
C.set_dir(pick(alldirs))
|
||||
stored_ammo.Cut()
|
||||
update_icon()
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
/obj/item/ammo_magazine/c38/rubber
|
||||
name = "speed loader (.38 rubber)"
|
||||
ammo_type = /obj/item/ammo_casing/c38r
|
||||
ammo_type = /obj/item/ammo_casing/c38/rubber
|
||||
|
||||
/obj/item/ammo_magazine/c45
|
||||
name = "ammunition Box (.45)"
|
||||
@@ -58,15 +58,15 @@
|
||||
|
||||
/obj/item/ammo_magazine/c45m/rubber
|
||||
name = "magazine (.45 rubber)"
|
||||
ammo_type = /obj/item/ammo_casing/c45r
|
||||
ammo_type = /obj/item/ammo_casing/c45/rubber
|
||||
|
||||
/obj/item/ammo_magazine/c45m/practice
|
||||
name = "magazine (.45 practice)"
|
||||
ammo_type = /obj/item/ammo_casing/c45p
|
||||
ammo_type = /obj/item/ammo_casing/c45/practice
|
||||
|
||||
/obj/item/ammo_magazine/c45m/flash
|
||||
name = "magazine (.45 flash)"
|
||||
ammo_type = "/obj/item/ammo_casing/c45f"
|
||||
ammo_type = /obj/item/ammo_casing/c45/flash
|
||||
|
||||
/obj/item/ammo_magazine/t40
|
||||
name = "magazine (10mm)"
|
||||
@@ -83,7 +83,7 @@
|
||||
|
||||
/obj/item/ammo_magazine/t40/rubber
|
||||
name = "magazine (10mm rubber)"
|
||||
ammo_type = /obj/item/ammo_casing/t40r
|
||||
ammo_type = /obj/item/ammo_casing/t40/rubber
|
||||
|
||||
/obj/item/ammo_magazine/mc9mm
|
||||
name = "magazine (9mm)"
|
||||
@@ -100,7 +100,7 @@
|
||||
initial_ammo = 0
|
||||
|
||||
/obj/item/ammo_magazine/mc9mm/flash
|
||||
ammo_type = /obj/item/ammo_casing/c9mmf
|
||||
ammo_type = /obj/item/ammo_casing/c9mm/flash
|
||||
|
||||
/obj/item/ammo_magazine/c9mm
|
||||
name = "ammunition Box (9mm)"
|
||||
@@ -129,11 +129,11 @@
|
||||
|
||||
/obj/item/ammo_magazine/mc9mmt/rubber
|
||||
name = "top mounted magazine (9mm rubber)"
|
||||
ammo_type = /obj/item/ammo_casing/c9mmr
|
||||
ammo_type = /obj/item/ammo_casing/c9mm/rubber
|
||||
|
||||
/obj/item/ammo_magazine/mc9mmt/practice
|
||||
name = "top mounted magazine (9mm practice)"
|
||||
ammo_type = /obj/item/ammo_casing/c9mmp
|
||||
ammo_type = /obj/item/ammo_casing/c9mm/practice
|
||||
|
||||
/obj/item/ammo_magazine/c45
|
||||
name = "ammunition Box (.45)"
|
||||
@@ -177,7 +177,7 @@
|
||||
|
||||
/obj/item/ammo_magazine/a556/practice
|
||||
name = "magazine (5.56mm practice)"
|
||||
ammo_type = /obj/item/ammo_casing/a556p
|
||||
ammo_type = /obj/item/ammo_casing/a556/practice
|
||||
|
||||
/obj/item/ammo_magazine/a556/ap
|
||||
name = "magazine (5.56mm AP)"
|
||||
|
||||
@@ -18,61 +18,54 @@
|
||||
caliber = "38"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol
|
||||
|
||||
/obj/item/ammo_casing/c38/rubber
|
||||
desc = "A .38 rubber bullet casing."
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/rubber
|
||||
icon_state = "r-casing"
|
||||
spent_icon = "r-casing-spent"
|
||||
|
||||
/obj/item/ammo_casing/trod
|
||||
desc = "hyperdense tungsten rod residue."
|
||||
icon_state = "trod"
|
||||
caliber = "trod"
|
||||
projectile_type = /obj/item/projectile/bullet/trod
|
||||
|
||||
/obj/item/ammo_casing/c38r
|
||||
desc = "A .38 rubber bullet casing."
|
||||
caliber = "38"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/rubber
|
||||
|
||||
/obj/item/ammo_casing/c9mm
|
||||
desc = "A 9mm bullet casing."
|
||||
caliber = "9mm"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol
|
||||
|
||||
/obj/item/ammo_casing/a556/ap
|
||||
desc = "A 5.56mm armor piercing round."
|
||||
caliber = "a556"
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a556/ap
|
||||
|
||||
/obj/item/ammo_casing/c9mmf
|
||||
/obj/item/ammo_casing/c9mm/flash
|
||||
desc = "A 9mm flash shell casing."
|
||||
caliber = "9mm"
|
||||
projectile_type = /obj/item/projectile/energy/flash
|
||||
|
||||
/obj/item/ammo_casing/c9mmr
|
||||
/obj/item/ammo_casing/c9mm/rubber
|
||||
desc = "A 9mm rubber bullet casing."
|
||||
caliber = "9mm"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/rubber
|
||||
icon_state = "r-casing"
|
||||
spent_icon = "r-casing-spent"
|
||||
|
||||
/obj/item/ammo_casing/c9mmp
|
||||
/obj/item/ammo_casing/c9mm/practice
|
||||
desc = "A 9mm practice bullet casing."
|
||||
caliber = "9mm"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/practice
|
||||
|
||||
|
||||
/obj/item/ammo_casing/c45
|
||||
desc = "A .45 bullet casing."
|
||||
caliber = ".45"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/medium
|
||||
|
||||
/obj/item/ammo_casing/c45p
|
||||
/obj/item/ammo_casing/c45/practice
|
||||
desc = "A .45 practice bullet casing."
|
||||
caliber = ".45"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/practice
|
||||
|
||||
/obj/item/ammo_casing/c45r
|
||||
/obj/item/ammo_casing/c45/rubber
|
||||
desc = "A .45 rubber bullet casing."
|
||||
caliber = ".45"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/rubber
|
||||
icon_state = "r-casing"
|
||||
spent_icon = "r-casing-spent"
|
||||
|
||||
/obj/item/ammo_casing/c45f
|
||||
/obj/item/ammo_casing/c45/flash
|
||||
desc = "A .45 flash shell casing."
|
||||
caliber = ".45"
|
||||
projectile_type = /obj/item/projectile/energy/flash
|
||||
|
||||
/obj/item/ammo_casing/t40
|
||||
@@ -80,9 +73,8 @@
|
||||
caliber = "10mm"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol
|
||||
|
||||
/obj/item/ammo_casing/t40r
|
||||
/obj/item/ammo_casing/t40/rubber
|
||||
desc = "A 10mm rubber bullet casing."
|
||||
caliber = "10mm"
|
||||
projectile_type = /obj/item/projectile/bullet/pistol/rubber
|
||||
|
||||
/obj/item/ammo_casing/a12mm
|
||||
@@ -119,7 +111,7 @@
|
||||
name = "shotgun shell"
|
||||
desc = "A practice shell."
|
||||
icon_state = "pshell"
|
||||
spent_icon = "pshell"
|
||||
spent_icon = "pshell-spent"
|
||||
projectile_type = /obj/item/projectile/bullet/shotgun/practice
|
||||
matter = list("metal" = 90)
|
||||
|
||||
@@ -150,7 +142,7 @@
|
||||
name = "flash shell"
|
||||
desc = "A chemical shell used to signal distress or provide illumination."
|
||||
icon_state = "fshell"
|
||||
spent_icon = "fshell"
|
||||
spent_icon = "fshell-spent"
|
||||
projectile_type = /obj/item/projectile/energy/flash/flare
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 90, "glass" = 90)
|
||||
|
||||
@@ -174,24 +166,31 @@
|
||||
desc = "A 7.62mm bullet casing."
|
||||
caliber = "a762"
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a762
|
||||
icon_state = "rifle-casing"
|
||||
spent_icon = "rifle-casing-spent"
|
||||
|
||||
/obj/item/ammo_casing/a145
|
||||
name = "shell casing"
|
||||
desc = "A 14.5mm shell."
|
||||
icon_state = "lcasing"
|
||||
spent_icon = "lcasing-spent"
|
||||
caliber = "14.5mm"
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a145
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 1250)
|
||||
icon_state = "lcasing"
|
||||
spent_icon = "lcasing-spent"
|
||||
|
||||
/obj/item/ammo_casing/a556
|
||||
desc = "A 5.56mm bullet casing."
|
||||
caliber = "a556"
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a556
|
||||
icon_state = "rifle-casing"
|
||||
spent_icon = "rifle-casing-spent"
|
||||
|
||||
/obj/item/ammo_casing/a556p
|
||||
/obj/item/ammo_casing/a556/ap
|
||||
desc = "A 5.56mm armor piercing round."
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a556/ap
|
||||
|
||||
/obj/item/ammo_casing/a556/practice
|
||||
desc = "A 5.56mm practice bullet casing."
|
||||
caliber = "a556"
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/a556/practice
|
||||
|
||||
/obj/item/ammo_casing/rocket
|
||||
|
||||
@@ -54,5 +54,8 @@
|
||||
desc = "A weapon favored by mercenary infiltration teams."
|
||||
w_class = 4
|
||||
force = 10
|
||||
icon_state = "crossbowlarge"
|
||||
item_state = "crossbow"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 200000)
|
||||
projectile_type = /obj/item/projectile/energy/bolt/large
|
||||
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
desc = "An improvised pipe assembly that can fire shotgun shells."
|
||||
icon = 'icons/obj/improvised.dmi'
|
||||
icon_state = "ishotgun"
|
||||
item_state = "dshotgun"
|
||||
item_state = "ishotgun"
|
||||
contained_sprite = 1
|
||||
max_shells = 2
|
||||
w_class = 4.0
|
||||
force = 5
|
||||
@@ -29,12 +30,11 @@
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/improvised/attackby(var/obj/item/A as obj, mob/user as mob)
|
||||
if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter))
|
||||
if(w_class > 3 && (istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter)))
|
||||
user << "<span class='notice'>You begin to shorten the barrel of \the [src].</span>"
|
||||
if(loaded.len)
|
||||
for(var/i in 1 to max_shells)
|
||||
afterattack(user, user) //will this work? //it will. we call it twice, for twice the FUN
|
||||
playsound(user, fire_sound, 50, 1)
|
||||
Fire(user, user) //will this work? //it will. we call it twice, for twice the FUN
|
||||
user.visible_message("<span class='danger'>The shotgun goes off!</span>", "<span class='danger'>The shotgun goes off in your face!</span>")
|
||||
return
|
||||
if(do_after(user, 30))
|
||||
@@ -53,7 +53,8 @@
|
||||
name = "sawn-off improvised shotgun"
|
||||
desc = "An improvised pipe assembly that can fire shotgun shells."
|
||||
icon_state = "ishotgunsawn"
|
||||
item_state = "sawnshotgun"
|
||||
item_state = "ishotgunsawn"
|
||||
contained_sprite = 1
|
||||
slot_flags = SLOT_BELT|SLOT_HOLSTER
|
||||
w_class = 3
|
||||
force = 5
|
||||
|
||||
@@ -215,7 +215,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
|
||||
|
||||
@@ -105,12 +105,11 @@
|
||||
|
||||
//this is largely hacky and bad :( -Pete
|
||||
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/attackby(var/obj/item/A as obj, mob/user as mob)
|
||||
if(istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter))
|
||||
if(w_class > 3 && (istype(A, /obj/item/weapon/circular_saw) || istype(A, /obj/item/weapon/melee/energy) || istype(A, /obj/item/weapon/pickaxe/plasmacutter)))
|
||||
user << "<span class='notice'>You begin to shorten the barrel of \the [src].</span>"
|
||||
if(loaded.len)
|
||||
for(var/i in 1 to max_shells)
|
||||
afterattack(user, user) //will this work? //it will. we call it twice, for twice the FUN
|
||||
playsound(user, fire_sound, 50, 1)
|
||||
Fire(user, user) //will this work? //it will. we call it twice, for twice the FUN
|
||||
user.visible_message("<span class='danger'>The shotgun goes off!</span>", "<span class='danger'>The shotgun goes off in your face!</span>")
|
||||
return
|
||||
if(do_after(user, 30)) //SHIT IS STEALTHY EYYYYY
|
||||
@@ -126,6 +125,7 @@
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/doublebarrel/sawn
|
||||
name = "sawn-off shotgun"
|
||||
desc = "Omar's coming!"
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
on_hit(var/atom/target, var/blocked = 0)
|
||||
if(ishuman(target))
|
||||
var/mob/living/carbon/human/M = target
|
||||
M.adjustBrainLoss(20)
|
||||
M.adjustBrainLoss(5)
|
||||
M.hallucination += 20
|
||||
|
||||
/obj/item/projectile/bullet/trod
|
||||
|
||||
Reference in New Issue
Block a user