Stun Changes

This commit is contained in:
Fox-McCloud
2014-12-30 12:30:14 -05:00
parent 777162345f
commit 525bb1a96f
28 changed files with 180 additions and 95 deletions
+1
View File
@@ -92,6 +92,7 @@
desc = "It's baseball hat in tasteful red colour."
icon_state = "secsoft"
_color = "sec"
armor = list(melee = 30, bullet = 25, laser = 25, energy = 10, bomb = 0, bio = 0, rad = 0)
/obj/item/clothing/head/soft/sec/corp
name = "corporate security cap"
+1 -1
View File
@@ -34,7 +34,7 @@
allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank, /obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/crowbar, \
/obj/item/weapon/screwdriver, /obj/item/weapon/weldingtool, /obj/item/weapon/wirecutters, /obj/item/weapon/wrench, /obj/item/device/multitool, \
/obj/item/device/radio, /obj/item/device/analyzer, /obj/item/weapon/gun/energy/laser, /obj/item/weapon/gun/energy/pulse_rifle, \
/obj/item/weapon/gun/energy/taser, /obj/item/weapon/melee/baton, /obj/item/weapon/gun/energy/gun)
/obj/item/weapon/gun/energy/advtaser, /obj/item/weapon/melee/baton, /obj/item/weapon/gun/energy/gun)
siemens_coefficient = 0.6
//Commander
+10
View File
@@ -628,6 +628,16 @@
if(C)
C.images -= I
//Debug item to identify all ore spread quickly
/obj/item/device/mining_scanner/admin
/obj/item/device/mining_scanner/admin/attack_self(mob/user)
for(var/turf/simulated/mineral/M in world)
if(M.scan_state)
M.icon_state = M.scan_state
del(src)
/**********************Xeno Warning Sign**********************/
/obj/structure/sign/xeno_warning_mining
name = "DANGEROUS ALIEN LIFE"
+1 -1
View File
@@ -30,7 +30,7 @@
new /obj/item/clothing/under/rank/miner(src)
new /obj/item/clothing/gloves/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/device/analyzer(src)
new /obj/item/device/mining_scanner(src)
new /obj/item/weapon/storage/bag/ore(src)
new /obj/item/device/flashlight/lantern(src)
new /obj/item/weapon/shovel(src)
+2 -2
View File
@@ -98,8 +98,8 @@
create = 1
/datum/manufacture/taser
name = "Taser"
item = /obj/item/weapon/gun/energy/taser
name = "Advanced Taser"
item = /obj/item/weapon/gun/energy/advtaser
cost1 = /obj/item/weapon/ore/iron
cname1 = "Iron"
amount1 = 15
+2 -1
View File
@@ -76,7 +76,7 @@
/mob/living/carbon/apply_effect(var/effect = 0,var/effecttype = STUN, var/blocked = 0)
return ..()
/mob/living/proc/apply_effects(var/stun = 0, var/weaken = 0, var/paralyze = 0, var/irradiate = 0, var/stutter = 0, var/eyeblur = 0, var/drowsy = 0, var/agony = 0, var/blocked = 0)
/mob/living/proc/apply_effects(var/stun = 0, var/weaken = 0, var/paralyze = 0, var/irradiate = 0, var/stutter = 0, var/eyeblur = 0, var/drowsy = 0, var/agony = 0, var/blocked = 0, var/stamina = 0)
if(blocked >= 2) return 0
if(stun) apply_effect(stun, STUN, blocked)
if(weaken) apply_effect(weaken, WEAKEN, blocked)
@@ -86,4 +86,5 @@
if(eyeblur) apply_effect(eyeblur, EYE_BLUR, blocked)
if(drowsy) apply_effect(drowsy, DROWSY, blocked)
if(agony) apply_effect(agony, AGONY, blocked)
if(stamina) apply_damage(stamina, STAMINA, null, blocked)
return 1
@@ -0,0 +1,37 @@
/obj/item/weapon/gun/energy/advtaser
name = "advanced taser"
desc = "A hybrid taser designed to fire both short-range high-power electrodes and long-range disabler beams."
icon_state = "advtaser"
item_state = null //so the human update icon uses the icon_state instead.
icon_override = 'icons/mob/in-hand/guns.dmi'
cell_type = "/obj/item/weapon/cell/crap"
origin_tech = null
fire_sound = 'sound/weapons/Taser.ogg'
projectile_type = "/obj/item/projectile/energy/electrode"
charge_cost = 1000
modifystate = "advtaserstun"
var/mode = 0 //0 = stun, 1 = disable
attack_self(mob/living/user as mob)
switch(mode)
if(0)
mode = 1
charge_cost = 500
fire_sound = 'sound/weapons/taser2.ogg'
user << "\red [src.name] is now set to Disable."
projectile_type = "/obj/item/projectile/beam/disabler"
modifystate = "advtaserdisable"
if(1)
mode = 0
charge_cost = 1000
fire_sound = 'sound/weapons/Taser.ogg'
user << "\red [src.name] is now set to stun."
projectile_type = "/obj/item/projectile/energy/electrode"
modifystate = "advtaserstun"
update_icon()
if(user.l_hand == src)
user.update_inv_l_hand()
else
user.update_inv_r_hand()
+15 -10
View File
@@ -1,15 +1,15 @@
/obj/item/weapon/gun/energy/gun
name = "energy gun"
desc = "A basic energy-based gun with two settings: Stun and kill."
desc = "A basic energy-based gun with two settings: Stun and disable."
icon_state = "energystun100"
item_state = null //so the human update icon uses the icon_state instead.
fire_sound = 'sound/weapons/Taser.ogg'
projectile_type = "/obj/item/projectile/energy/electrode"
fire_sound = 'sound/weapons/Taser2.ogg'
charge_cost = 500
projectile_type = "/obj/item/projectile/beam/disabler"
origin_tech = "combat=3;magnets=2"
modifystate = "energystun"
var/mode = 0 //0 = stun, 1 = kill
var/mode = 0 //0 = disable, 1 = kill
attack_self(mob/living/user as mob)
@@ -23,10 +23,10 @@
modifystate = "energykill"
if(1)
mode = 0
charge_cost = 1000
fire_sound = 'sound/weapons/Taser.ogg'
user << "\red [src.name] is now set to stun."
projectile_type = "/obj/item/projectile/energy/electrode"
charge_cost = 500
fire_sound = 'sound/weapons/Taser2.ogg'
user << "\red [src.name] is now set to disable."
projectile_type = "/obj/item/projectile/beam/disabler"
modifystate = "energystun"
update_icon()
if(user.l_hand == src)
@@ -42,6 +42,9 @@
desc = "An energy gun with an experimental miniaturized reactor."
icon_state = "nucgun"
origin_tech = "combat=3;materials=5;powerstorage=3"
charge_cost = 1000
fire_sound = 'sound/weapons/Taser.ogg'
projectile_type = "/obj/item/projectile/energy/electrode"
var/lightfail = 0
var/charge_tick = 0
@@ -115,10 +118,12 @@
update_mode()
if (mode == 0)
overlays += "nucgun-stun"
charge_cost = 1000
fire_sound = 'sound/weapons/Taser.ogg'
projectile_type = "/obj/item/projectile/energy/electrode"
else if (mode == 1)
overlays += "nucgun-kill"
emp_act(severity)
..()
reliability -= round(15/severity)
@@ -240,6 +240,6 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out.
desc = "A self-defense weapon that exhausts organic targets, weakening them until they collapse."
icon_state = "disabler"
item_state = null
projectile_type = "/obj/item/projectile/energy/disabler"
projectile_type = "/obj/item/projectile/beam/disabler"
cell_type = "/obj/item/weapon/cell"
charge_cost = 500
@@ -109,6 +109,7 @@
name = "Energy Crossbow"
desc = "A weapon favored by syndicate carp hunters."
icon_state = "crossbowlarge"
silenced = 0
w_class = 3.0
force = 10
m_amt = 4000
+20 -8
View File
@@ -50,20 +50,36 @@
var/eyeblur = 0
var/drowsy = 0
var/agony = 0
var/stamina = 0
var/embed = 0 // whether or not the projectile can embed itself in the mob
var/forcedodge = 0
var/range = 0
var/proj_hit = 0
proc/delete()
// Garbage collect the projectiles
loc = null
proc/Range()
if(range)
range--
if(range <= 0)
on_range()
else
return
proc/on_range() //if we want there to be effects when they reach the end of their range
proj_hit = 1
qdel(src)
proc/on_hit(var/atom/target, var/blocked = 0)
if(blocked >= 2) return 0//Full block
if(!isliving(target)) return 0
if(isanimal(target)) return 0
var/mob/living/L = target
L.apply_effects(stun, weaken, paralyze, irradiate, stutter, eyeblur, drowsy, agony, blocked) // add in AGONY!
L.apply_effects(stun, weaken, paralyze, irradiate, stutter, eyeblur, drowsy, agony, blocked, stamina) // add in AGONY!
return 1
proc/check_fire(var/mob/living/target as mob, var/mob/living/user as mob) //Checks if you can hit them or not.
@@ -83,7 +99,7 @@
loc = A.loc
return 0 //cannot shoot yourself
if(bumped)
if(bumped)
return 1
bumped = 1
if(firer && istype(A, /mob))
@@ -170,7 +186,7 @@
if(kill_count < 1)
del(src)
return
kill_count--
kill_count--
if((!( current ) || loc == current))
current = locate(min(max(x + xo, 1), world.maxx), min(max(y + yo, 1), world.maxy), z)
if((x == 1 || x == world.maxx || y == 1 || y == world.maxy))
@@ -242,8 +258,4 @@
else
M = locate() in get_step(src,target)
if(istype(M))
return 1
/obj/item/projectile/proc/Range()
return
return 1
@@ -44,6 +44,14 @@
irradiate = 30
forcedodge = 1
/obj/item/projectile/beam/disabler
name = "disabler beam"
icon_state = "omnilaser"
damage = 36
damage_type = STAMINA
hitsound = 'sound/weapons/tap.ogg'
eyeblur = 0
/obj/item/projectile/beam/pulse
name = "pulse"
icon_state = "u_laser"
@@ -10,8 +10,7 @@
/obj/item/projectile/bullet/weakbullet
damage = 5
stun = 5
weaken = 5
stamina = 33
/obj/item/projectile/bullet/weakbullet/rubber //beanbag shotgun shells
embed = 0
@@ -19,8 +18,7 @@
/obj/item/projectile/bullet/weakbullet2
damage = 15
stun = 5
weaken = 5
stamina = 75 //the detective can't shoot in bursts and will get yelled at if he sinks 50 rounds into perps to stun 'em
/obj/item/projectile/bullet/weakbullet2/rubber //detective's c38 bullets
embed = 0
@@ -42,8 +40,7 @@
/obj/item/projectile/bullet/midbullet
damage = 20
stun = 5
weaken = 5
stamina = 50
/obj/item/projectile/bullet/midbullet2
damage = 25
@@ -58,8 +55,7 @@
/obj/item/projectile/bullet/stunshot
name = "stunshot"
damage = 5
stun = 5
weaken = 5
stamina = 95
stutter = 5
embed = 0
sharp = 0
+17 -16
View File
@@ -14,14 +14,25 @@
weaken = 5
stutter = 5
hitsound = 'sound/weapons/tase.ogg'
range = 7
//Damage will be handled on the MOB side, to prevent window shattering.
on_hit(var/atom/target, var/blocked = 0)
/obj/item/projectile/energy/electrode/on_hit(var/atom/target, var/blocked = 0)
if(!proj_hit)
if(!ismob(target) || blocked >= 2) //Fully blocked by mob or collided with dense object - burst into sparks!
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread
sparks.set_up(1, 1, src)
sparks.start()
..()
proj_hit = 1
..()
/obj/item/projectile/energy/electrode/on_range() //to ensure the bolt sparks when it reaches the end of its range if it didn't hit a target yet
if(!proj_hit)
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread
sparks.set_up(1, 1, src)
sparks.start()
proj_hit = 1
..()
/obj/item/projectile/energy/electrode/revolver
name = "electrode"
@@ -49,16 +60,18 @@
damage = 5
damage_type = TOX
weaken = 5
range = 7
/obj/item/projectile/energy/bolt
name = "bolt"
icon_state = "cbbolt"
damage = 10
damage = 15
damage_type = TOX
nodamage = 0
weaken = 5
stutter = 5
range = 10
/obj/item/projectile/energy/bolt/large
name = "largebolt"
@@ -69,16 +82,4 @@
icon_state = "energy"
damage = 20
damage_type = TOX
irradiate = 20
/obj/item/projectile/energy/disabler
name = "disabler beam"
icon_state = "omnilaser"
damage = 34
damage_type = STAMINA
var/range = 8
/obj/item/projectile/energy/disabler/Range()
range--
if(range <= 0)
del(src)
irradiate = 20
@@ -30,6 +30,7 @@
icon_state= "bolter"
damage = 60
flag = "bullet"
range = 7
/obj/item/projectile/bullet/a40mm/on_hit(atom/target, blocked = 0)
explosion(target, -1, 0, 2, 1, 0)
@@ -170,7 +171,7 @@
damage = 15
damage_type = BRUTE
flag = "bomb"
var/range = 2
range = 3
obj/item/projectile/kinetic/New()
var/turf/proj_turf = get_turf(src)