mirror of
https://github.com/goonstation/goonstation-2020.git
synced 2026-07-18 10:32:20 +01:00
64 lines
1.9 KiB
Plaintext
64 lines
1.9 KiB
Plaintext
/obj/critter/headspider
|
|
name = "headspider"
|
|
desc = "Oh my god!"
|
|
icon_state = "headspider"
|
|
density = 1
|
|
anchored = 0
|
|
aggressive = 1
|
|
atkcarbon = 1
|
|
atksilicon = 0
|
|
opensdoors = 1
|
|
health = 80
|
|
|
|
var/datum/abilityHolder/changeling/changeling = null
|
|
var/datum/mind/owner = null
|
|
|
|
examine()
|
|
set src in view()
|
|
..()
|
|
if(src.hiddenFrom && hiddenFrom.Find(usr.client)) //invislist
|
|
return
|
|
if(!alive)
|
|
boutput(usr, text("<span style=\"color:red\"><B>the disgusting creature is not moving</B></span>"))
|
|
else if (src.health > 40)
|
|
boutput(usr, text("<span style=\"color:red\"><B>the spindly-legged head looks healthy and strong</B></span>"))
|
|
else
|
|
boutput(usr, text("<span style=\"color:red\"><B>the ugly thing is missing several limbs</B></span>"))
|
|
return
|
|
|
|
filter_target(var/mob/living/C)
|
|
//Don't want a dead mob, don't want a mob with the same mind as the owner
|
|
return !isdead(C) && (!owner || C.mind != owner)
|
|
|
|
ChaseAttack(var/mob/M)
|
|
if(attacking) return
|
|
if(ishuman(M))
|
|
var/mob/living/carbon/human/H = M
|
|
src.visible_message("<font color='#FF0000'><B>\The [src]</B> leaps on [H.name]!</font>")
|
|
H.changeStatus("weakened", 4 SECONDS)
|
|
|
|
CritterAttack(var/mob/M)
|
|
if(attacking) return
|
|
if(ishuman(M))
|
|
var/mob/living/carbon/human/H = M
|
|
src.set_loc(H.loc)
|
|
random_brute_damage(H, 10)
|
|
src.set_loc(H.loc)
|
|
src.visible_message("<font color='#FF0000'><B>\The [src]</B> crawls down [H.name]'s throat!</font>")
|
|
H.setStatus("paralysis", max(H.getStatusDuration("paralysis"), 100))
|
|
attacking = 1
|
|
|
|
var/datum/ailment_data/parasite/HS = new /datum/ailment_data/parasite
|
|
HS.master = get_disease_from_path(/datum/ailment/parasite/headspider)
|
|
HS.affected_mob = H
|
|
HS.source = owner
|
|
var/datum/ailment/parasite/headspider/HSD = HS.master
|
|
HSD.changeling = changeling
|
|
H.ailments += HS
|
|
|
|
if(owner)
|
|
logTheThing("combat", owner.current ? owner.current : owner, H, "'s headspider enters %target% at [log_loc(src)].")
|
|
|
|
|
|
qdel(src)
|
|
return |