set a timer, and while Damaging set this value to the time it takes the animation, then on the update, if this timer is not 0 it wont attack until it reaches 0
the problem is youโre just creating a whole bunch of coroutines since you have no check to stop one being created every frame. just add a boolean that gets set to true before the yield and false after. have this check in the initial call. Set the yield to the length of the animation though