I had a similar issue in the past. You can technically make a custom/triggered banish, but you might run into some issues replicating the behavior that banish/ethereal-defense units give (e.g. if a unit doesn't have a magic attack, they shouldn't attack the banished unit). So I recommend working off an ability based off banish if you can.
Fortunately, if you're developing for the latest patch (or at least 1.32+), you just need one simple trigger to adjust the damage modifier:
-
BanishAdjustment
-

Events
-


Unit - A unit Takes damage
-

Conditions
-


(Damage taken) Greater than 0.00
-


((Triggering unit) has buff Banish) Equal to True
-

Actions
-


Event Response - Set Damage of Unit Damaged Event to ((Damage taken) x (1.50 / 1.66))
Essentially, when a unit that has the banish buff takes damage, we'll multiply the damage by the factor (1.50 / 1.66). You just need to plug-in your desired amount in place of "1.5". e.g. if you want 40% more damage taken, you'd put (1.40 / 1.66). if you want 25% more damage taken, you'd put (1.25 / 1.66).
This works because damage modifiers in Warcraft 3 are multiplicative. For example, if you have a spell that does 50 damage by default, and then you cast it on a banished unit, you can compute the resulting damage like so:
50 * 1.66 = 83
(multiplying by 1.66 is essentially a 66% increase) If you want it to only do a 50% increase, then that means you instead want 50 * 1.5 = 75 total damage. Which means you want some number x that you can multiply it by to get the resulting damage modification you want. If you set this up as a simple equation:
50 * 1.66 * x = 50 * 1.5
x = (1.5 / 1.66)
This works for more complicated cases as well (e.g. magic attacks which are affected by armor, runed bracers, etc.) because everything is multiplicative (and therefore commutative, i.e. order doesn't matter). Some small notes though:
- Banish also increases healing dealt to the target by 66%. If you want to update that % as well, it is a bit more complicated--you'll need a healing detection system (you can look for some in our spells & systems section).
- If you have custom damage modifiers in your map that use this "A unit takes damage" event (e.g. let's say you have a custom damage shield that absorbs X damage), you'll want to make sure your ordering of events are correct (you would want this trigger's event to run before the shield trigger).
- If you're developing for older patches (e.g. pre-1.30), you can do the same thing with a damage detection system (DDS). You can find some in our spells & systems section. The API is just a little more complicated.