This commit is contained in:
kappa-sama
2021-01-12 01:42:55 -05:00
parent 63aaac873f
commit c751f114aa
9 changed files with 135 additions and 4 deletions

View File

@@ -40,6 +40,9 @@
#define STATUS_EFFECT_DETERMINED /datum/status_effect/determined //currently in a combat high from being seriously wounded
#define STATUS_EFFECT_MANTRA /datum/status_effect/mantra // a toggled self buff that makes you stronger and more resilient, but drains stamina over time
#define STATUS_EFFECT_ASURA /datum/status_effect/asura // like a weaker version of mantra, drains HP instead of stamina and has no armor
/////////////
// DEBUFFS //
/////////////

View File

@@ -647,3 +647,120 @@
if(D.severity == DISEASE_SEVERITY_POSITIVE)
continue
D.cure()
/datum/status_effect/mantra // available to wizards and admins alone, currently
id = "Mantra"
examine_text = "<span class='notice'>Their aura is filled with yellow energy!</span>"
alert_type = null
var/damageboost = 10
var/woundboost = 5
var/prev_hair_color
var/powerup
var/powerdown
/datum/status_effect/mantra/on_apply()
. = ..()
if(iscarbon(owner))
var/mob/living/carbon/human/H = owner
playsound(H, 'sound/magic/powerup.ogg', 50, 1)
H.add_filter("mantra_glow", 2, list("type" = "outline", "color" = "#edfa347a", "size" = 2))
prev_hair_color = H.hair_color
H.hair_color = "ffe11e"
H.update_hair()
ADD_TRAIT(H, TRAIT_PUGILIST, "Mantra")
ADD_TRAIT(H, TRAIT_NOSOFTCRIT, "Mantra")
ADD_TRAIT(H, TRAIT_STUNIMMUNE, "Mantra")
ADD_TRAIT(H, TRAIT_PUSHIMMUNE, "Mantra")
ADD_TRAIT(H, TRAIT_NOGUNS, "Mantra")
H.dna.species.punchdamagehigh += damageboost
H.dna.species.punchdamagelow += damageboost
H.dna.species.punchwoundbonus += woundboost
H.physiology.brute_mod *= 0.9 // slightly resilient against lethal damage, but...
H.physiology.burn_mod *= 0.9
H.physiology.stamina_mod *= 0.5 // very resistant to non-lethal damage, because they're already draining stamina every second
to_chat(H, "<span class='notice'>Your inner mantra coalesces around you, granting you incredible strength and durability - but at what cost?</span>")
/datum/status_effect/mantra/tick()
. = ..()
if(owner.health < HEALTH_THRESHOLD_FULLCRIT)
owner.remove_status_effect(STATUS_EFFECT_MANTRA)
return
if(owner.combat_flags & COMBAT_FLAG_HARD_STAMCRIT)
owner.remove_status_effect(STATUS_EFFECT_MANTRA)
return
if(iscarbon(owner))
var/mob/living/carbon/human/C = owner
C.adjustBruteLoss(-1) // slightly resilient against lethal damage
C.adjustFireLoss(-1)
C.adjustStaminaLoss(3) // in testing i personally found that 2/sec was too minimal and 4/sec was too much
/*if(SEND_SIGNAL(owner, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_ACTIVE)) // turning on combat mode flares up your aura
else*/
/datum/status_effect/mantra/on_remove()
. = ..()
if(iscarbon(owner))
var/mob/living/carbon/human/M = owner
playsound(M, 'sound/magic/powerdown.ogg', 50, 1)
M.remove_filter("mantra_glow")
M.hair_color = prev_hair_color
M.update_hair()
REMOVE_TRAIT(M, TRAIT_PUGILIST, "Mantra")
REMOVE_TRAIT(M, TRAIT_NOSOFTCRIT, "Mantra")
REMOVE_TRAIT(M, TRAIT_STUNIMMUNE, "Mantra")
REMOVE_TRAIT(M, TRAIT_PUSHIMMUNE, "Mantra")
REMOVE_TRAIT(M, TRAIT_NOGUNS, "Mantra")
M.dna.species.punchdamagehigh -= damageboost
M.dna.species.punchdamagelow -= damageboost
M.dna.species.punchwoundbonus -= woundboost
M.physiology.brute_mod /= 0.9
M.physiology.burn_mod /= 0.9
M.physiology.stamina_mod /= 0.5
to_chat(M, "<span class='notice'>Your inner mantra collapses, for now.</span>")
/datum/status_effect/asura // mfw miner gear
id = "Asura"
examine_text = "<span class='notice'>Their aura is filled with red-hot rage!</span>"
alert_type = null
var/damageboost = 10
var/woundboost = 5
/datum/status_effect/asura/on_apply()
. = ..()
if(iscarbon(owner))
var/mob/living/carbon/human/H = owner
playsound(H, 'sound/magic/powerup.ogg', 50, 1)
H.add_filter("asura_glow", 2, list("type" = "outline", "color" = "#fc21217a", "size" = 2))
ADD_TRAIT(H, TRAIT_PUGILIST, "Asura")
H.dna.species.punchdamagehigh += damageboost
H.dna.species.punchdamagelow += damageboost
H.dna.species.punchwoundbonus += woundboost
to_chat(H, "<span class='notice'>Your anger unleashes in a crimson blaze around you and corrosive power fills your muscles.</span>")
/datum/status_effect/asura/tick()
. = ..()
if(owner.health < HEALTH_THRESHOLD_CRIT)
owner.remove_status_effect(STATUS_EFFECT_ASURA)
return
if(owner.combat_flags & COMBAT_FLAG_HARD_STAMCRIT)
owner.remove_status_effect(STATUS_EFFECT_ASURA)
return
if(iscarbon(owner))
var/mob/living/carbon/human/C = owner
C.adjustBruteLoss(1) // drains 1 hp per second. You're gonna need some Senzu Cores.
C.adjustStaminaLoss(-2) // angry man punch a lot
/*if(SEND_SIGNAL(owner, COMSIG_COMBAT_MODE_CHECK, COMBAT_MODE_ACTIVE)) // turning on combat mode flares up your aura
else*/
/datum/status_effect/asura/on_remove()
. = ..()
if(iscarbon(owner))
var/mob/living/carbon/human/M = owner
playsound(M, 'sound/magic/powerdown.ogg', 50, 1)
M.remove_filter("asura_glow")
REMOVE_TRAIT(M, TRAIT_PUGILIST, "Asura")
M.dna.species.punchdamagehigh -= damageboost
M.dna.species.punchdamagelow -= damageboost
M.dna.species.punchwoundbonus -= woundboost
to_chat(M, "<span class='notice'>You calm yourself, and your unnatural strength dissipates.</span>")

View File

@@ -38,7 +38,7 @@
dat += "<A href='byond://?src=[REF(src)];school=[APPRENTICE_ROBELESS]'>Robeless</A><BR>"
dat += "<I>Your apprentice is training to cast spells without their robes. They know Knock and Mindswap.</I><BR>"
dat += "<A href='byond://?src=[REF(src)];school=[APPRENTICE_MARTIAL]'>Martial Artist</a><BR>"
dat += "<I>Your apprentice is training in ancient martial arts. They know the Plasmafist and Nuclear Fist.</I><BR>"
dat += "<I>Your apprentice is training in ancient martial arts. They know an Inner Mantra and the Nuclear Fist technique.</I><BR>"
user << browse(dat, "window=radio")
onclose(user, "radio")
return

View File

@@ -189,6 +189,10 @@
name = "Mutate"
spell_type = /obj/effect/proc_holder/spell/targeted/genetic/mutate
/datum/spellbook_entry/mantra
name = "Inner Mantra"
spell_type = /obj/effect/proc_holder/spell/self/mantra
/datum/spellbook_entry/jaunt
name = "Ethereal Jaunt"
spell_type = /obj/effect/proc_holder/spell/targeted/ethereal_jaunt

View File

@@ -181,8 +181,8 @@
to_chat(owner, "<B>Your service has not gone unrewarded, however. Studying under [master.current.real_name], you have learned stealthy, robeless spells. You are able to cast knock and mindswap.")
if(APPRENTICE_MARTIAL)
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/touch/nuclear_fist(null))
H.put_in_hands(new /obj/item/book/granter/martial/plasma_fist(H))
to_chat(owner, "<B>Your service has not gone unrewarded, however. Studying under [master.current.real_name], you have learned mystical martial abilities. You are also able to use the Nuclear Fist at will.")
owner.AddSpell(new /obj/effect/proc_holder/spell/self/mantra(null))
to_chat(owner, "<B>Your service has not gone unrewarded, however. Studying under [master.current.real_name], you have learned to control your Inner Mantra. You are also able to use the Nuclear Fist at will.")
/datum/antagonist/wizard/apprentice/create_objectives()
var/datum/objective/protect/new_objective = new /datum/objective/protect

View File

@@ -1104,7 +1104,7 @@
if(1)
new /obj/item/mayhem(src)
if(2)
new /obj/item/gun/ballistic/revolver/doublebarrel/super(src)
new /obj/item/book/granter/spell/asura(src)
if(3)
new /obj/item/guardiancreator(src)
@@ -1187,6 +1187,13 @@
unique_reskin = null
sawn_off = TRUE
/obj/item/book/granter/spell/asura
spell = /obj/effect/proc_holder/spell/self/asura
spellname = "asuras wrath"
icon_state = "bookasura"
desc = "This crimson novel emanates rage incarnate."
remarks = list("Kaio-What?", "It can only be sustained for a short time...", "It's like a massive upsurge of energy...", "Takes a heavy toll on the user's body...?", "Extra arms not included...", "There's stronger levels? Why aren't they in the book...")
//Colossus
/obj/structure/closet/crate/necropolis/colossus
name = "colossus chest"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 20 KiB

BIN
sound/magic/powerdown.ogg Normal file

Binary file not shown.

BIN
sound/magic/powerup.ogg Normal file

Binary file not shown.