Struct AbilityObjectDestroyedBroadcast
Tells observers that an ability object ended on the server through a collision.
public struct AbilityObjectDestroyedBroadcast : IBroadcast
- Implements
-
IBroadcast
- Inherited Members
Remarks
Lifetime expiry is deterministic and needs no message; a collision is not. Only the server
and the caster's own client resolve hits — see AbilityObject.ResolvesHitsLocally — so
an observer cannot work out that a collided object ended, and for the caster the statement
corrects a predicted miss. Sent reliably: it is one small message per collision-ended
object, and a lost one is a ghost that flies on for the rest of its life. The container id
is a pure function of (seed, spawn tick) on every peer, so the pair below names the same
object everywhere.
Only for an end no hit message precedes. A collision that published a hit states the
end inline through Ended, because sending both was
two reliable messages for one event. What is left for this message is every OTHER end a
client cannot reproduce: a shield sweeping nearby projectiles
(ShieldInterceptAction), which destroys with observer notification and publishes no
hit, and a pierce chain whose hit message could not yet know the count would run out.
Fields
AbilityID
Ability the object belonged to.
public long AbilityID
Field Value
CasterObjectID
NetworkObject id of the casting character.
public int CasterObjectID
Field Value
ContainerID
Deterministic container id the object lived in (identical on every peer).
public int ContainerID
Field Value
ObjectID
Object id within the container (identical on every peer).
public int ObjectID