Class GameStateProperty
An abstact class that represents some property of the game state. Extending the class allows for new properties and mechanics to be added into the game without need of big overhaul in the codebase.
Inheritance
Inherited Members
Namespace: GDA.GameStateProperties
Assembly: Assembly-CSharp.dll
Syntax
public abstract class GameStateProperty : MonoBehaviour
Fields
_value
Internal variable for value. Used for Serialization.
Declaration
[HideIf("hideValue")]
[SerializeField]
protected float _value
Field Value
Type | Description |
---|---|
System.Single |
clampMax
Whether the GameStateProperty should be clamped to a maximum value.
Declaration
[SerializeField]
protected bool clampMax
Field Value
Type | Description |
---|---|
System.Boolean |
clampMin
Whether the GameStateProperty should be clamped to a minimum value.
Declaration
[SerializeField]
protected bool clampMin
Field Value
Type | Description |
---|---|
System.Boolean |
max
Minimum value that the GameStateProperty is clamped to if clampMax is true
.
Declaration
[ShowIf("clampMax")]
[SerializeField]
protected float max
Field Value
Type | Description |
---|---|
System.Single |
min
Minimum value that the GameStateProperty is clamped to if clampMin is true
.
Declaration
[ShowIf("clampMin")]
[SerializeField]
protected float min
Field Value
Type | Description |
---|---|
System.Single |
Properties
GameOverText
The text that is incorporated into NPC dialogue when a GameStateProperty reaches max severity and results in a gameover.
Declaration
public abstract string GameOverText { get; }
Property Value
Type | Description |
---|---|
System.String |
hideValue
Whether to hide the _value attribute in the Unity Editor. Usually for when a Child class overrides the value property.
Declaration
protected virtual bool hideValue { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
NegativeEvaluation
The text that is incorporated into NPC dialogue when a product is worse than another with regards to a GameStateProperty.
Declaration
public abstract string NegativeEvaluation { get; }
Property Value
Type | Description |
---|---|
System.String |
PositiveEvaluation
The text that is incorporated into NPC dialogue when a product is better than another with regards to a GameStateProperty.
Declaration
public abstract string PositiveEvaluation { get; }
Property Value
Type | Description |
---|---|
System.String |
scale
Amount to scale the raw values before applying changes to the GameStateProperty.
Declaration
protected virtual float scale { get; }
Property Value
Type | Description |
---|---|
System.Single |
severity
The severity of the GameStateProperty. Override to customize how severity is calculated.
Declaration
public virtual int severity { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
value
The value of the GameStateProperty
Declaration
public virtual float value { get; protected set; }
Property Value
Type | Description |
---|---|
System.Single |
Methods
ApplyEffect(Product)
Applies the effect of a single product to the GameStateProperty. Generally unused, because it does not take into account other factors outside of the product (User Group, etc).
Declaration
public virtual void ApplyEffect(Product product)
Parameters
Type | Name | Description |
---|---|---|
Product | product |
See Also
ApplyEffect(Proposal)
Applies the effect of a (processed) Proposal on the GameStateProperty.
Calculation may take into account considerations from the whole proposal (required quantity, user group etc.)
and not solely from the products, and thus is substantially different from CalculateEffect(Product)
Declaration
public virtual void ApplyEffect(Proposal proposal)
Parameters
Type | Name | Description |
---|---|---|
Proposal | proposal |
ApplyEffectUnscaled(Single)
Applies a fixed change to the value of the GameStateProperty, without scaling.
Declaration
public virtual void ApplyEffectUnscaled(float amt)
Parameters
Type | Name | Description |
---|---|---|
System.Single | amt | Amount to change |
CalculateEffect(Product)
Calculates the effect of a single product on the GameStateProperty.
Declaration
public abstract float CalculateEffect(Product product)
Parameters
Type | Name | Description |
---|---|---|
Product | product | Product to use for calculation |
Returns
Type | Description |
---|---|
System.Single | The effect of the product on the GameStateProperty |
CalculateEffect(Proposal)
Calculates the effect of a (processed) Proposal on the GameStateProperty.
Calculation may take into account considerations from the whole proposal (required quantity, user group etc.)
and not solely from the products, and thus is substantially different from CalculateEffect(Product)
Declaration
public virtual float CalculateEffect(Proposal proposal)
Parameters
Type | Name | Description |
---|---|---|
Proposal | proposal | The processed proposal to make the calculation with |
Returns
Type | Description |
---|---|
System.Single | The effect of the proposal on the GameStateProperty |
GetBetterProduct(Proposal)
Takes a proposal, and returns the product that would be more beneficial/less detrimental to the GameStateProperty.
Declaration
public virtual Product GetBetterProduct(Proposal proposal)
Parameters
Type | Name | Description |
---|---|---|
Proposal | proposal | Proposal to check |
Returns
Type | Description |
---|---|
Product |
ScaleEffect(Single)
Scales an effect (change in value) and scales it:
- First by the scale of the GameStateProperty
- Then by a Log10 scale, so that changes with small magnitude are still relevant to the player.
Declaration
protected float ScaleEffect(float effect)
Parameters
Type | Name | Description |
---|---|---|
System.Single | effect |
Returns
Type | Description |
---|---|
System.Single | The scaled effect |
SetValue(Single)
Sets the value of the GameStateProperty.
Declaration
public virtual void SetValue(float value)
Parameters
Type | Name | Description |
---|---|---|
System.Single | value | value to set |
Events
OnMaxSeverity
Event that fires when a GameStateProperty reaches maximum severity.
Declaration
public static event Action OnMaxSeverity
Event Type
Type | Description |
---|---|
System.Action |