mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-01-30 03:05:29 +00:00
Runes are now dispelled with the null rod, not the bible. Chaplains can no longer self heal with the bible. Simple animals can now attack mechas and critters Constructs no longer take extra damage from bibles. Fueltanks now explode when shot by lasers or bullets. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3125 316c924e-a436-60f5-8080-3fe189b3f50e
180 lines
4.9 KiB
Plaintext
180 lines
4.9 KiB
Plaintext
/mob/living/simple_animal/constructarmoured
|
|
name = "Juggernaut"
|
|
desc = "A possessed suit of armour driven by the will of the restless dead"
|
|
icon = 'mob.dmi'
|
|
icon_state = "armour"
|
|
icon_living = "armour"
|
|
icon_dead = "shade_dead"
|
|
maxHealth = 250
|
|
health = 250
|
|
speak_emote = list("hisses")
|
|
emote_hear = list("wails","screeches")
|
|
response_help = "thinks better of touching"
|
|
response_disarm = "flails at"
|
|
response_harm = "harmlessly punches the"
|
|
harm_intent_damage = 0
|
|
melee_damage_lower = 15
|
|
melee_damage_upper = 30
|
|
attacktext = "smashes their armoured gauntlet into"
|
|
minbodytemp = 0
|
|
maxbodytemp = 4000
|
|
min_oxy = 0
|
|
max_co2 = 0
|
|
max_tox = 0
|
|
speed = 3
|
|
destroyer = 1
|
|
nopush = 1
|
|
a_intent = "harm"
|
|
stop_automated_movement = 1
|
|
|
|
Life()
|
|
..()
|
|
if(stat == 2)
|
|
for(var/mob/M in viewers(src, null))
|
|
if((M.client && !( M.blinded )))
|
|
M.show_message("\red [src] collapses in a shattered heap ")
|
|
ghostize(0)
|
|
del src
|
|
return
|
|
|
|
/mob/living/simple_animal/constructarmoured/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
|
if(O.force)
|
|
if(O.force >= 11)
|
|
health -= O.force
|
|
for(var/mob/M in viewers(src, null))
|
|
if ((M.client && !( M.blinded )))
|
|
M.show_message("\red \b [src] has been attacked with the [O] by [user]. ")
|
|
else
|
|
for(var/mob/M in viewers(src, null))
|
|
if ((M.client && !( M.blinded )))
|
|
M.show_message("\red \b The [O] bounces harmlessly off of [src]. ")
|
|
else
|
|
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]. ")
|
|
|
|
|
|
/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.nopush)
|
|
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
|
|
|
|
|
|
|
|
/mob/living/simple_animal/constructwraith
|
|
name = "Wraith"
|
|
desc = "A wicked bladed shell contraption piloted by a bound spirit"
|
|
icon = 'mob.dmi'
|
|
icon_state = "floating"
|
|
icon_living = "floating"
|
|
icon_dead = "shade_dead"
|
|
maxHealth = 75
|
|
health = 75
|
|
speak_emote = list("hisses")
|
|
emote_hear = list("wails","screeches")
|
|
response_help = "thinks better of touching"
|
|
response_disarm = "flails at"
|
|
response_harm = "punches the"
|
|
melee_damage_lower = 25
|
|
melee_damage_upper = 25
|
|
attacktext = "slashes"
|
|
minbodytemp = 0
|
|
maxbodytemp = 4000
|
|
min_oxy = 0
|
|
max_co2 = 0
|
|
max_tox = 0
|
|
speed = -1
|
|
a_intent = "harm"
|
|
stop_automated_movement = 1
|
|
|
|
Life()
|
|
..()
|
|
if(stat == 2)
|
|
for(var/mob/M in viewers(src, null))
|
|
if((M.client && !( M.blinded )))
|
|
M.show_message("\red [src] collapses in a shattered heap ")
|
|
ghostize(0)
|
|
del src
|
|
return
|
|
|
|
|
|
/mob/living/simple_animal/constructwraith/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
|
if(O.force)
|
|
health -= O.force
|
|
for(var/mob/M in viewers(src, null))
|
|
if ((M.client && !( M.blinded )))
|
|
M.show_message("\red \b [src] has been attacked with the [O] by [user]. ")
|
|
else
|
|
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]. ")
|
|
|
|
/mob/living/simple_animal/constructwraith/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(50))
|
|
src << "\red <B>You fail to push [tmob]'s fat ass out of the way.</B>"
|
|
now_pushing = 0
|
|
return
|
|
if(tmob.nopush)
|
|
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
|