// CORE private void OnCollisionEnter(Collision collision) { if (BoltNetwork.IsServer && collision.gameObject.CompareTag(Constants.Tag.Totem)) { SendGameOverEvent(); if (OnNexusDestroyed != null) { OnNexusDestroyed.Invoke(OwnerTeam); } } }
// PRIVATE private void LoseLife() { if (OnWallHit != null) { OnWallHit.Invoke(state.Lives); // Local event } if (entity.isAttached && entity.isOwner) { state.Lives--; foreach (var totemSpawn in FindObjectsOfType <TotemSpawner>()) { if (OwnerTeam == Team.Red && totemSpawn.RespawnSide == TotemSpawner.Side.Red) { totemSpawn.RespawnTotem(); } else if (OwnerTeam == Team.Blue && totemSpawn.RespawnSide == TotemSpawner.Side.Blue) { totemSpawn.RespawnTotem(); } } TotemWallHit totemWallHitEvent = TotemWallHit.Create(); totemWallHitEvent.Team = (int)OwnerTeam; totemWallHitEvent.Send(); if (state.Lives <= 0) { if (OnWallDestroyed != null) { OnWallDestroyed.Invoke(OwnerTeam); } BoltNetwork.Destroy(gameObject); } } }
void HandleRemoval(SpeciesWidget removed, int formerIndex) { _editTarget.RemoveAt(formerIndex); OnPartyChange?.Invoke(this); }