TG: More sanity checks for:

- SecHUD Glasses
- Facehuggers
- Attack()

And a more likely fix for the Throwing runtime.
Revision: r3479
Author: 	 johnsonmt88
This commit is contained in:
Erthilo
2012-05-05 22:15:20 +01:00
parent 1a5d772ae5
commit babf3ea66e
2 changed files with 30 additions and 23 deletions

View File

@@ -297,16 +297,18 @@ mob/proc/flash_weak_pain()
Metroid.SStun = 0 Metroid.SStun = 0
spawn(0) spawn(0)
if(Metroid)
Metroid.canmove = 0 Metroid.canmove = 0
step_away(Metroid, user) step_away(Metroid, user)
if(prob(25 + power*2)) if(prob(25 + power))
sleep(2) sleep(2)
if(Metroid && user)
step_away(Metroid, user) step_away(Metroid, user)
Metroid.canmove = 1 Metroid.canmove = 1
else else
if(prob(10 + power*2)) if(prob(10 + power*2))
if(Metroid)
if(Metroid.Victim) if(Metroid.Victim)
if(prob(80) && !Metroid.client) if(prob(80) && !Metroid.client)
Metroid.Discipline++ Metroid.Discipline++
@@ -315,8 +317,10 @@ mob/proc/flash_weak_pain()
Metroid.attacked = 0 Metroid.attacked = 0
spawn() spawn()
if(Metroid)
Metroid.SStun = 1 Metroid.SStun = 1
sleep(rand(5,20)) sleep(rand(5,20))
if(Metroid)
Metroid.SStun = 0 Metroid.SStun = 0
Metroid.Victim = null Metroid.Victim = null
@@ -324,13 +328,16 @@ mob/proc/flash_weak_pain()
spawn(0) spawn(0)
if(Metroid && user)
step_away(Metroid, user) step_away(Metroid, user)
Metroid.canmove = 0 Metroid.canmove = 0
if(prob(25 + power*4)) if(prob(25 + power*4))
sleep(2) sleep(2)
if(Metroid && user)
step_away(Metroid, user) step_away(Metroid, user)
Metroid.canmove = 1 Metroid.canmove = 1
var/showname = "." var/showname = "."
if(user) if(user)
showname = " by [user]." showname = " by [user]."

View File

@@ -155,7 +155,7 @@
while(((((src.x < target.x && dx == EAST) || (src.x > target.x && dx == WEST)) && dist_travelled < range) || (a.has_gravity == 0) || istype(src.loc, /turf/space)) && src.throwing && istype(src.loc, /turf)) while(src && target &&((((src.x < target.x && dx == EAST) || (src.x > target.x && dx == WEST)) && dist_travelled < range) || (a.has_gravity == 0) || istype(src.loc, /turf/space)) && src.throwing && istype(src.loc, /turf))
// only stop when we've gone the whole distance (or max throw range) and are on a non-space tile, or hit something, or hit the end of the map, or someone picks it up // only stop when we've gone the whole distance (or max throw range) and are on a non-space tile, or hit something, or hit the end of the map, or someone picks it up
if(error < 0) if(error < 0)
var/atom/step = get_step(src, dy) var/atom/step = get_step(src, dy)