public void GoBoom() { Spaces.LBE.EventParam heatLampEventParams = new Spaces.LBE.EventParam(); heatLampEventParams.m_fParam = 1.0f; Spaces.LBE.SpacesEventManager.TriggerEvent(Spaces.LBE.SpacesEventType.HeatLamps, heatLampEventParams); if (PlayEnemyDeathParticle.instance) { PlayEnemyDeathParticle.instance.PlayDeathParticle(DeathParticleName, gameObject.transform); if (MasterAudio.Instance) { MasterAudio.PlaySound3DAtTransformAndForget("ExplosionGroup", transform); } if (soundEffectComponent) { soundEffectComponent.PlaySoundToServer(); } } }
protected void ApplyDamage(int damage, Collider hitCollider, Player damageOwner = null) { for (int i = 0; i < pieces.Length; i++) { //Debug.Log("[HIT] " + piece.name + " damage: " + damage); if (pieces[i].colliders.Contains(hitCollider)) { pieces[i].TakeDamage(damage); RpcDamagePiece(i, damage); if (pieces[i].health <= 0) { if (pieces[i].explosiveEffect.m_profile.ragdollDuration > 0) { // for those right arm, left leg, right leg, head pieces ApplyExplosion(); OnDie.Invoke(); if (damageOwner && isServer) { Spaces.LBE.EventParam deathEventParams = new Spaces.LBE.EventParam(); Spaces.LBE.DebugLog.Log("gamestate", "ApplyDamage() registering kill from player id " + damageOwner.sPlrData.playerID); deathEventParams.m_sParam = damageOwner.sPlrData.playerID; Spaces.LBE.SpacesEventManager.TriggerEvent(Spaces.LBE.SpacesEventType.TerminatorKilled, deathEventParams); } break; } else { //Debug.Log("[DESTROYED] " + piece.name); pieces[i].SetDestroyed(); //UpdateRagdoll(); RpcDestroyPiece(i); } } } } }