Shells and Periphery (#1327)

Adds Shells. Adds tags. Adds IPC subspecies. Adds HK-47's. Does not add IPC construction.

Beyond the obvious review of shells, the exact stats of the IPC subspecies need review. They were largely an afterthought, and quickly overshadowed by the shell project.
This commit is contained in:
LordFowl
2016-12-27 19:23:26 -05:00
committed by skull132
parent 0c59930261
commit bc8871ac2b
65 changed files with 1248 additions and 158 deletions

View File

@@ -373,6 +373,35 @@
/obj/item/ammo_magazine/d762/empty
initial_ammo = 0
/obj/item/ammo_magazine/flechette
name = "flechette rounds"
icon = 'icons/obj/terminator.dmi'
icon_state = "flechette"
mag_type = MAGAZINE
caliber = "flechette"
matter = list(DEFAULT_WALL_MATERIAL = 1200)
ammo_type = /obj/item/ammo_casing/flechette
max_ammo = 40
multiple_sprites = 1
/obj/item/ammo_magazine/flechette/empty
initial_ammo = 0
/obj/item/ammo_magazine/flechette/explosive
name = "explosive flechette rounds"
desc = "A box of ten explosive flechettes that can be remotely detonated by a certain signal."
icon = 'icons/obj/terminator.dmi'
icon_state = "flechette_e"
mag_type = MAGAZINE
caliber = "flechette"
matter = list(DEFAULT_WALL_MATERIAL = 1200)
ammo_type = /obj/item/ammo_casing/flechette/explosive
max_ammo = 10
multiple_sprites = 1
/obj/item/ammo_magazine/flechette/explosive/empty
initial_ammo = 0
/obj/item/ammo_magazine/assault_shotgun
name = "magazine (slug)"
icon = 'icons/obj/dragunov.dmi'

View File

@@ -19,7 +19,7 @@
projectile_type = /obj/item/projectile/bullet/pistol
/obj/item/ammo_casing/trod
desc = "Hyperdense tungsten rod residue."
desc = "hyperdense tungsten rod residue."
icon_state = "trod"
caliber = "trod"
projectile_type = /obj/item/projectile/bullet/trod
@@ -226,3 +226,13 @@
color = "#FF0000"
projectile_type = /obj/item/projectile/bullet/pistol/cap
/obj/item/ammo_casing/flechette
desc = "A flechette casing."
icon = 'icons/obj/terminator.dmi'
icon_state = "flechette_casing"
caliber = "flechette"
projectile_type = /obj/item/projectile/bullet/flechette
/obj/item/ammo_casing/flechette/explosive
projectile_type = /obj/item/projectile/bullet/flechette/explosive

View File

@@ -137,7 +137,6 @@
/obj/effect/projectile/bullet/muzzle
icon_state = "muzzle_bullet"
//----------------------------
// Solar beam
//----------------------------
/obj/effect/projectile/solar/tracer
@@ -148,3 +147,9 @@
/obj/effect/projectile/solar/impact
icon_state = "impact_solar"
//----------------------------
// Pulse muzzle
//----------------------------
/obj/effect/projectile/pulse_bullet/muzzle
icon_state = "muzzle_pulse"

View File

@@ -311,6 +311,64 @@
list(mode_name="dual coil", burst=2, move_delay=8, accuracy = list(-2,-3), dispersion = list(2.0, 3.0))
)
/obj/item/weapon/gun/projectile/automatic/terminator
name = "flechette rifle"
desc = "A fearsome Necropolis Industries designed rifle with attached bayonet that fires lethal flechette rounds."
icon = 'icons/obj/terminator.dmi'
icon_state = "flechetterifle"
item_state = "flechetterifle"
contained_sprite = 1
w_class = 5
force = 30
caliber = "flechette"
slot_flags = SLOT_BELT|SLOT_BACK
fire_sound = 'sound/weapons/Gunshot_DMR.ogg'
load_method = MAGAZINE
magazine_type = /obj/item/ammo_magazine/flechette
allowed_magazines = list(/obj/item/ammo_magazine/flechette,/obj/item/ammo_magazine/flechette/explosive)
auto_eject = 1
auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg'
firemodes = list(
list(mode_name="semiauto", burst=1, move_delay=null, burst_accuracy=null, dispersion=null),
list(mode_name="3-round bursts", burst=3, move_delay=4, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0)),
list(mode_name="short bursts", burst=5, move_delay=4, burst_accuracy=list(0,-1,-1,-2,-2), dispersion=list(0.6, 1.0, 1.0, 1.0, 1.2))
)
fire_delay = 20
accuracy = -4
//wielding information
fire_delay_wielded = 5
accuracy_wielded = 0
scoped_accuracy = 2
action_button_name = "Wield rifle"
/obj/item/weapon/gun/projectile/automatic/terminator/verb/scope()
set category = "Object"
set name = "Use Scope"
set popup_menu = 1
if(wielded)
toggle_scope(2.0)
else
usr << "<span class='warning'>You can't look through the scope without stabilizing the rifle!</span>"
/obj/item/weapon/gun/projectile/automatic/terminator/can_wield()
return 1
/obj/item/weapon/gun/projectile/automatic/terminator/ui_action_click()
if(src in usr)
toggle_wield(usr)
/obj/item/weapon/gun/projectile/automatic/terminator/verb/wield_rifle()
set name = "Wield rifle"
set category = "Object"
set src in usr
/obj/item/weapon/gun/projectile/automatic/rifle/shotgun
name = "assault shotgun"
desc = "A experimental, semi-automatic combat shotgun, designed for boarding operations and law enforcement agencies."
@@ -345,3 +403,4 @@
/obj/item/weapon/gun/projectile/automatic/rifle/shotgun/update_icon()
..()
icon_state = (ammo_magazine)? "cshotgun" : "cshotgun-empty"

View File

@@ -58,6 +58,7 @@
var/agony = 0
var/incinerate = 0
var/embed = 0 // whether or not the projectile can embed itself in the mob
var/shrapnel_type //type of shrapnel the projectile leaves in its target.
var/hitscan = 0 // whether the projectile should be hitscan
var/step_delay = 1 // the delay between iterations if not a hitscan projectile

View File

@@ -7,6 +7,7 @@
check_armour = "bullet"
embed = 1
sharp = 1
shrapnel_type = /obj/item/weapon/material/shard/shrapnel
var/mob_passthrough_check = 0
muzzle_type = /obj/effect/projectile/bullet/muzzle
@@ -296,3 +297,21 @@
/obj/item/projectile/bullet/pistol/cap/process()
loc = null
qdel(src)
/obj/item/projectile/bullet/flechette
name = "flechette"
icon = 'icons/obj/terminator.dmi'
icon_state = "flechette_bullet"
damage = 40
damage_type = BRUTE
check_armour = "bullet"
embed = 1
sharp = 1
penetrating = 1
muzzle_type = /obj/effect/projectile/pulse_bullet/muzzle
/obj/item/projectile/bullet/flechette/explosive
shrapnel_type = /obj/item/weapon/material/shard/shrapnel/flechette
penetrating = 0
damage = 10