diff --git a/code/game/gamemodes/miniantags/hades/hades.dm b/code/game/gamemodes/miniantags/hades/hades.dm
index bacd6a5c14c..a7169f97900 100644
--- a/code/game/gamemodes/miniantags/hades/hades.dm
+++ b/code/game/gamemodes/miniantags/hades/hades.dm
@@ -43,10 +43,26 @@
"Wallow in sin, and give yourself unto darkness.",\
"Only the truly sinful may stand.",\
"Find yourself and you will find Absolution.",\
- "Forego the pain of this process, and submit.")
+ "Forego the pain of this process, and submit.",\
+ "We can be one in suffering.",\
+ "You stand on the precipice of ascension, give in.",\
+ "You cannot fathom what lies beyond",\
+ "Repent your sins.",\
+ "This is the eve of your last days.",\
+ "Darkness comes.")
+
+ var/obj/effect/proc_holder/spell/targeted/lightning/sinLightning
/mob/living/simple_animal/hades/New()
..()
+
+ sinLightning = new/obj/effect/proc_holder/spell/targeted/lightning(src)
+
+ sinLightning.charge_max = 1
+ sinLightning.clothes_req = 0
+ sinLightning.range = 32
+ sinLightning.cooldown_min = 1
+
lastsinPerson = world.time
var/list/possible_titles = list("Pope","Bishop","Lord","Cardinal","Deacon","Pontiff")
var/chosen = "[pick(possible_titles)] of Sin"
@@ -61,14 +77,35 @@
/mob/living/simple_animal/hades/hitby(atom/movable/AM, skipcatch, hitpush, blocked)
..()
lastsinPerson -= 75
+ Defend(AM)
/mob/living/simple_animal/hades/bullet_act(obj/item/projectile/P, def_zone)
..()
lastsinPerson -= 75
+ Defend(P.firer)
/mob/living/simple_animal/hades/attack_hand(mob/living/carbon/human/M)
..()
lastsinPerson -= 75
+ Defend(M)
+
+/mob/living/simple_animal/hades/proc/Defend(var/mob/attacker)
+ src.visible_message("[src] rounds on the [attacker], gazing at them with a [pick("cold","frosty","freezing","dark")] [pick("glare","gaze","glower","stare")].")
+ var/chosenDefend = rand(1,3)
+ switch(chosenDefend)
+ if(1)
+ attacker.visible_message("[attacker] is lifted from the ground, shadowy powers tossing them aside.")
+ attacker.throw_at_fast(pick(orange(src,7)),10,1)
+ if(2)
+ attacker.visible_message("[attacker] crackles with electricity, a bolt leaping from [src] to them.")
+ sinLightning.Bolt(src,attacker,30,5,src)
+ if(3)
+ src.visible_message("[src] points his staff at [attacker], a swarm of eyeballs lurching fourth!")
+ for(var/i in 1 to 4)
+ var/mob/living/simple_animal/hostile/carp/eyeball/E = new/mob/living/simple_animal/hostile/carp/eyeball(pick(orange(attacker,1)))
+ E.faction = faction
+ spawn(150)
+ qdel(E)
/mob/living/simple_animal/hades/proc/Appear()
new /obj/effect/timestop(get_turf(src))
@@ -88,7 +125,12 @@
world << pick(creepyasssounds)
else
lastsinPerson = world.time
- var/mob/living/carbon/human/sinPerson = pick(player_list)
+ var/mob/living/carbon/human/sinPerson = pick(living_mob_list)
+ var/depth = living_mob_list.len + 1 // just in case
+ if(!sinPerson.ckey)
+ while(!sinPerson.ckey && depth > 0)
+ --depth
+ sinPerson = pick(living_mob_list)
if(sinPerson)
loc = get_turf(pick(oview(1,sinPerson)))
Appear()
@@ -171,7 +213,7 @@
src.say("Your sin will be punished, [sinPerson]!")
sinPerson.reagents.add_reagent("frostoil", 50)
if("Wrath")
- src.say("Your sinPerson, [sinPerson], is Wrath.")
+ src.say("Your sin, [sinPerson], is Wrath.")
if(prob(50))
src.say("I will indulge your sin, [sinPerson].")
sinPerson.reagents.add_reagent("bath_salts",100)
@@ -196,7 +238,7 @@
hitsound = 'sound/weapons/blade1.ogg'
var/pride_direction = FALSE
-/obj/item/weapon/twohanded/sin_pride/update_icon() //Currently only here to fuck with the on-mob icons.
+/obj/item/weapon/twohanded/sin_pride/update_icon()
icon_state = "mjollnir[wielded]"
return