| 10-31-2008, 06:32 AM | #1 |
So, I was thinking of another implementation for a damage-detection framework. The ideas are as yet sketchy, which is why they're just ideas for now. Basically, this involves triggering everything. 'Damage' wouldn't be dealt via UnitDamageTarget(), but by simply subtracting amounts of HP. Armour and all damage-reducing abilities (Hardened Skin, magic immunity, Anti-magic Shell, triggered shields, to name a few) would also have to be triggered. Advantages There are a few: firstly, complete, utter control over damage. Reduction of lethal damage would no longer have to be done with abilities, and unit deaths could be prevented and only happen when allowed to. There would be lots of possibilities: custom types of reduction, custom damage types (like those in Rising_Dusk's existing system), control over what kinds of reduction/damage would take priority, bypass other types, and so on. There would also be no more problems with dynamic triggers or event-leaking. Disadvantages Extra overhead, I guess, since we would no longer be using the natives. And redundancy, since a lot of it is already handled well by said natives, and the whole system rewrites a lot of that just to add new functionality (something like PandaMine's AMHS, with the custom shadows and stuff). Other than those, I doubt there are many disadvantages system-wise. A lot of stuff could be automated/fixed, since everything is triggered. Other Stuff The bounty system could be rewritten, or normal UnitDamageTarget()-Chaos/Universal damage could be used to kill. The former option gives much more control, but much more overhead, since there aren't as many potential benefits. Also, attacks. These would have to be triggered as well, which could cause problems. Since the aim is to cut out EVENT_UNIT_DAMAGED, it could be hard to detect attacks - I was thinking along the lines of a damage point/IAS calculation, but that'd be really excessive. Any ideas here? Perhaps attacks could be triggered as well, done via an additional custom ability? Meaning, the unit's damage wouldn't be shown. --- Of course, not every map needs such control, which is why there are alternatives, like ADamage and Rising_Dusk's system. I aim for mine to be an alternative; if it ever gets created, that is. |
| 10-31-2008, 10:34 AM | #2 | ||
Quote:
Quote:
![]() The idea itself seems good (I thought of doing something like this before, except I was planning to include everything that had the slightlest association with combat :P), but if you do use custom abilities for unit damage, then the system would be quite limited since most players would be relying on an accurate indication of damage dealt |
| 10-31-2008, 11:59 AM | #3 |
My personal opinion is that total control is overrated. End user don't want over complicated stuff just for a total control that won't be used totally. We must prioritize in using native in a better way than replacing them. In general, a system must offer more benefits than disadvantages. If your system can offer this, then it really has future, otherwise... it would be a nice, but end-user useless programming experience. |
| 10-31-2008, 12:13 PM | #4 | |
The thing about my system is that it's expandable to do all of the things you suggest. With some (rather simple) extra libraries that require it, it can do everything you suggest while still being the simplest thing on God's green earth to code up for the user. The only real add-ons I'd like to create sometime are the Shield Add-on and the Priority Add-on, since both serve great use. Quote:
The beauty with abusing the damage event like I did in my system is that detecting attacks becomes a joke. That's one of the most pivotal points of my system, especially considering that it can (easily) be expanded to do all of the other cool stuff you mentioned in this post (and I did afterwards). Just my thoughts, anyways. |
| 10-31-2008, 01:48 PM | #5 |
If you don't have the damage event, then you don't have a damage detection system. Simple as that... Dusk's system already does what you seem to want, but without needing you to recode the whole of WC3 (since you'd need to recode attack damage without knowing when attacks happen...). |
| 11-01-2008, 05:15 AM | #6 | ||||||||
Quote:
Quote:
Heh, I know the feeling. Quote:
Quote:
At the moment, all this is just a WIP proof-of-concept - there are some kinks that haven't been worked out, with both the implementation and the methods used. And, a system must always offer more benefits than disadvantages. ![]() Quote:
Quote:
I've pretty much given up the idea of a damage point/IAS calculation for every unit. It'd be a bit too excessive, besides being a pain to configure. Quote:
Quote:
--- At the moment, I'm still trying to figure out methods with which I can detect attacks, like buffs, Hardened Skin, etc. Not so optimistic about doing it without the damage event, however. If there really isn't any other way, I guess I'll leave it at that - I suppose my system could still be useful for complicated stuff not directly involving attacks (spell-exclusive maps, for example). ![]() Thanks for the feedback, everyone. |
| 11-01-2008, 07:34 AM | #7 |
impractical... imagine the work load increases to the programmers... |
