private void ClearDamageTypeInfo() { KineticAverage.Clear(); EnergyAverage.Clear(); KineticDamage = 0; EnergyDamage = 0; KineticAvg = 0; EnergyAvg = 0; _damageTypeBalance = 0; }
private bool PowerOnline() { UpdateGridPower(); if (!_shieldPowered) { return(false); } CalculatePowerCharge(); if (!WarmedUp) { return(true); } if (_isServer && _shieldConsumptionRate.Equals(0f) && DsState.State.Charge.Equals(0.01f)) { return(false); } _power = _shieldMaxChargeRate > 0 ? _shieldConsumptionRate + _shieldMaintaintPower : 0f; if (_power < ShieldCurrentPower && (_power - _shieldMaxChargeRate) >= 0.0001f) { _sink.Update(); } else if (_count == 28 && (ShieldCurrentPower <= 0 || Math.Abs(_power - ShieldCurrentPower) >= 0.0001f)) { _sink.Update(); } if (Absorb > 0) { _damageReadOut += Absorb; KineticAvg = KineticAverage.Add((int)KineticDamage); EnergyAvg = EnergyAverage.Add((int)EnergyDamage); _damageTypeBalance = KineticAvg - EnergyAvg; _lastDamageTick = _tick; EffectsCleanTick = _tick; DsState.State.Charge -= Absorb * ConvToWatts; } else if (Absorb < 0) { DsState.State.Charge += (Absorb * -1) * ConvToWatts; } if (_isServer && DsState.State.Charge < 0) { DsState.State.Charge = 0; if (!_empOverLoad) { _overLoadLoop = 0; } else { _empOverLoadLoop = 0; } } if (_tick - _lastDamageTick > 600 && (EnergyAvg > 0 || KineticAvg > 0)) { ClearDamageTypeInfo(); } Absorb = 0f; KineticDamage = 0; EnergyDamage = 0; return(DsState.State.Charge > 0); }