execute as @e[type=evoker,tag=jjc_evoker_god] at @s run function colosseum_of_fools:ss/evoker/god/0
execute if entity @e[type=evoker,tag=jjc_evoker_necromancer] run function colosseum_of_fools:ss/evoker/necromancer/1
execute if entity @e[type=evoker,tag=jjc_evoker,tag=!jjc_evoker_god,tag=!jjc_evoker_necromancer,nbt={SpellTicks:81}] run function colosseum_of_fools:ss/evoker/vex
execute if entity @e[type=evoker,tag=jjc_evoker,nbt={SpellTicks:21},predicate=colosseum_of_fools:ss/target] run function colosseum_of_fools:ss/evoker/evoker_fang
execute if entity @e[type=evoker_fangs,tag=jjc_fangs_fire,nbt={Warmup:0}] run function colosseum_of_fools:ss/evoker/fire_wizard

execute as @e[type=evoker,tag=jjc_evoker,nbt={OnGround:1b}] at @s unless entity @p[predicate=colosseum_of_fools:survive,tag=jjc_p,distance=..14] facing entity @p[predicate=colosseum_of_fools:survive,tag=jjc_p,distance=14..60] feet rotated ~180 0 unless block ^ ^-1 ^3 #colosseum_of_fools:no run summon marker ^ ^ ^0.01 {Tags:["jjc_evoker_move_m","jjc"]}
execute as @e[type=marker,tag=jjc_evoker_move_m] at @s facing entity @p[predicate=colosseum_of_fools:survive,tag=jjc_p,distance=..60] feet run tp @s ~ ~ ~ ~ ~
execute as @e[type=marker,tag=jjc_evoker_move_m] at @s run data modify entity @n[type=evoker,tag=jjc_evoker,nbt={OnGround:1b}] Rotation set from entity @s Rotation

execute as @e[type=evoker,tag=jjc_evoker] at @s store result score @s jjc_x1 run data get entity @s Pos[0] 1000
execute as @e[type=evoker,tag=jjc_evoker] at @s store result score @s jjc_z1 run data get entity @s Pos[2] 1000
execute as @e[type=marker,tag=jjc_evoker_move_m] at @s store result score @s jjc_x2 run data get entity @s Pos[0] 1000
execute as @e[type=marker,tag=jjc_evoker_move_m] at @s store result score @s jjc_z2 run data get entity @s Pos[2] 1000
execute as @e[type=marker,tag=jjc_evoker_move_m] at @s store result entity @n[distance=..200,type=evoker,tag=jjc_evoker] Motion[0] double -0.02 run scoreboard players operation @s jjc_x2 -= @n[distance=..200,type=evoker,tag=jjc_evoker] jjc_x1
execute as @e[type=marker,tag=jjc_evoker_move_m] at @s store result entity @n[distance=..200,type=evoker,tag=jjc_evoker] Motion[2] double -0.02 run scoreboard players operation @s jjc_z2 -= @n[distance=..200,type=evoker,tag=jjc_evoker] jjc_z1
kill @e[type=marker,tag=jjc_evoker_move_m]

execute as @e[type=evoker,tag=jjc_evoker,tag=!jjc_evoker_god,predicate=!colosseum_of_fools:ss/speed0_2] at @s on passengers run data merge entity @s[tag=jjc_cape] {transformation:{left_rotation:[0.3f,0f,0f,0.953f],right_rotation:[0f,0f,0f,1f],scale:[0.8f,0.8f,1f],translation:[0f,-1.45f,-0.78f]},start_interpolation:0,interpolation_duration:10}
execute as @e[type=evoker,tag=jjc_evoker,tag=!jjc_evoker_god,predicate=colosseum_of_fools:ss/speed0_2] at @s on passengers run data merge entity @s[tag=jjc_cape] {transformation:{left_rotation:[0.044f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],scale:[0.8f,0.8f,1f],translation:[0f,-1.62f,-0.25f]},start_interpolation:0,interpolation_duration:10}
execute as @e[type=evoker,tag=jjc_evoker] at @s on passengers run data modify entity @s[tag=jjc_nov] Rotation[0] set from entity @n[distance=..200,type=evoker,tag=jjc_evoker] Rotation[0]
execute as @e[type=evoker,tag=jjc_evoker] on passengers at @s[tag=jjc_nov] at @s run tp @s ~ ~ ~ ~ 0

execute as @e[type=evoker,tag=jjc_evoker] on target run tag @s add jjc_t
execute as @e[type=evoker,tag=jjc_evoker,predicate=colosseum_of_fools:ss/speed0_2,nbt={HurtTime:0s,OnGround:1b,SpellTicks:0},predicate=colosseum_of_fools:random/0.1] at @s facing entity @n[distance=..200,tag=jjc_t] feet run tp @s ~ ~ ~ ~ ~
tag @e[tag=jjc_t] remove jjc_t