Glad you figured it out. Sorry I could not be of more help to your last question, as I was still a bit uncertain about what the problem was.
For your next question you would want to keep a list of attacked targets and add an action point after attacking if the target is not on the list and has a weakness to the attack. I duplicated BP_Ability_Attack, as it is simple, and added a new Set variable that I called AttackedUnits. At the start of ExecuteAbility I check if the attacked target is in the set. If it is not I add it to the set and add an action point to the owning unit (you would also want to add your elemental weakness check here). If it is not in the set I proceed as normal.
All abilities are shared among all units and abilities are deactivated and activated anew each time a unit uses them, which makes how we store and clear the AttackedTargets set a tiny bit difficult. I’ve resolved it here by checking if the owning unit has 0 AP before clearing the set on deactivation. By normal ATBTT rules this means that the unit’s turn will be ending. Not super elegant, but will work, though if your game uses different rules you might want to set up something more explicit.
Note that BP_Ability_Attack has bUseEndsTurn set to true by default, which should be set to false for this to work properly.
Hope that helps!

