protected override void ClientInitialize(ClientInitializeData data) { base.ClientInitialize(data); var sceneObject = Client.Scene.GetSceneObject(data.GameObject); var componentBombCountdown = sceneObject.FindComponent <ClientComponentBombCountdown>(); componentBombCountdown.IsRendering = false; this.ClientAddShakes(componentBombCountdown); var lightSource = ObjectMineralPragmiumHelper.ClientInitializeLightForSource(data.GameObject); sceneObject.AddComponent <ClientComponentLightSourceEffectPulsating>() .Setup(lightSource, fromPercents: 85, toPercents: 120, durationSeconds: 1); var soundEmitter = Api.Client.Audio.CreateSoundEmitter(data.GameObject, new SoundResource("Ambient/Earthquake"), true, radius: 7, isLooped: true); soundEmitter.Seek(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("Pragmium source explosion effect", position: sceneObject.Position); var soundEmitter = Api.Client.Audio.CreateSoundEmitter( sceneObjectEffect, soundResource: new SoundResource("Ambient/Earthquake"), is3D: true, worldPositionOffset: this.Layout.Center, radius: 50, isLooped: true); soundEmitter.Seek(0); soundEmitter.CustomMinDistance = ExplosionDamageRadius; soundEmitter.CustomMaxDistance = 10 + ExplosionDamageRadius; var lightSource = ObjectMineralPragmiumHelper.ClientInitializeLightForSource(sceneObjectEffect); lightSource.LogicalSize = lightSource.RenderingSize = 24; sceneObjectEffect .AddComponent <ClientComponentLightSourceEffectPulsating>() .Setup(data.GameObject, safeDistance: ExplosionDamageRadius + 1, // add extra tile just to ensure safety lightSource, soundEmitter, fromPercents: 85, toPercents: 120, durationSeconds: 1); }