This commit is contained in:
Markolie
2014-12-13 18:59:25 +01:00
32 changed files with 702 additions and 585 deletions
@@ -107,9 +107,9 @@
minimum_distance = 5
icon_state = "syndicateranged"
icon_living = "syndicateranged"
casingtype = /obj/item/ammo_casing/a12mm
casingtype = /obj/item/ammo_casing/c45
projectilesound = 'sound/weapons/Gunshot_smg.ogg'
projectiletype = /obj/item/projectile/bullet/midbullet12
projectiletype = /obj/item/projectile/bullet/midbullet2
weapon1 = /obj/item/weapon/gun/projectile/automatic/c20r
+11 -3
View File
@@ -95,7 +95,7 @@
return 1
return 0
/obj/item/ammo_box/attackby(var/obj/item/A as obj, mob/user as mob)
/obj/item/ammo_box/attackby(var/obj/item/A as obj, mob/user as mob, var/silent = 0)
var/num_loaded = 0
if(istype(A, /obj/item/ammo_box))
var/obj/item/ammo_box/AM = A
@@ -113,17 +113,25 @@
AC.loc = src
num_loaded++
if(num_loaded)
user << "<span class='notice'>You load [num_loaded] shell\s into \the [src]!</span>"
if(!silent)
user << "<span class='notice'>You load [num_loaded] shell\s into \the [src]!</span>"
A.update_icon()
update_icon()
/obj/item/ammo_box/attack_self(mob/user as mob)
var/obj/item/ammo_casing/A = get_round()
if(A)
user.put_in_hands(A)
user << "<span class='notice'>You remove a round from \the [src]!</span>"
update_icon()
/obj/item/ammo_box/update_icon()
switch(multiple_sprites)
if(1)
icon_state = "[initial(icon_state)]-[stored_ammo.len]"
if(2)
icon_state = "[initial(icon_state)]-[stored_ammo.len ? "[max_ammo]" : "0"]"
desc = "There are [stored_ammo.len] shell\s left!"
desc = "[initial(desc)] There are [stored_ammo.len] shell\s left!"
//Behavior for magazines
/obj/item/ammo_box/magazine/proc/ammo_count()
@@ -1,169 +1,165 @@
/obj/item/ammo_casing/a357
desc = "A .357 bullet casing."
caliber = "357"
projectile_type = "/obj/item/projectile/bullet"
/obj/item/ammo_casing/a50
desc = "A .50AE bullet casing."
caliber = ".50"
projectile_type = "/obj/item/projectile/bullet"
/obj/item/ammo_casing/a418
desc = "A .418 bullet casing."
caliber = "357"
projectile_type = "/obj/item/projectile/bullet/suffocationbullet"
/obj/item/ammo_casing/a75
desc = "A .75 bullet casing."
caliber = "75"
projectile_type = "/obj/item/projectile/bullet/gyro"
/obj/item/ammo_casing/a666
desc = "A .666 bullet casing."
caliber = "357"
projectile_type = "/obj/item/projectile/bullet/cyanideround"
/obj/item/ammo_casing/c38
desc = "A .38 bullet casing."
caliber = "38"
projectile_type = "/obj/item/projectile/bullet/c38"
/obj/item/ammo_casing/c9mm
desc = "A 9mm bullet casing."
caliber = "9mm"
projectile_type = "/obj/item/projectile/bullet/midbullet9"
/obj/item/ammo_casing/c45
desc = "A .45 bullet casing."
caliber = ".45"
projectile_type = "/obj/item/projectile/bullet/midbullet45"
/obj/item/ammo_casing/c10mm
desc = "A 10mm bullet casing."
caliber = "10mm"
projectile_type = "/obj/item/projectile/bullet/midbullet10"
/obj/item/ammo_casing/a12mm
desc = "A 12mm bullet casing."
caliber = "12mm"
projectile_type = "/obj/item/projectile/bullet/midbullet12"
/obj/item/ammo_casing/shotgun
name = "shotgun shell"
desc = "A 12 gauge shell."
icon_state = "slshell"
caliber = "shotgun"
projectile_type = "/obj/item/projectile/bullet/slug"
m_amt = 4000
/obj/item/ammo_casing/shotgun/buck
name = "buckshot shell"
desc = "A 12 gauge buckshot shell."
icon_state = "gshell"
projectile_type = "/obj/item/projectile/bullet/buck"
buck = 5
deviation = 0.8
/obj/item/ammo_casing/shotgun/birdshot
name = "birdshot shell"
desc = "A shotgun shell full of birdshot."
icon_state = "blshell"
projectile_type = "/obj/item/projectile/bullet/rubberbullet"
buck = 4
deviation = 1
m_amt = 6000
/obj/item/ammo_casing/shotgun/beanbag
name = "beanbag shell"
desc = "A weak beanbag shell."
icon_state = "bshell"
projectile_type = "/obj/item/projectile/bullet/rubberbullet"
m_amt = 250
/obj/item/ammo_casing/shotgun/fakebeanbag
name = "beanbag shell"
desc = "A weak beanbag shell."
icon_state = "bshell"
projectile_type = "/obj/item/projectile/bullet/weakbullet/booze"
/obj/item/ammo_casing/shotgun/stunshell
name = "stun shell"
desc = "A stunning shell."
icon_state = "stunshell"
projectile_type = "/obj/item/projectile/bullet/stunslug"
m_amt = 250
/obj/item/ammo_casing/shotgun/incendiary
name = "incendiary shell"
desc = "An incendiary shell"
icon_state = "ishell"
projectile_type = "/obj/item/projectile/bullet/incendiary/shell"
/obj/item/ammo_casing/shotgun/incendiary/dragonsbreath
name = "dragonsbreath shell"
desc = "A shotgun shell which fires a spread of incendiary pellets."
icon_state = "ishell2"
projectile_type = "/obj/item/projectile/bullet/incendiary/shell/dragonsbreath"
buck = 4
deviation = 0.9
/obj/item/ammo_casing/shotgun/techshell
name = "unloaded technological shell"
desc = "A high-tech shotgun shell which can be loaded with materials to produce unique effects."
icon_state = "tshell"
projectile_type = null
/obj/item/ammo_casing/shotgun/meteorshot
name = "meteorshot shell"
desc = "A shotgun shell rigged with CMC technology, which launches a massive slug when fired."
icon_state = "mshell"
projectile_type = "/obj/item/projectile/bullet/meteorshot"
/obj/item/ammo_casing/shotgun/pulseslug
name = "pulse slug"
desc = "A delicate device which can be loaded into a shotgun. The primer acts as a button which triggers the gain medium and fires a powerful \
energy blast. While the heat and power drain limit it to one use, it can still allow an operator to engage targets that ballistic ammunition \
would have difficulty with."
icon_state = "pshell"
projectile_type = "/obj/item/projectile/beam/pulse/shot"
/obj/item/ammo_casing/shotgun/dart
name = "shotgun dart"
desc = "A dart for use in shotguns. Can be injected with up to 30 units of any chemical."
icon_state = "cshell"
projectile_type = /obj/item/projectile/bullet/dart
m_amt = 12500
obj/item/ammo_casing/shotgun/dart/New()
..()
flags |= NOREACT
create_reagents(30)
/obj/item/ammo_casing/shotgun/dart/attackby()
return
/obj/item/ammo_casing/a762
desc = "A 7.62 bullet casing."
caliber = "a762"
projectile_type = "/obj/item/projectile/bullet/a762"
/obj/item/ammo_casing/rocket
name = "rocket shell"
desc = "A high explosive designed to be fired from a launcher."
icon_state = "rocketshell"
projectile_type = "/obj/item/missile"
caliber = "rocket"
/obj/item/ammo_casing/energy/kinetic
projectile_type = /obj/item/projectile/bullet
//select_name = "kinetic"
//e_cost = 500
//fire_sound = 'sound/weapons/Gunshot4.ogg'
/obj/item/ammo_casing/a357
desc = "A .357 bullet casing."
caliber = "357"
projectile_type = "/obj/item/projectile/bullet"
/obj/item/ammo_casing/a50
desc = "A .50AE bullet casing."
caliber = ".50"
projectile_type = "/obj/item/projectile/bullet"
/obj/item/ammo_casing/c38
desc = "A .38 bullet casing."
caliber = "38"
projectile_type = "/obj/item/projectile/bullet/weakbullet2/rubber"
/obj/item/ammo_casing/c10mm
desc = "A 10mm bullet casing."
caliber = "10mm"
projectile_type = "/obj/item/projectile/bullet/midbullet3"
/obj/item/ammo_casing/c9mm
desc = "A 9mm bullet casing."
caliber = "9mm"
projectile_type = "/obj/item/projectile/bullet/weakbullet3"
/obj/item/ammo_casing/c45
desc = "A .45 bullet casing."
caliber = ".45"
projectile_type = "/obj/item/projectile/bullet/midbullet"
/obj/item/ammo_casing/shotgun
name = "shotgun slug"
desc = "A 12 gauge lead slug."
icon_state = "blshell"
caliber = "shotgun"
projectile_type = "/obj/item/projectile/bullet"
m_amt = 4000
/obj/item/ammo_casing/shotgun/buckshot
name = "buckshot shell"
desc = "A 12 gauge buckshot shell."
icon_state = "gshell"
projectile_type = "/obj/item/projectile/bullet/pellet"
buck = 5
deviation = 0.8
/obj/item/ammo_casing/shotgun/beanbag
name = "beanbag slug"
desc = "A weak beanbag slug for riot control."
icon_state = "bshell"
projectile_type = "/obj/item/projectile/bullet/weakbullet/rubber"
m_amt = 250
/obj/item/ammo_casing/shotgun/improvised
name = "improvised shell"
desc = "An extremely weak shotgun shell with multiple small pellets made out of metal shards."
icon_state = "gshell"
projectile_type = "/obj/item/projectile/bullet/pellet/weak"
m_amt = 250
buck = 5
deviation = 0.8
/obj/item/ammo_casing/shotgun/stunslug
name = "taser slug"
desc = "A stunning taser slug."
icon_state = "stunshell"
projectile_type = "/obj/item/projectile/bullet/stunshot"
m_amt = 200
/obj/item/ammo_casing/shotgun/meteorshot
name = "meteorshot shell"
desc = "A shotgun shell rigged with CMC technology, which launches a massive slug when fired."
icon_state = "mshell"
projectile_type = "/obj/item/projectile/bullet/meteorshot"
/obj/item/ammo_casing/shotgun/pulseslug
name = "pulse slug"
desc = "A delicate device which can be loaded into a shotgun. The primer acts as a button which triggers the gain medium and fires a powerful \
energy blast. While the heat and power drain limit it to one use, it can still allow an operator to engage targets that ballistic ammunition \
would have difficulty with."
icon_state = "pshell"
projectile_type = "/obj/item/projectile/beam/pulse/shot"
/obj/item/ammo_casing/shotgun/incendiary
name = "incendiary slug"
desc = "An incendiary-coated shotgun slug."
icon_state = "ishell"
projectile_type = "/obj/item/projectile/bullet/incendiary/shell"
/obj/item/ammo_casing/shotgun/incendiary/dragonsbreath
name = "dragonsbreath shell"
desc = "A shotgun shell which fires a spread of incendiary pellets."
icon_state = "ishell2"
projectile_type = "/obj/item/projectile/bullet/incendiary/shell/dragonsbreath"
buck = 4
deviation = 0.9
/obj/item/ammo_casing/shotgun/techshell
name = "unloaded technological shell"
desc = "A high-tech shotgun shell which can be loaded with materials to produce unique effects."
icon_state = "cshell"
projectile_type = null
/*
/obj/item/ammo_casing/shotgun/dart
name = "shotgun dart"
desc = "A dart for use in shotguns. Can be injected with up to 30 units of any chemical."
icon_state = "cshell"
projectile_type = /obj/item/projectile/bullet/dart
/obj/item/ammo_casing/shotgun/dart/New()
..()
flags |= NOREACT
flags |= OPENCONTAINER
create_reagents(30)
/obj/item/ammo_casing/shotgun/dart/attackby()
return
*/
/obj/item/ammo_casing/shotgun/fakebeanbag
name = "beanbag shell"
desc = "A weak beanbag shell."
icon_state = "bshell"
projectile_type = "/obj/item/projectile/bullet/weakbullet/booze"
/obj/item/ammo_casing/a762
desc = "A 7.62mm bullet casing."
caliber = "a762"
projectile_type = "/obj/item/projectile/bullet"
/obj/item/ammo_casing/a545
desc = "A 5.45mm bullet casing."
caliber = "a545"
projectile_type = "/obj/item/projectile/bullet/heavybullet"
/obj/item/ammo_casing/rocket
name = "rocket shell"
desc = "A high explosive designed to be fired from a launcher."
icon_state = "rocketshell"
projectile_type = "/obj/item/missile"
caliber = "rocket"
/obj/item/ammo_casing/caseless
desc = "A caseless bullet casing."
/obj/item/ammo_casing/caseless/a75
desc = "A .75 bullet casing."
caliber = "75"
projectile_type = "/obj/item/projectile/bullet/gyro"
/obj/item/ammo_casing/a40mm
name = "40mm HE shell"
desc = "A cased high explosive grenade that can only be activated once fired out of a grenade launcher."
caliber = "40mm"
icon_state = "40mmHE"
projectile_type = "/obj/item/projectile/bullet/a40mm"
+28 -43
View File
@@ -1,63 +1,48 @@
/obj/item/ammo_box/a357
name = "ammo box (.357)"
desc = "A box of .357 ammo"
name = "speed loader (.357)"
icon_state = "357"
ammo_type = "/obj/item/ammo_casing/a357"
ammo_type = /obj/item/ammo_casing/a357
max_ammo = 7
multiple_sprites = 1
/obj/item/ammo_box/c38
name = "speed loader (.38)"
icon_state = "38"
ammo_type = "/obj/item/ammo_casing/c38"
ammo_type = /obj/item/ammo_casing/c38
max_ammo = 6
multiple_sprites = 1
/obj/item/ammo_box/c9mm
name = "ammo box (9mm)"
icon_state = "9mmbox"
origin_tech = "combat=2"
ammo_type = /obj/item/ammo_casing/c9mm
max_ammo = 30
/obj/item/ammo_box/c10mm
name = "ammo box (10mm)"
icon_state = "10mmbox"
origin_tech = "combat=2"
ammo_type = /obj/item/ammo_casing/c10mm
max_ammo = 20
/obj/item/ammo_box/a418
name = "ammo box (.418)"
icon_state = "418"
ammo_type = "/obj/item/ammo_casing/a418"
max_ammo = 7
multiple_sprites = 1
/obj/item/ammo_box/c45
name = "ammo box (.45)"
icon_state = "45box"
origin_tech = "combat=2"
ammo_type = /obj/item/ammo_casing/c45
max_ammo = 20
/obj/item/ammo_box/a666
name = "ammo box (.666)"
icon_state = "666"
ammo_type = "/obj/item/ammo_casing/a666"
/obj/item/ammo_box/a40mm
name = "ammo box (40mm grenades)"
icon_state = "40mm"
ammo_type = /obj/item/ammo_casing/a40mm
max_ammo = 4
multiple_sprites = 1
/obj/item/ammo_box/c9mm
name = "Ammunition Box (9mm)"
icon_state = "9mm"
origin_tech = "combat=2"
ammo_type = "/obj/item/ammo_casing/c9mm"
max_ammo = 36
/obj/item/ammo_box/c45
name = "Ammunition Box (.45)"
icon_state = "9mm"
origin_tech = "combat=2"
ammo_type = "/obj/item/ammo_casing/c45"
max_ammo = 32
/obj/item/ammo_box/a12mm
name = "Ammunition Box (12mm)"
icon_state = "9mm"
origin_tech = "combat=2"
ammo_type = "/obj/item/ammo_casing/a12mm"
max_ammo = 40
/obj/item/ammo_box/shotgun
name = "Ammunition Box (slug)"
icon_state = "9mm"
icon_state = "9mmbox"
origin_tech = "combat=2"
ammo_type = /obj/item/ammo_casing/shotgun
max_ammo = 8
@@ -65,11 +50,11 @@
/obj/item/ammo_box/shotgun/buck
name = "Ammunition Box (buckshot)"
ammo_type = /obj/item/ammo_casing/shotgun/buck
ammo_type = /obj/item/ammo_casing/shotgun/buckshot
/obj/item/ammo_box/shotgun/stun
name = "Ammunition Box (stun shells)"
ammo_type = /obj/item/ammo_casing/shotgun/stunshell
ammo_type = /obj/item/ammo_casing/shotgun/stunslug
m_amt = 20000
/obj/item/ammo_box/shotgun/beanbag
@@ -25,6 +25,7 @@
caliber = "357"
max_ammo = 6
multiload = 0
/obj/item/ammo_box/magazine/internal/cylinder/rus357/New()
stored_ammo += new ammo_type(src)
@@ -42,13 +43,15 @@
caliber = "shotgun"
max_ammo = 4
multiload = 0
/obj/item/ammo_box/magazine/internal/shotcom
name = "combat shotgun internal magazine"
desc = "Oh god, this shouldn't be here"
ammo_type = "/obj/item/ammo_casing/shotgun/buck"
ammo_type = "/obj/item/ammo_casing/shotgun/buckshot"
caliber = "shotgun"
max_ammo = 8
multiload = 0
/obj/item/ammo_box/magazine/internal/cylinder/dualshot
name = "double-barrel shotgun internal magazine"
desc = "This doesn't even exist"
@@ -57,6 +60,14 @@
max_ammo = 2
multiload = 0
/obj/item/ammo_box/magazine/internal/cylinder/improvised
name = "improvised shotgun internal magazine"
desc = "This doesn't even exist"
ammo_type = "/obj/item/ammo_casing/shotgun/improvised"
caliber = "shotgun"
max_ammo = 1
multiload = 0
/obj/item/ammo_box/magazine/internal/shotriot
name = "riot shotgun internal magazine"
desc = "Oh god, this shouldn't be here"
@@ -64,29 +75,21 @@
caliber = "shotgun"
max_ammo = 6
multiload = 0
/obj/item/ammo_box/magazine/internal/cylinder/grenadelauncher
name = "grenade launcher internal magazine"
ammo_type = "/obj/item/ammo_casing/a40mm"
caliber = "40mm"
max_ammo = 1
/obj/item/ammo_box/magazine/internal/cylinder/grenadelauncher/multi
ammo_type = "/obj/item/ammo_casing/a40mm"
max_ammo = 6
///////////EXTERNAL MAGAZINES////////////////
/obj/item/ammo_box/magazine/m9mm
name = "magazine (9mm)"
icon_state = "9x19p"
origin_tech = "combat=2"
ammo_type = "/obj/item/ammo_casing/c9mm"
caliber = "9mm"
max_ammo = 8
multiple_sprites = 2
/obj/item/ammo_box/magazine/msmg9mm
name = "SMG magazine (9mm)"
icon_state = "smg9mm"
ammo_type = "/obj/item/ammo_casing/c9mm"
caliber = "9mm"
max_ammo = 18
/obj/item/ammo_box/magazine/msmg9mm/update_icon()
..()
icon_state = "[initial(icon_state)]-[round(ammo_count(),3)]"
/obj/item/ammo_box/magazine/m10mm
name = "magazine (10mm)"
name = "pistol magazine (10mm)"
icon_state = "9x19p"
origin_tech = "combat=2"
ammo_type = "/obj/item/ammo_casing/c10mm"
@@ -94,39 +97,49 @@
max_ammo = 8
multiple_sprites = 2
/obj/item/ammo_box/magazine/m12mm
name = "magazine (12mm)"
icon_state = "12mm"
origin_tech = "combat=2"
ammo_type = "/obj/item/ammo_casing/a12mm"
caliber = "12mm"
max_ammo = 20
/obj/item/ammo_box/magazine/m12mm/update_icon()
..()
icon_state = "[initial(icon_state)]-[round(ammo_count(),2)]"
/obj/item/ammo_box/magazine/m45
name = "magazine (.45)"
name = "handgun magazine (.45)"
icon_state = "45"
ammo_type = "/obj/item/ammo_casing/c45"
caliber = ".45"
max_ammo = 8
multiple_sprites = 1
/obj/item/ammo_box/magazine/uzim45
name = "Uzi magazine (.45)"
icon_state = "uzi45"
/obj/item/ammo_box/magazine/m45/update_icon()
..()
icon_state = "[initial(icon_state)]-[ammo_count() ? "8" : "0"]"
/obj/item/ammo_box/magazine/smgm9mm
name = "SMG magazine (9mm)"
icon_state = "smg9mm"
ammo_type = "/obj/item/ammo_casing/c9mm"
caliber = "9mm"
max_ammo = 20
/obj/item/ammo_box/magazine/smgm9mm/update_icon()
..()
icon_state = "[initial(icon_state)]-[round(ammo_count(),5)]"
/obj/item/ammo_box/magazine/smgm45
name = "SMG magazine (.45)"
icon_state = "c20r45"
origin_tech = "combat=2"
ammo_type = "/obj/item/ammo_casing/c45"
caliber = ".45"
max_ammo = 16
max_ammo = 20
/obj/item/ammo_box/magazine/uzim45/update_icon()
/obj/item/ammo_box/magazine/smgm/update_icon()
..()
icon_state = "[initial(icon_state)]-[round(ammo_count(),2)]"
/obj/item/ammo_box/magazine/tommygunm45
name = "drum magazine (.45)"
icon_state = "drum45"
ammo_type = "/obj/item/ammo_casing/c45"
caliber = ".45"
max_ammo = 50
/obj/item/ammo_box/magazine/m50
name = "magazine (.50ae)"
name = "handgun magazine (.50ae)"
icon_state = "50ae"
origin_tech = "combat=2"
ammo_type = "/obj/item/ammo_casing/a50"
@@ -135,15 +148,27 @@
multiple_sprites = 1
/obj/item/ammo_box/magazine/m75
name = "magazine (.75)"
name = "specialized magazine (.75)"
icon_state = "75"
ammo_type = "/obj/item/ammo_casing/a75"
ammo_type = "/obj/item/ammo_casing/caseless/a75"
caliber = "75"
multiple_sprites = 2
max_ammo = 8
/obj/item/ammo_box/magazine/m545
name = "box magazine (5.45mm)"
icon_state = "5.45m"
origin_tech = "combat=5;syndicate=1"
ammo_type = "/obj/item/ammo_casing/a545"
caliber = "a545"
max_ammo = 30
/obj/item/ammo_box/magazine/m545/update_icon()
..()
icon_state = "[initial(icon_state)]-[round(ammo_count(),10)]"
/obj/item/ammo_box/magazine/m762
name = "magazine (7.62mm)"
name = "box magazine (7.62mm)"
icon_state = "a762"
origin_tech = "combat=2"
ammo_type = "/obj/item/ammo_casing/a762"
@@ -154,13 +179,11 @@
..()
icon_state = "[initial(icon_state)]-[round(ammo_count(),10)]"
//TG Bulldog Automatic Shotty
/obj/item/ammo_box/magazine/m12g
name = "shotgun magazine (12g taser slugs)"
icon_state = "m12gs"
origin_tech = "combat=3;syndicate=1"
ammo_type = "/obj/item/ammo_casing/shotgun/stunshell"
ammo_type = "/obj/item/ammo_casing/shotgun/stunslug"
caliber = "shotgun"
max_ammo = 8
@@ -172,7 +195,7 @@
/obj/item/ammo_box/magazine/m12g/buckshot
name = "shotgun magazine (12g buckshot)"
icon_state = "m12gb"
ammo_type = "/obj/item/ammo_casing/shotgun/buck"
ammo_type = "/obj/item/ammo_casing/shotgun/buckshot"
/obj/item/ammo_box/magazine/m12g/dragon
+1
View File
@@ -20,6 +20,7 @@
var/silenced = 0
var/ghettomodded = 0
var/recoil = 0
var/can_suppress = 0
var/clumsy_check = 1
var/sawn_desc = null
var/obj/item/ammo_casing/chambered = null // The round (not bullet) that is in the chamber. THIS MISPLACED ITEM BROUGHT TO YOU BY HACKY BUCKSHOT.
@@ -75,6 +75,11 @@ obj/item/weapon/gun/energy/laser/retro
name = "laser cannon"
desc = "With the L.A.S.E.R. cannon, the lasing medium is enclosed in a tube lined with uranium-235 and subjected to high neutron flux in a nuclear reactor core. This incredible technology may help YOU achieve high excitation rates with small laser volumes!"
icon_state = "lasercannon"
item_state = "laser"
w_class = 4.0
force = 10
flags = FPRINT | TABLEPASS | CONDUCT
slot_flags = SLOT_BACK
fire_sound = 'sound/weapons/lasercannonfire.ogg'
origin_tech = "combat=4;materials=3;powerstorage=3"
projectile_type = "/obj/item/projectile/beam/heavylaser"
@@ -2,7 +2,7 @@
name = "pulse rifle"
desc = "A heavy-duty, pulse-based energy weapon, preferred by front-line combat personnel."
icon_state = "pulse"
item_state = null //so the human update icon uses the icon_state instead.
item_state = "pulse" //so the human update icon uses the icon_state instead.
force = 10
fire_sound = 'sound/weapons/pulse.ogg'
charge_cost = 200
+1 -1
View File
@@ -44,7 +44,7 @@
/obj/item/weapon/gun/energy/stunrevolver
name = "stun revolver"
desc = "A high-tech revolver that fires stun cartridges. The stun cartridges can be recharged using a conventional energy weapon recharger."
desc = "A high-tech revolver that fires internal, reusable stun cartidges in a revolving cylinder."
icon_state = "stunrevolver"
fire_sound = "sound/weapons/gunshot.ogg"
origin_tech = "combat=3;materials=3;powerstorage=2"
+50 -1
View File
@@ -53,6 +53,7 @@
/obj/item/weapon/gun/projectile/attackby(var/obj/item/A as obj, mob/user as mob)
..()
if (istype(A, /obj/item/ammo_box/magazine))
var/obj/item/ammo_box/magazine/AM = A
if (!magazine && istype(AM, text2path(mag_type)))
@@ -66,10 +67,49 @@
return 1
else if (magazine)
user << "<span class='notice'>There's already a magazine in \the [src].</span>"
if(istype(A, /obj/item/weapon/suppressor))
var/obj/item/weapon/suppressor/S = A
if(can_suppress)
if(!silenced)
if(user.l_hand != src && user.r_hand != src)
user << "<span class='notice'>You'll need [src] in your hands to do that.</span>"
return
user.drop_item()
user << "<span class='notice'>You screw [S] onto [src].</span>"
silenced = A
S.oldsound = fire_sound
S.initial_w_class = w_class
fire_sound = 'sound/weapons/Gunshot_silenced.ogg'
w_class = 3 //so pistols do not fit in pockets when suppressed
A.loc = src
update_icon()
return
else
user << "<span class='warning'>[src] already has a suppressor.</span>"
return
else
user << "<span class='warning'>You can't seem to figure out how to fit [S] on [src].</span>"
return
return 0
/obj/item/weapon/gun/projectile/attack_hand(mob/user as mob)
if(loc == user)
if(silenced)
var/obj/item/weapon/suppressor/S = silenced
if(user.l_hand != src && user.r_hand != src)
..()
return
user << "<span class='notice'>You unscrew [silenced] from [src].</span>"
user.put_in_hands(silenced)
fire_sound = S.oldsound
w_class = S.initial_w_class
silenced = 0
update_icon()
return
..()
/obj/item/weapon/gun/projectile/attack_self(mob/living/user as mob)
if (magazine)
if(magazine)
magazine.loc = get_turf(src.loc)
user.put_in_hands(magazine)
magazine.update_icon()
@@ -92,3 +132,12 @@
if (magazine)
boolets += magazine.ammo_count()
return boolets
/obj/item/weapon/suppressor
name = "suppressor"
desc = "A universal syndicate small-arms suppressor for maximum espionage."
icon = 'icons/obj/gun.dmi'
icon_state = "suppressor"
w_class = 2
var/oldsound = null
var/initial_w_class = null
@@ -1,75 +1,71 @@
/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
name = "prototype SMG"
desc = "A lightweight, prototype 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors."
icon_state = "saber"
w_class = 3.0
origin_tech = "combat=4;materials=2"
automatic = 1
mag_type = "/obj/item/ammo_box/magazine/msmg9mm"
mag_type = "/obj/item/ammo_box/magazine/smgm9mm"
var/alarmed = 0
can_suppress = 1
fire_delay = 0
isHandgun()
return 0
/obj/item/weapon/gun/projectile/automatic/update_icon()
..()
icon_state = "[initial(icon_state)][magazine ? "-[magazine.max_ammo]" : ""][chambered ? "" : "-e"]"
icon_state = "[initial(icon_state)][magazine ? "-[magazine.max_ammo]" : ""][chambered ? "" : "-e"][silenced ? "-suppressed" : ""]"
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"
mag_type = "/obj/item/ammo_box/magazine/uzim45"
isHandgun()
return 1
/obj/item/weapon/gun/projectile/automatic/proc/empty_alarm()
if(!chambered && !get_ammo() && !alarmed)
playsound(src.loc, 'sound/weapons/smg_empty_alarm.ogg', 40, 1)
update_icon()
alarmed = 1
return
/obj/item/weapon/gun/projectile/automatic/c20r
name = "\improper C-20r SMG"
desc = "A lightweight, compact bullpup SMG. Uses .45 rounds in medium-capacity magazines and has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp."
name = "syndicate SMG"
desc = "A lightweight, bullpup .45 SMG, designated 'C-20r'. 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"
mag_type = "/obj/item/ammo_box/magazine/m12mm"
mag_type = "/obj/item/ammo_box/magazine/smgm45"
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)
alarmed = 1
empty_alarm()
return
/obj/item/weapon/gun/projectile/automatic/c20r/update_icon()
..()
icon_state = "c20r[magazine ? "-[round(get_ammo(0),4)]" : ""][chambered ? "" : "-e"]"
icon_state = "c20r[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""][chambered ? "" : "-e"][silenced ? "-suppressed" : ""]"
return
/obj/item/weapon/gun/projectile/automatic/l6_saw
name = "\improper L6 SAW"
desc = "A heavily modified light machine gun with a tactical plasteel frame resting on a rather traditionally-made belt-fed ballistic weapon. Has 'Aussec Armoury - 2531' engraved on the reciever."
name = "syndicate LMG"
desc = "A heavily modified 7.62 light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the reciever below the designation."
icon_state = "l6closed100"
item_state = "l6closedmag"
w_class = 4
w_class = 5
slot_flags = 0
origin_tech = "combat=5;materials=1;syndicate=2"
mag_type = "/obj/item/ammo_box/magazine/m762"
fire_sound = 'sound/weapons/Gunshot3.ogg'
var/cover_open = 0
can_suppress = 0
@@ -115,8 +111,8 @@
/obj/item/weapon/gun/projectile/automatic/bulldog
name = "\improper Bulldog shotgun"
desc = "A compact, mag-fed semi-automatic shotgun for combat in narrow corridors. Compatible only with specialized magazines."
name = "syndicate shotgun"
desc = "A compact, mag-fed semi-automatic shotgun for combat in narrow corridors, nicknamed 'Bulldog' by boarding parties. Compatible only with specialized 8-round drum magazines."
icon_state = "bulldog"
item_state = "bulldog"
icon_override = 'icons/mob/in-hand/guns.dmi'
@@ -124,6 +120,7 @@
origin_tech = "combat=5;materials=4;syndicate=6"
mag_type = "/obj/item/ammo_box/magazine/m12g"
fire_sound = 'sound/weapons/Gunshot4.ogg'
can_suppress = 0
/obj/item/weapon/gun/projectile/automatic/bulldog/New()
..()
@@ -144,16 +141,87 @@
/obj/item/weapon/gun/projectile/automatic/bulldog/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
empty_alarm()
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 */
/obj/item/weapon/gun/projectile/automatic/c90gl
name = "syndicate assault rifle"
desc = "A bullpup and compact 5.45x39 assault rifle with a unique toploading design, designated 'C-90gl'. Has an attached underbarrel grenade launcher which can be toggled on and off."
icon_state = "c90gl"
item_state = "c90gl"
icon_override = 'icons/mob/in-hand/guns.dmi'
origin_tech = "combat=5;materials=2;syndicate=8"
mag_type = "/obj/item/ammo_box/magazine/m545"
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
action_button_name = "Toggle Grenade Launcher"
icon_action_button = "Action_c90gl"
can_suppress = 0
var/select = 1 //1 for boolets, 0 for explosions.
var/obj/item/weapon/gun/projectile/revolver/grenadelauncher/underbarrel
/obj/item/weapon/gun/projectile/automatic/c90gl/New()
..()
underbarrel = new /obj/item/weapon/gun/projectile/revolver/grenadelauncher(src)
update_icon()
return
/obj/item/weapon/gun/projectile/automatic/c90gl/afterattack(var/atom/target, var/mob/living/user, flag, params)
if(select)
..()
empty_alarm()
return
else
underbarrel.afterattack(target, user, flag, params)
/obj/item/weapon/gun/projectile/automatic/c90gl/attackby(var/obj/item/A, mob/user)
if(select)
..()
else
underbarrel.attackby(A, user)
/obj/item/weapon/gun/projectile/automatic/c90gl/attack_self(var/mob/living/user)
if(select)
..()
else
underbarrel.attack_self(user)
/obj/item/weapon/gun/projectile/automatic/c90gl/update_icon()
..()
overlays.Cut()
if(select)
overlays += "c90prim"
else
overlays += "c90gren"
icon_state = "c90gl[magazine ? "-[Ceiling(get_ammo(0)/6)*6]" : ""][chambered ? "" : "-e"]"
return
/obj/item/weapon/gun/projectile/automatic/c90gl/proc/underbarrel_swap()
var/mob/living/carbon/human/user = usr
if(select)
select = 0
user << "<span class='notice'>You switch to grenades.</span>"
else
select = 1
user << "<span class='notice'>You switch to bullets.</span>"
update_icon()
return
/obj/item/weapon/gun/projectile/automatic/c90gl/ui_action_click()
underbarrel_swap()
/obj/item/weapon/gun/projectile/automatic/tommygun
name = "tommy gun"
desc = "A genuine 'Chicago Typewriter'."
icon_state = "tommygun"
item_state = "tommygun"
slot_flags = 0
origin_tech = "combat=5;materials=1;syndicate=2"
mag_type = "/obj/item/ammo_box/magazine/tommygunm45"
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
can_suppress = 0
@@ -0,0 +1,50 @@
//KEEP IN MIND: These are different from gun/grenadelauncher. These are designed to shoot premade rocket and grenade projectiles, not flashbangs or chemistry casings etc.
//Put handheld rocket launchers here if someone ever decides to make something so hilarious ~Paprika
/obj/item/weapon/gun/projectile/automatic/gyropistol
name = "gyrojet pistol"
desc = "A prototype pistol designed to fire self propelled rockets."
icon_state = "gyropistol"
fire_sound = 'sound/effects/Explosion1.ogg'
origin_tech = "combat=3"
mag_type = "/obj/item/ammo_box/magazine/m75"
/obj/item/weapon/gun/projectile/automatic/gyropistol/New()
..()
update_icon()
return
/obj/item/weapon/gun/projectile/automatic/gyropistol/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/gyropistol/update_icon()
..()
icon_state = "[initial(icon_state)][magazine ? "loaded" : ""]"
return
/obj/item/weapon/gun/projectile/revolver/grenadelauncher//this is only used for underbarrel grenade launchers at the moment, but admins can still spawn it if they feel like being assholes
desc = "A break-operated grenade launcher."
name = "grenade launcher"
icon_state = "dshotgun-sawn"
item_state = "gun"
mag_type = "/obj/item/ammo_box/magazine/internal/cylinder/grenadelauncher"
w_class = 3
/obj/item/weapon/gun/projectile/revolver/grenadelauncher/attackby(var/obj/item/A, mob/user)
..()
if(istype(A, /obj/item/ammo_box) || istype(A, /obj/item/ammo_casing))
chamber_round()
/obj/item/weapon/gun/projectile/revolver/grenadelauncher/multi
desc = "A revolving 6-shot grenade launcher."
name = "multi grenade launcher"
icon_state = "bulldog"
item_state = "bulldog"
icon_override = 'icons/mob/in-hand/guns.dmi'
mag_type = "/obj/item/ammo_box/magazine/internal/cylinder/grenadelauncher/multi"
@@ -1,3 +1,17 @@
/obj/item/weapon/gun/projectile/automatic/pistol
name = "syndicate pistol"
desc = "A small, easily concealable 10mm handgun. Has a threaded barrel for suppressors."
icon_state = "pistol"
w_class = 2
origin_tech = "combat=2;materials=2;syndicate=2"
mag_type = "/obj/item/ammo_box/magazine/m10mm"
can_suppress = 1
/obj/item/weapon/gun/projectile/automatic/pistol/update_icon()
..()
icon_state = "[initial(icon_state)][chambered ? "" : "-e"][silenced ? "-suppressed" : ""]"
return
/obj/item/weapon/gun/projectile/automatic/m2411
name = "M2411"
desc = "John Browning's classic updated for the modern day. Uses .45 rounds."
@@ -12,29 +26,19 @@
icon_state = "[initial(icon_state)][chambered ? "" : "-e"]"
return
/obj/item/weapon/gun/projectile/automatic/deagle
name = "desert eagle"
desc = "A robust handgun that uses .50 AE ammo"
desc = "A robust .50 AE handgun."
icon_state = "deagle"
force = 14.0
mag_type = "/obj/item/ammo_box/magazine/m50"
/obj/item/weapon/gun/projectile/automatic/deagle/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/deagle/update_icon()
..()
icon_state = "[initial(icon_state)][magazine ? "" : "-e"]"
/obj/item/weapon/gun/projectile/automatic/deagle/gold
desc = "A gold plated gun folded over a million times by superior martian gunsmiths. Uses .50 AE ammo."
desc = "A gold plated desert eagle folded over a million times by superior martian gunsmiths. Uses .50 AE ammo."
icon_state = "deagleg"
item_state = "deagleg"
@@ -43,89 +47,4 @@
/obj/item/weapon/gun/projectile/automatic/deagle/camo
desc = "A Deagle brand Deagle for operators operating operationally. Uses .50 AE ammo."
icon_state = "deaglecamo"
item_state = "deagleg"
/obj/item/weapon/gun/projectile/automatic/gyropistol
name = "gyrojet pistol"
desc = "A bulky pistol designed to fire self propelled rounds"
icon_state = "gyropistol"
fire_sound = 'sound/effects/Explosion1.ogg'
origin_tech = "combat=3"
mag_type = "/obj/item/ammo_box/magazine/m75"
/obj/item/weapon/gun/projectile/automatic/gyropistol/New()
..()
update_icon()
return
/obj/item/weapon/gun/projectile/automatic/gyropistol/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/gyropistol/update_icon()
..()
icon_state = "[initial(icon_state)][magazine ? "loaded" : ""]"
return
/obj/item/weapon/gun/projectile/automatic/pistol
name = "\improper Stechtkin pistol"
desc = "A small, easily concealable gun. Uses 10mm rounds and has a threaded barrel for suppressors."
icon_state = "pistol"
w_class = 2
silenced = 0
origin_tech = "combat=2;materials=2;syndicate=2"
mag_type = "/obj/item/ammo_box/magazine/m10mm"
fire_sound = 'sound/weapons/Gunshot2.ogg'
/obj/item/weapon/gun/projectile/automatic/pistol/attack_hand(mob/user as mob)
if(loc == user)
if(silenced)
if(user.l_hand != src && user.r_hand != src)
..()
return
user << "<span class='notice'>You unscrew [silenced] from [src].</span>"
user.put_in_hands(silenced)
var/obj/item/weapon/silencer/S = silenced
fire_sound = S.oldsound
silenced = 0
w_class = 2
update_icon()
return
..()
/obj/item/weapon/gun/projectile/automatic/pistol/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, /obj/item/weapon/silencer))
if(user.l_hand != src && user.r_hand != src) //if we're not in his hands
user << "<span class='notice'>You'll need [src] in your hands to do that.</span>"
return
user.drop_item()
user << "<span class='notice'>You screw [I] onto [src].</span>"
silenced = I //dodgy?
var/obj/item/weapon/silencer/S = I
S.oldsound = fire_sound
fire_sound = 'sound/weapons/Gunshot_silenced.ogg'
w_class = 3
I.loc = src //put the silencer into the gun
update_icon()
return
..()
/obj/item/weapon/gun/projectile/automatic/pistol/update_icon()
..()
icon_state = "[initial(icon_state)][silenced ? "-silencer" : ""][chambered ? "" : "-e"]"
return
/obj/item/weapon/silencer
name = "supressor"
desc = "A universal syndicate small-arms suppressor."
icon = 'icons/obj/gun.dmi'
icon_state = "silencer"
w_class = 2
var/oldsound = 0 //Stores the true sound the gun made before it was silenced
item_state = "deagleg"
@@ -1,5 +1,5 @@
/obj/item/weapon/gun/projectile/revolver
desc = "A classic revolver. Uses 357 ammo"
desc = "A suspicious revolver. Uses .357 ammo."
name = "revolver"
icon_state = "revolver"
mag_type = "/obj/item/ammo_box/magazine/internal/cylinder"
@@ -76,7 +76,7 @@
usr << "[get_ammo(0,0)] of those are live rounds."
/obj/item/weapon/gun/projectile/revolver/detective
desc = "A cheap Martian knock-off of a Smith & Wesson Model 10. Uses .38-Special rounds."
desc = "A cheap Martian knock-off of a classic law enforcement firearm. Uses .38-special rounds."
name = "revolver"
icon_state = "detective"
origin_tech = "combat=2;materials=2"
@@ -165,8 +165,8 @@
/obj/item/weapon/gun/projectile/revolver/mateba
name = "mateba"
desc = "When you absolutely, positively need a 10mm hole in the other guy. Uses .357 ammo." //>10mm hole >.357
name = "autorevolver"
desc = "A retro high-powered mateba autorevolver typically used by officers of the New Russia military. Uses .357 ammo." //>10mm hole >.357
icon_state = "mateba"
origin_tech = "combat=2;materials=2"
@@ -175,7 +175,7 @@
/obj/item/weapon/gun/projectile/revolver/russian
name = "Russian Revolver"
desc = "A Russian made revolver. Uses .357 ammo."
desc = "A Russian-made revolver for drinking games. Uses .357 ammo, and has a mechanism that spins the chamber before each trigger pull."
origin_tech = "combat=2;materials=2"
mag_type = "/obj/item/ammo_box/magazine/internal/cylinder/rus357"
var/spun = 0
@@ -1,6 +1,6 @@
/obj/item/weapon/gun/projectile/shotgun
name = "shotgun"
desc = "Useful for sweeping alleys."
desc = "A traditional shotgun with wood furniture and a four-shell capacity underneath."
icon_state = "shotgun"
item_state = "shotgun"
w_class = 4.0
@@ -83,6 +83,7 @@
/obj/item/weapon/gun/projectile/shotgun/combat
name = "combat shotgun"
desc = "A traditional shotgun with tactical furniture and an eight-shell capacity underneath."
icon_state = "cshotgun"
origin_tech = "combat=5;materials=2"
mag_type = "/obj/item/ammo_box/magazine/internal/shotcom"
@@ -152,3 +153,30 @@
user << "<span class = 'notice'>You break open \the [src] and unload [num_unloaded] shell\s.</span>"
else
user << "<span class='notice'>[src] is empty.</span>"
// IMPROVISED SHOTGUN //
/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised
name = "improvised shotgun"
desc = "Essentially a tube that aims shotgun shells."
icon_state = "ishotgun"
item_state = "shotgun"
w_class = 4.0
force = 10
origin_tech = "combat=2;materials=2"
mag_type = "/obj/item/ammo_box/magazine/internal/cylinder/improvised"
sawn_desc = "I'm just here for the gasoline."
/obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised/attackby(var/obj/item/A as obj, mob/user as mob)
..()
if(istype(A, /obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/C = A
if(C.use(10))
flags = CONDUCT
slot_flags = SLOT_BACK
icon_state = "ishotgunsling"
user << "<span class='notice'>You tie the lengths of cable to the shotgun, making a sling.</span>"
update_icon()
else
user << "<span class='warning'>You need at least ten lengths of cable if you want to make a sling.</span>"
return
+43 -81
View File
@@ -8,36 +8,63 @@
embed = 1
sharp = 1
/* on_hit(var/atom/target, var/blocked = 0)
if (..(target, blocked))
var/mob/living/L = target
shake_camera(L, 3, 2)
return 1
return 0 */
/obj/item/projectile/bullet/weakbullet
damage = 5
stun = 5
weaken = 5
/obj/item/projectile/bullet/slug
name = "slug"
/obj/item/projectile/bullet/rubberbullet // Back to insta-stun bullets.
damage = 5
stun = 5
weaken = 5
/obj/item/projectile/bullet/weakbullet/rubber //beanbag shotgun shells
embed = 0
sharp = 0
/obj/item/projectile/bullet/c38 //replacement for detective's ammo
/obj/item/projectile/bullet/weakbullet2
damage = 15
stun = 5
weaken = 5
/obj/item/projectile/bullet/weakbullet2/rubber //detective's c38 bullets
embed = 0
sharp = 0
/obj/item/projectile/bullet/weakbullet3
damage = 20
/obj/item/projectile/bullet/pellet
name = "pellet"
damage = 15
/obj/item/projectile/bullet/blank
name = "blankshot"
nodamage = 1
/obj/item/projectile/bullet/pellet/weak
damage = 3
/obj/item/projectile/bullet/midbullet
damage = 20
stun = 5
weaken = 5
/obj/item/projectile/bullet/midbullet2
damage = 25
/obj/item/projectile/bullet/midbullet3
damage = 30
/obj/item/projectile/bullet/heavybullet
damage = 35
/obj/item/projectile/bullet/stunshot
name = "stunshot"
damage = 5
stun = 5
weaken = 5
stutter = 5
embed = 0
sharp = 0
/obj/item/projectile/bullet/weakbullet/booze
embed = 0
on_hit(var/atom/target, var/blocked = 0)
@@ -57,71 +84,6 @@
M.drowsyness += 10
A.volume += 5 //Because we can
/obj/item/projectile/bullet/midbullet12
damage = 20
stun = 5
weaken = 5
/obj/item/projectile/bullet/midbullet9
damage = 25
/obj/item/projectile/bullet/midbullet45
damage = 25
stun = 1
weaken = 1
/obj/item/projectile/bullet/midbullet10 //Only used with the Stechkin Pistol - RobRichards
damage = 30
/obj/item/projectile/bullet/buck
name = "pellet"
damage = 15
/obj/item/projectile/bullet/blank
name = "blankshot"
nodamage = 1
/obj/item/projectile/bullet/suffocationbullet//How does this even work?
name = "co bullet"
damage = 20
damage_type = OXY
/obj/item/projectile/bullet/cyanideround
name = "poison bullet"
damage = 40
damage_type = TOX
/obj/item/projectile/bullet/burstbullet//I think this one needs something for the on hit
name = "exploding bullet"
damage = 20
embed = 0
edge = 1
/obj/item/projectile/bullet/stunshot
name = "stunshot"
damage = 5
stun = 5
weaken = 5
stutter = 5
embed = 0
sharp = 0
/obj/item/projectile/bullet/stunslug
name = "stunslug"
damage = 5
stun = 5
weaken = 5
stutter = 5
embed = 0
sharp = 0
/obj/item/projectile/bullet/a762
damage = 35
/obj/item/projectile/bullet/incendiary
/obj/item/projectile/bullet/incendiary/on_hit(var/atom/target, var/blocked = 0)
@@ -24,6 +24,17 @@
explosion(target, -1, 0, 2)
return 1
/obj/item/projectile/bullet/a40mm
name ="40mm grenade"
desc = "USE A WEEL GUN"
icon_state= "bolter"
damage = 60
flag = "bullet"
/obj/item/projectile/bullet/a40mm/on_hit(atom/target, blocked = 0)
explosion(target, -1, 0, 2, 1, 0)
return 1
/obj/item/projectile/temp
name = "freeze beam"
icon_state = "ice_2"
+24 -23
View File
@@ -1587,7 +1587,7 @@ datum/design/cyborg_analyzer
build_type = PROTOLATHE
materials = list("$metal" = 30, "$glass" = 20)
reliability_base = 74
build_path = "/obj/item/device/robotanalyzer"
build_path = "/obj/item/device/robotanalyzer"
datum/design/mmi
name = "Man-Machine Interface"
@@ -1710,7 +1710,7 @@ datum/design/nuclear_gun
datum/design/stunrevolver
name = "Stun Revolver"
desc = "The prize of the Head of Security."
desc = "A high-tech revolver that fires internal, reusable stun cartidges in a revolving cylinder. The stun cartridges can be recharged using a conventional energy weapon recharger."
id = "stunrevolver"
req_tech = list("combat" = 3, "materials" = 3, "powerstorage" = 2)
build_type = PROTOLATHE
@@ -1797,8 +1797,8 @@ datum/design/large_grenade
build_path = "/obj/item/weapon/grenade/chem_grenade/large"
datum/design/smg
name = "Submachine Gun"
desc = "A lightweight, fast firing gun."
name = "Prototype Submachine Gun"
desc = "A prototype weapon made using lightweight materials on a traditional frame, designed to fire standard 9mm rounds."
id = "smg"
req_tech = list("combat" = 4, "materials" = 3)
build_type = PROTOLATHE
@@ -1806,6 +1806,16 @@ datum/design/smg
build_path = "/obj/item/weapon/gun/projectile/automatic"
locked = 1
datum/design/mag_smg
name = "Submachine Gun Magazine (9mm)"
desc = "A 20-round magazine for the prototype submachine gun."
id = "mag_smg"
req_tech = list("combat" = 4, "materials" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 2000)
build_path = /obj/item/ammo_box/magazine/smgm9mm
datum/design/ionrifle
name = "Ion Rifle"
desc = "How to dismantle a cyborg : The gun."
@@ -1816,24 +1826,6 @@ datum/design/ionrifle
build_path = /obj/item/weapon/gun/energy/ionrifle
locked = 1
datum/design/ammo_9mm
name = "Ammunition Box (9mm)"
desc = "A box of prototype 9mm ammunition."
id = "ammo_9mm"
req_tech = list("combat" = 4, "materials" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 2000)
build_path = "/obj/item/ammo_box/c9mm"
datum/design/mag_smg
name = "Submachine Gun Magazine (9mm)"
desc = "A prototype magazine for the submachine gun."
id = "mag_smg"
req_tech = list("combat" = 4, "materials" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 2000)
build_path = "/obj/item/ammo_box/magazine/msmg9mm"
datum/design/stunshell
name = "Stun Shell"
desc = "A stunning shell for a shotgun."
@@ -1841,7 +1833,7 @@ datum/design/stunshell
req_tech = list("combat" = 3, "materials" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 200)
build_path = "/obj/item/ammo_casing/shotgun/stunshell"
build_path = "/obj/item/ammo_casing/shotgun/stunslug"
datum/design/techshell
name = "Unloaded Technological Shotshell"
@@ -1852,6 +1844,15 @@ datum/design/techshell
materials = list("$metal" = 1000, "$glass" = 200, "$silver" = 300)
build_path = "/obj/item/ammo_casing/shotgun/techshell"
datum/design/suppressor
name = "Universal Suppressor"
desc = "A reverse-engineered universal suppressor that fits on most small arms with threaded barrels."
id = "suppressor"
req_tech = list("combat" = 6, "engineering" = 5, "syndicate" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 2000, "$silver" = 500)
build_path = /obj/item/weapon/suppressor
datum/design/xray
name = "Xray Laser Gun"
desc = "Not quite as menacing as it sounds"