Skip to content

Commit

Permalink
Turbo Recharger (space-wizards#23723)
Browse files Browse the repository at this point in the history
turbo charger
  • Loading branch information
EmoGarbage404 authored Jan 8, 2024
1 parent b3e695c commit c861b66
Show file tree
Hide file tree
Showing 14 changed files with 125 additions and 41 deletions.
21 changes: 0 additions & 21 deletions Content.Server/Power/Components/ChargerComponent.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
using Content.Shared.Construction.Prototypes;
using Content.Shared.Power;
using Content.Shared.Whitelist;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;

namespace Content.Server.Power.Components
{
Expand All @@ -17,25 +15,6 @@ public sealed partial class ChargerComponent : Component
[DataField("chargeRate")]
public float ChargeRate = 20.0f;

/// <summary>
/// The charge rate with no machine upgrades
/// </summary>
[DataField("baseChargeRate")]
public float BaseChargeRate = 20.0f;

/// <summary>
/// The machine part that affects the charge rate multiplier of the charger
/// </summary>
[DataField("machinePartChargeRateModifier", customTypeSerializer: typeof(PrototypeIdSerializer<MachinePartPrototype>))]
public string MachinePartChargeRateModifier = "Capacitor";

/// <summary>
/// A value used to scale the charge rate multiplier
/// with the corresponding part rating.
/// </summary>
[DataField("partRatingChargeRateModifier")]
public float PartRatingChargeRateModifier = 1.5f;

/// <summary>
/// The container ID that is holds the entities being charged.
/// </summary>
Expand Down
14 changes: 0 additions & 14 deletions Content.Server/Power/EntitySystems/ChargerSystem.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
using Content.Server.Construction;
using Content.Server.Power.Components;
using Content.Server.PowerCell;
using Content.Shared.Examine;
Expand All @@ -23,8 +22,6 @@ internal sealed class ChargerSystem : EntitySystem
public override void Initialize()
{
SubscribeLocalEvent<ChargerComponent, ComponentStartup>(OnStartup);
SubscribeLocalEvent<ChargerComponent, RefreshPartsEvent>(OnRefreshParts);
SubscribeLocalEvent<ChargerComponent, UpgradeExamineEvent>(OnUpgradeExamine);
SubscribeLocalEvent<ChargerComponent, PowerChangedEvent>(OnPowerChanged);
SubscribeLocalEvent<ChargerComponent, EntInsertedIntoContainerMessage>(OnInserted);
SubscribeLocalEvent<ChargerComponent, EntRemovedFromContainerMessage>(OnRemoved);
Expand Down Expand Up @@ -61,17 +58,6 @@ public override void Update(float frameTime)
}
}

private void OnRefreshParts(EntityUid uid, ChargerComponent component, RefreshPartsEvent args)
{
var modifierRating = args.PartRatings[component.MachinePartChargeRateModifier];
component.ChargeRate = component.BaseChargeRate * MathF.Pow(component.PartRatingChargeRateModifier, modifierRating - 1);
}

private void OnUpgradeExamine(EntityUid uid, ChargerComponent component, UpgradeExamineEvent args)
{
args.AddPercentageUpgrade("charger-component-charge-rate", component.ChargeRate / component.BaseChargeRate);
}

private void OnPowerChanged(EntityUid uid, ChargerComponent component, ref PowerChangedEvent args)
{
UpdateStatus(uid, component);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -707,6 +707,26 @@
- type: StaticPrice
price: 15

- type: entity
id: TurboItemRechargerCircuitboard
parent: BaseMachineCircuitboard
name: turbo recharger machine board
description: A machine printed circuit board for a turbo recharger.
components:
- type: Sprite
sprite: Objects/Misc/module.rsi
state: charger_APC
- type: MachineBoard
prototype: TurboItemRecharger
requirements:
Capacitor: 2
materialRequirements:
CableMV: 5
- type: PhysicalComposition
materialComposition:
Steel: 30
Plastic: 30

- type: entity
id: SubstationMachineCircuitboard
parent: BaseMachineCircuitboard
Expand Down
5 changes: 3 additions & 2 deletions Resources/Prototypes/Entities/Structures/Machines/lathe.yml
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,7 @@
- HydroponicsTrayMachineCircuitboard
- SolarControlComputerCircuitboard
- SolarTrackerElectronics
- TurboItemRechargerCircuitboard
- PowerComputerCircuitboard
- AutolatheHyperConvectionMachineCircuitboard
- ProtolatheHyperConvectionMachineCircuitboard
Expand Down Expand Up @@ -751,7 +752,7 @@
- Sheet
- type: StealTarget
stealGroup: AmmoTechFabCircuitboard

- type: entity
id: MedicalTechFab
parent: BaseLathe
Expand Down Expand Up @@ -822,7 +823,7 @@
board: MedicalTechFabCircuitboard
- type: StealTarget
stealGroup: MedicalTechFabCircuitboard

- type: entity
parent: BaseLathe
id: UniformPrinter
Expand Down
28 changes: 27 additions & 1 deletion Resources/Prototypes/Entities/Structures/Power/chargers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,32 @@
- ProjectileBatteryAmmoProvider
- Stunbaton

- type: entity
parent: BaseItemRecharger
id: TurboItemRecharger
name: turbo recharger
description: An overclocked recharger that's been adapted with a global port.
components:
- type: Sprite
sprite: Structures/Power/turbo_recharger.rsi
- type: Machine
board: TurboItemRechargerCircuitboard
- type: Charger
chargeRate: 100
- type: ItemSlots
slots:
charger_slot:
ejectOnInteract: true
whitelist:
components:
- HitscanBatteryAmmoProvider
- ProjectileBatteryAmmoProvider
- Stunbaton
- PowerCell
blacklist:
tags:
- PotatoBattery

- type: entity
parent: BaseItemRecharger
id: WallWeaponCapacitorRecharger
Expand Down Expand Up @@ -157,7 +183,7 @@
map: ["enum.WiresVisualLayers.MaintenancePanel"]
visible: false
- type: Charger
baseChargeRate: 30
chargeRate: 30
slotId: entity_storage
whitelist:
components:
Expand Down
9 changes: 9 additions & 0 deletions Resources/Prototypes/Recipes/Lathes/electronics.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,15 @@
Steel: 50
Plastic: 50

- type: latheRecipe
id: TurboItemRechargerCircuitboard
result: TurboItemRechargerCircuitboard
completetime: 2
materials:
Steel: 500
Plastic: 500
Gold: 100

- type: latheRecipe
id: DoorElectronics
result: DoorElectronics
Expand Down
7 changes: 4 additions & 3 deletions Resources/Prototypes/Research/industrial.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,14 @@
id: AdvancedPowercells
name: research-technology-advanced-powercells
icon:
sprite: Objects/Power/power_cells.rsi
state: high
sprite: Structures/Power/turbo_recharger.rsi
state: empty
discipline: Industrial
tier: 1
cost: 5000
cost: 7500
recipeUnlocks:
- PowerCellHigh
- TurboItemRechargerCircuitboard

- type: technology
id: MechanicalCompression
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
62 changes: 62 additions & 0 deletions Resources/Textures/Structures/Power/turbo_recharger.rsi/meta.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
{
"version": 1,
"size": {
"x": 32,
"y": 32
},
"license": "CC-BY-SA-3.0",
"copyright": "adapted from https://github.com/discordia-space/CEV-Eris/raw/9ea3eccbe22e18d24653949067f3d7dd12194ea9/icons/obj/stationobjs.dmi by EmoGarbage404 (github)",
"states": [
{
"name": "empty"

},
{
"name": "full"

},
{
"name": "light-off",
"delays": [
[
1
]
]
},
{
"name": "light-empty",
"delays": [
[
1,
0.2
]
]
},
{
"name": "light-charging",
"delays": [
[
0.1,
0.1,
0.1,
0.1,
0.1,
0.1,
0.1,
0.1
]
]
},
{
"name": "light-charged",
"delays": [
[
0.25,
0.05,
0.1,
0.05
]
]
}
]
}

0 comments on commit c861b66

Please sign in to comment.