Example #1
0
 protected void OutputForPowerShuntAttributes(PowerShuntAttributes powerShunt)
 {
     Print($"powerLevelChargeTime: {powerShunt.PowerLevelChargeTimeSeconds}");
     Print($"powerLevelDrainTime: {powerShunt.PowerLevelDrainTimeSeconds}");
     Print($"heatThreshold: {powerShunt.HeatThreshold}");
     Print($"cooldownRate: {powerShunt.CooldownRate}");
     Print($"overheatDamage: {powerShunt.OverheatDamage}");
     Print($"nearOverheatWarningMargin: {powerShunt.NearOverheatWarningMargin}");
     Print($"overheatReminderPeriod: {powerShunt.OverheatReminderPeriod}");
     using (BeginScope("reservePowerPool"))
     {
         OutputForInventory(powerShunt.ReservePowerPool);
     }
     using (BeginScope("overheatingPool"))
     {
         OutputForInventory(powerShunt.OverheatingPool);
     }
     using (BeginScope("heatSystem"))
     {
         OutputForInventory(powerShunt.HeatSystem);
     }
     using (BeginScope("powerSystems"))
     {
         for (var i = 0; i < powerShunt.PowerSystems.Length; ++i)
         {
             PowerSystemAttributes powerSystem = powerShunt.PowerSystems[i];
             using (BeginScope(i.ToString()))
             {
                 Print($"type: {powerSystem.PowerSystemType}");
                 Print($"startingPowerLevelIndex: {powerSystem.StartingPowerLevelIndex}");
                 Print($"startingMaxPowerLevelIndex: {powerSystem.StartingMaxPowerLevelIndex}");
                 using (BeginScope("powerLevels"))
                 {
                     for (var j = 0; j < powerSystem.PowerLevels.Length; ++j)
                     {
                         PowerLevelAttributes powerLevel = powerSystem.PowerLevels[j];
                         using (BeginScope(j.ToString()))
                         {
                             Print($"powerUnitsRequired: {powerLevel.PowerUnitsRequired}");
                             Print($"heatPointsProvided: {powerLevel.HeatPointsProvided}");
                             using (BeginScope("statusEffects"))
                             {
                                 if (powerLevel.StatusEffectsToApply != null)
                                 {
                                     for (var k = 0; k < powerLevel.StatusEffectsToApply.Length; ++k)
                                     {
                                         using (BeginScope(powerLevel.StatusEffectsToApply[k].Name))
                                         {
                                             OutputForStatusEffect(powerLevel.StatusEffectsToApply[k]);
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
 }
 public PowerSystemAttributesWrapper(PowerSystemAttributes other)
 {
     PowerSystemType            = other.PowerSystemType;
     StartingPowerLevelIndex    = other.StartingPowerLevelIndex;
     StartingMaxPowerLevelIndex = other.StartingMaxPowerLevelIndex;
     PowerLevels = other.PowerLevels?.ToArray();
     View        = other.View;
 }
 public PowerSystemAttributes FindAttributesWithPowerSystemType(PowerSystemType powerSystemType)
 {
     if (!PowerSystems.IsNullOrEmpty <PowerSystemAttributes>())
     {
         for (int i = 0; i < PowerSystems.Length; i++)
         {
             PowerSystemAttributes powerSystemAttributes = PowerSystems[i];
             if (powerSystemAttributes.PowerSystemType == powerSystemType)
             {
                 return(powerSystemAttributes);
             }
         }
     }
     return(null);
 }