• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

HIVE

Zwiebelchen
Zwiebelchen
The aggro system just provides the framework and threat management tools. It does not apply or add any threat on its own. What you do with it is entirely up to you.
But yes, applying modifiers or changing threat based on classes or range to the target is easy to do with it.
Xonok
Xonok
As far as I can see your system only allows adding threat as a constant amount. If I were to make a modifier like this I would have to keep track of threat separately, which kinda negates the point of the system.
Xonok
Xonok
As clarification, what I want to do is adding threat constantly and then later redeciding how much it actually applies. It doesn't seem possible without duplicating what your system already does.
Zwiebelchen
Zwiebelchen
You have getters and modifiers for threat. For example, if you want to reduce threat by 90%, simply get the total amount of threat for that unit on the mob and reduce it by the percentage amount.
Zwiebelchen
Zwiebelchen
There is nothing constant about it. All ZTS provides are functions for applying and modifying threat and the framework that applies orders to units, such as the retreat and camp mechanic.
ZTS doesnt apply any threat on its own.
Xonok
Xonok
In essence, I would have to keep track of true threat myself. But the way you put it makes me feel like that won't be an actual problem.
I'll just have to have an intermediate value for threat, which is the "true" threat, while giving the system a modified threat value instead.
As I get it, I can just overwrite any existing threat easily?
Zwiebelchen
Zwiebelchen
You don't have the keep track of threat. Thats what the system is for. And yes you can modify, add, subtract, multiply, divide, reset, etc.
Xonok
Xonok
I would, because it's not simply multiplying threat and such. If I didn't keep track of "true" threat it would mean that some actions would have weird interactions. For instance, using an ability from afar and then moving close would cause more threat than simply using it from up close, unless I specifically consider this.
It's much easier to just have an intermediate variable for true threat and only pass the "effective" threat to the system.
So in effect I would need to keep track, as the system isn't designed to handle that directly, although makes it possible to write a wrapper for that.
A simple change would be providing a threat factor variable, which would not affect the threat itself, but only how much it applies. Without that I'll just keep track of true threat and apply this part myself.
Zwiebelchen
Zwiebelchen
At this point, why don't you tell me what you want to do and I can tell you how to do it? I'm completely lost at what you are trying to achieve here. This system does everything and nothings. It's just a framework. What you do with it is completely up to you. I still think you are making this way more complicated than it is, though.
Xonok
Xonok
Well, when a human plays a low mobility melee character in LoL, their targeting priority takes into account who is closer.
Although Olaf can beat practically anyone in 1v1, you can't simply run after the carry and expect to survive. Thus, your threat perception is not only who does the most damage, but also who is closer.
If they come closer, you certainly must attack the carry, because they are vulnerable.
tl;dr - Agro should be in relation to distance, because running after someone you can't catch gets you killed.
Xonok
Xonok
Ofc only attacking the closest would be stupid. Thus, it should be a factor.
Xonok
Xonok
In this aspect the normal WC3 AI beats most threat systems. A unit will practically never ignore the ones it can attack in favor of those it can't.
Top