Module: features/conversion
Interfaces
Type aliases
Conversion
Ƭ Conversion<T
>: Replace
<T
& BaseConversion
, { actualGain
: GetComputableTypeWithDefault
<T
["actualGain"
], Ref
<DecimalSource
>> ; buyMax
: GetComputableTypeWithDefault
<T
["buyMax"
], true
> ; currentAt
: GetComputableTypeWithDefault
<T
["currentAt"
], Ref
<DecimalSource
>> ; currentGain
: GetComputableTypeWithDefault
<T
["currentGain"
], Ref
<DecimalSource
>> ; nextAt
: GetComputableTypeWithDefault
<T
["nextAt"
], Ref
<DecimalSource
>> ; roundUpCost
: GetComputableTypeWithDefault
<T
["roundUpCost"
], true
> }>
An object that converts one resource into another at a given rate.
Type parameters
Name | Type |
---|---|
T | extends ConversionOptions |
Defined in
profectus/src/features/conversion.ts:89
GenericConversion
Ƭ GenericConversion: Replace
<Conversion
<ConversionOptions
>, { actualGain
: ProcessedComputable
<DecimalSource
> ; buyMax
: ProcessedComputable
<boolean
> ; currentAt
: ProcessedComputable
<DecimalSource
> ; currentGain
: ProcessedComputable
<DecimalSource
> ; nextAt
: ProcessedComputable
<DecimalSource
> ; roundUpCost
: ProcessedComputable
<boolean
> }>
A type that matches any conversion object.
Defined in
profectus/src/features/conversion.ts:104
Functions
addHardcap
▸ addHardcap(scaling
, cap
): ScalingFunction
Creates a scaling function off an existing function, with a hardcap applied to it. The harcap will ensure that the currentGain will stop at a given cap.
Parameters
Name | Type | Description |
---|---|---|
scaling | ScalingFunction | The raw scaling function. |
cap | ProcessedComputable <DecimalSource > | The maximum value the scaling function can output. |
Returns
Defined in
profectus/src/features/conversion.ts:473
addSoftcap
▸ addSoftcap(scaling
, cap
, power?
): ScalingFunction
Creates a scaling function based off an existing scaling function, with a softcap applied to it. The softcap will take any value above a certain value and raise it to a power. If the power is <1, this will effectively make the value scale slower after the cap.
see
softcap.
Parameters
Name | Type | Default value | Description |
---|---|---|---|
scaling | ScalingFunction | undefined | The raw scaling function. |
cap | ProcessedComputable <DecimalSource > | undefined | The value after which the softcap should be applied. |
power | ProcessedComputable <DecimalSource > | 0.5 | The power to raise value about the cap to. |
Returns
Defined in
profectus/src/features/conversion.ts:455
createConversion
▸ createConversion<T
>(optionsFunc
): Conversion
<T
>
Lazily creates a conversion with the given options. You typically shouldn't use this function directly. Instead use one of the other conversion constructors, which will then call this.
see
createCumulativeConversion.
see
createIndependentConversion.
Type parameters
Name | Type |
---|---|
T | extends ConversionOptions |
Parameters
Name | Type | Description |
---|---|---|
optionsFunc | OptionsFunc <T , Conversion <T >, BaseConversion > | Conversion options. |
Returns
Conversion
<T
>
Defined in
profectus/src/features/conversion.ts:123
createCumulativeConversion
▸ createCumulativeConversion<S
>(optionsFunc
): Conversion
<S
>
Creates a conversion that simply adds to the gainResource amount upon converting. This is similar to the behavior of "normal" layers in The Modding Tree. This is equivalent to just calling createConversion directly.
Type parameters
Name | Type |
---|---|
S | extends ConversionOptions |
Parameters
Name | Type | Description |
---|---|---|
optionsFunc | OptionsFunc <S , Conversion <S >, Record <string , unknown >> | Conversion options. |
Returns
Conversion
<S
>
Defined in
profectus/src/features/conversion.ts:331
createIndependentConversion
▸ createIndependentConversion<S
>(optionsFunc
): Conversion
<S
>
Creates a conversion that will replace the gainResource amount with the new amount upon converting. This is similar to the behavior of "static" layers in The Modding Tree.
Type parameters
Name | Type |
---|---|
S | extends ConversionOptions |
Parameters
Name | Type | Description |
---|---|---|
optionsFunc | OptionsFunc <S , Conversion <S >, Record <string , unknown >> | Converison options. |
Returns
Conversion
<S
>
Defined in
profectus/src/features/conversion.ts:342
createLinearScaling
▸ createLinearScaling(base
, coefficient
): ScalingFunction
Creates a scaling function based off the formula (baseResource - base) * coefficient
. If the baseResource value is less than base then the currentGain will be 0.
example
A scaling function created via createLinearScaling(10, 0.5)
would produce the following values:
Base Resource | Current Gain |
---|---|
10 | 1 |
12 | 2 |
20 | 6 |
Parameters
Name | Type | Description |
---|---|---|
base | Computable <DecimalSource > | The base variable in the scaling formula. |
coefficient | Computable <DecimalSource > | The coefficient variable in the scaling formula. |
Returns
Defined in
profectus/src/features/conversion.ts:229
createPolynomialScaling
▸ createPolynomialScaling(base
, exponent
): ScalingFunction
Creates a scaling function based off the formula (baseResource / base) ^ exponent
. If the baseResource value is less than base then the currentGain will be 0.
example
A scaling function created via createLinearScaling(10, 0.5)
would produce the following values:
Base Resource | Current Gain |
---|---|
10 | 1 |
40 | 2 |
250 | 5 |
Parameters
Name | Type | Description |
---|---|---|
base | Computable <DecimalSource > | The base variable in the scaling formula. |
exponent | Computable <DecimalSource > | The exponent variable in the scaling formula. |
Returns
Defined in
profectus/src/features/conversion.ts:283
setupPassiveGeneration
▸ setupPassiveGeneration(layer
, conversion
, rate?
): void
This will automatically increase the value of conversion.gainResource without lowering the value of the input resource. It will by default perform 100% of a conversion's currentGain per second. If you use a ref for the rate you can set it's value to 0 when passive generation should be disabled.
Parameters
Name | Type | Default value | Description |
---|---|---|---|
layer | GenericLayer | undefined | The layer this passive generation will be associated with. |
conversion | GenericConversion | undefined | The conversion that will determine how much generation there is. |
rate | Computable <DecimalSource > | 1 | A multiplier to multiply against the conversion's currentGain. |
Returns
void
Defined in
profectus/src/features/conversion.ts:402
softcap
▸ softcap(value
, cap
, power?
): DecimalSource
Given a value, this function finds the amount above a certain value and raises it to a power. If the power is <1, this will effectively make the value scale slower after the cap.
example
A softcap added via addSoftcap(scaling, 100, 0.5)
would produce the following values:
Raw Value | Softcapped Value |
---|---|
1 | 1 |
100 | 100 |
125 | 105 |
200 | 110 |
Parameters
Name | Type | Default value | Description |
---|---|---|---|
value | DecimalSource | undefined | The raw value. |
cap | DecimalSource | undefined | The value after which the softcap should be applied. |
power | DecimalSource | 0.5 | The power to raise value above the cap to. |