General Workflow

Object Parameters Standard allows to add arbitrary amount of parameters to the object and change them through modifiers or user components. General Workflow looks as follows:

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/73a35503-57f8-4a8a-985c-496098307db8/Untitled.png

As is seen from the scheme, the Standard consists of two main components: ObjectParameterController and ParameterModifierController. ObjectParameterController component holds the list of parameters, which are being adjusted by the user. Therefore, ParameterModifierController component allows to change the values of the object's parameters depending on user-adjusted configuration. ParameterModifierController supports both parameter types (static and dynamic). Static parameters are generally used for improvable values of the object (e.g. maximum health, strength, oratory etc.) and are being changed through addition or deletion of modifiers in the static parameter stack. Dynamic parameters are used for values that are being changed directly through the gameplay (e.g. current health, current shield, current energy etc.).

Dynamic parameters' values are being directly changed by ParameterModifierController components and could be modified by user components. Values of static parameters can only be changed by ParameterModifierController components.

The Standard supports two main mechanisms of applying modifiers to parameters: by the position of modifier object in the hierarchy of the object with parameters, and by the collision of modifier object with one or several objects with parameters. Besides, Standard offers the set of methods in ObjectParameterController and ParameterModifierController components, which allow to apply modifiers to objects' parameters according to user logic.

ObjectParameterController

ObjectParameterController component holds adjustable set of object's parameters and looks as follows:

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/4a5ce6cb-e6b5-4051-bdab-f849c7e04630/Untitled.png

Every parameter of the component is being deleted by pressing the relevant X button, while the new one is being added by pressing Add parameter button. Every parameter holds the following settings: