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
+37
View File
@@ -127,6 +127,43 @@
tools = list(/obj/item/weapon/screwdriver)
time = 5
/datum/table_recipe/ionslug
name = "Ion Scatter Shell"
result = /obj/item/ammo_casing/shotgun/ion
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
/obj/item/weapon/stock_parts/micro_laser/ultra = 1,
/obj/item/weapon/stock_parts/subspace/crystal = 1)
tools = list(/obj/item/weapon/screwdriver)
time = 5
/datum/table_recipe/improvisedslug
name = "Improvised Shotgun Shell"
result = /obj/item/ammo_casing/shotgun/improvised
reqs = list(/obj/item/weapon/grenade/chem_grenade = 1,
/obj/item/stack/sheet/metal = 1,
/obj/item/stack/cable_coil = 1,
/datum/reagent/fuel = 10)
tools = list(/obj/item/weapon/screwdriver)
time = 5
/datum/table_recipe/improvisedslugoverload
name = "Overload Improvised Shell"
result = /obj/item/ammo_casing/shotgun/improvised/overload
reqs = list(/obj/item/ammo_casing/shotgun/improvised = 1,
/datum/reagent/water = 5,
/datum/reagent/potassium = 5)
tools = list(/obj/item/weapon/screwdriver)
time = 5
/datum/table_recipe/laserslug
name = "Laser Slug Shell"
result = /obj/item/ammo_casing/shotgun/laserslug
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
/obj/item/weapon/stock_parts/capacitor/adv = 1,
/obj/item/weapon/stock_parts/micro_laser/high = 1)
tools = list(/obj/item/weapon/screwdriver)
time = 5
/datum/table_recipe/ishotgun
name = "Improvised Shotgun"
result = /obj/item/weapon/gun/projectile/revolver/doublebarrel/improvised
@@ -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."
@@ -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()
+1 -1
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()
@@ -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()
@@ -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()
@@ -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 */
+2 -2
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
@@ -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
@@ -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"
+29 -1
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.