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); }