mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-27 06:54:18 +01:00
Adds pranks, jukes, and anal retentive bolt action rifles (#3664)
This commit is contained in:
@@ -22,7 +22,7 @@
|
||||
/obj/item/ammo_magazine/c38/rubber
|
||||
name = "speed loader (.38 rubber)"
|
||||
ammo_type = /obj/item/ammo_casing/c38/rubber
|
||||
|
||||
|
||||
/obj/item/ammo_magazine/c38/emp
|
||||
name = "speed loader (.38 haywire)"
|
||||
ammo_type = /obj/item/ammo_casing/c38/emp
|
||||
@@ -72,7 +72,7 @@
|
||||
/obj/item/ammo_magazine/c45m/flash
|
||||
name = "magazine (.45 flash)"
|
||||
ammo_type = /obj/item/ammo_casing/c45/flash
|
||||
|
||||
|
||||
/obj/item/ammo_magazine/t40
|
||||
name = "magazine (10mm)"
|
||||
icon_state = "5.56"
|
||||
@@ -118,7 +118,7 @@
|
||||
|
||||
/obj/item/ammo_magazine/c9mm/empty
|
||||
initial_ammo = 0
|
||||
|
||||
|
||||
/obj/item/ammo_magazine/mc9mmt
|
||||
name = "top mounted magazine (9mm)"
|
||||
icon_state = "9mmt"
|
||||
@@ -274,6 +274,11 @@
|
||||
max_ammo = 5
|
||||
multiple_sprites = 1
|
||||
|
||||
/obj/item/ammo_magazine/boltaction/vintage
|
||||
name = "vintage stripper clip"
|
||||
ammo_type = /obj/item/ammo_casing/vintage
|
||||
caliber = "vintage"
|
||||
|
||||
/obj/item/ammo_magazine/c45uzi
|
||||
name = "stick magazine (.45)"
|
||||
icon_state = "uzi45"
|
||||
|
||||
@@ -249,3 +249,10 @@
|
||||
|
||||
/obj/item/ammo_casing/flechette/explosive
|
||||
projectile_type = /obj/item/projectile/bullet/flechette/explosive
|
||||
|
||||
/obj/item/ammo_casing/vintage
|
||||
projectile_type = /obj/item/projectile/bullet/rifle/vintage
|
||||
desc = "Some vintage shell casing. It looks old, and you can't understand the writing stamped on it."
|
||||
caliber = "vintage"
|
||||
icon_state = "lcasing"
|
||||
spent_icon = "lcasing-spent"
|
||||
@@ -0,0 +1,46 @@
|
||||
/obj/item/weapon/gun/bang
|
||||
name = "some shitty-ass gun"
|
||||
desc = "This is a gun. Neat!"
|
||||
icon_state = "revolver"
|
||||
item_state = "revolver"
|
||||
fire_sound = 'sound/misc/sadtrombone.ogg'
|
||||
var/image/bang_flag
|
||||
var/fired_gun = 0
|
||||
var/pixel_offset_x = -2
|
||||
var/pixel_offset_y = 13
|
||||
|
||||
|
||||
/obj/item/weapon/gun/bang/Initialize()
|
||||
. = ..()
|
||||
bang_flag = image('icons/obj/bang_flag.dmi', "bang_flag")
|
||||
bang_flag.pixel_x = pixel_offset_x
|
||||
bang_flag.pixel_y = pixel_offset_y
|
||||
|
||||
/obj/item/weapon/gun/bang/handle_click_empty(mob/user)
|
||||
if (user)
|
||||
user.visible_message("<span class='danger'>The flag is already out!</span>")
|
||||
|
||||
/obj/item/weapon/gun/bang/Fire(atom/target, mob/living/user, clickparams, pointblank=0, reflex=0)
|
||||
if(!user || !target) return
|
||||
|
||||
if(fired_gun)
|
||||
handle_click_empty(user)
|
||||
return
|
||||
|
||||
add_fingerprint(user)
|
||||
|
||||
if (user)
|
||||
user.visible_message("<span class='danger'>A flag pops out of the barrel!</span>")
|
||||
else
|
||||
src.visible_message("<span class='danger'>A flag pops out of the barrel of \the [src.name]'s barrel!</span>")
|
||||
playsound(src, fire_sound, 20, 1)
|
||||
src.add_overlay(bang_flag)
|
||||
fired_gun = 1
|
||||
|
||||
/obj/item/weapon/gun/bang/attack_hand(mob/user as mob)
|
||||
if(user.get_inactive_hand() == src && fired_gun)
|
||||
src.cut_overlay(bang_flag)
|
||||
user.visible_message("<span class='notice'>You push the flag back into the barrel of \the [src.name].</span>")
|
||||
fired_gun = 0
|
||||
else
|
||||
return ..()
|
||||
@@ -0,0 +1,77 @@
|
||||
/obj/item/weapon/gun/bang/colt
|
||||
name = "vintage .45 pistol"
|
||||
desc = "A cheap Martian knock-off of a Colt M1911. Uses .45 rounds."
|
||||
icon_state = "colt"
|
||||
pixel_offset_x = 30
|
||||
pixel_offset_y = 18
|
||||
|
||||
/obj/item/weapon/gun/bang/sec
|
||||
name = ".45 pistol"
|
||||
desc = "A NanoTrasen designed sidearm, found pretty much everywhere humans are. Uses .45 rounds."
|
||||
icon_state = "secguncomp"
|
||||
pixel_offset_x = 28
|
||||
pixel_offset_y = 14
|
||||
|
||||
/obj/item/weapon/gun/bang/sec/flash
|
||||
name = ".45 signal pistol"
|
||||
|
||||
/obj/item/weapon/gun/bang/sec/wood
|
||||
desc = "A Nanotrasen designed sidearm, this one has a sweet wooden grip. Uses .45 rounds."
|
||||
name = "custom .45 Pistol"
|
||||
icon_state = "secgundark"
|
||||
|
||||
/obj/item/weapon/gun/bang/x9
|
||||
name = "automatic .45 pistol"
|
||||
desc = "The x9 tactical pistol is a lightweight fast firing handgun. Uses .45 rounds."
|
||||
icon_state = "x9tactical"
|
||||
pixel_offset_x = 28
|
||||
pixel_offset_y = 13
|
||||
|
||||
/obj/item/weapon/gun/bang/tanto
|
||||
desc = "A Necropolis Industries Tanto .40, designed to compete with the NT Mk58. Uses 10mm rounds."
|
||||
name = "10mm pistol"
|
||||
icon_state = "c05r"
|
||||
pixel_offset_x = 31
|
||||
pixel_offset_y = 14
|
||||
|
||||
/obj/item/weapon/gun/bang/silenced
|
||||
name = "silenced pistol"
|
||||
desc = "A small, quiet, easily concealable gun. Uses .45 rounds."
|
||||
icon_state = "silenced_pistol"
|
||||
pixel_offset_x = -4
|
||||
pixel_offset_y = 15
|
||||
|
||||
obj/item/weapon/gun/bang/deagle
|
||||
name = ".50 magnum pistol"
|
||||
desc = "A robust handgun that uses .50 AE ammo."
|
||||
icon_state = "deagle"
|
||||
pixel_offset_x = -4
|
||||
pixel_offset_y = 16
|
||||
|
||||
/obj/item/weapon/gun/bang/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/bang/deagle/camo
|
||||
desc = "A Deagle brand Deagle for operators operating operationally. Uses .50 AE ammo."
|
||||
icon_state = "deaglecamo"
|
||||
|
||||
/obj/item/weapon/gun/bang/pistol
|
||||
name = "9mm pistol"
|
||||
desc = "500 years since its creation and the Stechkin automatic pistol is still a common sight throughout the Frontier."
|
||||
icon_state = "pistol"
|
||||
item_state = null
|
||||
pixel_offset_x = 26
|
||||
pixel_offset_y = 14
|
||||
|
||||
/obj/item/weapon/gun/bang/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 = "zipgun"
|
||||
item_state = "sawnshotgun"
|
||||
pixel_offset_x = 0
|
||||
pixel_offset_y = 12
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
/obj/item/weapon/gun/bang/revolver
|
||||
name = "revolver"
|
||||
desc = "The classic Necropolis Industries .357 revolver, for when you only want to shoot once."
|
||||
@@ -140,4 +140,109 @@
|
||||
if(!retracted_bolt)
|
||||
to_chat(user, "<span class='notice'>You can't load \the [src] without cycling the bolt.</span>")
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/weapon/gun/projectile/boltaction/vintage
|
||||
name = "\improper vintage bolt action rifle"
|
||||
desc = "An extremely old-looking rifle. Words you can't read are stamped on the gun. Doesn't look like it'll take any modern rounds."
|
||||
icon_state = "springfield"
|
||||
origin_tech = list(TECH_COMBAT = 1, TECH_MATERIAL = 3)
|
||||
fire_sound = 'sound/weapons/rifleshot.ogg'
|
||||
slot_flags = SLOT_BACK
|
||||
load_method = SINGLE_CASING|SPEEDLOADER
|
||||
handle_casings = HOLD_CASINGS
|
||||
caliber = "vintage"
|
||||
ammo_type = /obj/item/ammo_casing/vintage
|
||||
var/open_bolt = 0
|
||||
var/obj/item/ammo_magazine/boltaction/vintage/has_clip
|
||||
|
||||
action_button_name = "Wield rifle"
|
||||
|
||||
|
||||
/obj/item/weapon/gun/projectile/boltaction/vintage/attack_self(mob/living/user as mob)
|
||||
if(wielded)
|
||||
if(world.time >= recentpump + 10)
|
||||
pump(user)
|
||||
recentpump = world.time
|
||||
return
|
||||
else
|
||||
if(open_bolt && has_clip)
|
||||
if(has_clip.stored_ammo.len > 0)
|
||||
load_ammo(has_clip, user)
|
||||
src.cut_overlays()
|
||||
if(!has_clip.stored_ammo.len)
|
||||
src.add_overlay(image('icons/obj/gun.dmi', "springfield-clip-empty"))
|
||||
else if(has_clip.stored_ammo.len <= 3)
|
||||
src.add_overlay(image('icons/obj/gun.dmi', "springfield-clip-half"))
|
||||
else
|
||||
src.add_overlay(image('icons/obj/gun.dmi', "springfield-clip-full"))
|
||||
else
|
||||
user << "<span class='warning'>There is no ammo in \the [has_clip.name]!</span>"
|
||||
else if(!open_bolt)
|
||||
user << "<span class='warning'>The bolt on \the [src.name] is closed!</span>"
|
||||
else
|
||||
user << "<span class='warning'>There is no clip in \the [src.name]!</span>"
|
||||
|
||||
/obj/item/weapon/gun/projectile/boltaction/vintage/pump(mob/M as mob)
|
||||
if(!wielded)
|
||||
M << "<span class='warning'>You cannot work \the [src.name]'s bolt without gripping it with both hands!</span>"
|
||||
return
|
||||
if(!open_bolt)
|
||||
open_bolt = 1
|
||||
icon_state = "springfield-openbolt"
|
||||
playsound(M, 'sound/weapons/riflebolt.ogg', 60, 1)
|
||||
update_icon()
|
||||
return
|
||||
open_bolt = 0
|
||||
icon_state = "springfield"
|
||||
playsound(M, 'sound/weapons/riflebolt.ogg', 60, 1)
|
||||
if(has_clip)
|
||||
has_clip.forceMove(get_turf(src))
|
||||
has_clip = null
|
||||
src.cut_overlays()
|
||||
|
||||
|
||||
if(chambered)//We have a shell in the chamber
|
||||
chambered.loc = get_turf(src)//Eject casing
|
||||
chambered = null
|
||||
|
||||
if(loaded.len)
|
||||
var/obj/item/ammo_casing/AC = loaded[1] //load next casing.
|
||||
loaded -= AC //Remove casing from loaded list.
|
||||
chambered = AC
|
||||
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/gun/projectile/boltaction/vintage/attackby(var/obj/item/A as obj, mob/user as mob)
|
||||
if(istype(A, /obj/item/ammo_magazine/boltaction/vintage))
|
||||
if(!open_bolt)
|
||||
user << "<span class='notice'>You need to open the bolt of \the [src] first.</span>"
|
||||
return
|
||||
if(!has_clip)
|
||||
user.drop_from_inventory(A)
|
||||
A.forceMove(src)
|
||||
has_clip = A
|
||||
user << "<span class='notice'>You load the clip into \the [src].</span>"
|
||||
if(!has_clip.stored_ammo.len)
|
||||
src.add_overlay(image('icons/obj/gun.dmi', "springfield-clip-empty"))
|
||||
else if(has_clip.stored_ammo.len <= 3)
|
||||
src.add_overlay(image('icons/obj/gun.dmi', "springfield-clip-half"))
|
||||
else
|
||||
src.add_overlay(image('icons/obj/gun.dmi', "springfield-clip-full"))
|
||||
else
|
||||
user << "<span class='notice'>There's already a clip in \the [src].</span>"
|
||||
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/weapon/gun/projectile/boltaction/vintage/load_ammo(var/obj/item/A, mob/user)
|
||||
if(!open_bolt)
|
||||
user << "<span class='warning'>The bolt is closed on \the [src.name]!</span>"
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/weapon/gun/projectile/boltaction/vintage/Fire(atom/target, mob/living/user, clickparams, pointblank=0, reflex=0)
|
||||
if(open_bolt)
|
||||
user << "<span class='warning'>The bolt is open on \the [src.name]!</span>"
|
||||
return
|
||||
..()
|
||||
@@ -200,6 +200,11 @@
|
||||
armor_penetration = 80
|
||||
hitscan = 1 //so the PTR isn't useless as a sniper weapon
|
||||
|
||||
/obj/item/projectile/bullet/rifle/vintage
|
||||
name = "vintage bullet"
|
||||
damage = 50
|
||||
weaken = 1
|
||||
|
||||
/obj/item/projectile/bullet/rifle/tranq
|
||||
name = "dart"
|
||||
icon_state = "dart"
|
||||
@@ -313,4 +318,6 @@
|
||||
/obj/item/projectile/bullet/flechette/explosive
|
||||
shrapnel_type = /obj/item/weapon/material/shard/shrapnel/flechette
|
||||
penetrating = 0
|
||||
damage = 10
|
||||
damage = 10
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user