Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 15 additions & 14 deletions code/modules/clothing/gloves/miscellaneous.dm
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@

/obj/item/clothing/gloves/bracer/cuffs
name = "rabid cuffs"
desc = "Chainless manacles fashioned after one of the hungriest slaughter demons. Wearing these invokes a hunger in the wearer that can only be sated by bloodshed."
desc = "Wristbands fashioned after one of the hungriest slaughter demons. Wearing these invokes a hunger in the wearer that can only be sated by bloodshed."
icon_state = "cuff"
item_state = "cuff"
var/obj/effect/proc_holder/swipe/swipe_ability
Expand All @@ -116,7 +116,7 @@

obj/effect/proc_holder/swipe
name = "Swipe"
desc = "Swipe at a target area, dealing damage and consuming dead entities to heal yourself. Creatures take 30 damage while people and cyborgs take 10 damage. Consumed creatures explode into gibs and give the most healing, and people and cyborgs heal for the least. People and cyborgs who have been thoroughly burned and bruised heal you for slightly more! People are ineligible for total consumption."
desc = "Swipe at a target area, dealing damage to heal yourself. Creatures take 60 damage while people and cyborgs take 20 damage. Living creatures hit with this ability will heal the user for 13 brute/burn/poison while dead ones heal for 20 and get butchered, while killing a creature with a swipe will heal the user for 33. People and cyborgs hit will heal for 5."
action_background_icon_state = "bg_demon"
action_icon = 'icons/mob/actions/actions_items.dmi'
action_icon_state = "cuff"
Expand Down Expand Up @@ -154,32 +154,33 @@ obj/effect/proc_holder/swipe
return
if(!istype(T))
return
if(!(T in range(9, caller)))
to_chat(caller, warning("The target is too far!"))
return
new /obj/effect/temp_visual/bubblegum_hands/rightpaw(T)
new /obj/effect/temp_visual/bubblegum_hands/rightthumb(T)
to_chat(L, span_userdanger("A claw swipes at you!"))
to_chat(L, span_userdanger("Claws reach out from the floor and maul you!"))
to_chat(ranged_ability_user, "You summon claws at [L]'s location!")
L.visible_message(span_warning("[caller] rends [L]!"))
for(L in range(0,T))
playsound(T, 'sound/magic/demon_attack1.ogg', 80, 5, -1)
if(isanimal(L))
L.adjustBruteLoss(30)
L.adjustBruteLoss(60)
if(L.stat != DEAD)
caller.adjustBruteLoss(-13)
caller.adjustFireLoss(-13)
caller.adjustToxLoss(-13)
if(L.stat == DEAD)
L.gib()
to_chat(caller, span_notice("You're able to consume the body entirely!"))
caller.adjustBruteLoss(-20)
caller.adjustFireLoss(-20)
caller.adjustToxLoss(-20)
caller.blood_volume = BLOOD_VOLUME_NORMAL(caller)*1.10
L.adjustBruteLoss(10)
if(L.getBruteLoss()+L.getFireLoss() >= 299)
to_chat(caller, span_notice("You're able to consume a bit more of the body, as it was previously softened up!"))
caller.adjustBruteLoss(-15)
caller.adjustFireLoss(-15)
caller.adjustToxLoss(-15)
caller.blood_volume = BLOOD_VOLUME_NORMAL(caller)*1.05
if(L.stat == DEAD)
if(iscarbon(L))
L.adjustBruteLoss(20)
caller.adjustBruteLoss(-5)
caller.adjustFireLoss(-5)
caller.adjustToxLoss(-5)
caller.blood_volume = BLOOD_VOLUME_NORMAL(caller)*1.01
COOLDOWN_START(src, scan_cooldown, cooldown)
addtimer(CALLBACK(src, .proc/cooldown_over, ranged_ability_user), cooldown)
remove_ranged_ability()
Expand Down
28 changes: 22 additions & 6 deletions code/modules/mining/lavaland/necropolis_chests.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1136,9 +1136,10 @@ GLOBAL_LIST_EMPTY(bloodmen_list)
#define COOLDOWN 150
#define COOLDOWN_HUMAN 100
#define COOLDOWN_ANIMAL 60
#define COOLDOWN_SPLASH 100
/obj/item/melee/knuckles
name = "bloody knuckles"
desc = "Knuckles born of a desire for violence. Made to ensure their victims stay in the fight until there's a winner."
desc = "Knuckles born of a desire for violence. Made to ensure their victims stay in the fight until there's a winner. Activating these knuckles covers several meters ahead of the user with blood."
icon = 'icons/obj/lavaland/artefacts.dmi'
icon_state = "bloodyknuckle"
lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi'
Expand All @@ -1148,7 +1149,9 @@ GLOBAL_LIST_EMPTY(bloodmen_list)
force = 18
var/next_reach = 0
var/next_grip = 0
var/next_splash = 0
var/next_knuckle = 0
var/splash_range = 9
attack_verb = list("thrashed", "pummeled", "walloped")
actions_types = list(/datum/action/item_action/reach, /datum/action/item_action/visegrip)

Expand All @@ -1168,6 +1171,19 @@ GLOBAL_LIST_EMPTY(bloodmen_list)
return
next_knuckle = world.time + COOLDOWN_ANIMAL

/obj/item/melee/knuckles/attack_self(mob/living/user)
var/turf/T = get_turf(user)
if(next_splash > world.time)
to_chat(user, span_warning("You can't do that yet!"))
return
user.visible_message(span_warning("[user] splashes blood from their knuckles!"))
playsound(T, 'sound/effects/splat.ogg', 80, 5, -1)
for(var/i = 0 to splash_range)
if(T)
user.add_splatter_floor(T)
T = get_step(T,user.dir)
next_splash = world.time + COOLDOWN

/obj/item/melee/knuckles/ui_action_click(mob/living/user, action)
var/mob/living/U = user
if(istype(action, /datum/action/item_action/reach))
Expand Down Expand Up @@ -1575,15 +1591,15 @@ GLOBAL_LIST_EMPTY(bloodmen_list)

/obj/item/organ/grandcore/Remove(mob/living/carbon/H, special = 0)
H.faction -= "blooded"
H.RemoveSpell (/obj/effect/proc_holder/spell/targeted/touch/raise, /obj/effect/proc_holder/spell/aoe_turf/horde)
H.RemoveSpell (new /obj/effect/proc_holder/spell/aoe_turf/horde)
H.RemoveSpell (/obj/effect/proc_holder/spell/targeted/touch/raise)
H.RemoveSpell (/obj/effect/proc_holder/spell/aoe_turf/horde)
..()

/datum/action/item_action/organ_action/threebloodlings
name = "Summon bloodlings"
desc = "Summon a conjure a few bloodlings at the cost of 13% blood (8 brain damage for those without blood)."
desc = "Summon a conjure a few bloodlings at the cost of 6% blood or 8 brain damage for races without blood."
var/next_expulsion = 0
var/cooldown = 10 //wheres the risk if it has a reasonable cooldown?
var/cooldown = 10

/datum/action/item_action/organ_action/threebloodlings/Trigger()
var/mob/living/carbon/H = owner
Expand All @@ -1596,6 +1612,6 @@ GLOBAL_LIST_EMPTY(bloodmen_list)
to_chat(H, "<span class ='userdanger'>Your head pounds as you produce bloodlings!</span>")
else
to_chat(H, "<span class ='userdanger'>You spill your blood, and it comes to life as bloodlings!</span>")
H.blood_volume -= 70 //like 13% of your blood taken
H.blood_volume -= 35
spawn_atom_to_turf(/mob/living/simple_animal/hostile/asteroid/hivelordbrood/bloodling, owner, 3, TRUE) //think 1 in 4 is a good chance of not being targeted by fauna
next_expulsion = world.time + cooldown
4 changes: 2 additions & 2 deletions code/modules/spells/spell_types/conjure.dm
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@

/obj/effect/proc_holder/spell/aoe_turf/horde
name = "Horde"
desc = "Bring all your existing bloodmen to you at the cost of 18% blood (15 brain damage for those without blood)."
desc = "Bring all your existing bloodmen to you at the cost of 3% blood per bloodman or 5 brain damage per bloodman if you're a bloodless race."
action_icon = 'icons/mob/actions/actions_cult.dmi'
action_icon_state = "horde"
var/list/summon_type = list("/mob/living/simple_animal/hostile/asteroid/hivelord/legion/bloodman")
Expand All @@ -123,7 +123,7 @@
user.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5)
to_chat(usr, span_notice("<span class ='userdanger'>You can almost feel your brain writhing as you call your bloodmen to you.</span>"))
else
user.blood_volume -= 30
user.blood_volume -= 15
to_chat(usr, span_notice("<span class ='userdanger'>You feel yourself becoming paler with every minion called.</span>"))
if(T)
bloodman.forceMove(T)
Expand Down
12 changes: 6 additions & 6 deletions code/modules/spells/spell_types/godhand.dm
Original file line number Diff line number Diff line change
Expand Up @@ -141,18 +141,19 @@

/obj/item/melee/touch_attack/raisehand
name = "\improper raise bloodman"
desc = "Blood covers your hand like a glove as it waits for a new host."
desc = "Prepare to raise a bloodman for about 5% of your blood or 5 brain damage if you're a bloodless race."
on_use_sound = 'sound/magic/wandodeath.ogg'
icon_state = "flagellation"
item_state = "hivehand"
color = "#FF0000"

/obj/item/melee/touch_attack/raisehand/afterattack(atom/target, mob/living/carbon/user, proximity)
var/mob/living/carbon/human/M = target
if(!ishuman(M) || M.stat != DEAD)
to_chat(M, span_notice("You must be targeting a dead humanoid!"))
to_chat(user, span_notice("You must be targeting a dead humanoid!"))
return
if(GLOB.bloodmen_list.len > 2)
to_chat(M, span_notice("You can't control that many minions!"))
to_chat(user, span_notice("You can't control that many minions!"))
return
if(NOBLOOD in M.dna.species.species_traits)
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5)
Expand All @@ -163,9 +164,8 @@
L.stored_mob = M
M.forceMove(L)
qdel(src)
user.blood_volume -= 50 // 9% blood cost, cheaper than the other spell because its not like you can stop near a corpse or find one near you in a fight
to_chat(user, "<span class ='userdanger'>You curse the body with your blood, leaving you feeling a bit light-headed.</span>")

user.blood_volume -= 25
to_chat(user, span_notice("You curse the body with your blood, leaving you feeling a bit light-headed."))

/obj/item/melee/touch_attack/pacifism
name = "\improper pacifism touch"
Expand Down