[RFC] New Capacitor System #35

Closed
opened 2022-05-24 22:26:00 +00:00 by Rover656 · 1 comment
Rover656 commented 2022-05-24 22:26:00 +00:00 (Migrated from github.com)

Prelude/Motivations

I've been looking into implementing capacitor scaling for machine energy storage and I'm personally not happy with the current implementation of capacitors. I'm using this issue as a draft for a different system, closer in nature to 1.12's system but keeping the complexity down like we attempted with the latest iteration.

Proposal

A capacitor's data will still have a base value for every single value that is pased through.
A capacitor can also "specialize" into specific features for any machine, for example alloy smelter consumption rate, sag mill buffer size etc. but can also target general properties such as buffer size on all machines, etc. The lengths to which these are actually used need to be discussed, I'm not 100% sure on the details from 1.12.2.

These specializations will then be used for scaling the appropriate value in machines. Scaling in the current system is simple linear multiplication and in 1.12.2 this appears to be configurable. I propose that instead each "specialization type" (e.g. buffer, consumption, transfer rate etc.) declares its own scaling method (so for example buffer can use power scaling, consumption linear, etc.) to make the levels have appropriate effects without needing to have extortionate values in capacitors to gain the intended effects.

I'd like for each base value to be configurable, either in mod config or in json form, however I'm unsure how that'd go yet as I'm still working out the implementation details on the above proposal, however I'm imaginging something slightly closer to 1.12.2's implementation of ICapacitorKey which will define how values are scaled and what the base value is, and each key will be defined in a big static class.

We should also consider some way of registering the capacitor specializations, either via some data driven JSON system, or a custom registry in order to support custom specializations from other addons etc. being considered for loot capacitors.

For Players

Capacitors will hopefully become easier to understand by taking some of the complexity out. I'm not really sure how to explain the above proposal in terms of gameplay yet as gameplay balancing has not yet been considered.

# Prelude/Motivations I've been looking into implementing capacitor scaling for machine energy storage and I'm personally not happy with the current implementation of capacitors. I'm using this issue as a draft for a different system, closer in nature to 1.12's system but keeping the complexity down like we attempted with the latest iteration. # Proposal A capacitor's data will still have a base value for every single value that is pased through. A capacitor can also "specialize" into specific features for any machine, for example alloy smelter consumption rate, sag mill buffer size etc. but can also target general properties such as buffer size on all machines, etc. The lengths to which these are actually used need to be discussed, I'm not 100% sure on the details from 1.12.2. These specializations will then be used for scaling the appropriate value in machines. Scaling in the current system is simple linear multiplication and in 1.12.2 this appears to be configurable. I propose that instead each "specialization type" (e.g. buffer, consumption, transfer rate etc.) declares its own scaling method (so for example buffer can use power scaling, consumption linear, etc.) to make the levels have appropriate effects without needing to have extortionate values in capacitors to gain the intended effects. I'd like for each base value to be configurable, either in mod config or in json form, however I'm unsure how that'd go yet as I'm still working out the implementation details on the above proposal, however I'm imaginging something slightly closer to 1.12.2's implementation of ICapacitorKey which will define how values are scaled and what the base value is, and each key will be defined in a big static class. We should also consider some way of registering the capacitor specializations, either via some data driven JSON system, or a custom registry in order to support custom specializations from other addons etc. being considered for loot capacitors. # For Players Capacitors will hopefully become easier to understand by taking some of the complexity out. I'm not really sure how to explain the above proposal in terms of gameplay yet as gameplay balancing has not yet been considered.
Rover656 commented 2022-05-26 16:22:31 +00:00 (Migrated from github.com)

Merged

Merged
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Team-EnderIO/EnderIO#35
No description provided.