private void ClientRemote_VehicleExploded(Vector2D position) { Logger.Important(this + " exploded at " + position); ExplosionHelper.ClientExplode(position: position + this.SharedGetObjectCenterWorldOffset(null), this.DestroyedExplosionPreset, this.DestroyedExplosionVolume); }
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); }
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)); }
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)); } } }