I want to have a fatal damage response, so that if fatal damage is dealt by an attacker, a temporary buff is applied, (very short time like 0.25 seconds) to delay the final death blow. Im using an ignore damage on the temporary buff so it delays the units death by 0.25 seconds. after the buff expires, I want to have a damage effect that finally kills the unit, but I want the damage credit to come from the original attacker who dealt the fatal blow.
In short the issue is not setting up the suicide, the issue is filters. Remember that if you turn cloaked off, then the unit becomes visible it won't target the cloaked unit until after all regular units are not in range or being engaged.
For the longest time I've used a trigger to enable auto suicide on idle units. Fairly simple event,
Unit becomes idle
Unit is special unit
issue order to attack nearest enemy unit in alliance with enemy etc.
But as more specialized units enter the game this trigger gets fired more and more.
I abandoned it for my recent project and just created a behavior that does the same thing. Every second a periodic effect occurs that does a radius 500 search with a max count of 1. On the effect, it issues an order to attack the found unit basing on closest distance to the caster.
I also use 3 validators to disable the behavior so its not going off constantly but only when the unit isn't moving, attacking, or firing weapons.
It works perfectly.
Long story short, here comes the dilemma: Dealing with cloaked units.
In search filters, you need to set the field Visible to required otherwise they will chase cloaked units even when they can't engage them. However if the unit has no enemies visible, you still want it to travel to the nearest closest visible unit.
This is problematic for both trigger and Data solution.
How would you set it up so that even if the unit has no visible units nearby, it will still travel to the next closest unit?
Maybe a Switch Effect? Using two different types of searches based on Enumerate area validators on visible required vs visible allowed and cloak excluded.
Here is my thought process using a switch:
1st search setup Visible required and if it fails, the unit does nothing, goes to second
2nd Search setup Visible allowed but cloak excluded.
The problem then comes, how do you deal with a situation when a cloaked unit becomes visible suddenly? I suppose it would eventually refresh itself if it became idle but in a combat scenario that might not happen when dealing with multiple units. Basically it would engage the cloaked units very last and by that time, they may not actually be visible anymore.
EDIT: I've realized this also has another problem. If you require visible in the enumerate validator for the first search type, then it will attack the closest visible unit, not the closest unit. That could be problematic.
Sorry about that, I was mistaken. I setup a trigger to test what damage was actually being dealt. It appears now that it is all working correctly, including the attribute bonus.
I think this solution is far cleaner then using a trigger solution and its quite easy to setup in the damage response field. Since armor and damage values are constantly changing, any time the unit takes the minimum damage from the Default game value due to high armor, the damage response will trigger and it will ignore the damage!
Works like a charm, except won't technically work with armor piercing effects.
Thanks for the help everyone. Sometimes you just need a few ideas and postings to get the brain going.
How about the Damage Response Max Field? Simply set to 0.5 and it seems to do the trick. Only actual draw back is when dealing with armor piercing effects.
EDIT:
I just found this now, was reading about it in the wiki. It states
Combat: Damage Response - Maximum
Only damage below the value triggers a damage response.
The weird thing is in testing, it's not 100% accurate, but its pretty close to the effect I desire. For example, if a unit attribute bonus damage, it doesn't seem to take that into account.
Lets say the unit with the passive has 3 armor and I attack with another unit that is dealing 2 damage. It works! I then upgrade the damage amount to 3, still works. But if you give the damaging unit an attribute bonus of +3 to massive (buffed unit is then set to massive), the damage response still won't kick activate until you take the base damage amount to 4.
Armor and effects are all upgradable.... and there are dozens of abilities from other units that may add or reduce armor and add or reduce damage.
As much DATA as I can use would be my preference. I see now the trigger event you can use from damage response. But rather then simply firing a trigger every time my unit takes damage, would there be a way to determine the amount of damage so that the damage response only fires when the damage is equal to 1 or less?
If that is possible then I could simply use the ignore damage modification field and then the response would only fire when the damage is 1 or less. This way armor is irrelevant since in the case the unit takes 1 damage, that would mean its armor is already equal to or higher then the damage being dealt and the response would fire appropriately to ignore said damage.
Thanks guys..... Your posts also gave me another idea to use an enumerate area validator to check the master units attributes. I use a behavior on the master that is disabled until the master runs out of required energy then simply enables a free attribute I don't need which locks out all the slave units from using the ability.
This requires the master unit to spawn the slave unit. The master unit does not create / spawn the slave unit, although I do see your point and the advantage of having the master unit create the slave unit.
Builders spawn the slave units. Builders can be destroyed. They are strategic targets. The master unit is the "energy core" of the entire player / base. Energy runs out, slave units abilities should be disabled until sufficient energy is regained.
I have 2 units. 1 is a Master control unit which has an energy supply. The other is a unit with an Effect Target Ability which drains the energy from the Master Control unit.
Energy Drain is easy. I use a large search which targets the Master Control Unit and then, drains its energy. The difficult part is making it so once the Master Control Unit has insufficient energy then you cannot use the Effect Target ability on the other unit.
I can’t remember off hand if the range field is upgradable. I think it is, therefore the solution is to use a modify player effect to add a temporary upgrade equal to the range added. Then when the buff is removed use the modify player effect to then remove the upgrade.
I believe all that matters is the cooldown/link field when using DATA or triggers. I could be mistaken but you should be able to adjust it with a Modify Unit effect (or any trigger that modifies an ability cooldown). While that particular effect doesn't have a cooldown/link field for altering it, as long as you use an ability that is also attached to the cooldown/link then it will also effect it for all fields connected to the cooldown/link.
0
I want to have a fatal damage response, so that if fatal damage is dealt by an attacker, a temporary buff is applied, (very short time like 0.25 seconds) to delay the final death blow. Im using an ignore damage on the temporary buff so it delays the units death by 0.25 seconds. after the buff expires, I want to have a damage effect that finally kills the unit, but I want the damage credit to come from the original attacker who dealt the fatal blow.
0
In short the issue is not setting up the suicide, the issue is filters. Remember that if you turn cloaked off, then the unit becomes visible it won't target the cloaked unit until after all regular units are not in range or being engaged.
0
I want to poke everyones brains for a bit.
For the longest time I've used a trigger to enable auto suicide on idle units. Fairly simple event,
Unit becomes idle
Unit is special unit
issue order to attack nearest enemy unit in alliance with enemy etc.
But as more specialized units enter the game this trigger gets fired more and more.
I abandoned it for my recent project and just created a behavior that does the same thing. Every second a periodic effect occurs that does a radius 500 search with a max count of 1. On the effect, it issues an order to attack the found unit basing on closest distance to the caster.
I also use 3 validators to disable the behavior so its not going off constantly but only when the unit isn't moving, attacking, or firing weapons.
It works perfectly.
Long story short, here comes the dilemma: Dealing with cloaked units.
In search filters, you need to set the field Visible to required otherwise they will chase cloaked units even when they can't engage them. However if the unit has no enemies visible, you still want it to travel to the nearest closest visible unit.
This is problematic for both trigger and Data solution.
How would you set it up so that even if the unit has no visible units nearby, it will still travel to the next closest unit?
Maybe a Switch Effect? Using two different types of searches based on Enumerate area validators on visible required vs visible allowed and cloak excluded.
Here is my thought process using a switch:
1st search setup Visible required and if it fails, the unit does nothing, goes to second
2nd Search setup Visible allowed but cloak excluded.
The problem then comes, how do you deal with a situation when a cloaked unit becomes visible suddenly? I suppose it would eventually refresh itself if it became idle but in a combat scenario that might not happen when dealing with multiple units. Basically it would engage the cloaked units very last and by that time, they may not actually be visible anymore.
EDIT: I've realized this also has another problem. If you require visible in the enumerate validator for the first search type, then it will attack the closest visible unit, not the closest unit. That could be problematic.
0
Sorry about that, I was mistaken. I setup a trigger to test what damage was actually being dealt. It appears now that it is all working correctly, including the attribute bonus.
I think this solution is far cleaner then using a trigger solution and its quite easy to setup in the damage response field. Since armor and damage values are constantly changing, any time the unit takes the minimum damage from the Default game value due to high armor, the damage response will trigger and it will ignore the damage!
Works like a charm, except won't technically work with armor piercing effects.
Thanks for the help everyone. Sometimes you just need a few ideas and postings to get the brain going.
0
How about the Damage Response Max Field? Simply set to 0.5 and it seems to do the trick. Only actual draw back is when dealing with armor piercing effects.
EDIT:
I just found this now, was reading about it in the wiki. It states
Combat: Damage Response - Maximum
Only damage below the value triggers a damage response.
The weird thing is in testing, it's not 100% accurate, but its pretty close to the effect I desire. For example, if a unit attribute bonus damage, it doesn't seem to take that into account.
Lets say the unit with the passive has 3 armor and I attack with another unit that is dealing 2 damage. It works! I then upgrade the damage amount to 3, still works. But if you give the damaging unit an attribute bonus of +3 to massive (buffed unit is then set to massive), the damage response still won't kick activate until you take the base damage amount to 4.
0
Armor and effects are all upgradable.... and there are dozens of abilities from other units that may add or reduce armor and add or reduce damage.
As much DATA as I can use would be my preference. I see now the trigger event you can use from damage response. But rather then simply firing a trigger every time my unit takes damage, would there be a way to determine the amount of damage so that the damage response only fires when the damage is equal to 1 or less?
If that is possible then I could simply use the ignore damage modification field and then the response would only fire when the damage is 1 or less. This way armor is irrelevant since in the case the unit takes 1 damage, that would mean its armor is already equal to or higher then the damage being dealt and the response would fire appropriately to ignore said damage.
0
This is for a single unit only.
0
Hmmmmm.... Interesting trigger solution, although it could be lag inducing in a larger game of 12 players with team fights and abilities.
I do appreciate it, however, if anyone else has ideas for a DATA solution I would also be interested.
0
Any ideas on how to construct such a passive ability?
If Shield armor is greater then or equal to damage dealt, then no damage is dealt to said unit.
0
Thanks guys..... Your posts also gave me another idea to use an enumerate area validator to check the master units attributes. I use a behavior on the master that is disabled until the master runs out of required energy then simply enables a free attribute I don't need which locks out all the slave units from using the ability.
Thank you!
0
This requires the master unit to spawn the slave unit. The master unit does not create / spawn the slave unit, although I do see your point and the advantage of having the master unit create the slave unit.
Builders spawn the slave units. Builders can be destroyed. They are strategic targets. The master unit is the "energy core" of the entire player / base. Energy runs out, slave units abilities should be disabled until sufficient energy is regained.
0
I have 2 units. 1 is a Master control unit which has an energy supply. The other is a unit with an Effect Target Ability which drains the energy from the Master Control unit.
Energy Drain is easy. I use a large search which targets the Master Control Unit and then, drains its energy. The difficult part is making it so once the Master Control Unit has insufficient energy then you cannot use the Effect Target ability on the other unit.
0
Might have to use triggers to do that. Not sure if you can dynamically control sound that way in DATA. I could be wrong though.
0
I can’t remember off hand if the range field is upgradable. I think it is, therefore the solution is to use a modify player effect to add a temporary upgrade equal to the range added. Then when the buff is removed use the modify player effect to then remove the upgrade.
0
I believe all that matters is the cooldown/link field when using DATA or triggers. I could be mistaken but you should be able to adjust it with a Modify Unit effect (or any trigger that modifies an ability cooldown). While that particular effect doesn't have a cooldown/link field for altering it, as long as you use an ability that is also attached to the cooldown/link then it will also effect it for all fields connected to the cooldown/link.