I would like to offer add the following functions and make the following changes that improve life of mapmakers 
1. Make it possible to add custom attack/armor types like in SC2. Custom hero stats as well. Maybe new tab in Object Editor?
2. Some new events:
(also, if you add bonus damage to crit. ability, it doesnt add up with the number in the floating text)
3. Fix Hero and Divine armor type icons - they do not have upgradeable counterparts
4. Some new functions:
5. Add orders for item abilities so they can be issued to cast with triggers.
6. Rewamp Archimonde’s Rain of Fire to work diffirently and not only with part of summon spells. (aka an ability to put in Flamestrike so it casts multiple Flamestrikes)
7. Allow to add more lightning types than currently supported (maybe allow their custom coloration as well). Another tab in Object Editor?
8.
9. Allow to hide floating text of abilities like Evade, Shadow Strike, Critical Strike and Mana Burn with a flag in Object Editor.
10.
11. Allows to add an argument that can be changed and that depends on certain values in ability tooltips.
Like so: Deals $1 damage to the targeted unit.
Changes $argument to be equal of value. E.g:
The "1" number means first argument in tooltip ($1)
where $1 equals hero’s Agility. etc
12. Increase the amount of text that you can put in a tooltip.
13. Some function for AI scripts:
14.
15.
16. Add a flag for abilities in Object Editor to make them unable to be silenced. For Example, Ensnare is not affected by Silence.
Add flags for Silence, Drunken Haze and Cloud of Fog to allow them to disable passive abilities and items (either fully or partially, like Doom).
Another solution - when creating a spell with silence, allow players to list spells that are unaffected by this spell.
17.
Or add another variable - abilitylist (array of abilities).
In that case, required functions are:
18. Fix the custom text on pre-game menu (custom names of races and AIs shows only after you play a map and it shows on all the other maps as well).
Allow to add additional races. Can be achieved by using config (for JASS users) or make it fully supported in WE.
19. Fix and extend or at least allow to add new team colors (at least through using colors of players 13+) or allow to customize team colors using RGB system.
20. Add a new type of agents in-game that work like effects but that are instead moved from point to point until a required event happens after which they get destroyed..
Speculations about missile functional are open.
21. Allow to customize command icons for each race (move, stop, hold, attack and etc. like building icon) by using functions or using method from WC3 Beta
22. Allow to add additional custom resource(s) to gold and lumber (or at least give us back mana stones pls)
23. Allow/upgrade/extend functional of hidden abilities (world requires to know what ‘Spy’ is doing!, Random Item to work only with items that have ‘morphable’ flag at ‘on’)
24.
P.S. Source idea, the rest is there
25. Allow "Charge Gold and Lumber" to be customized like Channel (so custom spells that cost resources instead of mana can be added)
26. Fix impact effect of spells based on Stampede and Carrion Swarm/Crushing Wave (it isnt changing when setting any other effect, it follows the one that original spell possesses)
1. Make it possible to add custom attack/armor types like in SC2. Custom hero stats as well. Maybe new tab in Object Editor?
2. Some new events:
JASS:
constant unitevent EVENT_UNIT_BASH //event triggers when Bash chance occurs. Helps to make passives that trigger on attack way easier.
constant unitevent EVENT_UNIT_CRITICAL //event triggers when Critical Strike chance occurs. Same as one above.
constant unitevent EVENT_UNIT_UNLOADED //triggers when unit unloading
constant unitevent EVENT_UNIT_LIGHTNING_DAMAGE //triggers when deal damage by Chain/Forked Lightning and Healing Wave
(also, if you add bonus damage to crit. ability, it doesnt add up with the number in the floating text)
3. Fix Hero and Divine armor type icons - they do not have upgradeable counterparts
4. Some new functions:
JASS:
function UnitAddChanceAbility takes unit u, integer abilid, real chance returns nothing //adds unit an ability that triggers when it attacks (aka toggleable orb passive without the orb)
5. Add orders for item abilities so they can be issued to cast with triggers.
6. Rewamp Archimonde’s Rain of Fire to work diffirently and not only with part of summon spells. (aka an ability to put in Flamestrike so it casts multiple Flamestrikes)
7. Allow to add more lightning types than currently supported (maybe allow their custom coloration as well). Another tab in Object Editor?
8.
JASS:
function AddLightningUnitToPoint takes string codename, boolean checkVisibility, unit u, real x, real y returns lightning //Bounds a unit and a point with a lightning (when unit moves effect is attached)
function AddLightningUnitToUnit takes string codename, boolean checkVisibility, unit u1, unit u2 returns lightning //Bounds two units with a lightning effect (attached to both, even when they move)
9. Allow to hide floating text of abilities like Evade, Shadow Strike, Critical Strike and Mana Burn with a flag in Object Editor.
10.
JASS:
function UnitSetAbilityTooltip takes unit u, integer abilid, string tooltip returns nothing //Changes ability tooltip
11. Allows to add an argument that can be changed and that depends on certain values in ability tooltips.
Like so: Deals $1 damage to the targeted unit.
JASS:
function SetUnitTooltipAbilityArgument takes unit u, integer abilid, integer param, string value returns nothing
JASS:
call SetUnitTooltipAbilityStats(u,’A000’,1,I2S(GetHeroAgi())
where $1 equals hero’s Agility. etc
12. Increase the amount of text that you can put in a tooltip.
13. Some function for AI scripts:
JASS:
function MorphUnit takes integer qty, integer id returns boolean //Morph qty units of type id for AI
function GetRandomAIUnit takes integer id returns unit //Gets a random unit controlled by AI
function IssueUnitHireHero takes integer id returns nothing //Orders a random unit controlled by AI to hire a unit from Mercenary Camp/Goblin Laboratory/etc
function IssueUnitHireUnit takes integer id returns nothing //Same as one above but to hire a hero from a Tavern.
function IssueHeroBuyItem takes integer hero_id, integer item_id returns nothing //Orders a random hero of hero_id type to purchase an item of item_id type from any shop (including neutral)
14.
JASS:
function UnitAddEnergyBar takes unit u, integer res_start, integer res_max, integer res_regen integer color_red, integer color_green, integer color_blue //Unit gains an energy bar, its text color can be changed. You can make abilities to use custom energy instead of mana (like Rage or Energy in WoW). Does not count as mana (unaffected by brilliance aura, fountain of mana, etc)
15.
JASS:
function SetLocalCursorFlicking takes boolean on returns nothing //Enables/disables cursor flicking (change of color) (see next)
function SetLocalCursorFlickingOnTarget takes boolean on, string error returns nothing //Enables/disables cursor flicking when casting an ability (for spells based on Channel)
function SetLocalCursorOnTargetError takes string error returns nothing //When cursor flicking is disabled, show error string and not issue an order
function SetLocalCursorColor takes integer red, integer green, integer blue returns nothing //Sets a custom coloration for players cursor
function SetLocalCursorModel takes string model returns nothing //Changes cursor’s model
16. Add a flag for abilities in Object Editor to make them unable to be silenced. For Example, Ensnare is not affected by Silence.
Add flags for Silence, Drunken Haze and Cloud of Fog to allow them to disable passive abilities and items (either fully or partially, like Doom).
Another solution - when creating a spell with silence, allow players to list spells that are unaffected by this spell.
17.
JASS:
function GetUnitAbilityList takes unit u returns integer array //Gets a list of unit abilities as array
In that case, required functions are:
JASS:
function GetUnitAbilityList takes unit u returns abilitylist //returns a list of the unit's abilities
function GetAbilityListLength takes abilitylist l returns integer //returns the size of the unit's abilities list
function GetAbilityFromAbilityList takes abilitylist l, integer id returns integer //returns rawcode of the ability at number id
18. Fix the custom text on pre-game menu (custom names of races and AIs shows only after you play a map and it shows on all the other maps as well).
Allow to add additional races. Can be achieved by using config (for JASS users) or make it fully supported in WE.
19. Fix and extend or at least allow to add new team colors (at least through using colors of players 13+) or allow to customize team colors using RGB system.
20. Add a new type of agents in-game that work like effects but that are instead moved from point to point until a required event happens after which they get destroyed..
JASS:
type missile extends agent //New variable type - missile
type missileevent extends eventid //New event type for missiles
constant unitevent EVENT_UNIT_MISSILE //Event of missile hitting a unit
constant missileevent EVENT_MISSILE_IMPACT //Even of missile reaching a point
function CreateMissileOnUnitToUnit takes unit target, unit source, real height, real speed, real arcangle, real scale, string modelpath returns missile //Creates a missile that moves from one point to another. Upon impact triggers EVENT_UNIT_MISSILE.
function CreateMissileOnPointToUnit takes unit source, unit target, real x, real y, real height, real speed, real arcangle, real scale, string modelpath returns missile //Like one above but from point to unit
function CreateMissileOnPointToPoint takes unit source, real x1, real y1, real x2, real y2, real height, real speed, real arcangle, real scale, string modelpath returns missile //Like ones above but from point to point. Upon impact triggers EVENT_MISSILE_IMPACT.
function SetMissileX takes missile m, real x returns nothing //Sets X coordinate of missile
function SetMissileY takes missile m, real y returns nothing //Sets Y coordinate of missile
function SetMissileHeight takes missile m, real height returns nothing //Sets height of missile
function SetMissileTargetPoint takes missile m, real x, real y returns nothing //Sets the target that missile will move at
function SetMissileTargetUnit takes missile m, unit u returns nothing //Missile will move to targeted unit
function SetMissileSourceUnit takes missile m, unit u returns nothing //Detects a unit that spawned missile
function SetMissileSpeed takes missile m, real speed returns nothing //Sets missile speed
function SetMissileScale takes missile m, real scale returns nothing //Sets missile size
function SetMissileArcAngle takes missile m, real angle returns nothing //Sets missile arcangle
function SetMissileModel takes missile m, string path returns nothing //Sets missile model
function GetEventMissile takes nothing returns missile //Returns a missile that reached its target
function GetMissileX takes missile m returns real //Returns current X of a missile
function GetMissileY takes missile m returns real //Returns current Y of a missile
function GetMissileHeight takes missile m returns real //Returns current height of a missile
function GetMissileSpeed takes missile m returns real //Returns current speed of a missile
function GetMissileScale takes missile m returns real //Returns current size of a missile
function GetMissileArcAngle takes missile m returns real //Returns current arcangle of a missile
function RemoveMissile takes missile m, boolean animation returns nothing //Deletes a missile. Flag animation depends if it will play death animation or not
21. Allow to customize command icons for each race (move, stop, hold, attack and etc. like building icon) by using functions or using method from WC3 Beta
22. Allow to add additional custom resource(s) to gold and lumber (or at least give us back mana stones pls)
23. Allow/upgrade/extend functional of hidden abilities (world requires to know what ‘Spy’ is doing!, Random Item to work only with items that have ‘morphable’ flag at ‘on’)
24.
JASS:
function SetUnitSelectionCircle takes unit u, string modelpath returns nothing //Sets a selection circle model for a unit
function ResetUnitSelectionCircle takes unit u returns nothing //Returns the original selection circle of the unit
P.S. Source idea, the rest is there
25. Allow "Charge Gold and Lumber" to be customized like Channel (so custom spells that cost resources instead of mana can be added)
26. Fix impact effect of spells based on Stampede and Carrion Swarm/Crushing Wave (it isnt changing when setting any other effect, it follows the one that original spell possesses)
Last edited: