Throttled event
The event is "throttled", which means that it won't be called for every single attack.
If I understand the C++ source code correctly, Warzone has it's own clustering algorithm that groups your droids and structures in to clusters. When something in a cluster is attacked, the event will be triggered once for that attack (not once for each unit/structure that was damaged) and then there is a short delay before any further attacks on that cluster will trigger the event again.
This means that you can't use this event to micromanage units in combat.
Overview
This event is called when your droids or structures are attacked.This event is useful for retreating damaged units, or repairing damage buildings, after an enemy attacks them.
Availability
Warzone 3.1 Beta 1 and above.
Syntax
function eventAttacked(victim, attacker) { // do stuff }
Parameters
Parameter | Type | Mandatory | Description | Game version |
---|---|---|---|---|
victim | Game object | Which of my things did the enemy attack? Either a Structure object or a Droid object. | 3.1 Beta 1 | |
attacker | Game object | What attacked me? Either a Structure object or a Droid object. | 3.1 Beta 1 |
Return value
Warzone does not process the event handler's return value.
Example
// make an array to count attacks by each player var attackers = new Array(playerData.length); // initialise values in array for (var i=0;i<attackers.length;i++) attackers[i] = 0; // define a numeric sort function attackers.numSort = function(a,b) { return a-b; } // now monitor attacks function eventAttacked(victim,attacker) { attackers[attacker.player] += 1; attackers.sort(attackers.numSort); console("The main aggressor is currently player #"+attackers[0]); }
See also
- bind() – monitor when stuff that doesn't belong to you gets destroyed
- Droids – summary of all API features relating to droids
- eventDestroyed() – monitor when your stuff gets destroyed
- Structures – summary of all API features relating to structures