diff --git a/code/modules/mob/living/bloodcrawl.dm b/code/modules/mob/living/bloodcrawl.dm
index a0035761ded..8f2cfc88a03 100644
--- a/code/modules/mob/living/bloodcrawl.dm
+++ b/code/modules/mob/living/bloodcrawl.dm
@@ -3,20 +3,6 @@
#define BLOODCRAWL_EAT 2
/mob/living/proc/phaseout(var/obj/effect/decal/cleanable/B)
-
- if(iscarbon(src))
- var/mob/living/carbon/C = src
- if(C.l_hand || C.r_hand)
- C << "You may not hold items while blood crawling!"
- return 0
- var/obj/item/weapon/bloodcrawl/B1 = new(C)
- var/obj/item/weapon/bloodcrawl/B2 = new(C)
- B1.icon_state = "bloodhand_left"
- B2.icon_state = "bloodhand_right"
- C.put_in_hands(B1)
- C.put_in_hands(B2)
- C.regenerate_icons()
-
var/mob/living/kidnapped = null
var/turf/mobloc = get_turf(src.loc)
var/turf/bloodloc = get_turf(B.loc)
@@ -43,11 +29,10 @@
if(istype(src.pulling, /mob/living/))
var/mob/living/victim = src.pulling
if(victim.stat == CONSCIOUS)
- src.visible_message("[victim] kicks free of [B] just before entering it!")
+ src.visible_message("[victim] kicks free of \the [src] at the last second!")
else
victim.loc = holder///holder
- victim.emote("scream")
- src.visible_message("[src] drags [victim] into [B]!")
+ src.visible_message("\The [src] drags [victim] into [B]!")
kidnapped = victim
flick("jaunt",animation)
src.loc = holder
@@ -59,44 +44,32 @@
sleep(6)
if (animation)
qdel(animation)
- for(var/i = 3; i > 0; i--)
- playsound(get_turf(src),'sound/misc/Demon_consume.ogg', 100, 1)
- sleep(30)
- if (kidnapped)
- src << "You devour [kidnapped]. Your health is fully restored."
- src.adjustBruteLoss(-1000)
- src.adjustFireLoss(-1000)
- src.adjustOxyLoss(-1000)
- src.adjustToxLoss(-1000)
+ playsound(get_turf(src),'sound/misc/Demon_consume.ogg', 100, 1)
+ sleep(30)
+ playsound(get_turf(src),'sound/misc/Demon_consume.ogg', 100, 1)
+ sleep(30)
+ playsound(get_turf(src),'sound/misc/Demon_consume.ogg', 100, 1)
+ sleep(30)
+ src << "You devour [kidnapped]. Your health is fully restored."
+ src.adjustBruteLoss(-1000)
+ src.adjustFireLoss(-1000)
+ src.adjustOxyLoss(-1000)
+ src.adjustToxLoss(-1000)
+ kidnapped.ghostize()
+ qdel(kidnapped)
+ if (istype(src, /mob/living/simple_animal/slaughter)) //rason, do not want humans to get this
- if (istype(src, /mob/living/simple_animal/slaughter)) //rason, do not want humans to get this
-
- var/mob/living/simple_animal/slaughter/demon = src
- demon.devoured++
- kidnapped << "You feel teeth sink into your flesh, and the--"
- kidnapped.adjustBruteLoss(1000)
- kidnapped.loc = src
- demon.consumed_mobs.Add(kidnapped)
- else
- kidnapped.ghostize()
- qdel(kidnapped)
- else
- src << "You happily devour... nothing? Your meal vanished at some point!"
+ var/mob/living/simple_animal/slaughter/demon = src
+ demon.devoured++
else
sleep(6)
if (animation)
qdel(animation)
src.notransform = 0
-/obj/item/weapon/bloodcrawl
- name = "blood crawl"
- desc = "You are unable to hold anything while in this form."
- icon = 'icons/effects/blood.dmi'
- flags = NODROP
-
/mob/living/proc/phasein(var/obj/effect/decal/cleanable/B)
if(src.notransform)
- src << "Finish eating first!"
+ src << "Finish eating first!"
else
var/atom/movable/overlay/animation = new /atom/movable/overlay( B.loc )
animation.name = "odd blood"
@@ -107,34 +80,19 @@
animation.layer = 5
animation.master = B.loc
animation.dir = src.dir
- B.visible_message("[B] starts to bubble...")
- if(!do_after(src, 20, target = B))
- return
- if(!B)
- return
+ flick("jauntup",animation)
src.loc = B.loc
src.client.eye = src
- if (prob(25) && istype(src, /mob/living/simple_animal/slaughter))
+ if (prob(25))
var/list/voice = list('sound/hallucinations/behind_you1.ogg','sound/hallucinations/im_here1.ogg','sound/hallucinations/turn_around1.ogg','sound/hallucinations/i_see_you1.ogg')
playsound(get_turf(src), pick(voice),50, 1, -1)
src.visible_message("\The [src] rises out of \the [B]!")
playsound(get_turf(src), 'sound/misc/exit_blood.ogg', 100, 1, -1)
- flick("jauntup",animation)
qdel(src.holder)
src.holder = null
- if(iscarbon(src))
- var/mob/living/carbon/C = src
- for(var/obj/item/weapon/bloodcrawl/BC in C)
- C.flags = null
- C.unEquip(BC)
- qdel(BC)
- var/oldcolor = src.color
- src.color = B.color
- sleep(6)//wait for animation to finish
+ sleep(6)
if(animation)
qdel(animation)
- spawn(24)//was 30, accounting for the above spawn 6
- src.color = oldcolor
/obj/effect/decal/cleanable/blood/CtrlClick(mob/living/user)
..()
diff --git a/code/modules/mob/living/simple_animal/slaughter/slaughter.dm b/code/modules/mob/living/simple_animal/slaughter/slaughter.dm
index 5bde734b34e..a54b0e0e1e2 100644
--- a/code/modules/mob/living/simple_animal/slaughter/slaughter.dm
+++ b/code/modules/mob/living/simple_animal/slaughter/slaughter.dm
@@ -1,9 +1,9 @@
//////////////////The Monster
/mob/living/simple_animal/slaughter
- name = "slaughter demon"
- real_name = "slaughter demon"
- desc = "A large, menacing creature covered in armored black scales. You should run."
+ name = "Slaughter Demon"
+ real_name = "Slaughter Demon"
+ desc = "You should run."
speak = list("ire", "ego", "nahlizet", "certum", "veri", "jatkaa", "balaq", "mgar", "karazet", "geeri", "orkan", "allaq")
speak_emote = list("gurgles")
emote_hear = list("wails","screeches")
@@ -43,7 +43,6 @@
var/devoured = 0
- var/list/consumed_mobs = list()
var/list/nearby_mortals = list()
var/cooldown = 0
@@ -62,7 +61,6 @@
src.mind.current.verbs += /mob/living/simple_animal/slaughter/proc/slaughterWhisper
src << src.playstyle_string
src << "You are not currently in the same plane of existence as the station. Ctrl+Click a blood pool to manifest."
- src << 'sound/misc/demon_dies.ogg'
if(!(vialspawned))
var/datum/objective/slaughter/objective = new
var/datum/objective/demonFluff/fluffObjective = new
@@ -88,16 +86,9 @@
new /obj/effect/decal/cleanable/blood (src.loc)
new /obj/effect/gibspawner/generic(get_turf(src))
new /obj/effect/gibspawner/generic(get_turf(src))
- var/obj/effect/decal/cleanable/blood/innards = new (get_turf(src))
- innards.icon = 'icons/obj/surgery.dmi'
- innards.icon_state = "innards"
- innards.name = "pile of viscera"
- innards.desc = "A repulsive pile of guts and gore."
- new /obj/item/organ/heart/demon(src.loc)
playsound(get_turf(src),'sound/misc/demon_dies.ogg', 200, 1)
- visible_message("[src] screams in anger as it collapses into a puddle of viscera, its most recent meals spilling out of it.")
- for(var/mob/living/M in consumed_mobs)
- M.loc = get_turf(src)
+ new /obj/item/weapon/demonheart (src.loc)
+ visible_message("The [src] screams in anger as its form collapes into a pool of viscera.")
ghostize()
qdel(src)
@@ -106,7 +97,7 @@
/mob/living/simple_animal/slaughter/phasein()
..()
speed = 0
- boost = world.time + 60
+ boost = world.time + 30
////////////////////The Powers
@@ -137,30 +128,23 @@
//////////The Loot
-//The loot from killing a slaughter demon - can be consumed to allow the user to blood crawl
-/obj/item/organ/heart/demon
- name = "demon heart"
- desc = "Still it beats furiously, emanating an aura of utter hate."
+/obj/item/weapon/demonheart
+ name = "demon's heart"
+ desc = "It's still faintly beating with rage"
icon = 'icons/obj/surgery.dmi'
- icon_state = "demon_heart"
+ icon_state = "heart-on"
origin_tech = "combat=5;biotech=8"
-/obj/item/organ/internal/heart/demon/attack(mob/M, mob/living/carbon/user, obj/target)
- if(M != user)
- return ..()
- user.visible_message("[user] raises [src] to their mouth and tears into it with their teeth!", \
- "An unnatural hunger consumes you. You raise [src] your mouth and devour it!")
- playsound(user, 'sound/misc/Demon_consume.ogg', 50, 1)
+/obj/item/weapon/demonheart/attack_self(mob/living/user)
+ visible_message("[user] feasts upon the [src].")
if(user.bloodcrawl == 0)
- user.visible_message("[user]'s eyes flare a deep crimson!", \
- "You feel a strange power seep into your body... you have absorbed the demon's blood-travelling powers!")
+ user << "You absorb some of the demon's power!"
user.bloodcrawl = BLOODCRAWL
else if(user.bloodcrawl == 1)
+ user << "You absorb some of the demon's power!"
user << "You feel diffr- CONSUME THEM! "
user.bloodcrawl = BLOODCRAWL_EAT
- else
- user <<"...and you don't feel any different."
qdel(src)
diff --git a/icons/effects/blood.dmi b/icons/effects/blood.dmi
index 1c971f8d3f4..c32e3c508a4 100644
Binary files a/icons/effects/blood.dmi and b/icons/effects/blood.dmi differ
diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi
index 011fb04b816..9688bbdccc5 100644
Binary files a/icons/obj/surgery.dmi and b/icons/obj/surgery.dmi differ