DamageSensor

@three-blocks/proAISensorDamageCombatEvents
new DamageSensor()
Extends
Sensor

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

.events : Array.

Events this sensor can emit.

Methods

recordDamage#

recordDamage(hitData : Object, body : Object)

Record a damage event. Called externally when the agent takes damage.

Parameters
hitDataObject
Hit information.
  • pointoptionalObject
    World position of hit.
  • damageoptionalnumber
    Damage amount.
    Default is 10.
  • shooterIndexoptionalnumber
    Index of the shooter body.
  • shooterTypeoptionalstring
    Type of the shooter body.
bodyObject
The agent body that was hit.

set#

set(config : Object) : DamageSensor

Configure sensor parameters.

Parameters
configObject
Configuration object.
Returns
DamageSensor — This instance for chaining.

serialize#

serialize() : Object

Serialize sensor configuration for worker transfer.

Returns
Object — Serialized configuration.

reset#

reset()

Reset threat state.