Necromorph and zombies are now friends (#32798)

* necromorph

* other files

* fix for quick reviving

* bugfix

* Update necro.dm

* Update necro.dm
This commit is contained in:
adacovsk
2022-06-21 23:05:15 -04:00
committed by GitHub
parent f1352e936e
commit 91d18efde8
12 changed files with 252 additions and 319 deletions

View File

@@ -112,7 +112,7 @@ var/list/ventcrawl_machinery = list(/obj/machinery/atmospherics/unary/vent_pump,
/mob/living/simple_animal/hostile/lizard/can_ventcrawl()
return TRUE
/mob/living/simple_animal/hostile/necromorph/leaper/can_ventcrawl()
/mob/living/simple_animal/hostile/necro/necromorph/leaper/can_ventcrawl()
return TRUE
/mob/living/simple_animal/shade/can_ventcrawl()

View File

@@ -204,7 +204,7 @@
var/static/list/possible_types = list(
/mob/living/simple_animal/construct/armoured,
/mob/living/simple_animal/hostile/gremlin,
/mob/living/simple_animal/hostile/necromorph,
/mob/living/simple_animal/hostile/necro/necromorph,
/mob/living/simple_animal/hostile/asteroid/goliath,
/mob/living/simple_animal/hostile/giant_spider/nurse/queen_spider,
/mob/living/simple_animal/hostile/retaliate/cockatrice,

View File

@@ -77,7 +77,7 @@
max_number = 6
monsterstring = "a synthetic covering"
if(MONSTER_ZOMBIE)
spawn_monster_type = pick(/mob/living/simple_animal/hostile/necro/zombie, /mob/living/simple_animal/hostile/necromorph, /mob/living/simple_animal/hostile/necromorph/leaper, /mob/living/simple_animal/hostile/necromorph/puker)
spawn_monster_type = pick(/mob/living/simple_animal/hostile/necro/zombie, /mob/living/simple_animal/hostile/necro/necromorph, /mob/living/simple_animal/hostile/necro/necromorph/leaper, /mob/living/simple_animal/hostile/necro/necromorph/puker)
max_number = 3
monsterstring = "extreme decay"
if(MONSTER_SKRITE)

View File

@@ -4,6 +4,16 @@
faction = "necro"
mob_property_flags = MOB_UNDEAD
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
/mob/living/simple_animal/hostile/necro/New(loc, mob/living/Owner, var/mob/living/Victim, datum/mind/Controller)
..()
if(Victim && Victim.mind)
@@ -16,20 +26,8 @@
friends += makeweakref(Owner)
creator = Owner
if(client)
to_chat(src, "<big><span class='warning'>You have been risen from the dead by your new master, [Owner]. Do his bidding so long as he lives, for when he falls so do you.</span></big>")
/*
var/ref = "\ref[Owner.mind]"
var/list/necromancers
if(!(Owner.mind in ticker.mode.necromancer))
ticker.mode:necromancer[ref] = list()
necromancers = ticker.mode:necromancer[ref]
necromancers.Add(Victim.mind)
ticker.mode:necromancer[ref] = necromancers
ticker.mode.update_necro_icons_added(Owner.mind)
ticker.mode.update_necro_icons_added(Victim.mind)
ticker.mode.update_all_necro_icons()
ticker.mode.risen.Add(Victim.mind)
*/
to_chat(src, "<big><span class='warning'>You have been risen from the dead by your new master, [Owner].</span></big>")
if(name == initial(name) && !unique_name)
name += " ([rand(1,1000)])"
@@ -74,7 +72,6 @@
to_chat(user, "<span class='notice'>You devour \the [src]!</span>")
qdel(src)
/mob/living/simple_animal/hostile/necro/meat_ghoul/death(var/gibbed = FALSE)
..(gibbed)
new /obj/effect/decal/cleanable/ash(loc)
@@ -115,7 +112,6 @@
name = "[aGhoul.name] ghoul"
desc = "A ghoulish [aGhoul.name]."
/mob/living/simple_animal/hostile/necro/animal_ghoul/death(var/gibbed = FALSE)
..(gibbed)
new /obj/effect/decal/cleanable/ash(loc)
@@ -147,28 +143,12 @@
attacktext = "bites"
attack_sound = 'sound/weapons/bite.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
environment_smash_flags = SMASH_LIGHT_STRUCTURES | SMASH_CONTAINERS | OPEN_DOOR_WEAK | OPEN_DOOR_SMART
meat_type = null
/*
#define EVOLVING 1
#define MOVING_TO_TARGET 2
#define EATING 3
#define OPENING_DOOR 4
#define SMASHING_LIGHT 5*/
#define MAX_EAT_MULTIPLIER 4 //Dead for humans is -maxHealth, uncloneable is -maxHealth * 2
/mob/living/simple_animal/hostile/necro/zombie //Boring ol default zombie
/mob/living/simple_animal/hostile/necro/zombie
name = "zombie"
desc = "A reanimated corpse that looks like it has seen better days."
icon_state = "zombie"
@@ -186,9 +166,8 @@
maxHealth = 100
health = 100
canRegenerate = 1
minRegenTime = 300
maxRegenTime = 1800
minRegenTime = 30 SECONDS
maxRegenTime = 120 SECONDS
harm_intent_damage = 15
melee_damage_lower = 10
@@ -197,16 +176,6 @@
attack_sound = 'sound/weapons/bite.ogg'
stat_attack = DEAD
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
var/times_revived //Tracks how many times the zombie has regenerated from death
var/times_eaten //Tracks how many times the zombie has chewed on a human corpse
var/can_evolve = FALSE //False if we don't want it to evolve
@@ -370,7 +339,6 @@
eat(A)
/mob/living/simple_animal/hostile/necro/zombie/Destroy()
for(var/obj/item/I in clothing)
I.forceMove(get_turf(src))
clothing.Remove(I)
@@ -601,7 +569,6 @@
environment_smash_flags = SMASH_LIGHT_STRUCTURES | SMASH_CONTAINERS | OPEN_DOOR_WEAK
///////////////// GHOULS ////////////////////
/mob/living/simple_animal/hostile/necro/zombie/ghoul
name = "ghoul"
icon_state = "ghoul"
@@ -746,4 +713,179 @@
return ..(reverse_text(message))
/*Necromorphs
4 types
Slasher, melee based, simple mobs
Leaper, melee based, high mobility, latch onto foes, hide in vents
Puker, semi-ranged based, vomits a highly corrosive cone of acid forwards towards its victims
Exploder, melee based, steady shuffle towards a target before exploding. Explodes on death
*/
/mob/living/simple_animal/hostile/necro/necromorph
name = "necromorph"
desc = "A twisted husk of what was once human, repurposed to kill."
speak_emote = list("roars")
icon = 'icons/mob/monster_big.dmi'
icon_state = "nmorph_standard"
icon_living = "nmorph_standard"
icon_dead = "nmorph_dead"
health = 80
maxHealth = 80
melee_damage_lower = 25
melee_damage_upper = 50
attacktext = "slashes"
attack_sound = 'sound/weapons/bladeslice.ogg'
faction = "marker"
speed = 5
size = SIZE_BIG
move_to_delay = 4
canRegenerate = 1
minRegenTime = 30 SECONDS
maxRegenTime = 60 SECONDS
environment_smash_flags = SMASH_LIGHT_STRUCTURES | SMASH_CONTAINERS | OPEN_DOOR_STRONG | OPEN_DOOR_SMART
/mob/living/simple_animal/hostile/necro/necromorph/leaper
desc = "A twisted husk of what was once human. Sporting razor-sharp fangs, along with a long scythe-tipped tail."
icon_state = "nmorph_leaper"
icon_living = "nmorph_leaper"
icon_dead = "nmorph_leaper_dead"
speed = 1
health = 45
maxHealth = 45
melee_damage_lower = 10
melee_damage_upper = 20
attacktext = "slashes"
attack_sound = 'sound/weapons/slashmiss.ogg'
ranged = 1
ranged_cooldown_cap = 8
ranged_message = "leaps"
/mob/living/simple_animal/hostile/necro/necromorph/leaper/Shoot(var/atom/target, var/atom/start, var/mob/user, var/bullet = 0)
if(locked_to)
return 0
src.throw_at(get_turf(target),7,1)
return 1
/mob/living/simple_animal/hostile/necro/necromorph/leaper/to_bump(atom/A)
if(throwing && isliving(A) && CanAttack(A))
attach(A)
..()
/mob/living/simple_animal/hostile/necro/necromorph/leaper/Life()
update_climb()
if(!isUnconscious())
if(stance == HOSTILE_STANCE_IDLE && !client)
var/list/can_see = view(get_turf(src), vision_range/2) //Nothing too close for comfort
var/all_clear = 1
for(var/mob/living/L in can_see)
if(!istype(L, /mob/living/simple_animal/hostile/necro/necromorph) && !(L.isDead()))
all_clear = 0
if(!istype(loc, /obj/machinery/atmospherics/unary/vent_pump) && istype(loc, /turf) && all_clear)
stop_automated_movement = 0
for(var/obj/machinery/atmospherics/unary/vent_pump/vent in can_see)
if(Adjacent(vent))
//Climb in
visible_message("<span class = 'warning'>\The [src] starts climbing into \the [vent]!</span>")
forceMove(vent)
stop_automated_movement = 1
break
else
if(prob(30))
step_towards(src, vent)//Step towards it
if(environment_smash_flags & SMASH_LIGHT_STRUCTURES)
EscapeConfinement()
break
else if(istype(loc, /obj/machinery/atmospherics/unary/vent_pump) && !all_clear)
loc.visible_message("<span class = 'warning'>\The [src] clambers out of \the [loc]!</span>")
forceMove(get_turf(loc))
..()
/mob/living/simple_animal/hostile/necro/necromorph/leaper/verb/ventcrawl()
set name = "Crawl through Vent"
set desc = "Enter an air vent and crawl through the pipe system."
set category = "Object"
var/pipe = start_ventcrawl()
if(pipe)
handle_ventcrawl(pipe)
/mob/living/simple_animal/hostile/necro/necromorph/leaper/proc/update_climb()
var/mob/living/L = locked_to
if(!istype(L))
return
if(incapacitated())
return detach()
if(!CanAttack(L))
return detach()
/mob/living/simple_animal/hostile/necro/necromorph/leaper/proc/detach()
unlock_from()
pixel_x = initial(pixel_x)
pixel_y = initial(pixel_y)
/mob/living/simple_animal/hostile/necro/necromorph/leaper/proc/attach(mob/living/victim)
victim.lock_atom(src, /datum/locking_category/)
victim.visible_message("<span class = 'warning'>\The [src] latches onto \the [victim]!</span>","<span class = 'userdanger'>\The [src] latches onto you!</span>")
pixel_x = rand(-8,8) * PIXEL_MULTIPLIER
pixel_y = rand(0,16) * PIXEL_MULTIPLIER
/mob/living/simple_animal/hostile/necro/necromorph/leaper/AttackingTarget()
.=..()
if(locked_to == target && isliving(target))
var/mob/living/L = target
if(prob(10))
to_chat(L, "<span class='userdanger'>\The [src] throws you to the ground!</span>")
var/incapacitation_duration = rand(2, 5)
L.Knockdown(incapacitation_duration)
L.Stun(incapacitation_duration)
/mob/living/simple_animal/hostile/necro/necromorph/leaper/adjustBruteLoss(amount)
.=..()
if(locked_to && prob(amount * 5))
detach()
/mob/living/simple_animal/hostile/necro/necromorph/exploder
desc = "A twisted husk of what was once human. A large glowing pustule attached to their left arm."
icon_state = "nmorph_exploder"
icon_living = "nmorph_exploder"
icon_dead = ""
health = 30
maxHealth = 30
speed = 2
/mob/living/simple_animal/hostile/necro/necromorph/exploder/AttackingTarget()
visible_message("<span class='warning'>\The [src] hits \the [target] with their left arm!</span>")
death()
/mob/living/simple_animal/hostile/necro/necromorph/exploder/death(var/gibbed = FALSE)
..(TRUE)
visible_message("<span class='warning'>\The [src] explodes!</span>")
var/turf/T = get_turf(src)
new /obj/effect/gibspawner/generic(T)
qdel(src)
explosion(T, -1, 1, 4, whodunnit = src)
/mob/living/simple_animal/hostile/necro/necromorph/puker
desc = "A twisted, engorged husk of what was once human. It reeks of stomach acid."
icon_state = "nmorph_puker"
icon_living = "nmorph_puker"
icon_dead = "nmorph_puker_dead"
ranged = 1
ranged_cooldown_cap = 20
projectiletype = /obj/item/projectile/puke
ranged_message = "pukes"
melee_damage_lower = 10
melee_damage_upper = 15

View File

@@ -1,240 +0,0 @@
/*Necromorphs
4 types
Slasher, melee based, simple mobs
Leaper, melee based, high mobility, latch onto foes, hide in vents
Puker, semi-ranged based, vomits a highly corrosive cone of acid forwards towards its victims
Exploder, melee based, steady shuffle towards a target before exploding. Explodes on death
*/
/mob/living/simple_animal/hostile/necromorph
name = "necromorph"
desc = "A twisted husk of what was once human, repurposed to kill."
speak_emote = list("roars")
icon = 'icons/mob/monster_big.dmi'
icon_state = "nmorph_standard"
icon_living = "nmorph_standard"
icon_dead = "nmorph_dead"
health = 80
maxHealth = 80
melee_damage_lower = 25
melee_damage_upper = 50
attacktext = "slashes"
attack_sound = 'sound/weapons/bladeslice.ogg'
faction = "marker"
speed = 5
size = SIZE_BIG
move_to_delay = 4
canRegenerate = 1
minRegenTime = 300
maxRegenTime = 1200
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
/mob/living/simple_animal/hostile/necromorph/leaper
desc = "A twisted husk of what was once human. Sporting razor-sharp fangs, along with a long scythe-tipped tail."
icon_state = "nmorph_leaper"
icon_living = "nmorph_leaper"
icon_dead = "nmorph_leaper_dead"
speed = 1
health = 45
maxHealth = 45
melee_damage_lower = 10
melee_damage_upper = 20
attacktext = "slashes"
attack_sound = 'sound/weapons/slashmiss.ogg'
minRegenTime = 240
maxRegenTime = 600
ranged = 1
ranged_cooldown_cap = 8
ranged_message = "leaps"
/mob/living/simple_animal/hostile/necromorph/leaper/Shoot(var/atom/target, var/atom/start, var/mob/user, var/bullet = 0)
if(locked_to)
return 0
src.throw_at(get_turf(target),7,1)
return 1
/mob/living/simple_animal/hostile/necromorph/leaper/to_bump(atom/A)
if(throwing && isliving(A) && CanAttack(A))
attach(A)
..()
/mob/living/simple_animal/hostile/necromorph/leaper/Life()
update_climb()
if(!isUnconscious())
if(stance == HOSTILE_STANCE_IDLE && !client)
var/list/can_see = view(get_turf(src), vision_range/2) //Nothing too close for comfort
var/all_clear = 1
for(var/mob/living/L in can_see)
if(!istype(L, /mob/living/simple_animal/hostile/necromorph) && !(L.isDead()))
all_clear = 0
if(!istype(loc, /obj/machinery/atmospherics/unary/vent_pump) && istype(loc, /turf) && all_clear)
stop_automated_movement = 0
for(var/obj/machinery/atmospherics/unary/vent_pump/vent in can_see)
if(Adjacent(vent))
//Climb in
visible_message("<span class = 'warning'>\The [src] starts climbing into \the [vent]!</span>")
forceMove(vent)
stop_automated_movement = 1
break
else
if(prob(30))
step_towards(src, vent)//Step towards it
if(environment_smash_flags & SMASH_LIGHT_STRUCTURES)
EscapeConfinement()
break
else if(istype(loc, /obj/machinery/atmospherics/unary/vent_pump) && !all_clear)
loc.visible_message("<span class = 'warning'>\The [src] clambers out of \the [loc]!</span>")
forceMove(get_turf(loc))
..()
/mob/living/simple_animal/hostile/necromorph/leaper/verb/ventcrawl()
set name = "Crawl through Vent"
set desc = "Enter an air vent and crawl through the pipe system."
set category = "Object"
var/pipe = start_ventcrawl()
if(pipe)
handle_ventcrawl(pipe)
/*
/mob/living/simple_animal/hostile/necromorph/leaper/CanAttack(var/atom/the_target)
to_chat(world, "[src] checking [the_target]")
if(istype(loc, /obj/machinery/atmospherics/unary/vent_pump/))
to_chat(world, "[src] looking at [the_target] in [loc]")
var/dist = get_dist(get_turf(src), the_target)
if(dist > 3)
to_chat(world, "Too far away")
return 0
return ..(the_target)
*/
/mob/living/simple_animal/hostile/necromorph/leaper/proc/update_climb()
var/mob/living/L = locked_to
if(!istype(L))
return
if(incapacitated())
return detach()
if(!CanAttack(L))
return detach()
/mob/living/simple_animal/hostile/necromorph/leaper/proc/detach()
unlock_from()
pixel_x = initial(pixel_x)
pixel_y = initial(pixel_y)
/mob/living/simple_animal/hostile/necromorph/leaper/proc/attach(mob/living/victim)
victim.lock_atom(src, /datum/locking_category/)
victim.visible_message("<span class = 'warning'>\The [src] latches onto \the [victim]!</span>","<span class = 'userdanger'>\The [src] latches onto you!</span>")
pixel_x = rand(-8,8) * PIXEL_MULTIPLIER
pixel_y = rand(0,16) * PIXEL_MULTIPLIER
/mob/living/simple_animal/hostile/necromorph/leaper/AttackingTarget()
.=..()
if(locked_to == target && isliving(target))
var/mob/living/L = target
if(prob(10))
to_chat(L, "<span class='userdanger'>\The [src] throws you to the ground!</span>")
var/incapacitation_duration = rand(2, 5)
L.Knockdown(incapacitation_duration)
L.Stun(incapacitation_duration)
/mob/living/simple_animal/hostile/necromorph/leaper/adjustBruteLoss(amount)
.=..()
if(locked_to && prob(amount * 5))
detach()
/mob/living/simple_animal/hostile/necromorph/exploder
desc = "A twisted husk of what was once human. A large glowing pustule attached to their left arm."
icon_state = "nmorph_exploder"
icon_living = "nmorph_exploder"
icon_dead = ""
health = 30
maxHealth = 30
speed = 2
/mob/living/simple_animal/hostile/necromorph/exploder/AttackingTarget()
visible_message("<span class='warning'>\The [src] hits \the [target] with their left arm!</span>")
death()
/mob/living/simple_animal/hostile/necromorph/exploder/death(var/gibbed = FALSE)
..(TRUE)
visible_message("<span class='warning'>\The [src] explodes!</span>")
var/turf/T = get_turf(src)
new /obj/effect/gibspawner/generic(T)
qdel(src)
explosion(T, -1, 1, 4, whodunnit = src)
/mob/living/simple_animal/hostile/necromorph/puker
desc = "A twisted, engorged husk of what was once human. It reeks of stomach acid."
icon_state = "nmorph_puker"
icon_living = "nmorph_puker"
icon_dead = "nmorph_puker_dead"
ranged = 1
ranged_cooldown_cap = 20
projectiletype = /obj/item/projectile/puke
ranged_message = "pukes"
melee_damage_lower = 10
melee_damage_upper = 15
/obj/item/projectile/puke
icon_state = "projectile_puke"
/obj/item/projectile/puke/New()
..()
create_reagents(500)
make_reagents()
/obj/item/projectile/puke/proc/make_reagents()
var/room_remaining = 500
var/poly_to_add = rand(100,200)
reagents.add_reagent(PACID, poly_to_add)
room_remaining -= poly_to_add
var/sulph_to_add = rand(100,200)
reagents.add_reagent(SACID, sulph_to_add)
room_remaining -= sulph_to_add
reagents.add_reagent(VOMIT, room_remaining)
/obj/item/projectile/puke/clear/make_reagents()
return
/obj/item/projectile/puke/on_hit(var/atom/atarget, var/blocked = 0)
..()
splash_sub(reagents, atarget, -1)
/obj/item/projectile/puke/process_step()
..()
var/turf/simulated/T = get_turf(src)
if(T) //The first time it runs, it won't work, it'll runtime
playsound(T, 'sound/effects/splat.ogg', 50, 1)
T.add_vomit_floor(src, 1, 1, 1)
sleep(1) //Slow the fuck down, hyperspeed vomit

View File

@@ -241,8 +241,6 @@ var/global/list/animal_count = list() //Stores types, and amount of animals of t
if(purge)
purge -= 1
isRegenerating = 0
//Movement
if((!client||deny_client_move) && !stop_automated_movement && wander && !anchored && (ckey == null) && !(flags & INVULNERABLE))
if(isturf(src.loc) && canmove) //This is so it only moves if it's not inside a closet, gentics machine, etc.
@@ -804,8 +802,9 @@ var/global/list/animal_count = list() //Stores types, and amount of animals of t
set waitfor = 0
isRegenerating = 1
sleep(rand(minRegenTime, maxRegenTime)) //Don't want it being predictable
src.resurrect()
src.revive()
if(src)
resurrect()
revive()
visible_message("<span class='warning'>[src] appears to wake from the dead, having healed all wounds.</span>")
isRegenerating = 0

View File

@@ -494,3 +494,36 @@
H.drop_item()
H.vomit(0,1)
return 0
/obj/item/projectile/puke
icon_state = "projectile_puke"
/obj/item/projectile/puke/New()
..()
create_reagents(500)
make_reagents()
/obj/item/projectile/puke/proc/make_reagents()
var/room_remaining = 500
var/poly_to_add = rand(100,200)
reagents.add_reagent(PACID, poly_to_add)
room_remaining -= poly_to_add
var/sulph_to_add = rand(100,200)
reagents.add_reagent(SACID, sulph_to_add)
room_remaining -= sulph_to_add
reagents.add_reagent(VOMIT, room_remaining)
/obj/item/projectile/puke/clear/make_reagents()
return
/obj/item/projectile/puke/on_hit(var/atom/atarget, var/blocked = 0)
..()
splash_sub(reagents, atarget, -1)
/obj/item/projectile/puke/process_step()
..()
var/turf/simulated/T = get_turf(src)
if(T) //The first time it runs, it won't work, it'll runtime
playsound(T, 'sound/effects/splat.ogg', 50, 1)
T.add_vomit_floor(src, 1, 1, 1)
sleep(1) //Slow the fuck down, hyperspeed vomit

View File

@@ -34,7 +34,7 @@
/mob/living/simple_animal/hostile/bear,
/mob/living/simple_animal/hostile/creature,
/mob/living/simple_animal/hostile/monster/skrite,
/mob/living/simple_animal/hostile/necromorph,
/mob/living/simple_animal/hostile/necro/necromorph,
)
else
spawn_type = pick(

View File

@@ -28,10 +28,10 @@
/mob/living/simple_animal/hostile/necro/zombie/putrid = 100,
/mob/living/simple_animal/hostile/necro/zombie/crimson = 250,)
if(2) //Necromorphs
mob_spawn = list(/mob/living/simple_animal/hostile/necromorph = 150,
/mob/living/simple_animal/hostile/necromorph/leaper = 90,
/mob/living/simple_animal/hostile/necromorph/puker = 120,
/mob/living/simple_animal/hostile/necromorph/exploder = 75,) //More necromorph mobs NOW
mob_spawn = list(/mob/living/simple_animal/hostile/necro/necromorph = 150,
/mob/living/simple_animal/hostile/necro/necromorph/leaper = 90,
/mob/living/simple_animal/hostile/necro/necromorph/puker = 120,
/mob/living/simple_animal/hostile/necro/necromorph/exploder = 75,) //More necromorph mobs NOW
if(3) //Randomized mobs
var/max_mobs = rand(3,7)
for(var/i=0 to max_mobs)

View File

@@ -46676,7 +46676,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/gibspawner/xeno,
/obj/effect/decal/cleanable/greenglow,
/mob/living/simple_animal/hostile/necromorph/puker{
/mob/living/simple_animal/hostile/necro/necromorph/puker{
desc = "A twisted, engorged husk of what was once Clown. It reeks of stomach acid.";
icon = 'icons/mob/clown_mobs.dmi';
icon_dead = "blob";
@@ -65182,7 +65182,7 @@
/area/lamprey/hellmaintenanceblob)
"cPK" = (
/obj/effect/decal/cleanable/spiderling_remains,
/mob/living/simple_animal/hostile/necromorph{
/mob/living/simple_animal/hostile/necro/necromorph{
desc = "A seriously ripped Clown with only one thing on its mind- Slashing you apart.";
faction = "hostile";
icon = 'icons/mob/clown_mobs.dmi';
@@ -96092,7 +96092,7 @@
/area/lamprey/thebelt)
"dZx" = (
/obj/structure/cage/autoclose,
/mob/living/simple_animal/hostile/necromorph/leaper,
/mob/living/simple_animal/hostile/necro/necromorph/leaper,
/turf/simulated/floor/plating,
/area/lamprey/xenobiology)
"dZy" = (
@@ -103994,7 +103994,7 @@
},
/area/lamprey/engineeringmaintenanceblob)
"erk" = (
/mob/living/simple_animal/hostile/necromorph{
/mob/living/simple_animal/hostile/necro/necromorph{
desc = "A seriously ripped Clown with only one thing on its mind- Slashing you apart.";
icon = 'icons/mob/clown_mobs.dmi';
icon_dead = "blob";
@@ -187051,7 +187051,7 @@
},
/area/lamprey/excavationtunnels)
"hEk" = (
/mob/living/simple_animal/hostile/necromorph/puker,
/mob/living/simple_animal/hostile/necro/necromorph/puker,
/turf/simulated/floor/plating{
icon_state = "asteroidfloor"
},
@@ -187331,7 +187331,7 @@
},
/area/lamprey/excavationtunnels)
"hFb" = (
/mob/living/simple_animal/hostile/necromorph,
/mob/living/simple_animal/hostile/necro/necromorph,
/turf/simulated/floor/plating{
icon_state = "asteroidfloor"
},
@@ -188814,7 +188814,7 @@
/area/lamprey/excavationtunnels)
"hIF" = (
/obj/item/stack/sheet/metal,
/mob/living/simple_animal/hostile/necromorph,
/mob/living/simple_animal/hostile/necro/necromorph,
/turf/simulated/floor/plating{
icon_state = "asteroidfloor"
},
@@ -191501,14 +191501,14 @@
"hNZ" = (
/obj/effect/decal/cleanable/crayon/fuckyou,
/obj/item/weapon/gun/bulletstorm,
/mob/living/simple_animal/hostile/necromorph,
/mob/living/simple_animal/hostile/necro/necromorph,
/turf/simulated/floor/plating{
icon_state = "asteroidfloor"
},
/area/lamprey/excavationtunnels)
"hOa" = (
/obj/effect/decal/cleanable/crayon/fuckyou,
/mob/living/simple_animal/hostile/necromorph,
/mob/living/simple_animal/hostile/necro/necromorph,
/turf/simulated/floor/plating{
icon_state = "asteroidfloor"
},
@@ -191530,7 +191530,7 @@
"hOd" = (
/obj/effect/decal/cleanable/crayon/fuckyou,
/obj/structure/hanging_lantern/dim,
/mob/living/simple_animal/hostile/necromorph,
/mob/living/simple_animal/hostile/necro/necromorph,
/turf/simulated/floor/plating{
icon_state = "asteroidfloor"
},
@@ -191538,7 +191538,7 @@
"hOe" = (
/obj/effect/decal/cleanable/crayon/fuckyou,
/obj/item/weapon/gun/banannon,
/mob/living/simple_animal/hostile/necromorph,
/mob/living/simple_animal/hostile/necro/necromorph,
/turf/simulated/floor/plating{
icon_state = "asteroidfloor"
},
@@ -191785,7 +191785,7 @@
/obj/structure/bed/chair{
dir = 8
},
/mob/living/simple_animal/hostile/necromorph,
/mob/living/simple_animal/hostile/necro/necromorph,
/turf/simulated/floor/plating{
icon_state = "asteroidfloor"
},
@@ -191794,7 +191794,7 @@
/obj/structure/bed/chair{
dir = 4
},
/mob/living/simple_animal/hostile/necromorph,
/mob/living/simple_animal/hostile/necro/necromorph,
/turf/simulated/floor/plating{
icon_state = "asteroidfloor"
},
@@ -191813,7 +191813,7 @@
dir = 8
},
/obj/structure/hanging_lantern/hook,
/mob/living/simple_animal/hostile/necromorph,
/mob/living/simple_animal/hostile/necro/necromorph,
/turf/simulated/floor/plating{
icon_state = "asteroidfloor"
},
@@ -196837,7 +196837,7 @@
/obj/structure/bed/chair{
dir = 1
},
/mob/living/simple_animal/hostile/necromorph/puker,
/mob/living/simple_animal/hostile/necro/necromorph/puker,
/turf/simulated/floor/plating{
icon_state = "asteroidfloor"
},

View File

@@ -227,7 +227,7 @@
"at" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
/mob/living/simple_animal/hostile/necromorph{
/mob/living/simple_animal/hostile/necro/necromorph{
health = 500;
melee_damage_lower = 50;
name = "Necromorph Specimen Alpha"

View File

@@ -2095,7 +2095,6 @@
#include "code\modules\mob\living\simple_animal\hostile\mushroom.dm"
#include "code\modules\mob\living\simple_animal\hostile\necro.dm"
#include "code\modules\mob\living\simple_animal\hostile\necro_powers.dm"
#include "code\modules\mob\living\simple_animal\hostile\necromorph.dm"
#include "code\modules\mob\living\simple_animal\hostile\pitbull.dm"
#include "code\modules\mob\living\simple_animal\hostile\rattlemebones.dm"
#include "code\modules\mob\living\simple_animal\hostile\scp_173.dm"