native void UnitCreateEffectPoint (unit inUnit, string inEffect, point inTarget);
native void UnitCreateEffectUnit (unit inUnit, string inEffect, unit inTarget);
native int UnitValidateEffectPoint (unit inUnit, string inEffect, point inTarget);
native int UnitValidateEffectUnit (unit inUnit, string inEffect, unit inTarget);
Those let you use damage effects to deal damage to other units or points etc.
If you need to deal variable damage to a unit based on formula in a trigger try using behaviours as those can stack so make a behaviou have a stacking of like 10000 odd and get it to do like 1 damage a level or something like that.