コード例 #1
0
        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);
            }
        }
コード例 #2
0
 protected override void PrepareProtoObjectExplosive(out ExplosionPreset explosionPresets)
 {
     explosionPresets = ExplosionPresets.SpecialDepositExplosion;
 }
コード例 #3
0
 protected override void PrepareProtoObjectExplosive(out ExplosionPreset explosionPresets)
 {
     explosionPresets = ExplosionPresets.SpecialPragmiumSourceExplosion;
 }
コード例 #4
0
 protected abstract void PrepareProtoObjectExplosive(out ExplosionPreset explosionPresets);