Files
kiwistation/code/modules/projectiles/guns/projectile/automatic.dm
T
sirbayer 19e51caef0 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

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.
2013-10-30 17:56:00 -07:00

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 */