protected sealed override void PrepareProtoStaticWorldObject() { base.PrepareProtoStaticWorldObject(); this.PrepareProtoObjectExplosive(out var explosionPreset); this.ExplosionPreset = explosionPreset ?? throw new Exception("No explosion preset provided"); // prepare damage description for characters { var damageDistribution = new DamageDistribution(); this.PrepareDamageDescriptionCharacters( out var damageValue, out var armorPiercingCoef, out var finalDamageMultiplier, damageDistribution); this.damageDescriptionCharacters = new DamageDescription( damageValue, armorPiercingCoef, finalDamageMultiplier, rangeMax: this.DamageRadius, damageDistribution); } // prepare damage properties for structures { this.PrepareDamageDescriptionStructures( out var damageValue, out var defencePenetrationCoef); this.StructureDamage = damageValue; this.StructureDefensePenetrationCoef = MathHelper.Clamp(defencePenetrationCoef, 0, 1); } }
protected override void PrepareProtoObjectExplosive(out ExplosionPreset explosionPresets) { explosionPresets = ExplosionPresets.SpecialDepositExplosion; }
protected override void PrepareProtoObjectExplosive(out ExplosionPreset explosionPresets) { explosionPresets = ExplosionPresets.SpecialPragmiumSourceExplosion; }
protected abstract void PrepareProtoObjectExplosive(out ExplosionPreset explosionPresets);