Merge pull request #626 from Fox-McCloud/Guns-Fixes

Teleporter Gun, Fixes, and Tweaks
This commit is contained in:
Mark van Alphen
2015-03-23 15:38:44 +01:00
15 changed files with 137 additions and 30 deletions

View File

@@ -67,6 +67,19 @@
buck = 5
deviation = 0.8
/obj/item/ammo_casing/shotgun/improvised/overload
name = "overloaded improvised shell"
desc = "An extremely weak shotgun shell with multiple small pellets made out of metal shards. This one has been packed with even more \
propellant. It's like playing russian roulette, with a shotgun."
icon_state = "improvshell"
projectile_type = /obj/item/projectile/bullet/pellet/random
m_amt = 250
buck = 5
deviation = 1.0
/obj/item/ammo_casing/shotgun/improvised/overload/New()
..()
buck = rand(3, 8)
/obj/item/ammo_casing/shotgun/stunslug
name = "taser slug"
@@ -110,6 +123,21 @@
buck = 4
deviation = 0.9
/obj/item/ammo_casing/shotgun/ion
name = "ion shell"
desc = "An advanced shotgun shell which uses a subspace ansible crystal to produce an effect similar to a standard ion rifle. \
The unique properties of the crystal splot the pulse into a spread of individually weaker bolts."
icon_state = "ionshell"
projectile_type = /obj/item/projectile/ion/weak
buck = 4
deviation = 0.9
/obj/item/ammo_casing/shotgun/laserslug
name = "laser slug"
desc = "An advanced shotgun shell that uses a micro laser to replicate the effects of a laser weapon in a ballistic package."
icon_state = "lshell"
projectile_type = /obj/item/projectile/beam
/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."

View File

@@ -11,7 +11,7 @@
charge_cost = 2000
modifystate = "advtaserstun"
can_flashlight = 1
fire_delay = 20
fire_delay = 15
var/mode = 0 //0 = stun, 1 = disable
@@ -33,7 +33,7 @@
user << "\red [src.name] is now set to stun."
projectile_type = "/obj/item/projectile/energy/electrode"
modifystate = "advtaserstun"
fire_delay = 20
fire_delay = 15
update_icon()
if(user.l_hand == src)
user.update_inv_l_hand()

View File

@@ -37,7 +37,7 @@
user << "\red [src.name] is now set to stun."
projectile_type = "/obj/item/projectile/energy/electrode"
modifystate = "hoslaserstun"
fire_delay = 20
fire_delay = 15
update_icon()
if(user.l_hand == src)
user.update_inv_l_hand()

View File

@@ -130,7 +130,7 @@
update_charge()
update_reactor()
update_mode()
/obj/item/weapon/gun/energy/gun/turret
name = "hybrid turret gun"
@@ -142,8 +142,8 @@
can_flashlight = 0
projectile_type = /obj/item/projectile/energy/electrode
charge_cost = 1000
fire_delay = 20
fire_delay = 15
/obj/item/weapon/gun/energy/gun/turret/update_icon()
icon_state = initial(icon_state)
@@ -164,9 +164,9 @@
user << "\red [src.name] is now set to stun."
projectile_type = /obj/item/projectile/energy/electrode
modifystate = "energystun"
fire_delay = 20
fire_delay = 15
update_icon()
if(user.l_hand == src)
user.update_inv_l_hand()
else
user.update_inv_r_hand()
user.update_inv_r_hand()

View File

@@ -12,6 +12,9 @@
slot_flags = SLOT_BACK
w_class = 4.0
emp_act()
return
attack_self(mob/living/user as mob)
switch(mode)
if(2)
@@ -20,21 +23,18 @@
fire_sound = 'sound/weapons/Taser.ogg'
user << "\red [src.name] is now set to stun."
projectile_type = "/obj/item/projectile/energy/electrode"
fire_delay = 20
if(0)
mode = 1
charge_cost = 100
fire_sound = 'sound/weapons/Laser.ogg'
user << "\red [src.name] is now set to kill."
projectile_type = "/obj/item/projectile/beam"
fire_delay = 0
if(1)
mode = 2
charge_cost = 200
fire_sound = 'sound/weapons/pulse.ogg'
user << "\red [src.name] is now set to DESTROY."
projectile_type = "/obj/item/projectile/beam/pulse"
fire_delay = 0
return
isHandgun()

View File

@@ -331,6 +331,19 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
update_icon()
return 1
// Telegun for Tator RDs
/obj/item/weapon/gun/energy/telegun
name = "Teleporter Gun"
desc = "An extremely high-tech bluespace energy gun capable of teleporting targets to far off locations."
icon_state = "telegun"
item_state = "ionrifle"
icon_override = 'icons/mob/in-hand/guns.dmi'
fire_sound = 'sound/weapons/wave.ogg'
origin_tech = "combat=6;materials=7;powerstorage=5;bluespace=5;syndicate=4"
cell_type = "/obj/item/weapon/stock_parts/cell/crap"
projectile_type = "/obj/item/projectile/energy/teleport"
charge_cost = 1250
/* 3d printer 'pseudo guns' for borgs */

View File

@@ -7,7 +7,7 @@
fire_sound = 'sound/weapons/Taser.ogg'
projectile_type = "/obj/item/projectile/energy/electrode"
cell_type = "/obj/item/weapon/stock_parts/cell/crap"
fire_delay = 20
fire_delay = 15
/obj/item/weapon/gun/energy/taser/cyborg
name = "taser gun"
@@ -53,7 +53,7 @@
fire_sound = "sound/weapons/gunshot.ogg"
projectile_type = "/obj/item/projectile/energy/electrode"
cell_type = "/obj/item/weapon/stock_parts/cell"
fire_delay = 20
fire_delay = 15

View File

@@ -39,6 +39,9 @@
/obj/item/projectile/bullet/pellet/weak
damage = 3
/obj/item/projectile/bullet/pellet/random/New()
damage = rand(10)
/obj/item/projectile/bullet/midbullet
damage = 20
stamina = 65 //two rounds from the c20r knocks people down

View File

@@ -41,18 +41,6 @@
proj_hit = 1
..()
/obj/item/projectile/energy/electrode/revolver
name = "electrode"
icon_state = "spark"
nodamage = 1
/* stun = 2
weaken = 2
stutter = 10 */
agony = 50
damage_type = HALLOSS
hitsound = 'sound/weapons/tase.ogg'
//Damage will be handled on the MOB side, to prevent window shattering.
/obj/item/projectile/energy/declone
name = "declone"
icon_state = "declone"

View File

@@ -12,6 +12,12 @@
return 1
/obj/item/projectile/ion/weak
/obj/item/projectile/ion/weak/on_hit(atom/target, blocked = 0)
empulse(target, 0, 0)
return 1
/obj/item/projectile/bullet/gyro
name ="explosive bolt"
icon_state= "bolter"
@@ -206,8 +212,30 @@ obj/item/projectile/kinetic/New()
/obj/item/effect/kinetic_blast/New()
spawn(4)
del(src)
/obj/item/projectile/bullet/frag12
name ="explosive slug"
damage = 25
weaken = 5
/obj/item/projectile/bullet/frag12/on_hit(atom/target, blocked = 0)
explosion(target, -1, 0, 1)
return 1
/obj/item/projectile/energy/teleport
name = "teleportation burst"
icon_state = "bluespace"
damage = 0
nodamage = 1
/obj/item/projectile/energy/teleport/on_hit(var/atom/target, var/blocked = 0)
if(isliving(target))
var/obj/item/device/radio/beacon/teletarget = null
for(var/obj/machinery/computer/teleporter/com in machines)
if(com.target)
teletarget = com.target
if(teletarget)
do_teleport(target, teletarget, 0)//teleport what's in the tile to the beacon
else
do_teleport(target, target, 15) //Otherwise it just warps you off somewhere.