mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-15 17:13:46 +01:00
Add new ability
blood pustile..ewwwww
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user