Beispiel #1
0
    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();
            }
        }
    }
Beispiel #2
0
    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);
                    }
                }
            }
        }
    }