Curve Flow Controller

The main controller that drives CurveFlow. All of the processing is handled through this object.

ctor CurveflowController ( )
void InitializeLog ( LogCallback log, MessageType typeMask )
void CreateNewProfile ( TrackedValue [] trackedValues )
void LoadProfile ( string profileXML )
string SaveProfile ( )
float GetCurrentValue ( string valueName )
void AppendTrackedValue ( string valueName, float nextValue )
void SetTrackedValue ( string valueName, float newValue )
string Evaluate ( OutputQuery query, float desiredChallenge )
string EvaluateOnCurve ( OutputQuery query, float desiredChallenge, float time )
string [] EvaluateGroupSelection ( OutputQuery query, float desiredChallenge, int count )
string [] EvaluateGroupSelectionOnCurve ( OutputQuery query, float desiredChallenge, int count, float time )
  • CurveFlowController ( string xmlString )

Creates a Controller using the supplied settings XML string. See TODO XML SETTINGS

Hooks CurveFlow’s internal logging system up to a supplied method, usually you will want this to be a custom function that forwards it to your engine’s logging.

The Type Mask is a bitmask of what types of messages you’d like to allow through. If unsure, input “(MessageType)7” which allows all.

Creates a new profile with the supplied TrackedValues , which define the names, min/maxes, and append type of each tracked value.

  • void LoadProfile ( _string :ref:’profileXML<class_controller_profile>` )

Loads a profile along with any current values contained and any locked outputs from the specified Profile XML.

Returns the profile and any current values or locked outputs contained formatted as a Profile XML.

Returns the current value of the skill named valueName.

  • void AppendTrackedValue ( string valueName, float nextValue )

Appends a number into the skill named valueName. How the number is applied is based on the selected ValueType

  • void SetTrackedValue ( string valueName, float newValue )

Foribly set the skill to a new value.

Evaluates the inserted Output Query on the current Profile and returns the string name of the estimated best output.

Evaluates the inserted Output Query on the current Profile and returns the string name of the estimated best output.

The Desired Challenge will be modified by the Micro Curve before being used to calculate an output.

Evaluates the inserted Output Query on the current Profile and returns an array of size count which contains the estimated best group output.

Evaluates the inserted Output Query on the current Profile and returns an array of size count which contains the estimated best group output.

The Desired Challenge will be modified by the Micro Curve before being used to calculate an output.

Profile Settings

The Profile XML defines the values being tracked, their current values, and any outputs locked through the selection lock.

<?xml version="1.0" encoding="utf-16"?>
<Controller>
        <Profile>
                <TrackedValue
                        Name="Parry"
                        Minimum="0"
                        Maximum="1"
                        Value="0.5"
                        Type="AVERAGE"
                        AdditionCount="1" />
                <TrackedValue
                        Name="Dodge"
                        Minimum="0"
                        Maximum="1"
                        Value="0.5"
                        Type="AVERAGE"
                        AdditionCount="1" />
        </Profile>
        <LockedValues>
                <Query
                        Name="DefaultQuery">
                        <Lock>OptimalChallenge</Lock>
                </Query>
        </LockedValues>
</Controller>

Profile

The profile section contains the list of Tracked Values. Each section is explained on the Tracked Values page with the exception of the AdditionCount variable, which is simply the amount of numbers that have been added into an AVERAGE type value in order to track the weight.

<Profile>
        <TrackedValue
                Name="Parry"
                Minimum="0"
                Maximum="1"
                Value="0.5"
                Type="AVERAGE"
                AdditionCount="1" />
        <TrackedValue
                Name="Dodge"
                Minimum="0"
                Maximum="1"
                Value="0.5"
                Type="AVERAGE"
                AdditionCount="1" />
</Profile>

LockedValues

This section tracks the locked selections. Each query object holds each of the locks for the query with the associated name. Each lock contains the name of the output inside that query which has been locked for this profile.

<LockedValues>
        <Query
                Name="DefaultQuery">
                <Lock>OptimalChallenge</Lock>
        </Query>
</LockedValues>