Table of Contents

Struct AbilityObjectDestroyedBroadcast

Namespace
FishMMO.Shared
Assembly
FishMMO.Shared.dll

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

long

CasterObjectID

NetworkObject id of the casting character.

public int CasterObjectID

Field Value

int

ContainerID

Deterministic container id the object lived in (identical on every peer).

public int ContainerID

Field Value

int

ObjectID

Object id within the container (identical on every peer).

public int ObjectID

Field Value

int