diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm
index fad9ddcda5..e2ace84156 100644
--- a/code/__DEFINES/status_effects.dm
+++ b/code/__DEFINES/status_effects.dm
@@ -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 //
/////////////
diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm
index f4a53d5c72..904e122241 100644
--- a/code/datums/status_effects/buffs.dm
+++ b/code/datums/status_effects/buffs.dm
@@ -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 = "Their aura is filled with yellow energy!"
+ 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, "Your inner mantra coalesces around you, granting you incredible strength and durability - but at what cost?")
+
+/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, "Your inner mantra collapses, for now.")
+
+/datum/status_effect/asura // mfw miner gear
+ id = "Asura"
+ examine_text = "Their aura is filled with red-hot rage!"
+ 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, "Your anger unleashes in a crimson blaze around you and corrosive power fills your muscles.")
+
+/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, "You calm yourself, and your unnatural strength dissipates.")
diff --git a/code/modules/antagonists/_common/antag_spawner.dm b/code/modules/antagonists/_common/antag_spawner.dm
index edfa9caa22..bcba1e1e1e 100644
--- a/code/modules/antagonists/_common/antag_spawner.dm
+++ b/code/modules/antagonists/_common/antag_spawner.dm
@@ -38,7 +38,7 @@
dat += "Robeless
"
dat += "Your apprentice is training to cast spells without their robes. They know Knock and Mindswap.
"
dat += "Martial Artist
"
- dat += "Your apprentice is training in ancient martial arts. They know the Plasmafist and Nuclear Fist.
"
+ dat += "Your apprentice is training in ancient martial arts. They know an Inner Mantra and the Nuclear Fist technique.
"
user << browse(dat, "window=radio")
onclose(user, "radio")
return
diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm
index 1e98b2f753..9b2def48d7 100644
--- a/code/modules/antagonists/wizard/equipment/spellbook.dm
+++ b/code/modules/antagonists/wizard/equipment/spellbook.dm
@@ -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
diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm
index 42954c3542..23e870a0ec 100644
--- a/code/modules/antagonists/wizard/wizard.dm
+++ b/code/modules/antagonists/wizard/wizard.dm
@@ -181,8 +181,8 @@
to_chat(owner, "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, "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, "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
diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm
index 0953ea138d..9c39601b4e 100644
--- a/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/code/modules/mining/lavaland/necropolis_chests.dm
@@ -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"
diff --git a/icons/obj/magic.dmi b/icons/obj/magic.dmi
index c376dc7321..6555373ae1 100644
Binary files a/icons/obj/magic.dmi and b/icons/obj/magic.dmi differ
diff --git a/sound/magic/powerdown.ogg b/sound/magic/powerdown.ogg
new file mode 100644
index 0000000000..9d514c64ca
Binary files /dev/null and b/sound/magic/powerdown.ogg differ
diff --git a/sound/magic/powerup.ogg b/sound/magic/powerup.ogg
new file mode 100644
index 0000000000..909c2a33c7
Binary files /dev/null and b/sound/magic/powerup.ogg differ