execute as @e[type=text_display] at @s run function main:particles/system/tick_1
function main:mechanics/projectile/tick
function main:settings/dontdropshit/drop
execute as @e[type=#main:not_enemies_not_player,tag=ally,scores={health=..0}] run function main:game/mobs/ai/on_death
execute as @e[type=#main:enemies,tag=enemy,tag=dead,tag=!fake_death] run function main:settings/death

execute as @a run function main:mechanics/combo/tick
function main:mechanics/artifacts/artifact_tick
function main:settings/hit_sound
execute as @e[type=text_display,tag=hit_indicator] run function main:mechanics/damage/enemy/indicator_tick

execute if score .start dialog matches 1.. run function main:dialog/tick
execute as @e if score @s circle_cooldown matches 1.. run scoreboard players remove @s circle_cooldown 1

#particles and attack
function main:mechanics/interaction/weapon/attack/tick
execute as @e[type=item_display,tag=arrow] run function main:mechanics/arrow/tick
function main:mechanics/damage/enemy/hitmarker
function main:mechanics/particles/tick

execute as @e[type=text_display] run function main:settings/tick_1
execute at @p as @e[type=text_display,tag=hit_indicator,scores={particle_lifetime=3},limit=3] run data merge entity @s {start_interpolation:1,interpolation_duration:3,transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0f,0f],scale:[0f,0f,0f]}}

# #entity ticks
execute as @a run function main:settings/entities/player
execute as @e[type=#main:enemies,tag=enemy] run function main:settings/entities/enemies
execute as @e[type=item_display] run function main:settings/entities/item_display