npm install --save wc3-ts-definitions
npm install
npm run build
to ./dist/wc3.d.ts
Camera Margin constants for use with GetCameraMargin
Game Constants pfff
Alliance settings
Buff properties - polarity
Buff properties - resist type
Camera bounds adjustment methods
Camera settings
Campaign indexing constants
Campaign offset constants (for mission indexing)
Campaign Minimap icon styles
Cinematic fade filter methods
Cinematic indexing constants
Corpse creation styles
Elevator pathing-blocker destructable code
Elevator wall codes
Variables // Force predefs
Game cache value types
Gate operations
Hashtable value types
Hero stats
Itemcode status types
Item status types
Keyboard Event Keys
Keyboard Event Types
Auto Save constants
Max events registered by a single "dest dies in region" event.
Game constants
QueuedTriggerExecute settings
Minimap ping styles
Hero skill point modification methods
Mouse Event Types
Quest message types
Quest creation states
Buff removal methods
Smart pan settings
Leaderboard sorting methods
Timing settings for Marketplace inventories.
Transmission timing methods
Unit state adjustment methods (for replaced units)
Cinematic fade vars
Cinematic mode vars
Transmission vars
Helper vars (for Filter and Enum funcs)
Day/Night Cycle vars
Utility function vars
Singleplayer check
Instanced Operation Results
Map area rects
Rescue behavior vars
QueuedTriggerExecute vars
Last X'd vars
Random distribution vars
Triggered sounds sound bj_pingMinimapSound = null
Game started detection vars
Marketplace vars
Melee vars
Memory cleanup vars
Filter function vars
Not currently working correctly...
Effects API
Environment Utility Functions
Determine whether or not victory/defeat is disabled via cheat codes.
Expect values between -1 and 1...returns 0 for invalid input
Returns 0 if x and y are both 0
Automation Test
Debugging Functions
Bit Operations
native BlzSetDestructableSkin takes destructable whichDestructable, integer skinId returns nothing
Intanced Object Operations Ability
JAPI Functions
Unit
Skin
Unit Weapon
Add this function to follow the style of GetUnitX and GetUnitY, it has the same result as BlzGetLocalUnitZ
Machinima API
Instanced Object Operation Functions Get/Set specific fields for single unit/item/ability instance
Item
Ability
Unit
native BlzGetDestructableSkin takes destructable whichDestructable returns integer
Unit Weapon
Used to store hero level data for the scorescreen before units are moved to neutral passive in melee games
Cinematic Transmission Utility Functions If cancelled, stop the sound and end the cinematic scene.
To properly animate an elevator, we must know not only what height we want to change to, but also what height we are currently at. This code determines the elevator's current height from its occlusion height. Arbitrarily changing an elevator's occlusion height is thus inadvisable.
This toggles pathing on or off for one wall of an elevator by killing or reviving a pathing blocker at the appropriate location (and creating the pathing blocker in the first place, if it does not yet exist).
Async only!
Player Slot Availability
Choose any random unit/item. (NP means Neutral Passive)
Cinematic Mode Utility Functions Makes many common UI settings changes at once, for use when beginning and ending cinematic sequences. Note that some affects apply to all players, such as game speed. This is unavoidable.
This function does nothing. WorldEdit should should eventually ignore CommentString triggers during script generation, but until such a time, this function will serve as a stub.
Generates a conditionfunc from a function. Usally passed to TriggerAddCondition.
The function that will be called when the condition is checked. Must return a boolean.
Utility Constructs Runs the trigger's actions if the trigger's conditions evaluate to true.
Creates a 'Neutral Victim' player slot. This slot is passive towards all other players, but all other players are aggressive towards him/her.
native BlzFourCC2S takes integer value returns string native BlzS2FourCC takes string value returns integer
Command Button Effect Utility Functions
Destructable Object API Facing arguments are specified in degrees
Destructable Utility Functions
Version of CreateFogModifierRadius that assumes use of sharedVision and gives the option of immediately enabling the modifier, so that triggers can default to modifiers that are immediately enabled.
Version of CreateFogModifierRect that assumes use of sharedVision and gives the option of immediately enabling the modifier, so that triggers can default to modifiers that are immediately enabled.
Force API
Group API
Image API
Item API
Leaderboard API Create a leaderboard object
Multiboard API Create a multiboard object
Multiboard Utility Functions
Quest API
Quest Utility Functions
Timer API
Timer Dialog API
Trackable API
Native trigger interface
Ubersplat API
Declare a player victorious and optionally shows the victory dialog (Continue, Quit).
Related functions:
The player (and team) that is victorious. TODO verify does this function make everyone on a team win or just asingle person)
Wether to show a dialog with the header "victory" and a quit/continue button.
Wether to show the scoreboard after leaving the game.
MathAPI
Waits a short period of time to ensure that the corpse is decaying, and then suspend the animation and corpse decay.
Game code explicitly sets the animation back to "decay bone" after the initial corpse fades away, so we reset it now. It's best not to show off corpses thus created until after this grace period has passed.
Two distinct trigger actions can't share the same function name, so this dummy function simply mimics the behavior of an existing call. Commented out - Destructibles have no attachment points. function AddSpecialEffectTargetDestructableBJ takes string attachPointName, widget targetWidget, string modelName returns effect return AddSpecialEffectTargetUnitBJ(attachPointName, targetWidget, modelName) endfunction Two distinct trigger actions can't share the same function name, so this dummy function simply mimics the behavior of an existing call. Commented out - Items have no attachment points. function AddSpecialEffectTargetItemBJ takes string attachPointName, widget targetWidget, string modelName returns effect return AddSpecialEffectTargetUnitBJ(attachPointName, targetWidget, modelName) endfunction
Dialog API
Cinematic Filter Utility Functions
Text Utility Functions
General Utility Functions These functions exist purely to make the trigger dialogs cleaner and more comprehensible.
Enumerates within a rect, with a filter to narrow the enumeration down objects within a circular area.
This will be difficult to support with potentially disjoint, cell-based regions as it would involve enumerating all the cells that are covered by a particularregion a better implementation would be a trigger that adds relevant units as they enter and removes them if they leave...
Group and Force Utility Functions
See GroupPickRandomUnitEnum for the details of this algorithm.
forces player to have the specified start loc and marks the start loc as occupied which removes it from consideration for subsequently placed players ( i.e. you can use this to put people in a fixed loc and then use random placement for any unplaced players etc )
UI Utility Functions
Generates a four character code from a string.
EVENT_PLAYER_UNIT_ATTACKED
These return values for the local players camera only...
Query the initial camera bounds, as defined at map init.
EVENT_PLAYER_UNIT_CONSTRUCT_FINISH EVENT_PLAYER_UNIT_CONSTRUCT_CANCEL
EVENT_PLAYER_UNIT_CHANGE_OWNER
EVENT_DIALOG_BUTTON_CLICK
EVENT_PLAYER_UNIT_SELECTED constant native GetSelectedUnit takes nothing returns unit EVENT_PLAYER_UNIT_CONSTRUCT_START
Query the current camera bounds.
Camera Utility Functions
EVENT_PLAYER_UNIT_DECAY
EVENT_PLAYER_UNIT_DETECTED
EVENT_PLAYER_UNIT_DEATH
Determine the elevator's height from its occlusion height.
Query the entire map area, as defined at map init.
EVENT_UNIT_DAMAGED
EVENT_UNIT_DEATH EVENT_UNIT_DECAY Use the GetDyingUnit and GetDecayingUnit funcs above EVENT_UNIT_DETECTED
EVENT_GAME_STATE_LIMIT
EVENT_PLAYER_CHAT returns the actual string they typed in ( same as what you registered for if you required exact match )
returns the string that you registered for
EVENT_PLAYER_STATE_LIMIT
EVENT_UNIT_ACQUIRED_TARGET EVENT_UNIT_TARGET_IN_RANGE
EVENT_UNIT_STATE_LIMIT
Translates 0-based slot indices to 1-based slot indices.
EVENT_PLAYER_HERO_SKILL EVENT_UNIT_HERO_SKILL
EVENT_PLAYER_HERO_LEVEL EVENT_UNIT_HERO_LEVEL
This function is asynchronous. The values it returns are not guaranteed synchronous between each player. If you attempt to use it in a synchronous manner, it may cause a desync.
EVENT_PLAYER_UNIT_DROP_ITEM EVENT_PLAYER_UNIT_PICKUP_ITEM EVENT_PLAYER_UNIT_USE_ITEM
Looks up the "name" field for any object (unit, item, ability)
EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER
EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER
EVENT_PLAYER_UNIT_ISSUED_ORDER
Query the playable map area, as defined at map init.
Miscellaneous Utility Functions
Randomization API
EVENT_PLAYER_UNIT_RESCUED
EVENT_PLAYER_UNIT_RESEARCH_START EVENT_PLAYER_UNIT_RESEARCH_CANCEL EVENT_PLAYER_UNIT_RESEARCH_FINISH
EVENT_PLAYER_HERO_REVIVABLE
EVENT_PLAYER_HERO_REVIVE_START EVENT_PLAYER_HERO_REVIVE_CANCEL EVENT_PLAYER_HERO_REVIVE_FINISH EVENT_UNIT_HERO_REVIVE_START EVENT_UNIT_HERO_REVIVE_CANCEL EVENT_UNIT_HERO_REVIVE_FINISH
EVENT_GAME_SAVE
EVENT_PLAYER_UNIT_SELL
EVENT_PLAYER_UNIT_SELL_ITEM
EVENT_UNIT_SPELL_CHANNEL EVENT_UNIT_SPELL_CAST EVENT_UNIT_SPELL_EFFECT EVENT_UNIT_SPELL_FINISH EVENT_UNIT_SPELL_ENDCAST EVENT_PLAYER_UNIT_SPELL_CHANNEL EVENT_PLAYER_UNIT_SPELL_CAST EVENT_PLAYER_UNIT_SPELL_EFFECT EVENT_PLAYER_UNIT_SPELL_FINISH EVENT_PLAYER_UNIT_SPELL_ENDCAST
Will return 0 if the specified value's data is not found in the cache
EVENT_PLAYER_UNIT_SUMMONED
Terrain API
EVENT_GAME_TOURNAMENT_FINISH_SOON
EVENT_PLAYER_UNIT_TRAIN_FINISH
EVENT_PLAYER_UNIT_TRAIN_START EVENT_PLAYER_UNIT_TRAIN_CANCEL
EVENT_PLAYER_UNIT_LOADED
EVENT_PLAYER_DEFEAT EVENT_PLAYER_VICTORY
Trigger Unit Based Event API returns handle to unit which triggered the most recent event when called from within a trigger action function...returns null handle when used incorrectly
EVENT_GAME_ENTER_REGION
EVENT_GAME_TRACKABLE_HIT EVENT_GAME_TRACKABLE_TRACK
Widget API
EVENT_GAME_VICTORY
Returns full map bounds, including unplayable borders, in world coordinates
Consider each unit, one at a time, keeping a "current pick". Once all units are considered, this "current pick" will be the resulting random unit. The chance of picking a given unit over the "current pick" is 1/N, where N is the number of units considered thusfar (including the current consideration).
String Utility API
Returns true if every unit of the group is dead.
Returns true if the group contains no units.
Returns the player who is occupying a specified position in a leaderboard. The position parameter is expected in the range of 1..16.
Leaderboard Utility Functions
Change ownership for every unit of (whichPlayer)'s team to neutral passive.
Change ownership for every unit of (whichPlayer)'s team to neutral passive.
Determine if the gained unit should result in any defeats, victories, or cripple-status changes.
Test each player to determine if anyone has become crippled.
Test each player to determine if anyone has been defeated.
Test all players to determine if a team has won. For a team to win, all remaining (read: undefeated) players need to be co-allied with all other remaining players. If even one player is not allied towards another, everyone must be denied victory.
Determine if the lost unit should result in any defeats or victories.
Melee Template Clear Start Locations
Defeat out a specific player.
Enum: Defeat out a specific player.
Enum: Draw out a specific player.
A specific player left the game.
Enum: Victory out a specific player.
Melee Template Starting Units
Count allies, excluding dead players and the player themself.
Counts key structures owned by a player and his or her allies, including structures currently upgrading or under construction. Key structures: Town Hall, Great Hall, Tree of Life, Necropolis
Count buildings currently owned by all allies, including the player themself.
Returns a race-specific "build X" label for cripple timers.
Returns a race-specific "build X" label for cripple timers.
Returns a race-specific "build X or be revealed" message.
The first N heroes trained or hired for each player start off with a standard set of items. This is currently:
Melee Template Victory / Defeat Conditions
Remove all observers
Melee Template Starting Resources
Starting Units for Undead Players
Melee Template Visibility Settings
Melee Template Granted Hero Items
Calculate the modulus/remainder of (dividend) divided by (divisor). Examples: 18 mod 5 = 3. 15 mod 5 = 0. -8 mod 5 = 2.
Calculate the modulus/remainder of (dividend) divided by (divisor). Examples: 13.000 mod 2.500 = 0.500. -6.000 mod 2.500 = 1.500.
funcs for modifying individual items
broadcast settings to all items
meant to unequivocally suspend display of existing and subsequently displayed multiboards
Sound API
Nudge the items and units within a given rect ever so gently, so as to encourage them to find locations where they can peacefully coexist with pathing restrictions and live happy, fruitful lives.
Grab the unit and throw his own coords in his face, forcing him to push and shove until he finds a spot where noone will bother him.
Pause all units
Cinematic Utility Functions
Converts a percentage (real, 0..100) into a scaled integer (0..max), clipping the result to 0..max in case the input is invalid.
Update stock inventory.
Melee Template Starting AI Scripts
Sound Utility Functions
Player API
We can't do game-time waits, so this simulates one by starting a timer and polling until the timer expires.
Arranges for a trigger to fire almost immediately, except that the calling trigger is not interrupted as is the case with a TriggerExecute call. Since the trigger executes normally, its conditions are still evaluated.
computes x to the y power y == 0.0 => 1 x ==0.0 and y < 0 => 0
Queues a trigger to be executed, assuring that such triggers are not executed at the same time.
Attempt to execute the first trigger in the queue. If it fails, remove it and execute the next one. Continue this cycle until a trigger runs, or until the queue is empty.
Debug - Display the contents of the trigger queue (as either null or "x" for each entry).
Empty the trigger queue.
Remove all but the currently executing trigger from the trigger queue.
Denotes the end of a queued trigger. Be sure to call this only once per queued trigger, lest you step on the toes of other queued triggers.
Searches the queue for a given trigger, returning the index of the trigger within the queue if it is found, or -1 if it is not found.
Denotes the end of a queued trigger. Be sure to call this only once per queued trigger, or risk stepping on the toes of other queued triggers.
Removes a trigger from the trigger queue, shifting other triggers down to fill the unused space. If the currently running trigger is removed in this manner, this function does NOT attempt to run the next trigger.
Math Utility Functions
Picks a random destructable from within a rect, matching a condition
See GroupPickRandomUnitEnum for the details of this algorithm.
Picks a random destructable from within a rect
Random distribution Used to select a random object from a given distribution of chances
See GroupPickRandomUnitEnum for the details of this algorithm.
Region and Location API
Melee Template Hero Limit
Creates a new or reads in an existing game cache file stored in the current campaign profile dir
Animation Utility Functions
Utility function for use by editor-generated item drop table triggers. This function is added as an action to all destructable drop triggers, so that a widget drop may be differentiated from a unit drop.
Placeholder function for auto save feature
Day/Night ambient sounds
Blight API
Camera API
%%% SetCampaignMenuRace is deprecated. It must remain to support old maps which use it, but all new maps should use SetCampaignMenuRaceEx
Campaign Utility Functions
Blizzard.j Initialization
Subtitle support that is attached to the soundHandle rather than as disperate data with the legacy UI
Doodad API
Music Interface. Note that if music is disabled, these calls do nothing
Map Setup API These are native functions for describing the map configuration these funcs should only be used in the "config" function of a map script. The functions should also be called in this order ( i.e. call SetPlayers before SetPlayerColor...
Converts a single campaign mission designation into campaign and mission numbers. The 1000's digit is considered the campaign index, and the 1's digit is considered the mission index within that campaign. This is done so that the trigger for this can use a single drop-down to list all of the campaign missions.
Alliance Utility Functions
Research and Upgrade Utility Functions
Determines whether or not rescued buildings automatically change color upon being rescued.
Determines whether or not rescued units automatically change color upon being rescued.
these calls are only valid if the sound was created with 3d enabled
other music and sound calls
the following method must be called immediately after calling "StartSound"
Visual API
Campaign API
This version differs from the common.j interface in that the alpha value is reversed so as to be displayed as transparency, and all four parameters are treated as percentages rather than bytes.
Force (whichPlayer) to share vision and advanced unit control with all of his/her allies.
Force (whichPlayer) AI player to share vision and advanced unit control with all AI players of its allies.
Returns 0 if x <= 0
Computer AI interface
Perform the first update, and then arrange future updates.
This function returns the input string, converting it from the localized text, if necessary
The parameters for the API Substring function are unintuitive, so this merely performs a translation for the starting index.
Generic Template Player-slot Initialization
Text Tag Utility Functions Scale the font size linearly such that size 10 equates to height 0.023. Screen-relative font heights are harder to grasp and than font sizes.
Scale the speed linearly such that speed 128 equates to 0.071. Screen-relative speeds are hard to grasp.
This operates like TransmissionFromUnitWithNameBJ, but for a unit type rather than a unit instance. As such, no speech indicator is employed.
Display a text message to a Player Group with an accompanying sound, portrait, speech indicator, and all that good stuff.
Adds an action (function) that will be executed once a trigger is fired.
The trigger the action will be added to.
The function that will execute for this action. Either a inline anonymous/arrow function or the name/handle of a function.
A handle to the added action which can be used to remove the action TriggerRemoveAction.
Runs the trigger's actions if the trigger's conditions evaluate to true.
Trigger Player Based Event API
EVENT_UNIT_ATTACKED Use GetAttacker from the Player Unit Event API Below... EVENT_UNIT_RESCUEDED Use GetRescuer from the Player Unit Event API Below... EVENT_UNIT_CONSTRUCT_CANCEL EVENT_UNIT_CONSTRUCT_FINISH See the Player Unit Construction Event API above for event info funcs EVENT_UNIT_TRAIN_START EVENT_UNIT_TRAIN_CANCELLED EVENT_UNIT_TRAIN_FINISH See the Player Unit Training Event API above for event info funcs EVENT_UNIT_SELL See the Player Unit Sell Event API above for event info funcs EVENT_UNIT_DROP_ITEM EVENT_UNIT_PICKUP_ITEM EVENT_UNIT_USE_ITEM See the Player Unit/Item manipulation Event API above for event info funcs EVENT_UNIT_ISSUED_ORDER EVENT_UNIT_ISSUED_POINT_ORDER EVENT_UNIT_ISSUED_TARGET_ORDER See the Player Unit Order Event API above for event info funcs
Removes an action from a trigger.
The trigger this action should be removed from.
The action to remove. This should eb an action handle returned by TriggerAddAction
Init a trigger to listen for END_CINEMATIC events and respond to them if a cinematic scene is in progress. For performance reasons, this should only be called once a cinematic scene has been started, so that maps lacking such scenes do not bother to register for these events.
Attempt to init triggers for default rescue behavior. For performance reasons, this should only be attempted if a player is set to Rescuable, or if a specific unit is thus flagged.
Unit Utility Functions
Find a sellable item of the given type and level, and then add it.
Update the per-class stock limits.
Game API
Neutral Building Utility Functions
3