The "X FAILS TO PUSH Y'S FAT ASS OUT OF THE WAY" message now only displays to the person shoving, so those nearby are not subjected to chat spam.

Added a "Relentless" var to mobs that makes them unshoveable if their intent is anything but help.

Alien Queens are relentless.

Constructs are relentless, can now push things, and have automated movement disabled (because it was bugging the hell out of me when testing)

Shades also have automated movement disabled.

The gladiator costume now has a chance to spawn in the theatre (sprites by Ausops)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3040 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
kortgstation@gmail.com
2012-02-05 23:56:15 +00:00
parent 050accb57b
commit cb57fae3b8
12 changed files with 71 additions and 18 deletions
@@ -30,9 +30,10 @@
var/mob/tmob = AM
if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT)
if(prob(70))
for(var/mob/M in viewers(src, null))
if(M.client)
M << "\red <B>[src] fails to push [tmob]'s fat ass out of the way.</B>"
src << "\red <B>You fail to push [tmob]'s fat ass out of the way.</B>"
now_pushing = 0
return
if(tmob.relentless)
now_pushing = 0
return
tmob.LAssailant = src
@@ -145,10 +145,12 @@
if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT)
if(prob(40) && !(mutations & FAT))
visible_message("\red <B>[src] fails to push [tmob]'s fat ass out of the way.</B>", \
"\red <B>You fail to push [tmob]'s fat ass out of the way.</B>")
src << "\red <B>You fail to push [tmob]'s fat ass out of the way.</B>"
now_pushing = 0
return
if(tmob.relentless)
now_pushing = 0
return
tmob.LAssailant = src
@@ -49,11 +49,12 @@
var/mob/tmob = AM
if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT)
if(prob(70))
for(var/mob/M in viewers(src, null))
if(M.client)
M << "\red <B>[src] fails to push [tmob]'s fat ass out of the way.</B>"
usr << "\red <B>You fail to push [tmob]'s fat ass out of the way.</B>"
now_pushing = 0
return
if(tmob.relentless)
now_pushing = 0
return
tmob.LAssailant = src
now_pushing = 0
@@ -242,12 +242,13 @@
var/mob/tmob = AM
if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT)
if(prob(20))
for(var/mob/M in viewers(src, null))
if(M.client)
M << M << "\red <B>[src] fails to push [tmob]'s fat ass out of the way.</B>"
usr << "\red <B>You fail to push [tmob]'s fat ass out of the way.</B>"
now_pushing = 0
//unlock_medal("That's No Moon, That's A Gourmand!", 1)
return
if(tmob.relentless)
now_pushing = 0
return
now_pushing = 0
..()
if (istype(AM, /obj/machinery/recharge_station))
+1 -1
View File
@@ -253,6 +253,6 @@ the mob is also allowed to move without any sort of restriction. For instance, i
var/canstun = 1 // determines if this mob can be stunned by things
var/canweaken = 1 // determines if this mob can be weakened/knocked down by things
var/relentless = 0 //Can they be shoved?
var/area/lastarea = null
+41 -1
View File
@@ -22,6 +22,9 @@
max_tox = 0
speed = 3
destroyer = 1
relentless = 1
a_intent = "harm"
stop_automated_movement = 1
Life()
..()
@@ -48,4 +51,41 @@
usr << "\red This weapon is ineffective, it does no damage."
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
M.show_message("\red [user] gently taps [src] with the [O]. ")
M.show_message("\red [user] gently taps [src] with the [O]. ")
/mob/living/simple_animal/constructarmoured/Bump(atom/movable/AM as mob|obj, yes)
spawn( 0 )
if ((!( yes ) || now_pushing))
return
now_pushing = 1
if(ismob(AM))
var/mob/tmob = AM
if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT)
if(prob(5))
src << "\red <B>You fail to push [tmob]'s fat ass out of the way.</B>"
now_pushing = 0
return
if(tmob.relentless)
now_pushing = 0
return
tmob.LAssailant = src
now_pushing = 0
..()
if (!( istype(AM, /atom/movable) ))
return
if (!( now_pushing ))
now_pushing = 1
if (!( AM.anchored ))
var/t = get_dir(src, AM)
if (istype(AM, /obj/structure/window))
if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST)
for(var/obj/structure/window/win in get_step(AM,t))
now_pushing = 0
return
step(AM, t)
now_pushing = null
return
return
+4 -3
View File
@@ -341,11 +341,12 @@
var/mob/tmob = AM
if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT)
if(prob(70))
for(var/mob/M in viewers(src, null))
if(M.client)
M << "\red <B>[src] fails to push [tmob]'s fat ass out of the way.</B>"
src << "\red <B>You fail to push [tmob]'s fat ass out of the way.</B>"
now_pushing = 0
return
if(tmob.relentless)
now_pushing = 0
return
tmob.LAssailant = src
now_pushing = 0
+1
View File
@@ -21,6 +21,7 @@
max_co2 = 0
max_tox = 0
speed = -1
stop_automated_movement = 1
Life()