Esempio n. 1
0
 private void ClientRemote_VehicleExploded(Vector2D position)
 {
     Logger.Important(this + " exploded at " + position);
     ExplosionHelper.ClientExplode(position: position + this.SharedGetObjectCenterWorldOffset(null),
                                   this.DestroyedExplosionPreset,
                                   this.DestroyedExplosionVolume);
 }
Esempio n. 2
0
 protected override void ClientOnObjectDestroyed(Vector2D position)
 {
     //base.ClientOnObjectDestroyed(tilePosition);
     Logger.Important(this + " exploded at " + position);
     ExplosionHelper.ClientExplode(position: position + this.Layout.Center,
                                   this.ExplosionPreset,
                                   this.VolumeExplosion);
 }
        protected override void ClientOnObjectDestroyed(Vector2Ushort tilePosition)
        {
            //base.ClientOnObjectDestroyed(tilePosition);
            Logger.Important(this + " exploded at " + tilePosition);
            var epicenterPosition = tilePosition.ToVector2D() + this.Layout.Center;

            ExplosionHelper.ClientExplode(epicenterPosition,
                                          this.ExplosionPreset,
                                          this.VolumeExplosion);
        }
Esempio n. 4
0
        private void ClientExplodeAt(
            IProtoItemWeapon protoWeapon,
            Vector2D shotSourcePosition,
            Vector2D explosionWorldPosition)
        {
            var timeToHit = WeaponSystemClientDisplay.SharedCalculateTimeToHit(protoWeapon.FireTracePreset
                                                                               ?? this.FireTracePreset,
                                                                               shotSourcePosition,
                                                                               explosionWorldPosition);

            ClientTimersSystem.AddAction(timeToHit,
                                         () => ExplosionHelper.ClientExplode(explosionWorldPosition,
                                                                             this.ExplosionPreset,
                                                                             this.ExplosionVolume));
        }
Esempio n. 5
0
        protected override void ClientOnObjectDestroyed(Vector2D position)
        {
            //base.ClientOnObjectDestroyed(position);
            Logger.Important(this + " exploded at " + position);

            var explosionPresetNode = ExplosionPresets.PragmiumResonanceBomb_NodeClientOnly;
            var positionEpicenter   = position + this.Layout.Center;

            ProcessExplosionDirection(-1, 0);  // left
            ProcessExplosionDirection(0, 1);   // top
            ProcessExplosionDirection(1, 0);   // right
            ProcessExplosionDirection(0, -1);  // bottom

            ExplosionHelper.ClientExplode(position: position + this.Layout.Center,
                                          this.ExplosionPreset,
                                          this.VolumeExplosion);

            void ProcessExplosionDirection(int xOffset, int yOffset)
            {
                foreach (var(_, offsetIndex) in
                         WeaponExplosionSystem.SharedEnumerateExplosionBombermanDirectionTilesWithTargets(
                             positionEpicenter: positionEpicenter,
                             damageDistanceFullDamage: DamageRadiusFullDamage,
                             damageDistanceMax: DamageRadiusMax,
                             Api.Client.World,
                             xOffset,
                             yOffset))
                {
                    ClientTimersSystem.AddAction(
                        delaySeconds: 0.1 * offsetIndex, // please note the offsetIndex is starting with 1
                        () => ExplosionHelper.ClientExplode(
                            position: positionEpicenter + (offsetIndex * xOffset, offsetIndex * yOffset),
                            explosionPresetNode,
                            volume: 0));
                }
            }
        }