Ezekiel12 said:
Hi Draco. I know your struggle and what you are working on. I love DotA too and it's the reason I started this list. But thinking about it I came to the conclusion that I can not just make demands what DotA 1 needs right now. A list centered only on that would sound stupid to most map makers and only be of temporary use, as more things are going to change. So I'm trying to make this as universally applicable as possible, for the whole community.
map size limit should be completely removed. like why the hell it ever have to have any cap?
At the time it seemed reasonble as 4/8mb was quite something to download and to forbid trolls and file sharing maybe too? Now it can be larger. Wc3 crashes for mpqs/maps over a certain size though, well before the 2gb/4gb limit. Some fast tests showed that it's unsafe above ~700mb, maybe less. I will reformulate it a bit more diplomatic begging asking for as much as possible.
Things I've really needed so far:
1. Unit event "missile fired"
"release attack" event is on the list
2. Unit event "on attack - evasion count" (or any wrapper for evasion on any unit)
Too niche imo. There are quite many corner cases where an attack can be evaded. Trigger evasion with dds or 100% blind buffs on the attacking unit should be sufficient.
3. Native "EvadeMissiles(u,evadeMagic,evadePhysic)" (currently being used by Blink, Mirror image and few others)
Too niche. Hiding, unhiding and readding the unit to the selection if it was selected before should do the job, right? Either a full projectile API or nothing imo
4. Native "SetSpecialEffectXY(fx,x,y)", "MoveSpecialEffectAttach (fx,widget,newattachpoint)" (for ground fx and fx on widgets)
Thinking about adding it but moving a dummy which has the special effect attached is a workaround ofc
5. CD Natives "GetAbilityCooldownById(id)", "SetAbilityCooldownById(id)", "StartAbilityCooldownById(u,id)", "ResetAbilityCooldownById(u)";
In the list.
6. Silence Natives "SilenceAbilityById(u,id,silence)"
Not needed if one can set the cooldown
7. Natives "ShowAbilityOnPanel(id,boolean)", "ShowAbilityOnPanelSingle(u,id,boolean)"
Currently working on a formulation for this. I think one native for this is enough.
8. Fix broken "maximum speed" to allow movespeed over 522
In the list
9. Fix broken pathfinding algo or add a native "RecountPathingIfNeeded(u)" so units wont' turn around in case if jumps over next waypoint.
A new native is way too specific. You are probably hinting at the triggered movement over 522ms problems and similar things. It will mostly be gone when ms above 522 is allowed.
A general veeeeery slight improvement in pathfinding might is welcomed though. Many players coming back from e.g. sc2 complain about the stupid ways units run sometimes. Mind though that for compatibility to old maps and the general gameplay that involves the exact specifics of the pathfinding only very little must change. Taking it in the list
10. Add alliance setting "SHARED_PANEL" which will allow allies to see unit's skills but won't allow to use any of them.
Working on that, maybe in combination with your point 7.
11. Add alliance setting "SHARED_CONTROL_SINGLE" which will allow to control units with new custom ability "Controllable"
Versatile suggestion, but too complicated. A single native would be better. My head makes me think I once knew a trick to do this but I can not remember right now. Will put it in the list under "unfinished"
Allow set upgrade level
should not be implemented, as the work to make this bug-free probably far outweighs the convenience benefits, which can also be reached by using a workaround
actually, according to source code of WC3, it uses a loop to increase levels one by one until required. there are no real reason to not have negative loop function as well, just oversight
I think it will bring ugly bugs to the daylight. Apart from that, the benefits are only to achieve some things easier. A new native to directly set widget fields would be the best thing but that's just crash crash crash probably..