slight desword reflect meme buff
This commit is contained in:
@@ -39,27 +39,27 @@
|
||||
deathsound = 'sound/magic/demon_dies.ogg'
|
||||
deathmessage = "begins to shudder as it becomes transparent..."
|
||||
loot_drop = /obj/item/clothing/neck/cloak/herald_cloak
|
||||
|
||||
|
||||
can_talk = 1
|
||||
|
||||
attack_action_types = list(/datum/action/innate/elite_attack/herald_trishot,
|
||||
/datum/action/innate/elite_attack/herald_directionalshot,
|
||||
/datum/action/innate/elite_attack/herald_teleshot,
|
||||
/datum/action/innate/elite_attack/herald_mirror)
|
||||
|
||||
|
||||
var/mob/living/simple_animal/hostile/asteroid/elite/herald/mirror/my_mirror = null
|
||||
var/is_mirror = FALSE
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/herald/death()
|
||||
. = ..()
|
||||
if(!is_mirror)
|
||||
addtimer(CALLBACK(src, .proc/become_ghost), 8)
|
||||
if(my_mirror != null)
|
||||
qdel(my_mirror)
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/herald/proc/become_ghost()
|
||||
icon_state = "herald_ghost"
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/herald/say(message, bubble_type, var/list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null)
|
||||
. = ..()
|
||||
if(.)
|
||||
@@ -70,25 +70,25 @@
|
||||
button_icon_state = "herald_trishot"
|
||||
chosen_message = "<span class='boldwarning'>You are now firing three shots in your chosen direction.</span>"
|
||||
chosen_attack_num = HERALD_TRISHOT
|
||||
|
||||
|
||||
/datum/action/innate/elite_attack/herald_directionalshot
|
||||
name = "Circular Shot"
|
||||
button_icon_state = "herald_directionalshot"
|
||||
chosen_message = "<span class='boldwarning'>You are firing projectiles in all directions.</span>"
|
||||
chosen_attack_num = HERALD_DIRECTIONALSHOT
|
||||
|
||||
|
||||
/datum/action/innate/elite_attack/herald_teleshot
|
||||
name = "Teleport Shot"
|
||||
button_icon_state = "herald_teleshot"
|
||||
chosen_message = "<span class='boldwarning'>You will now fire a shot which teleports you where it lands.</span>"
|
||||
chosen_attack_num = HERALD_TELESHOT
|
||||
|
||||
|
||||
/datum/action/innate/elite_attack/herald_mirror
|
||||
name = "Summon Mirror"
|
||||
button_icon_state = "herald_mirror"
|
||||
chosen_message = "<span class='boldwarning'>You will spawn a mirror which duplicates your attacks.</span>"
|
||||
chosen_attack_num = HERALD_MIRROR
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/herald/OpenFire()
|
||||
if(client)
|
||||
switch(chosen_attack)
|
||||
@@ -123,7 +123,7 @@
|
||||
my_mirror.herald_teleshot(target)
|
||||
if(HERALD_MIRROR)
|
||||
herald_mirror()
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/herald/proc/shoot_projectile(turf/marker, set_angle, var/is_teleshot)
|
||||
var/turf/startloc = get_turf(src)
|
||||
var/obj/item/projectile/herald/H = null
|
||||
@@ -136,7 +136,7 @@
|
||||
if(target)
|
||||
H.original = target
|
||||
H.fire(set_angle)
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_trishot(target)
|
||||
ranged_cooldown = world.time + 30
|
||||
playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE)
|
||||
@@ -150,17 +150,17 @@
|
||||
addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 10)
|
||||
addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 12)
|
||||
addtimer(CALLBACK(src, .proc/shoot_projectile, target_turf, angle_to_target, FALSE), 14)
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_circleshot()
|
||||
var/static/list/directional_shot_angles = list(0, 45, 90, 135, 180, 225, 270, 315)
|
||||
for(var/i in directional_shot_angles)
|
||||
shoot_projectile(get_turf(src), i, FALSE)
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/herald/proc/unenrage()
|
||||
if(stat == DEAD || is_mirror)
|
||||
return
|
||||
icon_state = "herald"
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_directionalshot()
|
||||
ranged_cooldown = world.time + 50
|
||||
if(!is_mirror)
|
||||
@@ -171,14 +171,14 @@
|
||||
playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE)
|
||||
addtimer(CALLBACK(src, .proc/herald_circleshot), 15)
|
||||
addtimer(CALLBACK(src, .proc/unenrage), 20)
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_teleshot(target)
|
||||
ranged_cooldown = world.time + 30
|
||||
playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE)
|
||||
var/target_turf = get_turf(target)
|
||||
var/angle_to_target = Get_Angle(src, target_turf)
|
||||
shoot_projectile(target_turf, angle_to_target, TRUE)
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/herald/proc/herald_mirror()
|
||||
ranged_cooldown = world.time + 40
|
||||
playsound(get_turf(src), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE)
|
||||
@@ -189,7 +189,7 @@
|
||||
my_mirror = new_mirror
|
||||
my_mirror.my_master = src
|
||||
my_mirror.faction = faction.Copy()
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/herald/mirror
|
||||
name = "herald's mirror"
|
||||
desc = "This fiendish work of magic copies the herald's attacks. Seems logical to smash it."
|
||||
@@ -202,16 +202,16 @@
|
||||
del_on_death = TRUE
|
||||
is_mirror = TRUE
|
||||
var/mob/living/simple_animal/hostile/asteroid/elite/herald/my_master = null
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/herald/mirror/Initialize()
|
||||
..()
|
||||
toggle_ai(AI_OFF)
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/asteroid/elite/herald/mirror/Destroy()
|
||||
if(my_master != null)
|
||||
my_master.my_mirror = null
|
||||
. = ..()
|
||||
|
||||
|
||||
/obj/item/projectile/herald
|
||||
name ="death bolt"
|
||||
icon_state= "chronobolt"
|
||||
@@ -221,7 +221,7 @@
|
||||
eyeblur = 0
|
||||
damage_type = BRUTE
|
||||
pass_flags = PASSTABLE
|
||||
|
||||
|
||||
/obj/item/projectile/herald/teleshot
|
||||
name ="golden bolt"
|
||||
damage = 0
|
||||
@@ -238,11 +238,11 @@
|
||||
var/mob/living/F = firer
|
||||
if(F != null && istype(F, /mob/living/simple_animal/hostile/asteroid/elite) && F.faction_check_mob(L))
|
||||
L.heal_overall_damage(damage)
|
||||
|
||||
|
||||
/obj/item/projectile/herald/teleshot/on_hit(atom/target, blocked = FALSE)
|
||||
. = ..()
|
||||
firer.forceMove(get_turf(src))
|
||||
|
||||
|
||||
//Herald's loot: Cloak of the Prophet
|
||||
|
||||
/obj/item/clothing/neck/cloak/herald_cloak
|
||||
@@ -252,12 +252,12 @@
|
||||
icon_state = "herald_cloak"
|
||||
body_parts_covered = CHEST|GROIN|ARMS
|
||||
hit_reaction_chance = 10
|
||||
|
||||
|
||||
/obj/item/clothing/neck/cloak/herald_cloak/proc/reactionshot(mob/living/carbon/owner)
|
||||
var/static/list/directional_shot_angles = list(0, 45, 90, 135, 180, 225, 270, 315)
|
||||
for(var/i in directional_shot_angles)
|
||||
shoot_projectile(get_turf(owner), i, owner)
|
||||
|
||||
|
||||
/obj/item/clothing/neck/cloak/herald_cloak/proc/shoot_projectile(turf/marker, set_angle, mob/living/carbon/owner)
|
||||
var/turf/startloc = get_turf(owner)
|
||||
var/obj/item/projectile/herald/H = null
|
||||
@@ -265,12 +265,13 @@
|
||||
H.preparePixelProjectile(marker, startloc)
|
||||
H.firer = owner
|
||||
H.fire(set_angle)
|
||||
|
||||
/obj/item/clothing/neck/cloak/herald_cloak/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
||||
|
||||
/obj/item/clothing/neck/cloak/herald_cloak/run_block(mob/living/owner, real_attack, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
|
||||
. = ..()
|
||||
if(!real_attack)
|
||||
return
|
||||
if(rand(1,100) > hit_reaction_chance)
|
||||
return
|
||||
owner.visible_message("<span class='danger'>[owner]'s [src] emits a loud noise as [owner] is struck!</span>")
|
||||
var/static/list/directional_shot_angles = list(0, 45, 90, 135, 180, 225, 270, 315)
|
||||
playsound(get_turf(owner), 'sound/magic/clockwork/invoke_general.ogg', 20, TRUE)
|
||||
addtimer(CALLBACK(src, .proc/reactionshot, owner), 10)
|
||||
|
||||
Reference in New Issue
Block a user