Files
Polaris/code/modules/projectiles/guns/projectile/sniper.dm
Spades 81c3036140 Guns sounds refactor and improvements (#5803)
* Gun sound updates

Grenade Launcher sound source:
https://freesound.org/people/LeMudCrab/sounds/163458/

* Actually, this is a better way to handle this.

* Fixed accidental inconsistent indentation

* Renames shotgun.ogg to Gunshot_shotgun.ogg

Also actually changes the file names like I was supposed to last night.

* *peers* Didn't I just fix this shit?

* Actually fixes the missing files this time

* Update audible_deception.dm

* Changed tungsten core projectile sound by request

* Actually no this line is stupid and makes me angry

Simplifies dumb code that was badly copypasted.

Also fixed missing D'eagle fire_sound

* Smarter code

Less copypasta, more runtimes prevented in case somebody decides to make
a soundless gun whether done intentionally or not.

* Update gun.dm
2019-01-06 18:27:24 -08:00

103 lines
3.4 KiB
Plaintext

////////////// PTR-7 Anti-Materiel Rifle //////////////
/obj/item/weapon/gun/projectile/heavysniper
name = "anti-materiel rifle"
desc = "A portable anti-armour rifle fitted with a scope, the HI PTR-7 Rifle was originally designed to used against armoured exosuits. It is capable of punching through windows and non-reinforced walls with ease. Fires armor piercing 14.5mm shells."
icon_state = "heavysniper"
item_state_slots = list(slot_r_hand_str = "l6closed-empty", slot_l_hand_str = "l6closed-empty") // placeholder
w_class = ITEMSIZE_HUGE // So it can't fit in a backpack.
force = 10
slot_flags = SLOT_BACK
origin_tech = list(TECH_COMBAT = 8, TECH_MATERIAL = 2, TECH_ILLEGAL = 8)
caliber = "14.5mm"
recoil = 5 //extra kickback
handle_casings = HOLD_CASINGS
load_method = SINGLE_CASING
max_shells = 1
ammo_type = /obj/item/ammo_casing/a145
projectile_type = /obj/item/projectile/bullet/rifle/a145
accuracy = -75
scoped_accuracy = 75
// one_handed_penalty = 90
var/bolt_open = 0
/obj/item/weapon/gun/projectile/heavysniper/update_icon()
if(bolt_open)
icon_state = "heavysniper-open"
else
icon_state = "heavysniper"
/obj/item/weapon/gun/projectile/heavysniper/attack_self(mob/user as mob)
playsound(src.loc, 'sound/weapons/flipblade.ogg', 50, 1)
bolt_open = !bolt_open
if(bolt_open)
if(chambered)
user << "<span class='notice'>You work the bolt open, ejecting [chambered]!</span>"
chambered.loc = get_turf(src)
loaded -= chambered
chambered = null
else
user << "<span class='notice'>You work the bolt open.</span>"
else
user << "<span class='notice'>You work the bolt closed.</span>"
bolt_open = 0
add_fingerprint(user)
update_icon()
/obj/item/weapon/gun/projectile/heavysniper/special_check(mob/user)
if(bolt_open)
user << "<span class='warning'>You can't fire [src] while the bolt is open!</span>"
return 0
return ..()
/obj/item/weapon/gun/projectile/heavysniper/load_ammo(var/obj/item/A, mob/user)
if(!bolt_open)
return
..()
/obj/item/weapon/gun/projectile/heavysniper/unload_ammo(mob/user, var/allow_dump=1)
if(!bolt_open)
return
..()
/obj/item/weapon/gun/projectile/heavysniper/verb/scope()
set category = "Object"
set name = "Use Scope"
set popup_menu = 1
toggle_scope(2.0)
////////////// Dragunov Sniper Rifle //////////////
/obj/item/weapon/gun/projectile/SVD
name = "\improper Dragunov"
desc = "The SVD, also known as the Dragunov, is mass produced with an Optical Sniper Sight so simple that even Ivan can use it. Too bad for you that the inscriptions are written in Russian. Uses 7.62mm rounds."
icon_state = "SVD"
item_state = "SVD"
w_class = ITEMSIZE_HUGE // So it can't fit in a backpack.
force = 10
slot_flags = SLOT_BACK // Needs a sprite.
origin_tech = list(TECH_COMBAT = 8, TECH_MATERIAL = 2, TECH_ILLEGAL = 8)
caliber = "7.62mm"
load_method = MAGAZINE
accuracy = -45 //shooting at the hip
scoped_accuracy = 0
// requires_two_hands = 1
// one_handed_penalty = 60 // The weapon itself is heavy, and the long barrel makes it hard to hold steady with just one hand.
fire_sound = 'sound/weapons/Gunshot_SVD.ogg' // Has a very unique sound.
magazine_type = /obj/item/ammo_magazine/m762svd
allowed_magazines = list(/obj/item/ammo_magazine/m762svd)
/obj/item/weapon/gun/projectile/SVD/update_icon()
..()
if(ammo_magazine)
icon_state = "SVD"
else
icon_state = "SVD-empty"
/obj/item/weapon/gun/projectile/SVD/verb/scope()
set category = "Object"
set name = "Use Scope"
set popup_menu = 1
toggle_scope(2.0)