Example #1
0
        protected override void ClientInitialize(ClientInitializeData data)
        {
            base.ClientInitialize(data);
            var sceneObject            = data.GameObject.ClientSceneObject;
            var componentBombCountdown = sceneObject.FindComponent <ClientComponentBombCountdown>();

            componentBombCountdown.IsRendering = false;
            this.ClientAddShakes(componentBombCountdown);

            var sceneObjectEffect = Client.Scene
                                    .CreateSceneObject("Desert Princess explosion effect",
                                                       position: sceneObject.Position);
            var soundEmitter = Api.Client.Audio.CreateSoundEmitter(
                sceneObjectEffect,
                soundResource: new SoundResource("Ambient/Earthquake"),
                is3D: true,
                worldPositionOffset: this.Layout.Center,
                radius: 20,
                isLooped: true);

            soundEmitter.Seek(0);
            soundEmitter.CustomMinDistance = ExplosionDamageRadius;
            soundEmitter.CustomMaxDistance = 10 + ExplosionDamageRadius;

            var lightSource = ObjectMineralPragmiumHelper.ClientInitializeLightForSource(sceneObjectEffect);

            lightSource.LogicalSize = lightSource.RenderingSize = 24;
            lightSource.Color       = Color.FromArgb(100, 255, 100, 175);
            sceneObjectEffect
            .AddComponent <ClientComponentLightSourceEffectPulsating>()
            .Setup(data.GameObject,
                   safeDistance: ExplosionDamageRadius + 1, // add extra tile just to ensure safety
                   lightSource,
                   soundEmitter,
                   fromPercents: 85,
                   toPercents: 120,
                   durationSeconds: 1);
        }
 protected override void ClientInitialize(ClientInitializeData data)
 {
     base.ClientInitialize(data);
     ObjectMineralPragmiumHelper.ClientInitializeLightForSource(data.GameObject);
 }