Add new ability

blood pustile..ewwwww
This commit is contained in:
Aurorablade
2015-06-27 17:50:10 -04:00
parent ab820dfb71
commit ed2a8850bd
4 changed files with 119 additions and 2 deletions
@@ -0,0 +1,99 @@
//yes i did stealfrom blobcode...
/obj/effect/bloodnode
name = "blood pustilue"
icon = 'icons/effects/blood.dmi'
icon_state = "bloodnode"
var/health = 100
anchored = 1
density = 1
var/lastblood = 0
var/nodecount = 0
New(loc, var/h = 100)
nodecount +=1
processing_objects.Add(src)
..(loc, h)
Destroy()
nodecount -= 1
processing_objects.Remove(src)
..()
return
process()
if(lastblood == 0 || (world.time - lastblood) > 600)
src.visible_message("pulse!")
var/obj/effect/decal/cleanable/blood/splatter/blooddecal = new (src.loc)
playsound(get_turf(src), 'sound/effects/splat.ogg', 50, 1)
//throw that then use a gibspawner
new /obj/effect/gibspawner/human(get_turf(src))
var/atom/bloodtarget = get_edge_target_turf(src, get_dir(src, get_step_away(src, src)))
blooddecal.throw_at(get_edge_target_turf(bloodtarget,pick(alldirs)),rand(5,15),5)
lastblood += world.time
return
proc/Delete()
qdel(src)
update_icon()
src.visible_message("[health]")
if(health <= 0)
playsound(get_turf(src), 'sound/effects/gib.ogg', 50, 1)
new /obj/effect/gibspawner/human(get_turf(src))
Delete()
return
return
ex_act(severity)
var/damage = 150
health -= ((damage - (severity * 5)))
update_icon()
return
bullet_act(var/obj/item/projectile/Proj)
..()
health -= (Proj.damage)
update_icon()
return 0
attackby(var/obj/item/weapon/W, var/mob/living/user, params)
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src)
playsound(get_turf(src), 'sound/effects/attackblob.ogg', 50, 1)
//new /datum/artifact_effect/badfeeling/DoEffectTouch(user)
src.visible_message("\red <B>The [src.name] has been attacked with \the [W][(user ? " by [user]." : ".")]")
var/damage = 0
switch(W.damtype)
if("fire")
damage = (W.force)
if(istype(W, /obj/item/weapon/weldingtool))
playsound(get_turf(src), 'sound/items/Welder.ogg', 100, 1)
if("brute")
damage = (W.force)
health -= damage
update_icon()
return
attack_hand(var/mob/user)
user << "You REALLY do not want to touch that bare handed."
return
attack_animal(mob/living/simple_animal/M as mob)
M.changeNext_move(CLICK_CD_MELEE)
M.do_attack_animation(src)
playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1)
src.visible_message("<span class='danger'>The [src.name] has been attacked by \the [M]!</span>")
var/damage = rand(M.melee_damage_lower, M.melee_damage_upper)
if(!damage) // Avoid divide by zero errors
return
damage = max(damage)
health -= damage
update_icon()
return
@@ -160,7 +160,8 @@
src.pulling = FALSE
if (src.devoured == 5)
src.mind.current.verbs += /mob/living/simple_animal/slaughter/proc/goreThrow
src << "<span class='notice'> You have consumed enough to be able to throw Excess Gore."
src.mind.current.verbs += /mob/living/simple_animal/slaughter/proc/bloodSac
src << "<span class='notice'> You have consumed enough to be able to summon Excess Gore."
src.notransform = 0
if(!(src.eating))
new /obj/effect/gibspawner/human(get_turf(src))///Somewhere a janitor weeps..
@@ -292,7 +293,8 @@
//var/mob/living/carbon/human/M = pop(nearby_mortals)
if(nearby_mortals.len)
playsound(src.loc, pick('sound/hallucinations/wail.ogg','sound/hallucinations/veryfar_noise.ogg','sound/hallucinations/far_noise.ogg'), 50, 1, -3)
new /datum/artifact_effect/badfeeling/DoEffectPulse()
//new /datum/artifact_effect/badfeeling/DoEffectPulse()
for (var/mob/living/carbon/human/portal in nearby_mortals)
var/targetPart = pick("chest","groin","head","l_arm","r_arm","r_leg","l_leg","l_hand","r_hand","l_foot","r_foot")
portal.apply_damage(rand(5, 10), BRUTE, targetPart)
@@ -329,6 +331,21 @@
usr << "<span class='info'> you can only do that from the material plane!</span>"
//inverse of gore throw, can only use while phased OUT
/mob/living/simple_animal/slaughter/proc/bloodSac()
set name = "Blood Pustile"
set desc = "Summon a blood filled that expels blood."
set category = "Daemon"
if (src.phased)
if (gorecooldown == 0 || world.time - gorecooldown > 1200)
new /obj/effect/bloodnode(src.holder)
gorecooldown = world.time
else
usr << "<span class='info'>You need more time to do that again!</span>"
else
usr << "<span class='info'> you can only do that from outside the material plane!</span>"
//////////The Loot