Implement surface safety and powered props
This commit is contained in:
@@ -43,11 +43,14 @@ public abstract class Balancing
|
||||
if (rowCarrier == ECarrierType.Fuel && colCarrier == ECarrierType.Electricity)
|
||||
return Ignite(rowBand, colBand);
|
||||
|
||||
if (rowCarrier == ECarrierType.Fuel && colCarrier == ECarrierType.Water)
|
||||
return Dilute(rowBand, colBand);
|
||||
|
||||
if (rowCarrier == ECarrierType.Fuel && colCarrier is null)
|
||||
return rowBand == EBand.Critical || colBand == EBand.Critical ? Ignite(rowBand, colBand) : Warm(rowBand, colBand);
|
||||
|
||||
if (rowCarrier == ECarrierType.Water && colCarrier == ECarrierType.Electricity)
|
||||
return Short(rowBand, colBand);
|
||||
return Conduct(rowBand, colBand);
|
||||
|
||||
if (rowCarrier == ECarrierType.Water && colCarrier is null)
|
||||
return Quench(rowBand, colBand);
|
||||
@@ -88,14 +91,23 @@ public abstract class Balancing
|
||||
};
|
||||
}
|
||||
|
||||
private SurfaceInteractionEffect Short(EBand rowBand, EBand colBand)
|
||||
private SurfaceInteractionEffect Dilute(EBand rowBand, EBand colBand)
|
||||
{
|
||||
return new() {
|
||||
Verb = ESurfaceInteractionVerb.Dilute,
|
||||
Quantity = ESurfaceQuantity.Fuel,
|
||||
Amount = Strongest(rowBand, colBand) == EBand.Critical ? DiluteCriticalAmount : DiluteCautionAmount
|
||||
};
|
||||
}
|
||||
|
||||
private SurfaceInteractionEffect Conduct(EBand rowBand, EBand colBand)
|
||||
{
|
||||
var critical = Strongest(rowBand, colBand) == EBand.Critical;
|
||||
return new() {
|
||||
Verb = ESurfaceInteractionVerb.Short,
|
||||
Verb = ESurfaceInteractionVerb.Conduct,
|
||||
Quantity = ESurfaceQuantity.Electricity,
|
||||
Amount = critical ? ShortCriticalHeat : ShortCautionHeat,
|
||||
SecondaryAmount = critical ? ShortCriticalDischarge : ShortCautionDischarge
|
||||
Amount = critical ? ConductCriticalHeat : ConductCautionHeat,
|
||||
SecondaryAmount = critical ? ConductCriticalDischarge : ConductCautionDischarge
|
||||
};
|
||||
}
|
||||
|
||||
@@ -157,15 +169,21 @@ public abstract class Balancing
|
||||
public abstract float LeakIntensityScale { get; }
|
||||
public abstract float SprinklerWaterPerStep { get; }
|
||||
public abstract float SprinklerPressureDebt { get; }
|
||||
public abstract float AmbientEvaporationPerStep { get; }
|
||||
public abstract float HeatEvaporationScale { get; }
|
||||
public abstract float EvaporationCoolingScale { get; }
|
||||
public abstract float FlowTransferRatio { get; }
|
||||
public abstract float WetElectricityFlowMultiplier { get; }
|
||||
public abstract float WarmCautionAmount { get; }
|
||||
public abstract float WarmCriticalAmount { get; }
|
||||
public abstract float DiluteCautionAmount { get; }
|
||||
public abstract float DiluteCriticalAmount { get; }
|
||||
public abstract float QuenchCautionAmount { get; }
|
||||
public abstract float QuenchCriticalAmount { get; }
|
||||
public abstract float ShortCautionHeat { get; }
|
||||
public abstract float ShortCautionDischarge { get; }
|
||||
public abstract float ShortCriticalHeat { get; }
|
||||
public abstract float ShortCriticalDischarge { get; }
|
||||
public abstract float ConductCautionHeat { get; }
|
||||
public abstract float ConductCautionDischarge { get; }
|
||||
public abstract float ConductCriticalHeat { get; }
|
||||
public abstract float ConductCriticalDischarge { get; }
|
||||
public abstract float IgniteCautionHeat { get; }
|
||||
public abstract float IgniteCautionFuelConsumption { get; }
|
||||
public abstract float IgniteCriticalHeat { get; }
|
||||
|
||||
Reference in New Issue
Block a user