This commit is contained in:
Artur
2019-12-03 23:09:11 +02:00
parent 90113838a7
commit af4eaf7f0f
10 changed files with 69 additions and 19 deletions
@@ -5,7 +5,7 @@
desc = "Snap restraints with ease, or deal terrible damage with your bare hands."
button_icon_state = "power_strength"
bloodcost = 10
cooldown = 600
cooldown = 130
target_range = 1
power_activates_immediately = TRUE
message_Trigger = ""//"Whom will you subvert to your will?"
@@ -41,22 +41,22 @@
/datum/action/bloodsucker/targeted/brawn/CheckCanTarget(atom/A, display_error)
// DEFAULT CHECKS (Distance)
if (!..()) // Disable range notice for Brawn.
if(!..()) // Disable range notice for Brawn.
return FALSE
// Must outside Closet to target anyone!
if (!isturf(owner.loc))
if(!isturf(owner.loc))
return FALSE
// Check: Self
if (A == owner)
if(A == owner)
return FALSE
// Target Type: Living
if (isliving(A))
if(isliving(A))
return TRUE
// Target Type: Door
else if (upgrade_canDoor && istype(A, /obj/machinery/door))
else if(upgrade_canDoor && istype(A, /obj/machinery/door))
return TRUE
// Target Type: Closet
else if (upgrade_canLocker && istype(A, /obj/structure/closet))
else if(upgrade_canLocker && istype(A, /obj/structure/closet))
return TRUE
return ..() // yes, FALSE! You failed if you got here! BAD TARGET
@@ -65,17 +65,17 @@
var/mob/living/carbon/target = A
var/mob/living/user = owner
// Target Type: Mob
if (isliving(target))
if(isliving(target))
var/mob/living/carbon/user_C = user
var/hitStrength = user_C.dna.species.punchdamagehigh * 1.25 + 2
var/hitStrength = user_C.dna.species.punchdamagehigh * 1.3 + 5
// Knockdown!
var/powerlevel = min(7, 1 + level_current)
if (rand(10 + powerlevel) >= 5)
target.visible_message("<span class='danger'>[user] has knocked [target] down!</span>", \
"<span class='userdanger'>[user] has knocked you down!</span>", null, COMBAT_MESSAGE_RANGE)
target.Knockdown( min(5, rand(10, 10 * powerlevel)) )
var/powerlevel = min(5, 1 + level_current)
if(rand(5 + powerlevel) >= 5)
target.visible_message("<span class='danger'>[user] lands a vicious punch, sending [target] away!</span>", \
"<span class='userdanger'>[user] has landed a horrifying punch on you, sending you flying!!</span>", null, COMBAT_MESSAGE_RANGE)
target.Knockdown(min(5, rand(10, 10 * powerlevel)) )
// Chance of KO
if (rand(3 + powerlevel) >= 5 && target.stat <= UNCONSCIOUS)
if(rand(6 + powerlevel) >= 6 && target.stat <= UNCONSCIOUS)
target.Unconscious(40)
// Attack!
playsound(get_turf(target), 'sound/weapons/punch4.ogg', 60, 1, -1)
+1 -1
View File
@@ -36,7 +36,7 @@
if(bleed_rate <= 0)
bleed_rate = 0
if (HAS_TRAIT(src, TRAIT_NOPULSE)) //Bloodsuckers don't need to be here.
if(HAS_TRAIT(src, TRAIT_NOMARROW)) //Bloodsuckers don't need to be here.
return
if(bodytemperature >= TCRYO && !(HAS_TRAIT(src, TRAIT_NOCLONE))) //cryosleep or husked people do not pump the blood.
@@ -44,7 +44,7 @@
C.faction |= "slime"
/datum/species/jelly/spec_life(mob/living/carbon/human/H)
if(H.stat == DEAD && HAS_TRAIT(src, TRAIT_NOMARROW)) //can't farm slime jelly from a dead slime/jelly person indefinitely, and no regeneration for vampires
if(H.stat == DEAD || HAS_TRAIT(H, TRAIT_NOMARROW)) //can't farm slime jelly from a dead slime/jelly person indefinitely, and no regeneration for vampires
return
if(!H.blood_volume)
H.blood_volume += 5
@@ -610,6 +610,8 @@ All effects don't start immediately, but rather get worse over time; the rate is
value = 1.3
/datum/reagent/consumable/ethanol/bloody_mary/on_mob_life(mob/living/carbon/C)
if((HAS_TRAIT(C, TRAIT_NOMARROW)))
return
if(C.blood_volume < (BLOOD_VOLUME_NORMAL*C.blood_ratio))
C.blood_volume = min((BLOOD_VOLUME_NORMAL*C.blood_ratio), C.blood_volume + 3) //Bloody Mary quickly restores blood loss.
..()
@@ -355,6 +355,8 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
value = 1
/datum/reagent/medicine/salglu_solution/on_mob_life(mob/living/carbon/M)
if((HAS_TRAIT(M, TRAIT_NOMARROW)))
return
if(last_added)
M.blood_volume -= last_added
last_added = 0
@@ -38,6 +38,8 @@
L.add_blood_DNA(list(data["blood_DNA"] = data["blood_type"]))
/datum/reagent/blood/on_mob_life(mob/living/carbon/C) //Because lethals are preferred over stamina. damnifino.
if((HAS_TRAIT(C, TRAIT_NOMARROW)))
return //We dont want vampires getting toxed from blood
var/blood_id = C.get_blood_id()
if((blood_id == "blood" || blood_id == "jellyblood"))
if(!data || !(data["blood_type"] in get_safe_blood(C.dna.blood_type))) //we only care about bloodtype here because this is where the poisoning should be
@@ -1116,6 +1118,8 @@
color = "#c2391d"
/datum/reagent/iron/on_mob_life(mob/living/carbon/C)
if((HAS_TRAIT(C, TRAIT_NOMARROW)))
return
if(C.blood_volume < (BLOOD_VOLUME_NORMAL*C.blood_ratio))
C.blood_volume += 0.01 //we'll have synthetics from medbay.
..()
@@ -98,7 +98,7 @@
/datum/nanite_program/blood_restoring/check_conditions()
if(iscarbon(host_mob))
var/mob/living/carbon/C = host_mob
if(C.blood_volume >= (BLOOD_VOLUME_SAFE*C.blood_ratio))
if(C.blood_volume >= (BLOOD_VOLUME_SAFE*C.blood_ratio) || (HAS_TRAIT(C, TRAIT_NOMARROW)))
return FALSE
else
return FALSE