Add power selling price (#11395)

This commit is contained in:
corentt
2022-10-15 23:10:48 +02:00
committed by GitHub
parent d6197732d7
commit 67760da204
5 changed files with 19 additions and 4 deletions

View File

@@ -29,6 +29,13 @@ namespace Content.Server.Power.Components
/// </summary>
[ViewVariables] public bool IsFullyCharged => MathHelper.CloseToPercent(CurrentCharge, MaxCharge);
/// <summary>
/// The price per one joule. Default is 1 credit for 10kJ.
/// </summary>
[DataField("pricePerJoule")]
[ViewVariables(VVAccess.ReadWrite)]
public float PricePerJoule = 0.0001f;
/// <summary>
/// If sufficient charge is avaiable on the battery, use it. Otherwise, don't.
/// </summary>

View File

@@ -1,3 +1,4 @@
using Content.Server.Cargo.Systems;
using Content.Server.Power.Components;
using Content.Shared.Examine;
using JetBrains.Annotations;
@@ -12,6 +13,7 @@ namespace Content.Server.Power.EntitySystems
base.Initialize();
SubscribeLocalEvent<ExaminableBatteryComponent, ExaminedEvent>(OnExamine);
SubscribeLocalEvent<BatteryComponent, PriceCalculationEvent>(CalculateBatteryPrice);
SubscribeLocalEvent<NetworkBatteryPreSync>(PreSync);
SubscribeLocalEvent<NetworkBatteryPostSync>(PostSync);
@@ -64,5 +66,13 @@ namespace Content.Server.Power.EntitySystems
batt.CurrentCharge += comp.AutoRechargeRate * frameTime;
}
}
/// <summary>
/// Gets the price for the power contained in an entity's battery.
/// </summary>
private void CalculateBatteryPrice(EntityUid uid, BatteryComponent component, ref PriceCalculationEvent args)
{
args.Price += component.CurrentCharge * component.PricePerJoule;
}
}
}

View File

@@ -4,6 +4,7 @@
parent: BaseItem
components:
- type: Battery
pricePerJoule: 0.15
- type: PowerCell
- type: Explosive
explosionType: Default
@@ -28,8 +29,6 @@
- DroneUsable
- type: Appearance
- type: PowerCellVisuals
- type: StaticPrice
price: 100
- type: entity
name: potato battery

View File

@@ -36,6 +36,7 @@
- type: PowerSink
- type: Battery
maxCharge: 7500000
pricePerJoule: 0.0003
- type: ExaminableBattery
- type: PowerConsumer
voltage: High

View File

@@ -60,8 +60,6 @@
- type: Machine
board: SMESMachineCircuitboard
- type: StationInfiniteBatteryTarget
- type: StaticPrice
price: 750
# SMES' in use