philosophy:
all direct attacks and projectiles should deal elemental damage related to players' passive elemental elemental_souls
all abilities types should deal elemental damage related to their elemental_id + related to players' passive elemental elemental_souls


------------------------------------------------------------------------------
HOW TO:

Elemental damage condition:
~ danno vanilla usa hit detection advancements
Quindi hit_detection adv deve fare il detect di tags di xrpg_el_*_can_dmg della direct 
entity che vengono poi salvati in sb #xrpg_el_*_can_dmg xrpg_op (function: link entity)
~ danno custom usa apply damage
Quindi Apply dmg deve settare manualmente tutte le #xrpg_el_*_can_dmg xrpg_op
In questo modo posso scegliere gli elementi con più libertà (da resettare dopo call di apply_dmg)

Elemental damage condition definition:
~ tag xrpg_el_*_can_dmg dei player sono definite in refresh_stats a seconda delle elemental_souls 
passives in mh e oh
~ tag xrpg_el_*_can_dmg dei mobs sono definite da se possono applicare danni di quell’elemento

Projectile elemental damage management
~ tutti i projectiles lanciati in modo vanilla da mobs e players devono ereditare i tag xrpg_el_*_can_dmg 
del lanciatore
~ shoot eredita tag xrpg_el_*_can_dmg dallo shooter (sia projectile che aoe controller)
~ add_dmg copia i tag xrpg_el_*_can_dmg dal projectile all’aoe controller
~ xylo_projectiles:projectile_correction/damage prende le sb #xrpg_el_*_can_dmg xrpg_op dal aoe controller 
(direct entity)

Abilities damage management:
~ abilità che si basano su projectiles pre esistenti (o shoot) semplicemente aggiungono tag 
xrpg_el_*_can_dmg dell’elemento di elemental_id (mantenendo invariati gli altri) sia per proj che aoe 
[questi projectiles hanno già i tag del caster]
~ aoe damage settano #xrpg_el_*_can_dmg xrpg_op a seconda dell’id dell’effetto + tag caster
aoe -> gestione in aoe/damage (setta da id ability e da caster)
arrow -> aggiungo elemental_id tag a arrow e aoe
globe -> in funzione di set_data aggiungo elemental_id tag a proj e aoe
multishot -> none
projectile -> in funzione di life_time aggiungo elemental_id tag a proj e aoe
ray -> in funzione di life_time aggiungo elemental_id tag a proj e aoe
self -> none
target -> none
throwable -> in funzione di cast aggiungo elemental_id tag a proj e aoe
trident -> in funzione di cast aggiungo elemental_id tag a proj e aoe
turret -> none (gestione del proiettile sparato)
~ abilità che danneggiano con varianti elementali settano #xrpg_el_*_can_dmg xrpg_op a seconda 
dell’id dell’effetto (e a seconda delle sb del player se l’abilità è fisica)
outburst
repulsion
spin atk
uppercut

Controllo che gli apply_dmg siano tutti gestiti per sopportare elements

------------------------------------------------------------------------------

--<Notes>--
#xrpg_elemental_can_dmg: unique -> define position of unique tag copy code



