* Fix typo in `BatterySystem.ChangeCharge`.
* Decouple power sink behavior from tickrate.
* Fix power sink's price per joule
if (!Resolve(uid, ref battery))
return 0;
- var newValue = Math.Clamp(0, battery.CurrentCharge + value, battery.MaxCharge);
+ var newValue = Math.Clamp(battery.CurrentCharge + value, 0, battery.MaxCharge);
var delta = newValue - battery.CurrentCharge;
battery.CurrentCharge = newValue;
if (!transform.Anchored)
continue;
- _battery.SetCharge(entity, battery.CurrentCharge + networkLoad.NetworkLoad.ReceivingPower / 1000, battery);
+ _battery.ChangeCharge(entity, networkLoad.NetworkLoad.ReceivingPower * frameTime, battery);
var currentBatteryThreshold = battery.CurrentCharge / battery.MaxCharge;
acts: [ "Destruction" ]
- type: PowerSink
- type: Battery
- maxCharge: 7500000
- pricePerJoule: 0.0003
+ maxCharge: 250000000
+ pricePerJoule: 0.000009
- type: ExaminableBattery
- type: PowerConsumer
voltage: High