diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 619c6fa3c982..7447108793e6 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -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 @@ -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" @@ -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() diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index b2151549626f..92144faa1626 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -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' @@ -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) @@ -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)) @@ -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 @@ -1596,6 +1612,6 @@ GLOBAL_LIST_EMPTY(bloodmen_list) to_chat(H, "Your head pounds as you produce bloodlings!") else to_chat(H, "You spill your blood, and it comes to life as bloodlings!") - 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 diff --git a/code/modules/spells/spell_types/conjure.dm b/code/modules/spells/spell_types/conjure.dm index 4cf19ca5dd0b..756ce49e4d13 100644 --- a/code/modules/spells/spell_types/conjure.dm +++ b/code/modules/spells/spell_types/conjure.dm @@ -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") @@ -123,7 +123,7 @@ user.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5) to_chat(usr, span_notice("You can almost feel your brain writhing as you call your bloodmen to you.")) else - user.blood_volume -= 30 + user.blood_volume -= 15 to_chat(usr, span_notice("You feel yourself becoming paler with every minion called.")) if(T) bloodman.forceMove(T) diff --git a/code/modules/spells/spell_types/godhand.dm b/code/modules/spells/spell_types/godhand.dm index 724248192792..0f18c664b5a2 100644 --- a/code/modules/spells/spell_types/godhand.dm +++ b/code/modules/spells/spell_types/godhand.dm @@ -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) @@ -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, "You curse the body with your blood, leaving you feeling a bit light-headed.") - + 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"