mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-09 16:14:13 +00:00
* Fixes capitalisation on throwing stuff in disposals * in fact, fixes it for everything * even more * outta here
114 lines
3.1 KiB
Plaintext
114 lines
3.1 KiB
Plaintext
/mob/living/simple_animal/hostile/faithless
|
|
name = "The Faithless"
|
|
desc = "A being of shadow. It posesses a menacing gaze and a tortured voice."
|
|
icon_state = "faithless"
|
|
icon_living = "faithless"
|
|
icon_dead = "faithless_dead"
|
|
speak_chance = 0
|
|
turns_per_move = 5
|
|
response_help = "passes through"
|
|
response_disarm = "shoves"
|
|
response_harm = "hits"
|
|
speed = 1
|
|
maxHealth = 80
|
|
health = 80
|
|
can_butcher = 0
|
|
|
|
mob_property_flags = MOB_SUPERNATURAL
|
|
harm_intent_damage = 10
|
|
melee_damage_lower = 15
|
|
melee_damage_upper = 15
|
|
attacktext = "grips"
|
|
attack_sound = 'sound/hallucinations/growl1.ogg'
|
|
|
|
min_oxy = 0
|
|
max_oxy = 0
|
|
min_tox = 0
|
|
max_tox = 0
|
|
min_co2 = 0
|
|
max_co2 = 0
|
|
min_n2 = 0
|
|
max_n2 = 0
|
|
minbodytemp = 0
|
|
speed = 5
|
|
|
|
supernatural = TRUE
|
|
|
|
faction = "faithless"
|
|
|
|
blooded = FALSE
|
|
|
|
/mob/living/simple_animal/hostile/faithless/Process_Spacemove(var/check_drift = 0)
|
|
return 1
|
|
|
|
/mob/living/simple_animal/hostile/faithless/FindTarget()
|
|
. = ..()
|
|
if(.)
|
|
emote("me",,"wails at [.]!")
|
|
|
|
/mob/living/simple_animal/hostile/faithless/AttackingTarget()
|
|
. =..()
|
|
var/mob/living/L = .
|
|
if(istype(L))
|
|
if(prob(12))
|
|
L.Knockdown(3)
|
|
L.Stun(3)
|
|
L.visible_message("<span class='danger'>\The [src] knocks down \the [L]!</span>")
|
|
|
|
/mob/living/simple_animal/hostile/faithless/cult
|
|
faction = "cult"
|
|
var/shuttletarget = null
|
|
var/enroute = 0
|
|
|
|
/mob/living/simple_animal/hostile/faithless/cult/CanAttack(var/atom/the_target)
|
|
//IF WE ARE CULT MONSTERS (those who spawn after Nar-Sie has risen) THEN WE DON'T ATTACK CULTISTS
|
|
if(ismob(the_target))
|
|
var/mob/M = the_target
|
|
if(isanycultist(M))
|
|
return 0
|
|
return ..(the_target)
|
|
|
|
/mob/living/simple_animal/hostile/faithless/cult/cultify()
|
|
return
|
|
|
|
/mob/living/simple_animal/hostile/faithless/cult/Life()
|
|
if(timestopped)
|
|
return 0 //under effects of time magick
|
|
..()
|
|
if(emergency_shuttle.location == 1)
|
|
if(!enroute && !target) //The shuttle docked, all monsters rush for the escape hallway
|
|
if(!shuttletarget && escape_list.len) //Make sure we didn't already assign it a target, and that there are targets to pick
|
|
shuttletarget = pick(escape_list) //Pick a shuttle target
|
|
enroute = 1
|
|
stop_automated_movement = 1
|
|
/* spawn()
|
|
if(!src.stat)
|
|
horde()*/
|
|
|
|
if(get_dist(src, shuttletarget) <= 2) //The monster reached the escape hallway
|
|
enroute = 0
|
|
stop_automated_movement = 0
|
|
|
|
/mob/living/simple_animal/hostile/faithless/cult/proc/horde()
|
|
var/turf/T = get_step_to(src, shuttletarget)
|
|
for(var/atom/A in T)
|
|
if(istype(A,/obj/machinery/door/airlock))
|
|
var/obj/machinery/door/airlock/D = A
|
|
if(D.density && !D.locked && !D.welded)
|
|
D.open()
|
|
else if(istype(A,/obj/machinery/door/mineral))
|
|
var/obj/machinery/door/D = A
|
|
if(D.density)
|
|
D.open()
|
|
else if(istype(A,/obj/structure/cult/pylon))
|
|
A.attack_animal(src)
|
|
else if(istype(A, /obj/structure/window) || istype(A, /obj/structure/closet) || istype(A, /obj/structure/table) || istype(A, /obj/structure/grille) || istype(A, /obj/structure/rack))
|
|
A.attack_animal(src)
|
|
Move(T)
|
|
var/new_target = FindTarget()
|
|
GiveTarget(new_target)
|
|
if(!target || enroute)
|
|
spawn(10)
|
|
if(!src.stat)
|
|
horde()
|