DamageSensor
new DamageSensor()DamageSensor - Hit event listener
Tracks damage events and maintains threat awareness. Writes damage information to State for use by Intents.
State Keys Written
lastDamageTime- Time of last damage (number)lastDamageDirection- Direction damage came from ({ x, y, z } | null)lastDamageAmount- Amount of last damage (number)threatScore- Current threat level 0-1 (number)underFire- Currently taking damage (boolean)
Usage
Events Emitted
| Event | When | Payload |
|---|---|---|
damaged |
Agent takes damage | { damage, direction, shooterIndex, shooterType } |
body.ai.addEventListener('damaged', (event) => {
console.log('Took', event.damage, 'damage from direction:', event.direction);
playHurtSound();
});
Example
body.ai.addSensor(new DamageSensor({
threatDecayRate: 0.1, // How fast threat decays per second
underFireThreshold: 2.0, // Seconds to consider "under fire"
updatePeriod: 0.05 // Update at 20 Hz
}));
Properties
Methods
recordDamage#
recordDamage(hitData : Object, body : Object)Record a damage event. Called externally when the agent takes damage.
Parameters
hitDataObjectHit information.
pointoptionalObjectWorld position of hit.damageoptionalnumberDamage amount.
Default is10.shooterIndexoptionalnumberIndex of the shooter body.shooterTypeoptionalstringType of the shooter body.
bodyObjectThe agent body that was hit.
set#
set(config : Object) : DamageSensorConfigure sensor parameters.
Parameters
configObjectConfiguration object.
Returns
DamageSensor — This instance for chaining.serialize#
serialize() : ObjectSerialize sensor configuration for worker transfer.
Returns
Object — Serialized configuration.reset#
reset()Reset threat state.