19e51caef0
Added myself to admins.txt for testing. Merge branch 'srsbsns' Fucking finally figuring out how to make admins.txt be ignored. Merge branch 'master' of https://github.com/tgstation/-tg-station Conflicts: config/admins.txt stuff Merge branch 'master' of https://github.com/tgstation/-tg-station Merge branch 'master' of https://github.com/tgstation/-tg-station Conflicts: config/admins.txt Merge branch 'master' of https://github.com/tgstation/-tg-station Conflicts: config/admins.txt Merge branch 'master' of https://github.com/tgstation/-tg-station Conflicts: config/admins.txt Merge branch 'master' of https://github.com/tgstation/-tg-station Merge branch 'master' of https://github.com/tgstation/-tg-station Merge branch 'master' of https://github.com/tgstation/-tg-station latest setting for tgstation.dme deeply do I loathe these files Merge branch 'master' of https://github.com/tgstation/-tg-station Conflicts: config/admins.txt God I hate gitignore Merge branch 'master' of https://github.com/tgstation/-tg-station Modification of .gitignore to include admins.txt. Hopefully.` Added myself to admins.txt for testing. Merge branch 'srsbsns' Fucking finally figuring out how to make admins.txt be ignored. Merge branch 'master' of https://github.com/tgstation/-tg-station Conflicts: config/admins.txt stuff Merge branch 'master' of https://github.com/tgstation/-tg-station Merge branch 'master' of https://github.com/tgstation/-tg-station Conflicts: config/admins.txt Merge branch 'master' of https://github.com/tgstation/-tg-station Conflicts: config/admins.txt Merge branch 'master' of https://github.com/tgstation/-tg-station Conflicts: config/admins.txt Merge branch 'master' of https://github.com/tgstation/-tg-station Merge branch 'master' of https://github.com/tgstation/-tg-station Merge branch 'master' of https://github.com/tgstation/-tg-station latest setting for tgstation.dme deeply do I loathe these files Merge branch 'master' of https://github.com/tgstation/-tg-station Conflicts: config/admins.txt God I hate gitignore Merge branch 'master' of https://github.com/tgstation/-tg-station Modification of .gitignore to include admins.txt. Hopefully.` Added myself to admins.txt for testing. Merge branch 'srsbsns' Fucking finally figuring out how to make admins.txt be ignored. Merge branch 'master' of https://github.com/tgstation/-tg-station Conflicts: config/admins.txt stuff Merge branch 'master' of https://github.com/tgstation/-tg-station Merge branch 'master' of https://github.com/tgstation/-tg-station Conflicts: config/admins.txt Merge branch 'master' of https://github.com/tgstation/-tg-station Conflicts: config/admins.txt Merge branch 'master' of https://github.com/tgstation/-tg-station Conflicts: config/admins.txt Merge branch 'master' of https://github.com/tgstation/-tg-station Merge branch 'master' of https://github.com/tgstation/-tg-station Merge branch 'master' of https://github.com/tgstation/-tg-station latest setting for tgstation.dme deeply do I loathe these files Merge branch 'master' of https://github.com/tgstation/-tg-station Conflicts: config/admins.txt God I hate gitignore Merge branch 'master' of https://github.com/tgstation/-tg-station Merge remote-tracking branch 'remotes/origin/srsbsns-improvedprojectiles' into srsbsns-improvedprojectiles Conflicts: config/admins.txt data/investigate/singulo.html I don't what I'm doing Massive overhaul to automatic gun functionality, intended primarily to allow partially-filled magazines to be released. Now it compiles and doesn't throw runtimes! Also chambering rounds works right! Unfortunately the contents still need to be looked at, the Russian Revolver isn't working, and the Bartender's shotgun is just a nightmare. Also you still can't eject mags. Mags eject, most gun work. Shotguns still have a problem with reloading and chambering. Russian Revolver is a bitch. Heavy finalizing touches. Fixed references to changed trees. Added icon_states for some magazines. Fixed revolver glitches and subtyped double-barreled shotguns to revolvers to fix its glitches. Made bullets and spent shells more obvious via graphical changes. Probably did some other things but I can't think of what they'd be. Sprite tweaks for final preparations for pull request. final FINAL finalizations. Adding full paths to overwritten procs for simplicity's sake. Fixing damaged .gitignore and config/admins.txt. Finalization for pull preparation. Clean up some descs, eliminate data folder.
128 lines
4.7 KiB
Plaintext
128 lines
4.7 KiB
Plaintext
/obj/item/weapon/gun/projectile/automatic //Hopefully someone will find a way to make these fire in bursts or something. --Superxpdude
|
|
name = "submachine gun"
|
|
desc = "A lightweight, fast firing gun. Uses 9mm rounds."
|
|
icon_state = "saber" //ugly
|
|
w_class = 3.0
|
|
origin_tech = "combat=4;materials=2"
|
|
ammo_type = /obj/item/ammo_casing/c9mm
|
|
mag_type = /obj/item/ammo_box/magazine/msmg9mm
|
|
var/alarmed = 0
|
|
|
|
/obj/item/weapon/gun/projectile/automatic/update_icon()
|
|
..()
|
|
icon_state = "[initial(icon_state)][magazine ? "-[magazine.max_ammo]" : ""][chambered ? "" : "-e"]"
|
|
return
|
|
|
|
/obj/item/weapon/gun/projectile/automatic/attackby(var/obj/item/A as obj, mob/user as mob)
|
|
if(..() && chambered)
|
|
alarmed = 0
|
|
|
|
|
|
/obj/item/weapon/gun/projectile/automatic/mini_uzi
|
|
name = "Uzi"
|
|
desc = "A lightweight, fast firing gun, for when you want someone dead. Uses .45 rounds."
|
|
icon_state = "mini-uzi"
|
|
w_class = 3.0
|
|
origin_tech = "combat=5;materials=2;syndicate=8"
|
|
ammo_type = /obj/item/ammo_casing/c45
|
|
mag_type = /obj/item/ammo_box/magazine/uzim45
|
|
|
|
|
|
|
|
/obj/item/weapon/gun/projectile/automatic/c20r
|
|
name = "\improper C-20r SMG"
|
|
desc = "A lightweight, fast firing gun, for when you REALLY need someone dead. Uses 12mm rounds. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp"
|
|
icon_state = "c20r"
|
|
item_state = "c20r"
|
|
w_class = 3.0
|
|
origin_tech = "combat=5;materials=2;syndicate=8"
|
|
ammo_type = /obj/item/ammo_casing/a12mm
|
|
mag_type = /obj/item/ammo_box/magazine/m12mm
|
|
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
|
|
|
|
|
|
/obj/item/weapon/gun/projectile/automatic/c20r/New()
|
|
..()
|
|
update_icon()
|
|
return
|
|
|
|
|
|
/obj/item/weapon/gun/projectile/automatic/c20r/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag)
|
|
..()
|
|
if(!chambered && !get_ammo() && !alarmed)
|
|
playsound(user, 'sound/weapons/smg_empty_alarm.ogg', 40, 1)
|
|
update_icon()
|
|
alarmed = 1
|
|
return
|
|
|
|
|
|
/obj/item/weapon/gun/projectile/automatic/c20r/update_icon()
|
|
..()
|
|
icon_state = "c20r[magazine ? "-[round(get_ammo(0),4)]" : ""][chambered ? "" : "-e"]"
|
|
return
|
|
|
|
|
|
|
|
/obj/item/weapon/gun/projectile/automatic/l6_saw
|
|
name = "\improper L6 SAW"
|
|
desc = "A rather traditionally made light machine gun with a pleasantly lacquered wooden pistol grip. Has 'Aussec Armoury- 2531' engraved on the reciever"
|
|
icon_state = "l6closed100"
|
|
item_state = "l6closedmag"
|
|
w_class = 5
|
|
slot_flags = 0
|
|
origin_tech = "combat=5;materials=1;syndicate=2"
|
|
ammo_type = /obj/item/ammo_casing/a762
|
|
mag_type = /obj/item/ammo_box/magazine/m762
|
|
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
|
|
var/cover_open = 0
|
|
|
|
|
|
/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>"
|
|
else
|
|
..()
|
|
update_icon()
|
|
|
|
|
|
/obj/item/weapon/gun/projectile/automatic/l6_saw/attack_hand(mob/user as mob)
|
|
if(loc != user)
|
|
..()
|
|
return //let them pick it up
|
|
if(!cover_open || (cover_open && !magazine))
|
|
..()
|
|
else if(cover_open && magazine)
|
|
//drop the mag
|
|
magazine.update_icon()
|
|
magazine.loc = get_turf(src.loc)
|
|
user.put_in_hands(magazine)
|
|
magazine = null
|
|
update_icon()
|
|
user << "<span class='notice'>You remove the magazine from [src].</span>"
|
|
|
|
|
|
/obj/item/weapon/gun/projectile/automatic/l6_saw/attackby(var/obj/item/A as obj, mob/user as mob)
|
|
if(!cover_open)
|
|
user << "<span class='notice'>[src]'s cover is closed! You can't insert a new mag!</span>"
|
|
return
|
|
..()
|
|
|
|
|
|
/* The thing I found with guns in ss13 is that they don't seem to simulate the rounds in the magazine in the gun.
|
|
Afaik, since projectile.dm features a revolver, this would make sense since the magazine is part of the gun.
|
|
However, it looks like subsequent guns that use removable magazines don't take that into account and just get
|
|
around simulating a removable magazine by adding the casings into the loaded list and spawning an empty magazine
|
|
when the gun is out of rounds. Which means you can't eject magazines with rounds in them. The below is a very
|
|
rough and poor attempt at making that happen. -Ausops */
|
|
|
|
/* Where Ausops failed, I have not. -SirBayer */ |