/// The type of explosion. Determines damage types and tile break chance scaling.
/// </summary>
[DataField(required: true, customTypeSerializer: typeof(PrototypeIdSerializer<ExplosionPrototype>))]
- [JsonIgnore]
public string ExplosionType = default!;
/// <summary>
/// chance.
/// </summary>
[DataField]
- [JsonIgnore]
public float MaxIntensity = 5;
/// <summary>
/// How quickly intensity drops off as you move away from the epicenter
/// </summary>
[DataField]
- [JsonIgnore]
public float IntensitySlope = 1;
/// <summary>
/// A slope of 1 and MaxTotalIntensity of 100 corresponds to a radius of around 4.5 tiles.
/// </remarks>
[DataField]
- [JsonIgnore]
public float MaxTotalIntensity = 100;
/// <summary>
/// The intensity of the explosion per unit reaction.
/// </summary>
[DataField]
- [JsonIgnore]
public float IntensityPerUnit = 1;
+
+ /// <summary>
+ /// Factor used to scale the explosion intensity when calculating tile break chances. Allows for stronger
+ /// explosives that don't space tiles, without having to create a new explosion-type prototype.
+ /// </summary>
+ [DataField]
+ public float TileBreakScale = 1f;
public override bool ShouldLog => true;
ExplosionType,
intensity,
IntensitySlope,
- MaxIntensity);
+ MaxIntensity,
+ TileBreakScale);
}
}
conditions:
- !type:ReagentThreshold
min: 50
+
+- type: reaction
+ id: WehHewExplosion
+ impact: High
+ priority: 20
+ reactants:
+ JuiceThatMakesYouWeh:
+ amount: 1
+ JuiceThatMakesYouHew:
+ amount: 1
+ effects:
+ - !type:ExplosionReactionEffect
+ explosionType: Radioactive
+ maxIntensity: 200
+ intensityPerUnit: 2
+ intensitySlope: 1
+ maxTotalIntensity: 250
+ tileBreakScale: 0.00001