More Revenant Tweaks (#11146)

This commit is contained in:
Geeves
2021-02-11 22:27:48 +01:00
committed by GitHub
parent e84e55bcc4
commit 01bb640e14
15 changed files with 138 additions and 50 deletions
+40
View File
@@ -0,0 +1,40 @@
#define BASH_SLASH "HHH"
/datum/martial_art/revenant
name = "Revenant"
help_verb = /datum/martial_art/revenant/proc/revenant_help
no_guns = TRUE
no_guns_message = "Revenants cannot use guns."
/datum/martial_art/revenant/proc/check_streak(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
if(findtext(streak, BASH_SLASH))
streak = ""
bash_slash(A, D)
return TRUE
return FALSE
/datum/martial_art/revenant/harm_act(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
add_to_streak("H", D)
if(check_streak(A, D))
return TRUE
basic_hit(A, D)
return TRUE
/datum/martial_art/revenant/proc/bash_slash(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
A.do_attack_animation(D)
D.visible_message(SPAN_DANGER("[A] bashes [D] away!"), SPAN_DANGER("[A] bashes you away!"))
D.apply_damage(rand(5, 10), BRUTE, damage_flags = DAM_SHARP)
var/throw_range = rand(1, 2)
D.throw_at(get_step_away(D, A, throw_range), throw_range, THROWNOBJ_KNOCKBACK_SPEED / 3, A, FALSE)
playsound(get_turf(D), 'sound/weapons/slash.ogg', 25, 1, -1)
return TRUE
/datum/martial_art/revenant/proc/revenant_help()
set name = "Recall Revenant Combat"
set desc = "Remember the martial techniques of the bluespace masters."
set category = "Abilities"
to_chat(usr, "<b><i>You think of your former dimension...</i></b>")
to_chat(usr, "<span class='notice'>Bash Slash</span>: Harm Harm Harm. Deliver a strong slashing strike against the enemy, pushing them away.")
#undef BASH_SLASH
@@ -123,6 +123,8 @@
H.gender = NEUTER
H.universal_understand = TRUE
H.add_language(LANGUAGE_REVENANT_RIFTSPEAK)
var/datum/martial_art/revenant/R = new /datum/martial_art/revenant()
R.teach(H)
/datum/species/revenant/get_random_name()
return "Revenant"
@@ -133,7 +135,7 @@
return FALSE
/datum/species/revenant/bullet_act(var/obj/item/projectile/P, var/def_zone, var/mob/living/carbon/human/H)
if((istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) && prob(30))
if((istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) && prob(20))
H.visible_message(SPAN_CULT("The [P.name] gets absorbed by [H]!"), SPAN_CULT("You absorb the [P.name]!"))
return -1
return ..()
+7
View File
@@ -116,6 +116,13 @@
/mob/living/carbon/alien/diona/is_diona()
return DIONA_NYMPH
/proc/is_mob_special(A) // determines special mobs. has restrictions on certain things, like welderbombing
if(isrevenant(A))
return TRUE
if(iszombie(A))
return TRUE
return FALSE
/proc/isskeleton(A)
if(istype(A, /mob/living/carbon/human) && (A:get_species() == SPECIES_SKELETON))
return 1
@@ -65,6 +65,9 @@
return
if (O.iswrench())
if(use_check(user, USE_DISALLOW_SPECIALS))
to_chat(user, SPAN_WARNING("A strange force prevents you from doing this.")) //there is no way to justify this icly
return
if(can_tamper && user.a_intent == I_HURT)
user.visible_message("<span class='warning'>\The [user] wrenches \the [src]'s faucet [is_leaking ? "closed" : "open"].</span>","<span class='warning'>You wrench \the [src]'s faucet [is_leaking ? "closed" : "open"]</span>")
is_leaking = !is_leaking