Commit 08d9a1c4 authored by Chae Ho Shin's avatar Chae Ho Shin

WOW HONTONI SUGOI DESU SHIT WORKS

parent f5f4bd3d
fileFormatVersion: 2
guid: 8370f9f54cc4c504bad71da7617b426a
timeCreated: 1519733079
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 4
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
wrapU: -1
wrapV: -1
wrapW: -1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: dde6161b7425cee4ba5138dadf049528
timeCreated: 1519733080
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 4
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -1
wrapU: -1
wrapV: -1
wrapW: -1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: f6fc0c038e7ce6640910e93606bc6076
timeCreated: 1519646880
guid: ff135e45559e4e54a9a94e32fe80925a
timeCreated: 1519737123
licenseType: Free
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 816d76721656ca94f9a87f05b54850d8
timeCreated: 1519646871
guid: 52c4c52d38c5bd44182e323297f447d3
timeCreated: 1519736502
licenseType: Free
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
- first:
data:
first:
Any:
second:
enabled: 1
settings: {}
- first:
data:
first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
......
<?xml version="1.0"?>
<doc>
<assembly>
<name>Accord.Fuzzy</name>
</assembly>
<members>
<member name="T:Accord.Fuzzy.Clause">
<summary>
This class represents a fuzzy clause, a linguistic expression of the type "Variable IS Value".
</summary>
<remarks><para>A Fuzzy Clause is used to verify if a linguistic variable can be considered
as a specific value at a specific moment. Linguistic variables can only assume value of
their linguistic labels. Because of the nature of the Fuzzy Logic, a Variable can be
several of its labels at the same time, with different membership values.</para>
<para>For example, a linguistic variable "temperature" can be "hot" with a membership 0.3
and "warm" with a membership 0.7 at the same time. To obtain those memberships, Fuzzy Clauses
"temperature is hot" and "temperature is war" can be built.</para>
<para>Typically Fuzzy Clauses are used to build Fuzzy Rules (<see cref="T:Accord.Fuzzy.Rule"/>).</para>
<para>Sample usage:</para>
<code>
// create a linguistic variable to represent temperature
LinguisticVariable lvTemperature = new LinguisticVariable("Temperature", 0, 80 );
// create the linguistic labels (fuzzy sets) that compose the temperature
TrapezoidalFunction function1 = new TrapezoidalFunction(10, 15, TrapezoidalFunction.EdgeType.Right);
FuzzySet fsCold = new FuzzySet("Cold", function1);
TrapezoidalFunction function2 = new TrapezoidalFunction(10, 15, 20, 25);
FuzzySet fsCool = new FuzzySet("Cool", function2);
TrapezoidalFunction function3 = new TrapezoidalFunction(20, 25, 30, 35);
FuzzySet fsWarm = new FuzzySet("Warm", function3);
TrapezoidalFunction function4 = new TrapezoidalFunction(30, 35, TrapezoidalFunction.EdgeType.Left);
FuzzySet fsHot = new FuzzySet("Hot", function4);
// adding labels to the variable
lvTemperature.AddLabel(fsCold);
lvTemperature.AddLabel(fsCool);
lvTemperature.AddLabel(fsWarm);
lvTemperature.AddLabel(fsHot);
// creating the Clause
Clause fuzzyClause = new Clause(lvTemperature, fsHot);
// setting the numerical input of the variable to evaluate the Clause
lvTemperature.NumericInput = 35;
float result = fuzzyClause.Evaluate();
Console.WriteLine(result.ToString());
</code>
</remarks>
</member>
<member name="P:Accord.Fuzzy.Clause.Variable">
<summary>
Gets the <see cref="T:Accord.Fuzzy.LinguisticVariable"/> of the <see cref="T:Accord.Fuzzy.Clause"/>.
</summary>
</member>
<member name="P:Accord.Fuzzy.Clause.Label">
<summary>
Gets the <see cref="T:Accord.Fuzzy.FuzzySet"/> of the <see cref="T:Accord.Fuzzy.Clause"/>.
</summary>
</member>
<member name="M:Accord.Fuzzy.Clause.#ctor(Accord.Fuzzy.LinguisticVariable,Accord.Fuzzy.FuzzySet)">
<summary>
Initializes a new instance of the <see cref="T:Accord.Fuzzy.Clause"/> class.
</summary>
<param name="variable">Linguistic variable of the clause. </param>
<param name="label">Label of the linguistic variable, a fuzzy set used as label into the linguistic variable.</param>
<exception cref="T:System.Collections.Generic.KeyNotFoundException">The label indicated was not found in the linguistic variable.</exception>
</member>
<member name="M:Accord.Fuzzy.Clause.Evaluate">
<summary>
Evaluates the fuzzy clause.
</summary>
<returns>Degree of membership [0..1] of the clause.</returns>
</member>
<member name="M:Accord.Fuzzy.Clause.ToString">
<summary>
Returns the fuzzy clause in its linguistic representation.
</summary>
<returns>A string representing the fuzzy clause.</returns>
</member>
<member name="T:Accord.Fuzzy.CentroidDefuzzifier">
<summary>
This class implements the centroid defuzzification method.
</summary>
<remarks><para>In many applications, a Fuzzy Inference System is used to perform linguistic
computation, but at the end of the inference process, a numerical value is needed. It does
not mean that the system needs precision, but simply that a numerical value is required,
most of the times because it will be used to control another system that needs the number.
To obtain this numer, a defuzzification method is performed.</para>
<para>This class implements the centroid defuzzification method. The output of a Fuzzy
Inference System is a set of rules (see <see cref="T:Accord.Fuzzy.Rule"/>) with firing strength greater
than zero. Those firing strength apply a constraint to the consequent fuzzy sets
(see <see cref="T:Accord.Fuzzy.FuzzySet"/>) of the rules. Putting all those fuzzy sets togheter results
in a a shape that is the linguistic output meaning.
</para>
<para>The centroid method calculates the center of the area of this shape to obtain the
numerical representation of the output. It uses a numerical approximation, so a number
of intervals must be choosen. As the number of intervals grow, the precision of the
numerical ouput grows.
</para>
<para>For a sample usage of the <see cref="T:Accord.Fuzzy.CentroidDefuzzifier"/> see <see cref="T:Accord.Fuzzy.InferenceSystem"/>
class.</para>
</remarks>
</member>
<member name="M:Accord.Fuzzy.CentroidDefuzzifier.#ctor(System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:Accord.Fuzzy.CentroidDefuzzifier"/> class.
</summary>
<param name="intervals">Number of segments that the speech universe will be splited
to perform the numerical approximation of the center of area.</param>
</member>
<member name="M:Accord.Fuzzy.CentroidDefuzzifier.Defuzzify(Accord.Fuzzy.FuzzyOutput,Accord.Fuzzy.INorm)">
<summary>
Centroid method to obtain the numerical representation of a fuzzy output. The numerical
value will be the center of the shape formed by the several fuzzy labels with their
constraints.
</summary>
<param name="fuzzyOutput">A <see cref="T:Accord.Fuzzy.FuzzyOutput"/> containing the output of several
rules of a Fuzzy Inference System.</param>
<param name="normOperator">A <see cref="T:Accord.Fuzzy.INorm"/> operator to be used when constraining
the label to the firing strength.</param>
<returns>The numerical representation of the fuzzy output.</returns>
<exception cref="T:System.Exception">The numerical output is unavaliable. All memberships are zero.</exception>
</member>
<member name="T:Accord.Fuzzy.IDefuzzifier">
<summary>
Interface which specifies set of methods required to be implemented by all defuzzification methods
that can be used in Fuzzy Inference Systems.
</summary>
<remarks><para>In many applications, a Fuzzy Inference System is used to perform linguistic computation,
but at the end of the inference process, a numerical value is needed. It does not mean that the system
needs precision, but simply that a numerical value is required, most of the times because it will be used to
control another system that needs the number. To obtain this numer, a defuzzification method is performed.</para>
<para>Several deffuzification methods were proposed, and they can be created as classes that
implements this interface.</para></remarks>
</member>
<member name="M:Accord.Fuzzy.IDefuzzifier.Defuzzify(Accord.Fuzzy.FuzzyOutput,Accord.Fuzzy.INorm)">
<summary>
Defuzzification method to obtain the numerical representation of a fuzzy output.
</summary>
<param name="fuzzyOutput">A <see cref="T:Accord.Fuzzy.FuzzyOutput"/> containing the output of
several rules of a Fuzzy Inference System.</param>
<param name="normOperator">A <see cref="T:Accord.Fuzzy.INorm"/> operator to be used when constraining
the label to the firing strength.</param>
<returns>The numerical representation of the fuzzy output.</returns>
</member>
<member name="T:Accord.Fuzzy.FuzzyOutput">
<summary>
The class represents the output of a Fuzzy Inference System.
</summary>
<remarks><para>The class keeps set of rule's output - pairs with the output fuzzy label
and the rule's firing strength.
</para>
<para>Sample usage:</para>
<code>
// linguistic labels (fuzzy sets) that compose the distances
FuzzySet fsNear = new FuzzySet( "Near",
new TrapezoidalFunction( 15, 50, TrapezoidalFunction.EdgeType.Right ) );
FuzzySet fsMedium = new FuzzySet( "Medium",
new TrapezoidalFunction( 15, 50, 60, 100 ) );
FuzzySet fsFar = new FuzzySet( "Far",
new TrapezoidalFunction( 60, 100, TrapezoidalFunction.EdgeType.Left ) );
// front distance (input)
LinguisticVariable lvFront = new LinguisticVariable( "FrontalDistance", 0, 120 );
lvFront.AddLabel( fsNear );
lvFront.AddLabel( fsMedium );
lvFront.AddLabel( fsFar );
// linguistic labels (fuzzy sets) that compose the angle
FuzzySet fsZero = new FuzzySet( "Zero",
new TrapezoidalFunction( -10, 5, 5, 10 ) );
FuzzySet fsLP = new FuzzySet( "LittlePositive",
new TrapezoidalFunction( 5, 10, 20, 25 ) );
FuzzySet fsP = new FuzzySet( "Positive",
new TrapezoidalFunction( 20, 25, 35, 40 ) );
FuzzySet fsVP = new FuzzySet( "VeryPositive",
new TrapezoidalFunction( 35, 40, TrapezoidalFunction.EdgeType.Left ) );
// angle
LinguisticVariable lvAngle = new LinguisticVariable( "Angle", -10, 50 );
lvAngle.AddLabel( fsZero );
lvAngle.AddLabel( fsLP );
lvAngle.AddLabel( fsP );
lvAngle.AddLabel( fsVP );
// the database
Database fuzzyDB = new Database( );
fuzzyDB.AddVariable( lvFront );
fuzzyDB.AddVariable( lvAngle );
// creating the inference system
InferenceSystem IS = new InferenceSystem( fuzzyDB, new CentroidDefuzzifier( 1000 ) );
// going straight
IS.NewRule( "Rule 1", "IF FrontalDistance IS Far THEN Angle IS Zero" );
// turning left
IS.NewRule( "Rule 2", "IF FrontalDistance IS Near THEN Angle IS Positive" );
...
// inference section
// setting inputs
IS.SetInput( "FrontalDistance", 20 );
// getting outputs
try
{
FuzzyOutput fuzzyOutput = IS.ExecuteInference ( "Angle" );
// showing the fuzzy output
foreach ( FuzzyOutput.OutputConstraint oc in fuzzyOutput.OutputList )
{
Console.WriteLine( oc.Label + " - " + oc.FiringStrength.ToString( ) );
}
}
catch ( Exception )
{
...
}
</code>
</remarks>
</member>
<member name="T:Accord.Fuzzy.FuzzyOutput.OutputConstraint">
<summary>
Inner class to store the pair fuzzy label / firing strength of
a fuzzy output.
</summary>
</member>
<member name="M:Accord.Fuzzy.FuzzyOutput.OutputConstraint.#ctor(System.String,System.Single)">
<summary>
Initializes a new instance of the <see cref="T:Accord.Fuzzy.FuzzyOutput.OutputConstraint"/> class.
</summary>
<param name="label">A string representing the output label of a <see cref="T:Accord.Fuzzy.Rule"/>.</param>
<param name="firingStrength">The firing strength of a <see cref="T:Accord.Fuzzy.Rule"/>, to be applied to its output label.</param>
</member>
<member name="P:Accord.Fuzzy.FuzzyOutput.OutputConstraint.Label">
<summary>
The <see cref="T:Accord.Fuzzy.FuzzySet"/> representing the output label of a <see cref="T:Accord.Fuzzy.Rule"/>.
</summary>
</member>
<member name="P:Accord.Fuzzy.FuzzyOutput.OutputConstraint.FiringStrength">
<summary>
The firing strength of a <see cref="T:Accord.Fuzzy.Rule"/>, to be applied to its output label.
</summary>
</member>
<member name="P:Accord.Fuzzy.FuzzyOutput.OutputList">
<summary>
A list with <see cref="T:Accord.Fuzzy.FuzzyOutput.OutputConstraint"/> of a Fuzzy Inference System's output.
</summary>
</member>
<member name="P:Accord.Fuzzy.FuzzyOutput.OutputVariable">
<summary>
Gets the <see cref="T:Accord.Fuzzy.LinguisticVariable"/> acting as a Fuzzy Inference System Output.
</summary>
</member>
<member name="M:Accord.Fuzzy.FuzzyOutput.#ctor(Accord.Fuzzy.LinguisticVariable)">
<summary>
Initializes a new instance of the <see cref="T:Accord.Fuzzy.FuzzyOutput"/> class.
</summary>
<param name="outputVar">A <see cref="T:Accord.Fuzzy.LinguisticVariable"/> representing a Fuzzy Inference System's output.</param>
</member>
<member name="M:Accord.Fuzzy.FuzzyOutput.AddOutput(System.String,System.Single)">
<summary>
Adds an output to the Fuzzy Output.
</summary>
<param name="labelName">The name of a label representing a fuzzy rule's output.</param>
<param name="firingStrength">The firing strength [0..1] of a fuzzy rule.</param>
<exception cref="T:System.Collections.Generic.KeyNotFoundException">The label indicated was not found in the linguistic variable.</exception>
</member>
<member name="M:Accord.Fuzzy.FuzzyOutput.ClearOutput">
<summary>
Removes all the linguistic variables of the database.
</summary>
</member>
<member name="T:Accord.Fuzzy.InferenceSystem">
<summary>
This class represents a Fuzzy Inference System.
</summary>
<remarks><para>A Fuzzy Inference System is a model capable of executing fuzzy computing.
It is mainly composed by a <see cref="T:Accord.Fuzzy.Database"/> with the linguistic variables
(see <see cref="T:Accord.Fuzzy.LinguisticVariable"/>) and a <see cref="T:Accord.Fuzzy.Rulebase"/>
with the fuzzy rules (see <see cref="T:Accord.Fuzzy.Rule"/>) that represent the behavior of the system.
The typical operation of a Fuzzy Inference System is:
<list type="bullet">
<item>Get the numeric inputs;</item>
<item>Use the <see cref="T:Accord.Fuzzy.Database"/> with the linguistic variables
(see <see cref="T:Accord.Fuzzy.LinguisticVariable"/>) to obtain linguistic meaning for each
numerical input;</item>
<item>Verify which rules (see <see cref="T:Accord.Fuzzy.Rule"/>) of the <see cref="T:Accord.Fuzzy.Rulebase"/> are
activated by the input;</item>
<item>Combine the consequent of the activated rules to obtain a <see cref="T:Accord.Fuzzy.FuzzyOutput"/>;</item>
<item>Use some defuzzifier (see <see cref="T:Accord.Fuzzy.IDefuzzifier"/>) to obtain a numerical output. </item>
</list>
</para>
<para>The following sample usage is a Fuzzy Inference System that controls an
auto guided vehicle avoing frontal collisions:</para>
<code>
// linguistic labels (fuzzy sets) that compose the distances
FuzzySet fsNear = new FuzzySet( "Near",
new TrapezoidalFunction( 15, 50, TrapezoidalFunction.EdgeType.Right ) );
FuzzySet fsMedium = new FuzzySet( "Medium",
new TrapezoidalFunction( 15, 50, 60, 100 ) );
FuzzySet fsFar = new FuzzySet( "Far",
new TrapezoidalFunction( 60, 100, TrapezoidalFunction.EdgeType.Left ) );
// front distance (input)
LinguisticVariable lvFront = new LinguisticVariable( "FrontalDistance", 0, 120 );
lvFront.AddLabel( fsNear );
lvFront.AddLabel( fsMedium );
lvFront.AddLabel( fsFar );
// linguistic labels (fuzzy sets) that compose the angle
FuzzySet fsZero = new FuzzySet( "Zero",
new TrapezoidalFunction( -10, 5, 5, 10 ) );
FuzzySet fsLP = new FuzzySet( "LittlePositive",
new TrapezoidalFunction( 5, 10, 20, 25 ) );
FuzzySet fsP = new FuzzySet( "Positive",
new TrapezoidalFunction( 20, 25, 35, 40 ) );
FuzzySet fsVP = new FuzzySet( "VeryPositive",
new TrapezoidalFunction( 35, 40, TrapezoidalFunction.EdgeType.Left ) );
// angle
LinguisticVariable lvAngle = new LinguisticVariable( "Angle", -10, 50 );
lvAngle.AddLabel( fsZero );
lvAngle.AddLabel( fsLP );
lvAngle.AddLabel( fsP );
lvAngle.AddLabel( fsVP );
// the database
Database fuzzyDB = new Database( );
fuzzyDB.AddVariable( lvFront );
fuzzyDB.AddVariable( lvAngle );
// creating the inference system
InferenceSystem IS = new InferenceSystem( fuzzyDB, new CentroidDefuzzifier( 1000 ) );
// going Straight
IS.NewRule( "Rule 1", "IF FrontalDistance IS Far THEN Angle IS Zero" );
// Turning Left
IS.NewRule( "Rule 2", "IF FrontalDistance IS Near THEN Angle IS Positive" );
...
// inference section
// setting inputs
IS.SetInput( "FrontalDistance", 20 );
// getting outputs
try
{
float newAngle = IS.Evaluate( "Angle" );
}
catch ( Exception )
{
...
}
</code>
</remarks>
</member>
<member name="M:Accord.Fuzzy.InferenceSystem.#ctor(Accord.Fuzzy.Database,Accord.Fuzzy.IDefuzzifier)">
<summary>
Initializes a new Fuzzy <see cref="T:Accord.Fuzzy.InferenceSystem"/>.
</summary>
<param name="database">A fuzzy <see cref="T:Accord.Fuzzy.Database"/> containing the system linguistic variables.</param>
<param name="defuzzifier">A defuzzyfier method used to evaluate the numeric uotput of the system.</param>
</member>
<member name="M:Accord.Fuzzy.InferenceSystem.#ctor(Accord.Fuzzy.Database,Accord.Fuzzy.IDefuzzifier,Accord.Fuzzy.INorm,Accord.Fuzzy.ICoNorm)">
<summary>
Initializes a new Fuzzy <see cref="T:Accord.Fuzzy.InferenceSystem"/>.
</summary>
<param name="database">A fuzzy <see cref="T:Accord.Fuzzy.Database"/> containing the system linguistic
variables.</param>
<param name="defuzzifier">A defuzzyfier method used to evaluate the numeric otput
of the system.</param>
<param name="normOperator">A <see cref="T:Accord.Fuzzy.INorm"/> operator used to evaluate the norms
in the <see cref="T:Accord.Fuzzy.InferenceSystem"/>. For more information of the norm evaluation see <see cref="T:Accord.Fuzzy.Rule"/>.</param>
<param name="conormOperator">A <see cref="T:Accord.Fuzzy.ICoNorm"/> operator used to evaluate the
conorms in the <see cref="T:Accord.Fuzzy.InferenceSystem"/>. For more information of the conorm evaluation see <see cref="T:Accord.Fuzzy.Rule"/>.</param>
</member>
<member name="M:Accord.Fuzzy.InferenceSystem.NewRule(System.String,System.String)">
<summary>
Creates a new <see cref="T:Accord.Fuzzy.Rule"/> and add it to the <see cref="T:Accord.Fuzzy.Rulebase"/> of the
<see cref="T:Accord.Fuzzy.InferenceSystem"/>.
</summary>
<param name="name">Name of the <see cref="T:Accord.Fuzzy.Rule"/> to create.</param>
<param name="rule">A string representing the fuzzy rule.</param>
<returns>The new <see cref="T:Accord.Fuzzy.Rule"/> reference. </returns>
</member>
<member name="M:Accord.Fuzzy.InferenceSystem.SetInput(System.String,System.Single)">
<summary>
Sets a numerical input for one of the linguistic variables of the <see cref="T:Accord.Fuzzy.Database"/>.
</summary>
<param name="variableName">Name of the <see cref="T:Accord.Fuzzy.LinguisticVariable"/>.</param>
<param name="value">Numeric value to be used as input.</param>
<exception cref="T:System.Collections.Generic.KeyNotFoundException">The variable indicated in <paramref name="variableName"/>
was not found in the database.</exception>
</member>
<member name="M:Accord.Fuzzy.InferenceSystem.GetLinguisticVariable(System.String)">
<summary>
Gets one of the <see cref="T:Accord.Fuzzy.LinguisticVariable"/> of the <see cref="T:Accord.Fuzzy.Database"/>.
</summary>
<param name="variableName">Name of the <see cref="T:Accord.Fuzzy.LinguisticVariable"/> to get.</param>
<exception cref="T:System.Collections.Generic.KeyNotFoundException">The variable indicated in <paramref name="variableName"/>
was not found in the database.</exception>
</member>
<member name="M:Accord.Fuzzy.InferenceSystem.GetRule(System.String)">
<summary>
Gets one of the Rules of the <see cref="T:Accord.Fuzzy.Rulebase"/>.
</summary>
<param name="ruleName">Name of the <see cref="T:Accord.Fuzzy.Rule"/> to get.</param>
<exception cref="T:System.Collections.Generic.KeyNotFoundException">The rule indicated in <paramref name="ruleName"/>
was not found in the rulebase.</exception>
</member>
<member name="M:Accord.Fuzzy.InferenceSystem.Evaluate(System.String)">
<summary>
Executes the fuzzy inference, obtaining a numerical output for a choosen output
linguistic variable.
</summary>
<param name="variableName">Name of the <see cref="T:Accord.Fuzzy.LinguisticVariable"/> to evaluate.</param>
<returns>The numerical output of the Fuzzy Inference System for the choosen variable.</returns>
<exception cref="T:System.Collections.Generic.KeyNotFoundException">The variable indicated was not found in the database.</exception>
</member>
<member name="M:Accord.Fuzzy.InferenceSystem.ExecuteInference(System.String)">
<summary>
Executes the fuzzy inference, obtaining the <see cref="T:Accord.Fuzzy.FuzzyOutput"/> of the system for the required
<see cref="T:Accord.Fuzzy.LinguisticVariable"/>.
</summary>
<param name="variableName">Name of the <see cref="T:Accord.Fuzzy.LinguisticVariable"/> to evaluate.</param>
<returns>A <see cref="T:Accord.Fuzzy.FuzzyOutput"/> containing the fuzzy output of the system for the
<see cref="T:Accord.Fuzzy.LinguisticVariable"/> specified in <paramref name="variableName"/>.</returns>
<exception cref="T:System.Collections.Generic.KeyNotFoundException">The variable indicated was not found in the database.</exception>
</member>
<member name="T:Accord.Fuzzy.SingletonFunction">
<summary>
Membership function used in fuzzy singletons: fuzzy sets that have just one point with membership value 1.
</summary>
<remarks><para>Sometimes it is needed to represent crisp (classical) number in the fuzzy domain. Several approaches
can be used, like adding some uncertain (fuzziness) in the original number (the number one, for instance, can be seen as a <see cref="T:Accord.Fuzzy.TrapezoidalFunction"/>
with -0.5, 1.0 and 0.5 parameters). Another approach is to declare fuzzy singletons: fuzzy sets with only one point returning a none zero membership.</para>
<para>While trapezoidal and half trapezoidal are classic functions used in fuzzy functions, this class supports any function
or approximation that can be represented as a sequence of lines.</para>
<para>Sample usage:</para>
<code>
// creating the instance
SingletonFunction membershipFunction = new SingletonFunction( 10 );
// getting membership for several points
for ( int i = 0; i &lt; 20; i++ )
Console.WriteLine( membershipFunction.GetMembership( i ) );
</code>
</remarks>
</member>
<member name="F:Accord.Fuzzy.SingletonFunction.support">
<summary>
The unique point where the membership value is 1.
</summary>
</member>
<member name="P:Accord.Fuzzy.SingletonFunction.LeftLimit">
<summary>
The leftmost x value of the membership function, the same value of the support.
</summary>
</member>
<member name="P:Accord.Fuzzy.SingletonFunction.RightLimit">
<summary>
The rightmost x value of the membership function, the same value of the support.
</summary>
</member>
<member name="M:Accord.Fuzzy.SingletonFunction.#ctor(System.Single)">
<summary>
Initializes a new instance of the <see cref="T:Accord.Fuzzy.SingletonFunction"/> class.
</summary>
<param name="support">Support is the only value of x where the membership function is 1.</param>
</member>
<member name="M:Accord.Fuzzy.SingletonFunction.GetMembership(System.Single)">
<summary>
Calculate membership of a given value to the singleton function.
</summary>
<param name="x">Value which membership will to be calculated.</param>
<returns>Degree of membership {0,1} since singletons do not admit memberships different from 0 and 1. </returns>
</member>
<member name="T:Accord.Fuzzy.NotOperator">
<summary>
NOT operator, used to calculate the complement of a fuzzy set.
</summary>
<remarks><para>The NOT operator definition is (1 - m) for all the values of membership m of the fuzzy set.</para>
<para>Sample usage:</para>
<code>
// creating a fuzzy sets to represent Cool (Temperature)
TrapezoidalFunction function1 = new TrapezoidalFunction( 13, 18, 23, 28 );
FuzzySet fsCool = new FuzzySet( "Cool", function1 );
// getting membership
float m1 = fsCool.GetMembership( 15 );
// computing the membership of "NOT Cool"
NotOperator NOT = new NotOperator( );
float result = NOT.Evaluate( m1 );
// show result
Console.WriteLine( result );
</code>
</remarks>
<seealso cref="T:Accord.Fuzzy.IUnaryOperator"/>
</member>
<member name="M:Accord.Fuzzy.NotOperator.Evaluate(System.Single)">
<summary>
Calculates the numerical result of the NOT operation applied to
a fuzzy membership value.
</summary>
<param name="membership">A fuzzy membership value, [0..1].</param>
<returns>The numerical result of the unary operation NOT applied to <paramref name="membership"/>.</returns>
</member>
<member name="T:Accord.Fuzzy.IUnaryOperator">
<summary>
Interface with the common methods of Fuzzy Unary Operator.
</summary>
<remarks><para>All fuzzy operators that act as a Unary Operator (NOT, VERY, LITTLE) must implement this interface.
</para></remarks>
</member>
<member name="M:Accord.Fuzzy.IUnaryOperator.Evaluate(System.Single)">
<summary>
Calculates the numerical result of a Unary operation applied to one
fuzzy membership value.
</summary>
<param name="membership">A fuzzy membership value, [0..1].</param>
<returns>The numerical result of the operation applied to <paramref name="membership"/></returns>.
</member>
<member name="T:Accord.Fuzzy.Rulebase">
<summary>
The class represents a fuzzy rulebase, a set of fuzzy rules used in a Fuzzy Inference System.
</summary>
</member>
<member name="M:Accord.Fuzzy.Rulebase.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Accord.Fuzzy.Rulebase"/> class.
</summary>
</member>
<member name="M:Accord.Fuzzy.Rulebase.AddRule(Accord.Fuzzy.Rule)">
<summary>
Adds a fuzzy rule to the database.
</summary>
<param name="rule">A fuzzy <see cref="T:Accord.Fuzzy.Rule"/> to add to the database.</param>
<exception cref="T:System.NullReferenceException">The fuzzy rule was not initialized.</exception>
<exception cref="T:System.ArgumentException">The fuzzy rule name already exists in the rulebase.</exception>
</member>
<member name="M:Accord.Fuzzy.Rulebase.ClearRules">
<summary>
Removes all the fuzzy rules of the database.
</summary>
</member>
<member name="M:Accord.Fuzzy.Rulebase.GetRule(System.String)">
<summary>
Returns an existing fuzzy rule from the rulebase.
</summary>
<param name="ruleName">Name of the fuzzy <see cref="T:Accord.Fuzzy.Rule"/> to retrieve.</param>
<returns>Reference to named <see cref="T:Accord.Fuzzy.Rule"/>.</returns>
<exception cref="T:System.Collections.Generic.KeyNotFoundException">The rule indicated in ruleName was not found in the rulebase.</exception>
</member>
<member name="M:Accord.Fuzzy.Rulebase.GetRules">
<summary>
Gets all the rules of the rulebase.
</summary>
<returns>An array with all the rulebase rules.</returns>
</member>
<member name="T:Accord.Fuzzy.Database">
<summary>
The class represents a fuzzy database, a set of linguistic variables used in a Fuzzy
Inference System.
</summary>
</member>
<member name="M:Accord.Fuzzy.Database.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Accord.Fuzzy.Database"/> class.
</summary>
</member>
<member name="M:Accord.Fuzzy.Database.AddVariable(Accord.Fuzzy.LinguisticVariable)">
<summary>
Adds a linguistic variable to the database.
</summary>
<param name="variable">A linguistic variable to add.</param>
<exception cref="T:System.NullReferenceException">The linguistic variable was not initialized.</exception>
<exception cref="T:System.ArgumentException">The linguistic variable name already exists in the database.</exception>
</member>
<member name="M:Accord.Fuzzy.Database.ClearVariables">
<summary>
Removes all the linguistic variables of the database.
</summary>
</member>
<member name="M:Accord.Fuzzy.Database.GetVariable(System.String)">
<summary>
Returns an existing linguistic variable from the database.
</summary>
<param name="variableName">Name of the linguistic variable to retrieve.</param>
<returns>Reference to named <see cref="T:Accord.Fuzzy.LinguisticVariable"/>.</returns>
<exception cref="T:System.Collections.Generic.KeyNotFoundException">The variable indicated was not found in the database.</exception>
</member>
<member name="T:Accord.Fuzzy.MaximumCoNorm">
<summary>
Maximum CoNorm, used to calculate the linguistic value of a OR operation.
</summary>
<remarks><para>The maximum CoNorm uses a maximum operator to compute the OR
among two fuzzy memberships.</para>
<para>Sample usage:</para>
<code>
// creating 2 fuzzy sets to represent Cool (Temperature) and Near (Distance)
TrapezoidalFunction function1 = new TrapezoidalFunction( 13, 18, 23, 28 );
FuzzySet fsCool = new FuzzySet( "Cool", function1 );
TrapezoidalFunction function2 = new TrapezoidalFunction( 23, 28, 33, 38 );
FuzzySet fsNear = new FuzzySet( "Near", function2 );
// getting memberships
float m1 = fsCool.GetMembership( 15 );
float m2 = fsNear.GetMembership( 35 );
// computing the membership of "Cool OR Near"
MaximumCoNorm OR = new MaximumCoNorm( );
float result = OR.Evaluate( m1, m2 );
// show result
Console.WriteLine( result );
</code>
</remarks>
<seealso cref="T:Accord.Fuzzy.ICoNorm"/>
</member>
<member name="M:Accord.Fuzzy.MaximumCoNorm.Evaluate(System.Single,System.Single)">
<summary>
Calculates the numerical result of the OR operation applied to
two fuzzy membership values.
</summary>
<param name="membershipA">A fuzzy membership value, [0..1].</param>
<param name="membershipB">A fuzzy membership value, [0..1].</param>
<returns>The numerical result of the binary operation OR applied to <paramref name="membershipA"/>
and <paramref name="membershipB"/>.</returns>
</member>
<member name="T:Accord.Fuzzy.Rule">
<summary>
This class represents a Fuzzy Rule, a linguistic expression representing some behavioral
aspect of a Fuzzy Inference System.
</summary>
<remarks><para>
A Fuzzy Rule is a fuzzy linguistic instruction that can be executed by a fuzzy system.
The format of the Fuzzy Rule is:
</para>
<para><b>IF <i>antecedent</i> THEN <i>consequent</i></b></para>
<para>The antecedent is composed by a set of fuzzy clauses (see <see cref="T:Accord.Fuzzy.Clause"/>) connected
by fuzzy operations, like <b>AND</b> or <b>OR</b>. The operator <b>NOT</b> can be used to negate expressions: </para>
<para><b>...<i>Clause1</i> AND (<i>Clause2</i> OR <i>Clause3</i>) AND NOT <i>Clause4</i> ...</b></para>
<para>Fuzzy clauses are written in form <i>Variable IS Value</i>. The NOT operator can be used to negate linguistic values as well:<br />
<b>...<i>Variable1 IS Value1</i> AND <i>Variable2 IS NOT Value2</i> ...</b></para>
<para>The consequent is a single of fuzzy clauses (<see cref="T:Accord.Fuzzy.Clause"/>). To perform the
linguistic computing, the <see cref="T:Accord.Fuzzy.Rule"/> evaluates the clauses and then applies the fuzzy
operators. Once this is done a value representing the confidence in the antecedent being
true is obtained, and this is called firing strength of the <see cref="T:Accord.Fuzzy.Rule"/>.</para>
<para>The firing strength is used to discover with how much confidence the consequent
of a rule is true.</para>
<para>Sample usage:</para>
<code>
// create the linguistic labels (fuzzy sets) that compose the temperature
TrapezoidalFunction function1 = new TrapezoidalFunction(
10, 15, TrapezoidalFunction.EdgeType.Right );
FuzzySet fsCold = new FuzzySet( "Cold", function1 );
TrapezoidalFunction function2 = new TrapezoidalFunction( 10, 15, 20, 25 );
FuzzySet fsCool = new FuzzySet( "Cool", function2 );
TrapezoidalFunction function3 = new TrapezoidalFunction( 20, 25, 30, 35 );
FuzzySet fsWarm = new FuzzySet( "Warm", function3 );
TrapezoidalFunction function4 = new TrapezoidalFunction(
30, 35, TrapezoidalFunction.EdgeType.Left );
FuzzySet fsHot = new FuzzySet( "Hot", function4 );
// create a linguistic variable to represent steel temperature
LinguisticVariable lvSteel = new LinguisticVariable( "Steel", 0, 80 );
// adding labels to the variable
lvSteel.AddLabel( fsCold );
lvSteel.AddLabel( fsCool );
lvSteel.AddLabel( fsWarm );
lvSteel.AddLabel( fsHot );
// create a linguistic variable to represent stove temperature
LinguisticVariable lvStove = new LinguisticVariable( "Stove", 0, 80 );
// adding labels to the variable
lvStove.AddLabel( fsCold );
lvStove.AddLabel( fsCool );
lvStove.AddLabel( fsWarm );
lvStove.AddLabel( fsHot );
// create the linguistic labels (fuzzy sets) that compose the pressure
TrapezoidalFunction function5 = new TrapezoidalFunction(
20, 40, TrapezoidalFunction.EdgeType.Right );
FuzzySet fsLow = new FuzzySet( "Low", function5 );
TrapezoidalFunction function6 = new TrapezoidalFunction( 20, 40, 60, 80 );
FuzzySet fsMedium = new FuzzySet( "Medium", function6 );
TrapezoidalFunction function7 = new TrapezoidalFunction(
60, 80, TrapezoidalFunction.EdgeType.Left );
FuzzySet fsHigh = new FuzzySet( "High", function7 );
// create a linguistic variable to represent pressure
LinguisticVariable lvPressure = new LinguisticVariable( "Pressure", 0, 100 );
// adding labels to the variable
lvPressure.AddLabel( fsLow );
lvPressure.AddLabel( fsMedium );
lvPressure.AddLabel( fsHigh );
// create a linguistic variable database
Database db = new Database( );
db.AddVariable( lvSteel );
db.AddVariable( lvStove );
db.AddVariable( lvPressure );
// sample rules just to test the expression parsing
Rule r1 = new Rule( db, "Test1", "IF Steel is not Cold and Stove is Hot then Pressure is Low" );
Rule r2 = new Rule( db, "Test2", "IF Steel is Cold and not (Stove is Warm or Stove is Hot) then Pressure is Medium" );
Rule r3 = new Rule( db, "Test3", "IF Steel is Cold and Stove is Warm or Stove is Hot then Pressure is High" );
// testing the firing strength
lvSteel.NumericInput = 12;
lvStove.NumericInput = 35;
float result = r1.EvaluateFiringStrength( );
Console.WriteLine( result.ToString( ) );
</code>
</remarks>
</member>
<member name="P:Accord.Fuzzy.Rule.Name">
<summary>
The name of the fuzzy rule.
</summary>
</member>
<member name="P:Accord.Fuzzy.Rule.Output">
<summary>
The fuzzy <see cref="T:Accord.Fuzzy.Clause"/> that represents the consequent of the <see cref="T:Accord.Fuzzy.Rule"/>.
</summary>
</member>
<member name="M:Accord.Fuzzy.Rule.#ctor(Accord.Fuzzy.Database,System.String,System.String,Accord.Fuzzy.INorm,Accord.Fuzzy.ICoNorm)">
<summary>
Initializes a new instance of the <see cref="T:Accord.Fuzzy.Rule"/> class.
</summary>
<param name="fuzzyDatabase">A fuzzy <see cref="T:Accord.Fuzzy.Database"/> containig the linguistic variables
(see <see cref="T:Accord.Fuzzy.LinguisticVariable"/>) that will be used in the Rule.</param>
<param name="name">Name of this <see cref="T:Accord.Fuzzy.Rule"/>.</param>
<param name="rule">A string representing the <see cref="T:Accord.Fuzzy.Rule"/>. It must be a "IF..THEN" statement.
For a more detailed description see <see cref="T:Accord.Fuzzy.Rule"/> class.</param>
<param name="normOperator">A class that implements a <see cref="T:Accord.Fuzzy.INorm"/> interface to
evaluate the AND operations of the Rule. </param>
<param name="coNormOperator">A class that implements a <see cref="T:Accord.Fuzzy.ICoNorm"/> interface
to evaluate the OR operations of the Rule. </param>
</member>
<member name="M:Accord.Fuzzy.Rule.#ctor(Accord.Fuzzy.Database,System.String,System.String)">
<summary>
Initializes a new instance of the <see cref="T:Accord.Fuzzy.Rule"/> class using as
CoNorm the <see cref="T:Accord.Fuzzy.MaximumCoNorm"/> and as Norm the <see cref="T:Accord.Fuzzy.MinimumNorm"/>.
</summary>
<param name="fuzzyDatabase">A fuzzy <see cref="T:Accord.Fuzzy.Database"/> containig the linguistic variables
(see <see cref="T:Accord.Fuzzy.LinguisticVariable"/>) that will be used in the <see cref="T:Accord.Fuzzy.Rule"/>.</param>
<param name="name">Name of this <see cref="T:Accord.Fuzzy.Rule"/>.</param>
<param name="rule">A string representing the <see cref="T:Accord.Fuzzy.Rule"/>. It must be a "IF..THEN"
statement. For a more detailed description see <see cref="T:Accord.Fuzzy.Rule"/> class.</param>
</member>
<member name="M:Accord.Fuzzy.Rule.GetRPNExpression">
<summary>
Converts the RPN fuzzy expression into a string representation.
</summary>
<returns>String representation of the RPN fuzzy expression.</returns>
</member>
<member name="M:Accord.Fuzzy.Rule.Priority(System.String)">
<summary>
Defines the priority of the fuzzy operators.
</summary>
<param name="Operator">A fuzzy operator or openning parenthesis.</param>
<returns>A number indicating the priority of the operator, and zero for openning
parenthesis.</returns>
</member>
<member name="M:Accord.Fuzzy.Rule.ParseRule">
<summary>
Converts the Fuzzy Rule to RPN (Reverse Polish Notation). For debug proposes, the string representation of the
RPN expression can be acessed by calling <see cref="M:Accord.Fuzzy.Rule.GetRPNExpression"/> method.
</summary>
</member>
<member name="M:Accord.Fuzzy.Rule.GetRuleTokens(System.String)">
<summary>
Performs a preprocessing on the rule, placing unary operators in proper position and breaking the string
space separated tokens.
</summary>
<param name="rule">Rule in string format.</param>
<returns>An array of strings with tokens of the rule.</returns>
</member>
<member name="M:Accord.Fuzzy.Rule.EvaluateFiringStrength">
<summary>
Evaluates the firing strength of the Rule, the degree of confidence that the consequent of this Rule
must be executed.
</summary>
<returns>The firing strength [0..1] of the Rule.</returns>
</member>
<member name="T:Accord.Fuzzy.LinguisticVariable">
<summary>
The class represents a linguistic variable.
</summary>
<remarks><para>Linguistic variables are variables that store linguistic values (labels). Fuzzy Inference Systems (FIS)
use a set of linguistic variables, called the FIS database, to execute fuzzy computation (computing with words). A linguistic
variable has a name and is composed by a set of <see cref="T:Accord.Fuzzy.FuzzySet"/> called its linguistic labels. When declaring fuzzy
statements in a FIS, a linguistic variable can be only assigned or compared to one of its labels. </para>
<para>Let us consider, for example, a linguistic variable <b>temperature</b>. In a given application, temperature can be
cold, cool, warm or hot. Those will be the variable's linguistic labels, each one a fuzzy set with its own membership
function. Ideally, the labels will represent concepts related to the variable's meaning. Futhermore, fuzzy statements like
"temperature is warm" or "temperature is not cold" can be used to build a Fuzzy Inference Systems.
</para>
<para>Sample usage:</para>
<code>
// create a linguistic variable to represent temperature
LinguisticVariable lvTemperature = new LinguisticVariable( "Temperature", 0, 80 );
// create the linguistic labels (fuzzy sets) that compose the temperature
TrapezoidalFunction function1 = new TrapezoidalFunction( 10, 15, TrapezoidalFunction.EdgeType.Right );
FuzzySet fsCold = new FuzzySet( "Cold", function1 );
TrapezoidalFunction function2 = new TrapezoidalFunction( 10, 15, 20, 25 );
FuzzySet fsCool = new FuzzySet( "Cool", function2 );
TrapezoidalFunction function3 = new TrapezoidalFunction( 20, 25, 30, 35 );
FuzzySet fsWarm = new FuzzySet( "Warm", function3 );
TrapezoidalFunction function4 = new TrapezoidalFunction( 30, 35, TrapezoidalFunction.EdgeType.Left );
FuzzySet fsHot = new FuzzySet( "Hot" , function4 );
// adding labels to the variable
lvTemperature.AddLabel( fsCold );
lvTemperature.AddLabel( fsCool );
lvTemperature.AddLabel( fsWarm );
lvTemperature.AddLabel( fsHot );
// showing the shape of the linguistic variable - the shape of its labels memberships from start to end
Console.WriteLine( "Cold; Cool; Warm; Hot" );
for ( float x = 0; x &lt; 80; x += 0.2 )
{
float y1 = lvTemperature.GetLabelMembership( "Cold", x );
float y2 = lvTemperature.GetLabelMembership( "Cool", x );
float y3 = lvTemperature.GetLabelMembership( "Warm", x );
float y4 = lvTemperature.GetLabelMembership( "Hot" , x );
Console.WriteLine( String.Format( "{0:N}; {1:N}; {2:N}; {3:N}", y1, y2, y3, y4 ) );
}
</code>
</remarks>
</member>
<member name="P:Accord.Fuzzy.LinguisticVariable.NumericInput">
<summary>
Numerical value of the input of this linguistic variable.
</summary>
</member>
<member name="P:Accord.Fuzzy.LinguisticVariable.Name">
<summary>
Name of the linguistic variable.
</summary>
</member>
<member name="P:Accord.Fuzzy.LinguisticVariable.Start">
<summary>
Left limit of the valid variable range.
</summary>
</member>
<member name="P:Accord.Fuzzy.LinguisticVariable.End">
<summary>
Right limit of the valid variable range.
</summary>
</member>
<member name="M:Accord.Fuzzy.LinguisticVariable.#ctor(System.String,System.Single,System.Single)">
<summary>
Initializes a new instance of the <see cref="T:Accord.Fuzzy.LinguisticVariable"/> class.
</summary>
<param name="name">Name of the linguistic variable.</param>
<param name="start">Left limit of the valid variable range.</param>
<param name="end">Right limit of the valid variable range.</param>
</member>
<member name="M:Accord.Fuzzy.LinguisticVariable.AddLabel(Accord.Fuzzy.FuzzySet)">
<summary>
Adds a linguistic label to the variable.
</summary>
<param name="label">A <see cref="T:Accord.Fuzzy.FuzzySet"/> that will be a linguistic label of the linguistic variable.</param>
<remarks>Linguistic labels are fuzzy sets (<see cref="T:Accord.Fuzzy.FuzzySet"/>). Each
label of the variable must have a unique name. The range of the label
(left and right limits) cannot be greater than
the linguistic variable range (start/end).</remarks>
<exception cref="T:System.NullReferenceException">The fuzzy set was not initialized.</exception>
<exception cref="T:System.ArgumentException">The linguistic label name already exists in the linguistic variable.</exception>
<exception cref="T:System.ArgumentException">The left limit of the fuzzy set can not be lower than the linguistic variable's starting point.</exception>
<exception cref="T:System.ArgumentException">"The right limit of the fuzzy set can not be greater than the linguistic variable's ending point."</exception>
</member>
<member name="M:Accord.Fuzzy.LinguisticVariable.ClearLabels">
<summary>
Removes all the linguistic labels of the linguistic variable.
</summary>
</member>
<member name="M:Accord.Fuzzy.LinguisticVariable.GetLabel(System.String)">
<summary>
Returns an existing label from the linguistic variable.
</summary>
<param name="labelName">Name of the label to retrieve.</param>
<returns>Reference to named label (<see cref="T:Accord.Fuzzy.FuzzySet"/>).</returns>
<exception cref="T:System.Collections.Generic.KeyNotFoundException">The label indicated was not found in the linguistic variable.</exception>
</member>
<member name="M:Accord.Fuzzy.LinguisticVariable.GetLabelMembership(System.String,System.Single)">
<summary>
Calculate the membership of a given value to a given label. Used to evaluate linguistics clauses like
"X IS A", where X is a value and A is a linguistic label.
</summary>
<param name="labelName">Label (fuzzy set) to evaluate value's membership.</param>
<param name="value">Value which label's membership will to be calculated.</param>
<returns>Degree of membership [0..1] of the value to the label (fuzzy set).</returns>
<exception cref="T:System.Collections.Generic.KeyNotFoundException">The label indicated in labelName was not found in the linguistic variable.</exception>
</member>
<member name="T:Accord.Fuzzy.FuzzySet">
<summary>
The class represents a fuzzy set.
</summary>
<remarks><para>The fuzzy sets are the base for all fuzzy applications. In a classical set, the membership of
a given value to the set can always be defined as true (1) or false (0). In fuzzy sets, this membership can be
a value in the range [0..1], representing the imprecision existent in many real world applications.</para>
<para>Let us consider, for example, fuzzy sets representing some temperature. In a given application, there is the
need to represent a cool and warm temperature. Like in real life, the precise point when the temperature changes from
cool to warm is not easy to find, and does not makes sense. If we consider the cool around 20 degrees and warm around
30 degrees, it is not simple to find a break point. If we take the mean, we can consider values greater than or equal
25 to be warm. But we can still consider 25 a bit cool. And a bit warm at the same time. This is where fuzzy sets can
help.</para>
<para>Fuzzy sets are often used to compose Linguistic Variables, used in Fuzzy Inference Systems.</para>
<para>Sample usage:</para>
<code>
// creating 2 fuzzy sets to represent Cool and Warm
TrapezoidalFunction function1 = new TrapezoidalFunction( 13, 18, 23, 28 );
FuzzySet fsCool = new FuzzySet( "Cool", function1 );
TrapezoidalFunction function2 = new TrapezoidalFunction( 23, 28, 33, 38 );
FuzzySet fsWarm = new FuzzySet( "Warm", function2 );
// show membership to the Cool set for some values
Console.WriteLine( "COOL" );
for ( int i = 13; i &lt;= 28; i++ )
Console.WriteLine( fsCool.GetMembership( i ) );
// show membership to the Warm set for some values
Console.WriteLine( "WARM" );
for ( int i = 23; i &lt;= 38; i++ )
Console.WriteLine( fsWarm.GetMembership( i ) );
</code>
</remarks>
</member>
<member name="P:Accord.Fuzzy.FuzzySet.Name">
<summary>
Name of the fuzzy set.
</summary>
</member>
<member name="P:Accord.Fuzzy.FuzzySet.LeftLimit">
<summary>
The leftmost x value of the fuzzy set's membership function.
</summary>
</member>
<member name="P:Accord.Fuzzy.FuzzySet.RightLimit">
<summary>
The rightmost x value of the fuzzy set's membership function.
</summary>
</member>
<member name="M:Accord.Fuzzy.FuzzySet.#ctor(System.String,Accord.Fuzzy.IMembershipFunction)">
<summary>
Initializes a new instance of the <see cref="T:Accord.Fuzzy.FuzzySet"/> class.
</summary>
<param name="name">Name of the fuzzy set.</param>
<param name="function">Membership function that will define the shape of the fuzzy set. </param>
</member>
<member name="M:Accord.Fuzzy.FuzzySet.GetMembership(System.Single)">
<summary>
Calculate membership of a given value to the fuzzy set.
</summary>
<param name="x">Value which membership needs to be calculated.</param>
<returns>Degree of membership [0..1] of the value to the fuzzy set.</returns>
</member>
<member name="T:Accord.Fuzzy.IMembershipFunction">
<summary>
Interface which specifies set of methods required to be implemented by all membership
functions.
</summary>
<remarks><para>All membership functions must implement this interface, which is used by
<see cref="T:Accord.Fuzzy.FuzzySet"/> class to calculate value's membership to a particular fuzzy set.
</para></remarks>
</member>
<member name="M:Accord.Fuzzy.IMembershipFunction.GetMembership(System.Single)">
<summary>
Calculate membership of a given value to the fuzzy set.
</summary>
<param name="x">Value which membership will to be calculated.</param>
<returns>Degree of membership [0..1] of the value to the fuzzy set.</returns>
</member>
<member name="P:Accord.Fuzzy.IMembershipFunction.LeftLimit">
<summary>
The leftmost x value of the membership function.
</summary>
</member>
<member name="P:Accord.Fuzzy.IMembershipFunction.RightLimit">
<summary>
The rightmost x value of the membership function.
</summary>
</member>
<member name="T:Accord.Fuzzy.PiecewiseLinearFunction">
<summary>
Membership function composed by several connected linear functions.
</summary>
<remarks><para>The piecewise linear is a generic function used by many specific fuzzy membership
functions, like the <see cref="T:Accord.Fuzzy.TrapezoidalFunction">trappezoidal function</see>. This class must
be instantiated with a sequence of points representing the edges of each one of the lines composing the
piecewise function.</para>
<para><note>The x-axis points must be ordered (crescent), so the <see cref="M:Accord.Fuzzy.PiecewiseLinearFunction.GetMembership(System.Single)"/> function will use each X value
as an ending point for one line and starting point of the next.</note></para>
<para>While trapezoidal and half trapezoidal are classic functions used in fuzzy functions, this class supports any function
or approximation that can be represented as a sequence of lines.</para>
<para>Sample usage:</para>
<code>
// creating an array of points representing a typical trapezoidal function /-\
Point [] points = new Point[4];
// point where membership starts to rise
points[0] = new Point( 10, 0 );
// maximum membership (1) reached at the second point
points[1] = new Point( 20, 1 );
// membership starts to fall at the third point
points[2] = new Point( 30, 1 );
// membership gets to zero at the last point
points[3] = new Point( 40, 0 );
// creating the instance
PiecewiseLinearFunction membershipFunction = new PiecewiseLinearFunction( points );
// getting membership for several points
for ( int i = 5; i &lt; 45; i++ )
Console.WriteLine( membershipFunction.GetMembership( i ) );
</code>
</remarks>
</member>
<member name="F:Accord.Fuzzy.PiecewiseLinearFunction.points">
<summary>
Vector of (X,Y) coordinates for end/start of each line.
</summary>
</member>
<member name="P:Accord.Fuzzy.PiecewiseLinearFunction.LeftLimit">
<summary>
The leftmost x value of the membership function, given by the first (X,Y) coordinate.
</summary>
<exception cref="T:System.NullReferenceException">Points of the membership function are not initialized.</exception>
</member>
<member name="P:Accord.Fuzzy.PiecewiseLinearFunction.RightLimit">
<summary>
The rightmost x value of the membership function, given by the last (X,Y) coordinate.
</summary>
<exception cref="T:System.NullReferenceException">Points of the membership function are not initialized.</exception>
</member>
<member name="M:Accord.Fuzzy.PiecewiseLinearFunction.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Accord.Fuzzy.PiecewiseLinearFunction"/> class.
</summary>
<remarks><para>This constructor must be used only by inherited classes to create the
points vector after the instantiation.</para></remarks>
</member>
<member name="M:Accord.Fuzzy.PiecewiseLinearFunction.#ctor(Accord.Point[])">
<summary>
Initializes a new instance of the <see cref="T:Accord.Fuzzy.PiecewiseLinearFunction"/> class.
</summary>
<param name="points">Array of (X,Y) coordinates of each start/end of the lines.</param>
<remarks><para>Specified point must be in crescent order on X axis and their Y value
must be in the range of [0, 1].</para></remarks>
<exception cref="T:System.ArgumentException">Points must be in crescent order on X axis.</exception>
<exception cref="T:System.ArgumentException">Y value of points must be in the range of [0, 1].</exception>
</member>
<member name="M:Accord.Fuzzy.PiecewiseLinearFunction.GetMembership(System.Single)">
<summary>
Calculate membership of a given value to the piecewise function.
</summary>
<param name="x">Value which membership will to be calculated.</param>
<returns>Degree of membership [0..1] of the value to the fuzzy set.</returns>
<exception cref="T:System.NullReferenceException">Points of the membership function are not initialized.</exception>
</member>
<member name="T:Accord.Fuzzy.TrapezoidalFunction">
<summary>
Membership function in the shape of a trapezoid. Can be a half trapzoid if the left or the right side is missing.
</summary>
<remarks><para>Since the <see cref="T:Accord.Fuzzy.PiecewiseLinearFunction"/> can represent any piece wise linear
function, it can represent trapezoids too. But as trapezoids are largely used in the creation of
Linguistic Variables, this class simplifies the creation of them. </para>
<para>Sample usage:</para>
<code>
// creating a typical triangular fuzzy set /\
TrapezoidalFunction function1 = new TrapezoidalFunction( 10, 20, 30 );
// creating a right fuzzy set, the rigth side of the set is fuzzy but the left is opened
TrapezoidalFunction function2 = new TrapezoidalFunction( 10, 20, 30, TrapezoidalFunction.EdgeType.Right );
</code>
</remarks>
</member>
<member name="T:Accord.Fuzzy.TrapezoidalFunction.EdgeType">
<summary>
Enumeration used to create trapezoidal membership functions with half trapezoids.
</summary>
<remarks><para>If the value is Left, the trapezoid has the left edge, but right
is open (/--). If the value is Right, the trapezoid has the right edge, but left
is open (--\).</para></remarks>
</member>
<member name="F:Accord.Fuzzy.TrapezoidalFunction.EdgeType.Left">
<summary>
The fuzzy side of the trapezoid is at the left side.
</summary>
</member>
<member name="F:Accord.Fuzzy.TrapezoidalFunction.EdgeType.Right">
<summary>
The fuzzy side of the trapezoid is at the right side.
</summary>
</member>
<member name="M:Accord.Fuzzy.TrapezoidalFunction.#ctor(System.Int32)">
<summary>
A private constructor used only to reuse code inside of this default constructor.
</summary>
<param name="size">Size of points vector to create. This size depends of the shape of the
trapezoid.</param>
</member>
<member name="M:Accord.Fuzzy.TrapezoidalFunction.#ctor(System.Single,System.Single,System.Single,System.Single,System.Single,System.Single)">
<summary>
Initializes a new instance of the <see cref="T:Accord.Fuzzy.TrapezoidalFunction"/> class.
With four points the shape is known as flat fuzzy number or fuzzy interval (/--\).
</summary>
<param name="m1">X value where the degree of membership starts to raise.</param>
<param name="m2">X value where the degree of membership reaches the maximum value.</param>
<param name="m3">X value where the degree of membership starts to fall.</param>
<param name="m4">X value where the degree of membership reaches the minimum value.</param>
<param name="max">The maximum value that the membership will reach, [0, 1].</param>
<param name="min">The minimum value that the membership will reach, [0, 1].</param>
</member>
<member name="M:Accord.Fuzzy.TrapezoidalFunction.#ctor(System.Single,System.Single,System.Single,System.Single)">
<summary>
Initializes a new instance of the <see cref="T:Accord.Fuzzy.TrapezoidalFunction"/> class.
With four points the shape is known as flat fuzzy number or fuzzy interval (/--\).
</summary>
<param name="m1">X value where the degree of membership starts to raise.</param>
<param name="m2">X value where the degree of membership reaches the maximum value.</param>
<param name="m3">X value where the degree of membership starts to fall.</param>
<param name="m4">X value where the degree of membership reaches the minimum value.</param>
<remarks>
<para>Maximum membership value is set to <b>1.0</b> and the minimum is set to <b>0.0</b>.</para>
</remarks>
</member>
<member name="M:Accord.Fuzzy.TrapezoidalFunction.#ctor(System.Single,System.Single,System.Single,System.Single,System.Single)">
<summary>
Initializes a new instance of the <see cref="T:Accord.Fuzzy.TrapezoidalFunction"/> class.
With three points the shape is known as triangular fuzzy number or just fuzzy number (/\).
</summary>
<param name="m1">X value where the degree of membership starts to raise.</param>
<param name="m2">X value where the degree of membership reaches the maximum value and starts to fall.</param>
<param name="m3">X value where the degree of membership reaches the minimum value.</param>
<param name="max">The maximum value that the membership will reach, [0, 1].</param>
<param name="min">The minimum value that the membership will reach, [0, 1].</param>
</member>
<member name="M:Accord.Fuzzy.TrapezoidalFunction.#ctor(System.Single,System.Single,System.Single)">
<summary>
Initializes a new instance of the <see cref="T:Accord.Fuzzy.TrapezoidalFunction"/> class.
With three points the shape is known as triangular fuzzy number or just fuzzy number (/\).
</summary>
<param name="m1">X value where the degree of membership starts to raise.</param>
<param name="m2">X value where the degree of membership reaches the maximum value and starts to fall.</param>
<param name="m3">X value where the degree of membership reaches the minimum value.</param>
<remarks>
<para>Maximum membership value is set to <b>1.0</b> and the minimum is set to <b>0.0</b>.</para>
</remarks>
</member>
<member name="M:Accord.Fuzzy.TrapezoidalFunction.#ctor(System.Single,System.Single,System.Single,System.Single,Accord.Fuzzy.TrapezoidalFunction.EdgeType)">
<summary>
Initializes a new instance of the <see cref="T:Accord.Fuzzy.TrapezoidalFunction"/> class.
With two points and an edge this shape can be a left fuzzy number (/) or a right fuzzy number (\).
</summary>
<param name="m1">Edge = Left: X value where the degree of membership starts to raise.
Edge = Right: X value where the function starts, with maximum degree of membership. </param>
<param name="m2">Edge = Left: X value where the degree of membership reaches the maximum.
Edge = Right: X value where the degree of membership reaches minimum value. </param>
<param name="max">The maximum value that the membership will reach, [0, 1].</param>
<param name="min">The minimum value that the membership will reach, [0, 1].</param>
<param name="edge">Trapezoid's <see cref="T:Accord.Fuzzy.TrapezoidalFunction.EdgeType"/>.</param>
</member>
<member name="M:Accord.Fuzzy.TrapezoidalFunction.#ctor(System.Single,System.Single,Accord.Fuzzy.TrapezoidalFunction.EdgeType)">
<summary>
Initializes a new instance of the <see cref="T:Accord.Fuzzy.TrapezoidalFunction"/> class.
With three points and an edge this shape can be a left fuzzy number (/--) or a right fuzzy number (--\).
</summary>
<param name="m1">Edge = Left: X value where the degree of membership starts to raise.
Edge = Right: X value where the function starts, with maximum degree of membership. </param>
<param name="m2">Edge = Left: X value where the degree of membership reaches the maximum.
Edge = Right: X value where the degree of membership reaches minimum value. </param>
<param name="edge">Trapezoid's <see cref="T:Accord.Fuzzy.TrapezoidalFunction.EdgeType"/>.</param>
<remarks>
<para>Maximum membership value is set to <b>1.0</b> and the minimum is set to <b>0.0</b>.</para>
</remarks>
</member>
<member name="T:Accord.Fuzzy.ProductNorm">
<summary>
Product Norm, used to calculate the linguistic value of a AND operation.
</summary>
<remarks><para>The product Norm uses a multiplication operator to compute the
AND among two fuzzy memberships.</para>
<para>Sample usage:</para>
<code>
// creating 2 fuzzy sets to represent Cool (Temperature) and Near (Distance)
TrapezoidalFunction function1 = new TrapezoidalFunction( 13, 18, 23, 28 );
FuzzySet fsCool = new FuzzySet( "Cool", function1 );
TrapezoidalFunction function2 = new TrapezoidalFunction( 23, 28, 33, 38 );
FuzzySet fsNear = new FuzzySet( "Near", function2 );
// getting memberships
float m1 = fsCool.GetMembership( 15 );
float m2 = fsNear.GetMembership( 35 );
// computing the membership of "Cool AND Near"
ProductNorm AND = new ProductNorm( );
float result = AND.Evaluate( m1, m2 );
// show result
Console.WriteLine( result );
</code>
</remarks>
<seealso cref="T:Accord.Fuzzy.MinimumNorm"/>
</member>
<member name="M:Accord.Fuzzy.ProductNorm.Evaluate(System.Single,System.Single)">
<summary>
Calculates the numerical result of the AND operation applied to
two fuzzy membership values using the product rule.
</summary>
<param name="membershipA">A fuzzy membership value, [0..1].</param>
<param name="membershipB">A fuzzy membership value, [0..1].</param>
<returns>The numerical result of the AND operation applied to <paramref name="membershipA"/>
and <paramref name="membershipB"/>.</returns>
</member>
<member name="T:Accord.Fuzzy.ICoNorm">
<summary>
Interface with the common methods of a Fuzzy CoNorm.
</summary>
<remarks><para>All fuzzy operators that act as a CoNorm must implement this interface.
</para></remarks>
</member>
<member name="M:Accord.Fuzzy.ICoNorm.Evaluate(System.Single,System.Single)">
<summary>
Calculates the numerical result of a CoNorm (OR) operation applied to
two fuzzy membership values.
</summary>
<param name="membershipA">A fuzzy membership value, [0..1].</param>
<param name="membershipB">A fuzzy membership value, [0..1].</param>
<returns>The numerical result the operation OR applied to <paramref name="membershipA"/>
and <paramref name="membershipB"/>.</returns>
</member>
<member name="T:Accord.Fuzzy.INorm">
<summary>
Interface with the common methods of a Fuzzy Norm.
</summary>
<remarks><para>All fuzzy operators that act as a Norm must implement this interface.
</para></remarks>
</member>
<member name="M:Accord.Fuzzy.INorm.Evaluate(System.Single,System.Single)">
<summary>
Calculates the numerical result of a Norm (AND) operation applied to
two fuzzy membership values.
</summary>
<param name="membershipA">A fuzzy membership value, [0..1].</param>
<param name="membershipB">A fuzzy membership value, [0..1].</param>
<returns>The numerical result the operation AND applied to <paramref name="membershipA"/>
and <paramref name="membershipB"/>.</returns>
</member>
<member name="T:Accord.Fuzzy.MinimumNorm">
<summary>
Minimum Norm, used to calculate the linguistic value of a AND operation.
</summary>
<remarks><para>The minimum Norm uses a minimum operator to compute the AND
among two fuzzy memberships. </para>
<para>Sample usage:</para>
<code>
// creating 2 fuzzy sets to represent Cool (Temperature) and Near (Distance)
TrapezoidalFunction function1 = new TrapezoidalFunction( 13, 18, 23, 28 );
FuzzySet fsCool = new FuzzySet( "Cool", function1 );
TrapezoidalFunction function2 = new TrapezoidalFunction( 23, 28, 33, 38 );
FuzzySet fsNear = new FuzzySet( "Near", function2 );
// getting memberships
float m1 = fsCool.GetMembership( 15 );
float m2 = fsNear.GetMembership( 35 );
// computing the membership of "Cool AND Near"
MinimumNorm AND = new MinimumNorm( );
float result = AND.Evaluate( m1, m2 );
// show result
Console.WriteLine( result );
</code>
</remarks>
<seealso cref="T:Accord.Fuzzy.ProductNorm"/>
</member>
<member name="M:Accord.Fuzzy.MinimumNorm.Evaluate(System.Single,System.Single)">
<summary>
Calculates the numerical result of the AND operation applied to
two fuzzy membership values using the minimum rule.
</summary>
<param name="membershipA">A fuzzy membership value, [0..1].</param>
<param name="membershipB">A fuzzy membership value, [0..1].</param>
<returns>The numerical result of the AND operation applied to <paramref name="membershipA"/>
and <paramref name="membershipB"/>.</returns>
</member>
</members>
</doc>
fileFormatVersion: 2
guid: c10ada295d908db498d79b64d9cff2c3
timeCreated: 1519646875
guid: 2b133cdf5e753fc4ea0eb90f2f64b5a5
timeCreated: 1519738846
licenseType: Free
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
<!-- Mono library mapping mechanism -->
<configuration>
<dllmap dll="ntdll.dll">
<dllentry os="osx" dll="libc.dylib"/>
<dllentry os="linux,solaris,freebsd" dll="libc.so.6"/>
</dllmap>
</configuration>
fileFormatVersion: 2
guid: e0d041702e6ff4f4e83687d4db7c9e25
timeCreated: 1519738838
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 826aae33090dd5441944694e652c8e9e
timeCreated: 1519737123
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 3ef6ac3d70e4a1846a02abdc1b65b36f
timeCreated: 1519736500
licenseType: Free
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
Any:
second:
enabled: 1
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
This source diff could not be displayed because it is too large. You can view the blob instead.
fileFormatVersion: 2
guid: 8c89d2065368cd84cb2bacb1ae41da8e
timeCreated: 1519738847
licenseType: Free
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 06d1e9b94983c2b43b353b6afc3e4574
timeCreated: 1519738849
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 694fed3c9c5006f4cb3668450da7621a
timeCreated: 1519736994
licenseType: Free
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
Any:
second:
enabled: 1
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
<?xml version="1.0" encoding="utf-8"?>
<doc>
<assembly><name>CivModel.AI</name></assembly>
<members>
</members>
</doc>
fileFormatVersion: 2
guid: 91e8602f782f37648b45ecaca605ee48
timeCreated: 1519738847
licenseType: Free
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 14316eefeff7b8c4882dee9cb31df5f1
timeCreated: 1519646880
timeCreated: 1519738849
licenseType: Free
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: f827a99d5e4488648bcb0d0b5b6a4ed2
timeCreated: 1519646873
timeCreated: 1519736996
licenseType: Free
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
- first:
data:
first:
Any:
second:
enabled: 1
settings: {}
- first:
data:
first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
......
fileFormatVersion: 2
guid: 612aaaa3eb4457c4f85ae9548b65ad21
timeCreated: 1519737123
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 94a0800fdbb2b2e479c213e8f006fb73
timeCreated: 1519736995
licenseType: Free
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
Any:
second:
enabled: 1
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 16f11d790a8122d4fae055c4bff69fa5
timeCreated: 1519737123
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 26d5a9518d4356943818513438479470
timeCreated: 1519736993
licenseType: Free
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
Any:
second:
enabled: 1
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 51a4ccfc53e3bd3489fedcd4adb9e458
timeCreated: 1519646880
timeCreated: 1519738849
licenseType: Free
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 8deb64f2df3d02a45a45ef02887bb4cc
timeCreated: 1519646872
timeCreated: 1519736995
licenseType: Free
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
- first:
data:
first:
Any:
second:
enabled: 1
settings: {}
- first:
data:
first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
......
......@@ -4,6 +4,84 @@
<name>CivModel</name>
</assembly>
<members>
<member name="T:CivModel.ActorConstants">
<summary>
Represents a constants storage of <see cref="T:CivModel.Actor"/>.
</summary>
<seealso cref="T:CivModel.Actor"/>
</member>
<member name="P:CivModel.ActorConstants.MaxAP">
<summary>
The maximum AP.
</summary>
</member>
<member name="P:CivModel.ActorConstants.MaxHP">
<summary>
The maximum HP. <c>0</c> if this actor is not a combattant.
</summary>
</member>
<member name="P:CivModel.ActorConstants.MaxHealPerTurn">
<summary>
The maximum heal per turn.
</summary>
<seealso cref="M:CivModel.Actor.HealByRepair(System.Double)" />
</member>
<member name="P:CivModel.ActorConstants.AttackPower">
<summary>
The attack power.
</summary>
</member>
<member name="P:CivModel.ActorConstants.DefencePower">
<summary>
The defence power.
</summary>
</member>
<member name="P:CivModel.ActorConstants.GoldLogistics">
<summary>
The amount of gold logistics of this actor.
</summary>
</member>
<member name="P:CivModel.ActorConstants.LaborLogistics">
<summary>
The amount of labor logistics of this actor.
</summary>
</member>
<member name="P:CivModel.ActorConstants.FullLaborForRepair">
<summary>
The amount of labor for this actor to get the full heal amount of <see cref="P:CivModel.Actor.MaxHealPerTurn"/>.
</summary>
<seealso cref="M:CivModel.Actor.HealByRepair(System.Double)" />
</member>
<member name="P:CivModel.ActorConstants.BattleClassLevel">
<summary>
Battle class level of this actor. This value can affect the ATK/DEF power during battle.
</summary>
</member>
<member name="M:CivModel.ActorConstants.Clone">
<summary>
Create the copy of this object.
</summary>
<returns>The copy of this object.</returns>
</member>
<member name="T:CivModel.IAIController">
<summary>
The interface represents AI controlling a player.
</summary>
</member>
<member name="M:CivModel.IAIController.DoAction">
<summary>
Do jobs of AI. This method can be asynchronous.
</summary>
<remarks>
Since this method can be asynchronous, the model <strong>must not</strong> changed until the task is completed.
</remarks>
<returns>A <see cref="T:System.Threading.Tasks.Task"/> that represents the asynchronous operation.</returns>
</member>
<member name="M:CivModel.IAIController.Destroy">
<summary>
Destroys this instance.
</summary>
</member>
<member name="T:CivModel.AttackActorAction">
<summary>
Represents an attack action.
......@@ -34,11 +112,11 @@
<member name="M:CivModel.AttackActorAction.GetRequiredAP(System.Nullable{CivModel.Terrain.Point})">
<summary>
Test if the action with given parameter is valid and return required AP to act.
Returns <c>-1</c> if the action is invalid.
Returns <see cref="F:System.Double.NaN"/> if the action is invalid.
</summary>
<param name="pt">the parameter with which action will be tested.</param>
<returns>
the required AP to act. If the action is invalid, <c>-1</c>.
the required AP to act. If the action is invalid, <see cref="F:System.Double.NaN"/>.
</returns>
</member>
<member name="M:CivModel.AttackActorAction.Act(System.Nullable{CivModel.Terrain.Point})">
......@@ -67,27 +145,6 @@
<seealso cref="M:CivModel.CityBase.SetCityName(System.String)"/>
<seealso cref="M:CivModel.CityBase.TrySetCityName(System.String)"/>
</member>
<member name="P:CivModel.CityBase.MaxHP">
<summary>
The maximum HP. <c>0</c> if this actor is not a combattant.
</summary>
</member>
<member name="P:CivModel.CityBase.MaxHealPerTurn">
<summary>
The maximum heal per turn.
</summary>
<seealso cref="P:CivModel.Actor.RemainHP" />
</member>
<member name="P:CivModel.CityBase.AttackPower">
<summary>
The attack power.
</summary>
</member>
<member name="P:CivModel.CityBase.DefencePower">
<summary>
The defence power.
</summary>
</member>
<member name="P:CivModel.CityBase.HoldingAttackAct">
<summary>
The action performing movement. <c>null</c> if this actor cannot do.
......@@ -105,8 +162,8 @@
<summary>
The population income of this city.
</summary>
<seealso cref="P:CivModel.IGameScheme.PopulationConstant"/>
<seealso cref="P:CivModel.IGameScheme.PopulationHappinessCoefficient"/>
<seealso cref="P:CivModel.IGameConstantScheme.PopulationConstant"/>
<seealso cref="P:CivModel.IGameConstantScheme.PopulationHappinessCoefficient"/>
</member>
<member name="P:CivModel.CityBase.Labor">
<summary>
......@@ -115,25 +172,23 @@
<seealso cref="P:CivModel.InteriorBuilding.ProvidedLabor"/>
<seealso cref="P:CivModel.Player.Labor"/>
</member>
<member name="P:CivModel.CityBase.ResearchIncome">
<summary>
The research per turn which this city offers.
</summary>
<seealso cref="P:CivModel.InteriorBuilding.ProvidedResearchIncome"/>
<seealso cref="P:CivModel.Player.Labor"/>
</member>
<member name="P:CivModel.CityBase.InteriorBuildings">
<summary>
The list of <see cref="T:CivModel.InteriorBuilding"/> this city owns.
</summary>
</member>
<member name="M:CivModel.CityBase.#ctor(CivModel.Player,CivModel.Terrain.Point)">
<member name="M:CivModel.CityBase.#ctor(CivModel.Player,CivModel.ActorConstants,CivModel.Terrain.Point)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.CityBase"/> class.
</summary>
<param name="owner">The player who owns this city.</param>
<param name="constants">constants of this actor.</param>
<param name="point">The tile where the object will be.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="owner"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentNullException">
<paramref name="owner"/> is <c>null</c>.
or
<paramref name="constants"/> is <c>null</c>.
</exception>
</member>
<member name="M:CivModel.CityBase.TrySetCityName(System.String)">
<summary>
......@@ -163,27 +218,33 @@
This method is used by <see cref="P:CivModel.InteriorBuilding.City"/>
</summary>
</member>
<member name="M:CivModel.CityBase.OnBeforeChangeOwner(CivModel.Player)">
<member name="M:CivModel.CityBase.OnDie(CivModel.Player)">
<summary>
Called before [change owner], by <see cref="M:CivModel.Actor.ChangeOwner(CivModel.Player)" />.
Called when [die] by <see cref="M:CivModel.Actor.Die(CivModel.Player)" />.
</summary>
<param name="newOwner">The new owner.</param>
<param name="opposite">The opposite who caused the dying of this actor. If not exists, <c>null</c>.</param>
</member>
<member name="M:CivModel.CityBase.OnBeforeDestroy">
<member name="M:CivModel.CityBase.PreTurn">
<summary>
Called before [destroy], by <see cref="M:CivModel.Actor.Destroy" />
Called before a turn.
</summary>
</member>
<member name="M:CivModel.CityBase.OnDie(CivModel.Player)">
<member name="M:CivModel.CityBase.PostTurn">
<summary>
Called when [die] by <see cref="M:CivModel.Actor.Die(CivModel.Player)" />.
Called after a turn.
</summary>
<param name="opposite">The opposite who caused the dying of this actor. If not exists, <c>null</c>.</param>
</member>
<member name="M:CivModel.CityBase.PostTurn">
<member name="M:CivModel.CityBase.PrePlayerSubTurn(CivModel.Player)">
<summary>
Called after a turn.
Called before a sub turn.
</summary>
<param name="playerInTurn">The player which the sub turn is dedicated to.</param>
</member>
<member name="M:CivModel.CityBase.PostPlayerSubTurn(CivModel.Player)">
<summary>
Called after a sub turn.
</summary>
<param name="playerInTurn">The player which the sub turn is dedicated to.</param>
</member>
<member name="T:CivModel.EffectTag">
<summary>
......@@ -308,13 +369,12 @@
Re-initializes the <see cref="T:CivModel.Game"/> object, by loading a existing save file.
</summary>
<param name="stream"><see cref="T:System.IO.StreamReader"/> object which contains a save file.</param>
<param name="schemeFactories">
the candidates of factories for <see cref="T:CivModel.IGameScheme"/> of the game.
If <c>null</c>, use <see cref="F:CivModel.Game.Scheme"/> property.
<param name="knownSchemes">
the known factories of <see cref="T:CivModel.IGameScheme"/> for the game.
If <c>null</c>, use previous scheme.
</param>
<exception cref="T:System.ArgumentNullException">
<paramref name="schemeFactories"/> is <c>null</c> and <see cref="F:CivModel.Game.Scheme"/> is not initialized yet
</exception>
<paramref name="knownSchemes"/> is <c>null</c> and scheme is not initialized yet</exception>
<exception cref="T:System.IO.InvalidDataException">
save file or stream is invalid
or
......@@ -327,11 +387,21 @@
</summary>
<param name="saveFile">The path of the save file.</param>
</member>
<member name="F:CivModel.Game.Scheme">
<member name="F:CivModel.Game.SchemeLoader">
<summary>
The scheme of this game.
The <see cref="F:CivModel.Game.SchemeLoader"/> of this game.
</summary>
</member>
<member name="F:CivModel.Game.Constants">
<summary>
The constants of this game.
</summary>
<remarks>
For performance purpose, constant values are copied from <see cref="T:CivModel.IGameConstantScheme"/> into this property when game starts.
</remarks>
<seealso cref="T:CivModel.GameConstants"/>
<seealso cref="T:CivModel.IGameConstantScheme"/>
</member>
<member name="P:CivModel.Game.GuidManager">
<summary>
The manager object of <see cref="T:CivModel.IGuidTaggedObject"/>.
......@@ -376,15 +446,33 @@
The player who plays in this turn.
</summary>
</member>
<member name="M:CivModel.Game.#ctor(System.Int32,System.Int32,System.Int32,CivModel.IGameSchemeFactory)">
<member name="P:CivModel.Game.TeamCount">
<summary>
The count of teams of this game.
</summary>
</member>
<member name="M:CivModel.Game.#ctor(System.Int32,System.Int32,System.Int32,CivModel.IGameSchemeFactory,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})">
<summary>
Initializes a new instance of the <see cref="T:CivModel.Game"/> class, by creating a new game.
</summary>
<param name="width">The width of the <see cref="P:CivModel.Game.Terrain"/> of this game. It must be positive. if the value is <c>-1</c>, uses <see cref="P:CivModel.IGameScheme.DefaultTerrainWidth"/> of the scheme.</param>
<param name="height">The height of the <see cref="P:CivModel.Game.Terrain"/> of this game. It must be positive. if the value is <c>-1</c>, uses <see cref="P:CivModel.IGameScheme.DefaultTerrainHeight"/> of the scheme.</param>
<param name="numOfPlayer">The number of players. It must be positive. if the value is <c>-1</c>, uses <see cref="P:CivModel.IGameScheme.DefaultNumberOfPlayers"/> of the scheme.</param>
<param name="schemeFactory">The factory for <see cref="T:CivModel.IGameScheme"/> of the game.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="schemeFactory"/> is <c>null</c>.</exception>
<param name="width">
The width of the <see cref="P:CivModel.Game.Terrain"/> of this game. It must be positive.
if the value is <c>-1</c>, uses <see cref="P:CivModel.IGameStartupScheme.DefaultTerrainWidth"/> of the scheme.
</param>
<param name="height">
The height of the <see cref="P:CivModel.Game.Terrain"/> of this game. It must be positive.
if the value is <c>-1</c>, uses <see cref="P:CivModel.IGameStartupScheme.DefaultTerrainHeight"/> of the scheme.
</param>
<param name="numOfPlayer">
The number of players. It must be positive.
if the value is <c>-1</c>, uses <see cref="P:CivModel.IGameStartupScheme.DefaultNumberOfPlayers"/> of the scheme.
</param>
<param name="rootFactory">The factory for <see cref="T:CivModel.IGameScheme"/> of the game.</param>
<param name="knownSchemes">
the known factories of <see cref="T:CivModel.IGameScheme"/> for the game.
If <c>null</c>, use only <paramref name="rootFactory"/> and those <paramref name="rootFactory"/> provides.
</param>
<exception cref="T:System.ArgumentNullException"><paramref name="rootFactory"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException">
<paramref name="width"/> is not positive
or
......@@ -449,6 +537,69 @@
An <see cref="T:CivModel.Observable`1"/> which can be observed by <see cref="T:CivModel.IBattleObserver"/>.
</summary>
</member>
<member name="T:CivModel.GameConstants">
<summary>
Represents a game constants storage. Constant values are copied from an applied <seealso cref="T:CivModel.IGameConstantScheme"/>.
</summary>
<seealso cref="T:CivModel.IGameConstantScheme"/>
<seealso cref="F:CivModel.Game.Constants"/>
</member>
<member name="P:CivModel.GameConstants.CivModel#IGameScheme#Factory">
<summary>
This property is not used.
</summary>
</member>
<member name="P:CivModel.GameConstants.GoldCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.GoldIncome" />.
</summary>
</member>
<member name="P:CivModel.GameConstants.PopulationConstant">
<summary>
Constant amount of <see cref="P:CivModel.CityBase.Population" />.
</summary>
</member>
<member name="P:CivModel.GameConstants.PopulationHappinessCoefficient">
<summary>
Coefficient of <see cref="P:CivModel.Player.Happiness" /> for <see cref="P:CivModel.Player.Population" />.
</summary>
</member>
<member name="P:CivModel.GameConstants.HappinessCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.HappinessIncome" />.
</summary>
</member>
<member name="P:CivModel.GameConstants.LaborHappinessCoefficient">
<summary>
Coefficient of <see cref="P:CivModel.Player.Happiness" /> for <see cref="P:CivModel.Player.Labor" />.
</summary>
</member>
<member name="P:CivModel.GameConstants.ResearchHappinessCoefficient">
<summary>
Coefficient of <see cref="P:CivModel.Player.Happiness" /> for <see cref="P:CivModel.Player.ResearchIncome" />.
</summary>
</member>
<member name="P:CivModel.GameConstants.EconomicRequireCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.BasicEconomicRequire" />.
</summary>
</member>
<member name="P:CivModel.GameConstants.EconomicRequireTaxRateConstant">
<summary>
Constant amount of <see cref="P:CivModel.Player.TaxRate" /> for <see cref="P:CivModel.Player.BasicEconomicRequire" />.
</summary>
</member>
<member name="P:CivModel.GameConstants.ResearchRequireCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.BasicResearchRequire" />.
</summary>
</member>
<member name="M:CivModel.GameConstants.#ctor(CivModel.IGameConstantScheme)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.GameConstants"/> class.
</summary>
<param name="scheme">The <see cref="T:CivModel.IGameConstantScheme"/> object holding constant values.</param>
</member>
<member name="T:CivModel.IBattleObserver">
<summary>
The interface to observe battle of <see cref="T:CivModel.Actor"/>.
......@@ -474,11 +625,26 @@
The unique identifier of this factory.
</summary>
</member>
<member name="P:CivModel.IGameSchemeFactory.SchemeType">
<summary>
<see cref="T:System.Type"/> of <see cref="T:CivModel.IGameScheme"/> object which this factory creates.
</summary>
</member>
<member name="P:CivModel.IGameSchemeFactory.Dependencies">
<summary>
The list of dependencies of <see cref="T:CivModel.IGameScheme"/> which this factory creates.
</summary>
</member>
<member name="P:CivModel.IGameSchemeFactory.KnownSchemeFactories">
<summary>
The list of known <see cref="T:CivModel.IGameSchemeFactory"/> offered by this object.
</summary>
</member>
<member name="M:CivModel.IGameSchemeFactory.Create">
<summary>
Creates the <see cref="T:CivModel.IGameScheme"/> object
Creates the <see cref="T:CivModel.IGameScheme"/> object.
</summary>
<returns></returns>
<returns>the <see cref="T:CivModel.IGameScheme"/> object</returns>
</member>
<member name="T:CivModel.IGameScheme">
<summary>
......@@ -490,93 +656,133 @@
The factory object of this instance.
</summary>
</member>
<member name="P:CivModel.IGameScheme.OnlyDefaultPlayers">
<member name="T:CivModel.IGameStartupScheme">
<summary>
The interface represents <see cref="T:CivModel.IGameScheme"/> for startup settings.
This type of scheme is exclusive, that is, can be applied only once per a game.
</summary>
</member>
<member name="P:CivModel.IGameStartupScheme.OnlyDefaultPlayers">
<summary>
Whether the number of players must be equal to default value or not.
</summary>
<seealso cref="P:CivModel.IGameScheme.DefaultNumberOfPlayers"/>
<seealso cref="P:CivModel.IGameStartupScheme.DefaultNumberOfPlayers"/>
</member>
<member name="P:CivModel.IGameScheme.DefaultNumberOfPlayers">
<member name="P:CivModel.IGameStartupScheme.DefaultNumberOfPlayers">
<summary>
The default number of players. It must be positive.
</summary>
</member>
<member name="P:CivModel.IGameScheme.OnlyDefaultTerrain">
<member name="P:CivModel.IGameStartupScheme.OnlyDefaultTerrain">
<summary>
Whether <see cref="T:CivModel.Terrain"/> size must be equal to default value or not. It must be positive.
</summary>
<seealso cref="P:CivModel.IGameScheme.DefaultTerrainWidth"/>
<seealso cref="P:CivModel.IGameScheme.DefaultTerrainHeight"/>
<seealso cref="P:CivModel.IGameStartupScheme.DefaultTerrainWidth"/>
<seealso cref="P:CivModel.IGameStartupScheme.DefaultTerrainHeight"/>
</member>
<member name="P:CivModel.IGameScheme.DefaultTerrainWidth">
<member name="P:CivModel.IGameStartupScheme.DefaultTerrainWidth">
<summary>
The default width of the <see cref="T:CivModel.Terrain"/>. It must be positive.
</summary>
</member>
<member name="P:CivModel.IGameScheme.DefaultTerrainHeight">
<member name="P:CivModel.IGameStartupScheme.DefaultTerrainHeight">
<summary>
The default height of the <see cref="T:CivModel.Terrain"/>. It must be positive.
</summary>
</member>
<member name="P:CivModel.IGameScheme.GoldCoefficient">
<member name="M:CivModel.IGameStartupScheme.InitializeGame(CivModel.Game,System.Boolean)">
<summary>
Initializes the game.
</summary>
<param name="game">The game to initialize.</param>
<param name="isNewGame"><c>true</c> if initializing a new game. <c>false</c> if initializing a game loaded from a save file.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="game"/> is <c>null</c>.</exception>
</member>
<member name="T:CivModel.IGameAdditionScheme">
<summary>
The interface represents <see cref="T:CivModel.IGameScheme"/> for additional objects.
This type of scheme is overlappable, that is, can be applied multiple time per a game.
</summary>
</member>
<member name="P:CivModel.IGameAdditionScheme.AdditionalProductionFactory">
<summary>
An additional list of <see cref="T:CivModel.IProductionFactory"/>. This list will be added to <see cref="P:CivModel.Player.AvailableProduction"/>.
</summary>
</member>
<member name="M:CivModel.IGameAdditionScheme.RegisterGuid(CivModel.Game)">
<summary>
Registers <see cref="T:CivModel.IGuidTaggedObject"/> for this scheme.
</summary>
<param name="game">The <see cref="T:CivModel.Game"/> object.</param>
</member>
<member name="T:CivModel.IGameConstantScheme">
<summary>
The interface represents <see cref="T:CivModel.IGameScheme"/> for game constants.
This type of scheme is exclusive, that is, can be applied only once per a game.
</summary>
<remarks>
For performance purpose, constant values are copied into <see cref="F:CivModel.Game.Constants"/> when game starts.
</remarks>
<seealso cref="F:CivModel.Game.Constants"/>
<seealso cref="T:CivModel.GameConstants"/>
</member>
<member name="P:CivModel.IGameConstantScheme.GoldCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.GoldIncome"/>.
</summary>
</member>
<member name="P:CivModel.IGameScheme.PopulationConstant">
<member name="P:CivModel.IGameConstantScheme.PopulationConstant">
<summary>
Constant amount of <see cref="P:CivModel.CityBase.Population"/>.
</summary>
</member>
<member name="P:CivModel.IGameScheme.PopulationHappinessCoefficient">
<member name="P:CivModel.IGameConstantScheme.PopulationHappinessCoefficient">
<summary>
Coefficient of <see cref="P:CivModel.Player.Happiness"/> for <see cref="P:CivModel.Player.Population"/>.
</summary>
</member>
<member name="P:CivModel.IGameScheme.HappinessCoefficient">
<member name="P:CivModel.IGameConstantScheme.HappinessCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.HappinessIncome"/>.
</summary>
</member>
<member name="P:CivModel.IGameScheme.LaborHappinessCoefficient">
<member name="P:CivModel.IGameConstantScheme.LaborHappinessCoefficient">
<summary>
Coefficient of <see cref="P:CivModel.Player.Happiness"/> for <see cref="P:CivModel.Player.Labor"/>.
</summary>
</member>
<member name="P:CivModel.IGameScheme.ResearchHappinessCoefficient">
<member name="P:CivModel.IGameConstantScheme.ResearchHappinessCoefficient">
<summary>
Coefficient of <see cref="P:CivModel.Player.Happiness"/> for <see cref="P:CivModel.Player.ResearchIncome"/>.
</summary>
</member>
<member name="P:CivModel.IGameScheme.EconomicRequireCoefficient">
<member name="P:CivModel.IGameConstantScheme.EconomicRequireCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.BasicEconomicRequire"/>.
</summary>
</member>
<member name="P:CivModel.IGameScheme.EconomicRequireTaxRateConstant">
<member name="P:CivModel.IGameConstantScheme.EconomicRequireTaxRateConstant">
<summary>
Constant amount of <see cref="P:CivModel.Player.TaxRate"/> for <see cref="P:CivModel.Player.BasicEconomicRequire"/>.
</summary>
</member>
<member name="P:CivModel.IGameScheme.ResearchRequireCoefficient">
<member name="P:CivModel.IGameConstantScheme.ResearchRequireCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.BasicResearchRequire"/>.
</summary>
</member>
<member name="M:CivModel.IGameScheme.RegisterGuid(CivModel.Game)">
<member name="T:CivModel.IGameAIScheme">
<summary>
Registers <see cref="T:CivModel.IGuidTaggedObject"/> for this scheme.
This method is called before <see cref="M:CivModel.IGameScheme.InitializeGame(CivModel.Game,System.Boolean)"/>.
The interface represents <see cref="T:CivModel.IGameScheme"/> providing <see cref="T:CivModel.IAIController"/>.
This type of scheme is exclusive, that is, can be applied only once per a game.
</summary>
<param name="game">The <see cref="T:CivModel.Game"/> object.</param>
</member>
<member name="M:CivModel.IGameScheme.InitializeGame(CivModel.Game,System.Boolean)">
<member name="M:CivModel.IGameAIScheme.CreateAI(CivModel.Player)">
<summary>
Initializes the game
Creates the <see cref="T:CivModel.IAIController"/> object.
</summary>
<param name="game">The game to initialize.</param>
<param name="isNewGame"><c>true</c> if initializing a new game. <c>false</c> if initializing a game loaded from a save file.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="game"/> is <c>null</c>.</exception>
<param name="player">The player for AI to control.</param>
<returns>the created object</returns>
</member>
<member name="T:CivModel.IReadOnlyActorAction">
<summary>
......@@ -596,11 +802,11 @@
<member name="M:CivModel.IReadOnlyActorAction.GetRequiredAP(System.Nullable{CivModel.Terrain.Point})">
<summary>
Test if the action with given parameter is valid and return required AP to act.
Returns <c>-1</c> if the action is invalid.
Returns <see cref="F:System.Double.NaN"/> if the action is invalid.
</summary>
<param name="pt">the parameter with which action will be tested.</param>
<returns>
the required AP to act. If the action is invalid, <c>-1</c>.
the required AP to act. If the action is invalid, <c>double.NaN</c>.
</returns>
</member>
<member name="T:CivModel.IActorAction">
......@@ -617,12 +823,12 @@
<exception cref="T:System.ArgumentException">the parameter is invalid.</exception>
<exception cref="T:System.InvalidOperationException">Action cannot be done now.</exception>
</member>
<member name="T:CivModel.ActorAction">
<member name="T:CivModel.ActorActionExtension">
<summary>
Provides a set of static methods for <see cref="T:CivModel.IReadOnlyActorAction"/>.
</summary>
</member>
<member name="M:CivModel.ActorAction.IsActable(CivModel.IReadOnlyActorAction,System.Nullable{CivModel.Terrain.Point})">
<member name="M:CivModel.ActorActionExtension.IsActable(CivModel.IReadOnlyActorAction,System.Nullable{CivModel.Terrain.Point})">
<summary>
Test whether the action is actable with specified parameter.
</summary>
......@@ -686,6 +892,43 @@
<returns>the created <see cref="T:CivModel.IGuidTaggedObject"/> object. If arguments are invalid, <c>null</c>.</returns>
<exception cref="T:System.Collections.Generic.KeyNotFoundException">the value of <paramref name="guid"/> is not registered.</exception>
</member>
<member name="T:CivModel.InteriorBuildingConstants">
<summary>
Represents a constants storage of <see cref="T:CivModel.InteriorBuilding"/>.
</summary>
<seealso cref="T:CivModel.InteriorBuilding"/>
</member>
<member name="P:CivModel.InteriorBuildingConstants.GoldLogistics">
<summary>
The amount of gold logistics of this actor.
</summary>
</member>
<member name="P:CivModel.InteriorBuildingConstants.ProvidedLabor">
<summary>
The amount of labor this building provides.
</summary>
</member>
<member name="P:CivModel.InteriorBuildingConstants.ResearchCapacity">
<summary>
The amount of research capacity this building provides.
</summary>
</member>
<member name="P:CivModel.InteriorBuildingConstants.ResearchIncome">
<summary>
The amount of research income per turn this building provides.
</summary>
</member>
<member name="P:CivModel.InteriorBuildingConstants.PopulationCoefficient">
<summary>
The population coefficient for the city where this building is.
</summary>
</member>
<member name="M:CivModel.InteriorBuildingConstants.Clone">
<summary>
Create the copy of this object.
</summary>
<returns>The copy of this object.</returns>
</member>
<member name="T:CivModel.InteriorBuilding">
<summary>
Represents a building which must be built in <see cref="T:CivModel.CityBase"/>.
......@@ -707,24 +950,74 @@
The <see cref="T:CivModel.CityBase"/> where this building is.
</summary>
</member>
<member name="P:CivModel.InteriorBuilding.OriginalConstants">
<summary>
The original constants of this building. The actual values can be different from the values of this property.
</summary>
</member>
<member name="P:CivModel.InteriorBuilding.GoldLogistics">
<summary>
The amount of gold logistics of this actor.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">GoldLogistics is negative</exception>
</member>
<member name="P:CivModel.InteriorBuilding.ProvidedLabor">
<summary>
The amount of labor this building provides.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">ProvidedLabor is negative</exception>
<seealso cref="P:CivModel.CityBase.Labor"/>
</member>
<member name="P:CivModel.InteriorBuilding.ProvidedResearchIncome">
<member name="P:CivModel.InteriorBuilding.ResearchCapacity">
<summary>
The amount of research capacity this building provides.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">ResearchCapacity is negative</exception>
<seealso cref="P:CivModel.InteriorBuilding.BasicResearchIncome"/>
<seealso cref="P:CivModel.InteriorBuilding.ResearchIncome"/>
</member>
<member name="P:CivModel.InteriorBuilding.BasicResearchIncome">
<summary>
The amount of basic research income per turn this building provides.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">BasicResearchIncome is negative</exception>
<seealso cref="P:CivModel.InteriorBuilding.ResearchCapacity"/>
<seealso cref="P:CivModel.InteriorBuilding.ResearchIncome"/>
</member>
<member name="P:CivModel.InteriorBuilding.ResearchIncome">
<summary>
The amount of research income per turn this building provides.
This value is calculated with <see cref="P:CivModel.Player.Happiness"/> and <see cref="P:CivModel.Player.ResearchInvestmentRatio"/>.
</summary>
<seealso cref="P:CivModel.InteriorBuilding.ResearchCapacity"/>
<seealso cref="P:CivModel.InteriorBuilding.BasicResearchIncome"/>
</member>
<member name="P:CivModel.InteriorBuilding.Research">
<summary>
The amount of research this building provides.
Gets or sets the research.
</summary>
<seealso cref="P:CivModel.CityBase.ResearchIncome"/>
<value>
The research.
</value>
<exception cref="T:System.ArgumentOutOfRangeException">value - value is not in [0, ResearchCapacity]</exception>
</member>
<member name="M:CivModel.InteriorBuilding.#ctor(CivModel.CityBase)">
<member name="P:CivModel.InteriorBuilding.PopulationCoefficient">
<summary>
The population coefficient for the city where this building is.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">PopulationCoefficient is negative</exception>
</member>
<member name="M:CivModel.InteriorBuilding.#ctor(CivModel.CityBase,CivModel.InteriorBuildingConstants)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.InteriorBuilding"/> class.
</summary>
<param name="city">The <see cref="T:CivModel.CityBase"/> who will own the building.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="city"/> is <c>null</c>.</exception>
<param name="constants">constants of this actor.</param>
<exception cref="T:System.ArgumentNullException">
<paramref name="constants"/> is <c>null</c>.
or
<paramref name="city"/> is <c>null</c>.
</exception>
</member>
<member name="M:CivModel.InteriorBuilding.ProcessCreation">
<summary>
......@@ -805,31 +1098,33 @@
<param name="city">The <see cref="T:CivModel.CityBase"/> who will own the building.</param>
<returns>the created <see cref="T:CivModel.InteriorBuilding"/> result.</returns>
</member>
<member name="P:CivModel.IInteriorBuildingProductionFactory.Constants">
<summary>
The constants of production result <see cref="T:CivModel.InteriorBuilding"/>.
</summary>
<seealso cref="T:CivModel.InteriorBuildingConstants"/>
</member>
<member name="T:CivModel.InteriorBuildingProduction">
<summary>
The <see cref="T:CivModel.Production"/> class for <see cref="T:CivModel.InteriorBuilding"/>
</summary>
<seealso cref="T:CivModel.Production" />
</member>
<member name="M:CivModel.InteriorBuildingProduction.#ctor(CivModel.IInteriorBuildingProductionFactory,CivModel.Player,System.Double,System.Double,System.Double,System.Double)">
<member name="M:CivModel.InteriorBuildingProduction.#ctor(CivModel.IInteriorBuildingProductionFactory,CivModel.Player)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.InteriorBuildingProduction"/> class.
</summary>
<param name="factory">The factory object of this production kind.</param>
<param name="owner">The <see cref="T:CivModel.Player"/> who will own the production.</param>
<param name="totalLaborCost"><see cref="P:CivModel.Production.TotalLaborCost"/> of the production</param>
<param name="laborCapacityPerTurn"><see cref="P:CivModel.Production.LaborCapacityPerTurn"/> of the production.</param>
<param name="totalGoldCost"><see cref="P:CivModel.Production.TotalGoldCost"/> of the production</param>
<param name="goldCapacityPerTurn"><see cref="P:CivModel.Production.GoldCapacityPerTurn"/> of the production.</param>
<exception cref="T:System.ArgumentException">
<paramref name="totalLaborCost"/> is negative
<see cref="P:CivModel.IProductionFactory.TotalLaborCost"/> is negative
or
<paramref name="totalGoldCost"/> is negative
<see cref="P:CivModel.IProductionFactory.TotalGoldCost"/> is negative
</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="laborCapacityPerTurn"/> is not in [0, <see cref="P:CivModel.Production.TotalLaborCost"/>]
<see cref="P:CivModel.IProductionFactory.LaborCapacityPerTurn"/> is not in [0, <see cref="P:CivModel.Production.TotalLaborCost"/>]
or
<paramref name="goldCapacityPerTurn"/> is not in [0, <see cref="P:CivModel.Production.TotalGoldCost"/>]
<see cref="P:CivModel.IProductionFactory.GoldCapacityPerTurn"/> is not in [0, <see cref="P:CivModel.Production.TotalGoldCost"/>]
</exception>
<exception cref="T:System.ArgumentNullException">
<paramref name="factory"/> is <c>null</c>
......@@ -877,14 +1172,14 @@
<summary>
Represents an object observable by observer interface.
</summary>
<typeparam name="T"></typeparam>
<typeparam name="T">The observer interface to receive</typeparam>
</member>
<member name="M:CivModel.Observable`1.AddObserver(`0)">
<summary>
Registers an observer object.
</summary>
<param name="observer">The observer.</param>
<seealso cref="M:CivModel.IObservable`1.RemoveObserver(`0)" />
<seealso cref="M:CivModel.Observable`1.RemoveObserver(`0)"/>
</member>
<member name="M:CivModel.Observable`1.RemoveObserver(`0)">
<summary>
......@@ -892,7 +1187,7 @@
</summary>
<param name="observer">The observer.</param>
<exception cref="T:System.ArgumentException">observer is not registered</exception>
<seealso cref="M:CivModel.IObservable`1.AddObserver(`0)" />
<seealso cref="M:CivModel.Observable`1.AddObserver(`0)"/>
</member>
<member name="M:CivModel.Observable`1.IterateObserver(System.Action{`0})">
<summary>
......@@ -1147,11 +1442,11 @@
<member name="M:CivModel.MoveActorAction.GetRequiredAP(System.Nullable{CivModel.Terrain.Point})">
<summary>
Test if the action with given parameter is valid and return required AP to act.
Returns <c>-1</c> if the action is invalid.
Returns <see cref="F:System.Double.NaN"/> if the action is invalid.
</summary>
<param name="pt">the parameter with which action will be tested.</param>
<returns>
the required AP to act. If the action is invalid, <c>-1</c>.
the required AP to act. If the action is invalid, <see cref="F:System.Double.NaN"/>.
</returns>
</member>
<member name="M:CivModel.MoveActorAction.Act(System.Nullable{CivModel.Terrain.Point})">
......@@ -1335,6 +1630,26 @@
</summary>
<seealso cref="P:CivModel.Player.AvailableProduction"/>
</member>
<member name="P:CivModel.IProductionFactory.TotalLaborCost">
<summary>
The total labor cost to finish this production.
</summary>
</member>
<member name="P:CivModel.IProductionFactory.LaborCapacityPerTurn">
<summary>
The maximum labor which can put into this production per turn.
</summary>
</member>
<member name="P:CivModel.IProductionFactory.TotalGoldCost">
<summary>
The total gold cost to finish this production.
</summary>
</member>
<member name="P:CivModel.IProductionFactory.GoldCapacityPerTurn">
<summary>
The maximum gold which can put into this production per turn.
</summary>
</member>
<member name="M:CivModel.IProductionFactory.Create(CivModel.Player)">
<summary>
Creates the <see cref="T:CivModel.Production"/> object
......@@ -1362,14 +1677,14 @@
The total labor cost to finish this production.
</summary>
</member>
<member name="P:CivModel.Production.TotalGoldCost">
<member name="P:CivModel.Production.LaborCapacityPerTurn">
<summary>
The total gold cost to finish this production.
The maximum labor which can put into this production per turn.
</summary>
</member>
<member name="P:CivModel.Production.LaborCapacityPerTurn">
<member name="P:CivModel.Production.TotalGoldCost">
<summary>
The maximum labor which can put into this production per turn.
The total gold cost to finish this production.
</summary>
</member>
<member name="P:CivModel.Production.GoldCapacityPerTurn">
......@@ -1418,25 +1733,21 @@
Cannot mark a production completed as not completed
</exception>
</member>
<member name="M:CivModel.Production.#ctor(CivModel.IProductionFactory,CivModel.Player,System.Double,System.Double,System.Double,System.Double)">
<member name="M:CivModel.Production.#ctor(CivModel.IProductionFactory,CivModel.Player)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.Production"/> class.
</summary>
<param name="factory">The factory object of this production kind.</param>
<param name="owner">The <see cref="T:CivModel.Player"/> who will own the production.</param>
<param name="totalLaborCost"><see cref="P:CivModel.Production.TotalLaborCost"/> of the production</param>
<param name="laborCapacityPerTurn"><see cref="P:CivModel.Production.LaborCapacityPerTurn"/> of the production.</param>
<param name="totalGoldCost"><see cref="P:CivModel.Production.TotalGoldCost"/> of the production</param>
<param name="goldCapacityPerTurn"><see cref="P:CivModel.Production.GoldCapacityPerTurn"/> of the production.</param>
<exception cref="T:System.ArgumentException">
<paramref name="totalLaborCost"/> is negative
<see cref="P:CivModel.IProductionFactory.TotalLaborCost"/> is negative
or
<paramref name="totalGoldCost"/> is negative
<see cref="P:CivModel.IProductionFactory.TotalGoldCost"/> is negative
</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="laborCapacityPerTurn"/> is not in [0, <see cref="P:CivModel.Production.TotalLaborCost"/>]
<see cref="P:CivModel.IProductionFactory.LaborCapacityPerTurn"/> is not in [0, <see cref="P:CivModel.Production.TotalLaborCost"/>]
or
<paramref name="goldCapacityPerTurn"/> is not in [0, <see cref="P:CivModel.Production.TotalGoldCost"/>]
<see cref="P:CivModel.IProductionFactory.GoldCapacityPerTurn"/> is not in [0, <see cref="P:CivModel.Production.TotalGoldCost"/>]
</exception>
<exception cref="T:System.ArgumentNullException">
<paramref name="factory"/> is <c>null</c>
......@@ -1470,6 +1781,10 @@
<summary>
Inputs resources into this production
</summary>
<remarks>
The return type of this method is <see cref="T:System.ValueTuple`2"/> which Unity does not support.<br/>
Use <c>Item1</c> and <c>Item2</c> if explicit tuple names is unavailable.
</remarks>
<param name="labor">labor amount to input</param>
<param name="gold">gold amount to input</param>
<returns>The amount which is really inputed. It can be different from the argument.</returns>
......@@ -1499,7 +1814,7 @@
<exception cref="T:System.InvalidOperationException">production is not completed yet</exception>
<exception cref="T:System.ArgumentException">point is invalid</exception>
</member>
<member name="T:CivModel.SafeEnumerableCollection`1">
<member name="T:CivModel.SafeIterationCollection`1">
<summary>
Represents a collection can be modified safely during <see langword="foreach"/> iteration.
</summary>
......@@ -1510,39 +1825,39 @@
<seealso cref="T:System.Collections.Generic.ICollection`1" />
<seealso cref="T:System.Collections.Generic.IReadOnlyCollection`1" />
</member>
<member name="P:CivModel.SafeEnumerableCollection`1.Count">
<member name="P:CivModel.SafeIterationCollection`1.Count">
<summary>
<see cref="T:System.Collections.Generic.ICollection`1" />에 포함된 요소 수를 가져옵니다.
</summary>
</member>
<member name="P:CivModel.SafeEnumerableCollection`1.IsReadOnly">
<member name="P:CivModel.SafeIterationCollection`1.IsReadOnly">
<summary>
<see cref="T:System.Collections.Generic.ICollection`1" />가 읽기 전용인지 여부를 나타내는 값을 가져옵니다.
</summary>
</member>
<member name="P:CivModel.SafeEnumerableCollection`1.Locked">
<member name="P:CivModel.SafeIterationCollection`1.Locked">
<summary>
<see cref="T:CivModel.SafeEnumerableCollection`1"/> 개체에 대해 <see cref="M:CivModel.SafeEnumerableCollection`1.GetEnumerator"/>를 호출하지 못하게 잠기었는지 여부를 나타냅니다.
<see cref="T:CivModel.SafeIterationCollection`1"/> 개체에 대해 <see cref="M:CivModel.SafeIterationCollection`1.GetEnumerator"/>를 호출하지 못하게 잠기었는지 여부를 나타냅니다.
</summary>
<remarks>
이 값이 <c>true</c>이면 <see cref="P:CivModel.SafeEnumerableCollection`1.UnderlyingList"/>를 사용할 수 있지만, <see cref="M:CivModel.SafeEnumerableCollection`1.GetEnumerator"/>를 사용할 수 없게 되어
이 값이 <c>true</c>이면 <see cref="P:CivModel.SafeIterationCollection`1.UnderlyingList"/>를 사용할 수 있지만, <see cref="M:CivModel.SafeIterationCollection`1.GetEnumerator"/>를 사용할 수 없게 되어
<see langword="foreach"/> 반복문을 수행할 수 없게 됩니다.
</remarks>
<exception cref="T:System.InvalidOperationException">Cannot lock collection while enumerators exist</exception>
<seealso cref="P:CivModel.SafeEnumerableCollection`1.UnderlyingList"/>
<seealso cref="M:CivModel.SafeEnumerableCollection`1.GetEnumerator"/>
<seealso cref="P:CivModel.SafeIterationCollection`1.UnderlyingList"/>
<seealso cref="M:CivModel.SafeIterationCollection`1.GetEnumerator"/>
</member>
<member name="P:CivModel.SafeEnumerableCollection`1.UnderlyingList">
<member name="P:CivModel.SafeIterationCollection`1.UnderlyingList">
<summary>
<see cref="T:CivModel.SafeEnumerableCollection`1"/> 개체의 요소를 갖고있는 <see cref="T:System.Collections.Generic.List`1"/> 개체를 가져옵니다.
<see cref="T:CivModel.SafeIterationCollection`1"/> 개체의 요소를 갖고있는 <see cref="T:System.Collections.Generic.List`1"/> 개체를 가져옵니다.
</summary>
<remarks>
이 속성은 오직 <see cref="P:CivModel.SafeEnumerableCollection`1.Locked"/><c>true</c>일 때만 사용될 수 있습니다.
이 속성은 오직 <see cref="P:CivModel.SafeIterationCollection`1.Locked"/><c>true</c>일 때만 사용될 수 있습니다.
</remarks>
<exception cref="T:System.InvalidOperationException">Cannot retrieve underlying list of unlocked collection</exception>
<seealso cref="P:CivModel.SafeEnumerableCollection`1.Locked"/>
<seealso cref="P:CivModel.SafeIterationCollection`1.Locked"/>
</member>
<member name="P:CivModel.SafeEnumerableCollection`1.Item(System.Int32)">
<member name="P:CivModel.SafeIterationCollection`1.Item(System.Int32)">
<summary>
읽기 전용 목록에서 지정된 인덱스의 요소를 가져옵니다.
</summary>
......@@ -1551,16 +1866,16 @@
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index"/> is less than 0
or
<paramref name="index"/> is equal to or greater than <see cref="P:CivModel.SafeEnumerableCollection`1.Count"/>.
<paramref name="index"/> is equal to or greater than <see cref="P:CivModel.SafeIterationCollection`1.Count"/>.
</exception>
</member>
<member name="M:CivModel.SafeEnumerableCollection`1.Add(`0)">
<member name="M:CivModel.SafeIterationCollection`1.Add(`0)">
<summary>
<see cref="T:System.Collections.Generic.ICollection`1" />에 항목을 추가합니다.
</summary>
<param name="item"><see cref="T:System.Collections.Generic.ICollection`1" />에 추가할 개체입니다.</param>
</member>
<member name="M:CivModel.SafeEnumerableCollection`1.Remove(`0)">
<member name="M:CivModel.SafeIterationCollection`1.Remove(`0)">
<summary>
<see cref="T:System.Collections.Generic.ICollection`1" />에서 맨 처음 발견되는 특정 개체를 제거합니다.
</summary>
......@@ -1570,12 +1885,12 @@
이 메서드는 <see langword="false" />이 원래 <paramref name="item" />에 없는 경우에도 <see cref="T:System.Collections.Generic.ICollection`1" />를 반환합니다.
</returns>
</member>
<member name="M:CivModel.SafeEnumerableCollection`1.Clear">
<member name="M:CivModel.SafeIterationCollection`1.Clear">
<summary>
<see cref="T:System.Collections.Generic.ICollection`1" />에서 항목을 모두 제거합니다.
</summary>
</member>
<member name="M:CivModel.SafeEnumerableCollection`1.Contains(`0)">
<member name="M:CivModel.SafeIterationCollection`1.Contains(`0)">
<summary>
<see cref="T:System.Collections.Generic.ICollection`1" />에 특정 값이 들어 있는지 여부를 확인합니다.
</summary>
......@@ -1584,7 +1899,7 @@
<see langword="true" /><paramref name="item" />에 있으면 <see cref="T:System.Collections.Generic.ICollection`1" />이고, 그렇지 않으면 <see langword="false" />입니다.
</returns>
</member>
<member name="M:CivModel.SafeEnumerableCollection`1.GetEnumerator">
<member name="M:CivModel.SafeIterationCollection`1.GetEnumerator">
<summary>
컬렉션을 반복하는 열거자를 반환합니다.
</summary>
......@@ -1592,12 +1907,12 @@
컬렉션을 반복하는 데 사용할 수 있는 열거자입니다.
</returns>
<remarks>
이 메서드는 오직 <see cref="P:CivModel.SafeEnumerableCollection`1.Locked"/><c>true</c>일 때만 사용될 수 있습니다.
이 메서드는 오직 <see cref="P:CivModel.SafeIterationCollection`1.Locked"/><c>true</c>일 때만 사용될 수 있습니다.
</remarks>
<exception cref="T:System.InvalidOperationException">collection is locked</exception>
<seealso cref="P:CivModel.SafeEnumerableCollection`1.Locked"/>
<seealso cref="P:CivModel.SafeIterationCollection`1.Locked"/>
</member>
<member name="M:CivModel.SafeEnumerableCollection`1.CopyTo(`0[],System.Int32)">
<member name="M:CivModel.SafeIterationCollection`1.CopyTo(`0[],System.Int32)">
<summary>
특정 <see cref="T:System.Collections.Generic.ICollection`1" /> 인덱스부터 시작하여 <see cref="T:System.Array" />의 요소를 <see cref="T:System.Array" />에 복사합니다.
</summary>
......@@ -1608,6 +1923,80 @@
<exception cref="T:System.ArgumentOutOfRangeException">arrayIndex - arrayIndex is less than 0</exception>
<exception cref="T:System.ArgumentException">The available space from arrayIndex to the end of the destination array is not enough</exception>
</member>
<member name="T:CivModel.SchemeLoader">
<summary>
Provides <see cref="T:CivModel.IGameScheme"/> management.
</summary>
</member>
<member name="P:CivModel.SchemeLoader.SchemaTree">
<summary>
The schema tree. The item whose index is smaller is ancestor.
</summary>
<remarks>
Although the item whose index is smaller is ancestor, the index of <see cref="P:CivModel.SchemeLoader.RootScheme"/> can be not zero.
</remarks>
</member>
<member name="P:CivModel.SchemeLoader.RootScheme">
<summary>
The root scheme of <see cref="P:CivModel.SchemeLoader.SchemaTree"/>.
</summary>
<seealso cref="P:CivModel.SchemeLoader.SchemaTree"/>
</member>
<member name="M:CivModel.SchemeLoader.#ctor(CivModel.IGameSchemeFactory,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})">
<summary>
Initializes a new instance of the <see cref="T:CivModel.SchemeLoader"/> class.
</summary>
<param name="rootFactory">The root factory.</param>
<param name="knownSchemes">
The known schemes.
If <c>null</c>, use only <paramref name="rootFactory"/> and those <paramref name="rootFactory"/> provides.
</param>
</member>
<member name="M:CivModel.SchemeLoader.Load(CivModel.IGameSchemeFactory,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})">
<summary>
Loads the specified scheme factory.
</summary>
<param name="factory">The factory.</param>
<param name="knownSchemes">
The known schemes.
If <c>null</c>, use only <paramref name="factory"/> and those <paramref name="factory"/> provides.
</param>
</member>
<member name="M:CivModel.SchemeLoader.GetExclusiveScheme``1">
<summary>
Gets the applied exclusive scheme.
</summary>
<typeparam name="T">The type of exclusive scheme.</typeparam>
<returns>The applied scheme</returns>
</member>
<member name="M:CivModel.SchemeLoader.GetOverlappableScheme``1">
<summary>
Gets the list of overlappable schemes.
</summary>
<typeparam name="T">The type of overlappable scheme.</typeparam>
<returns>The list of overlappable schemes</returns>
</member>
<member name="T:CivModel.ISpecialResource">
<summary>
The interface represents a special resource
</summary>
</member>
<member name="P:CivModel.ISpecialResource.MaxCount">
<summary>
The maximum amount of this resource.
<c>-1</c> if there is no maximum amount.
</summary>
</member>
<member name="M:CivModel.ISpecialResource.EnablePlayer(CivModel.Player)">
<summary>
Enables this resource for the specified player.
</summary>
<param name="player">The player.</param>
<returns>
User-defined per-player storage object. <paramref name="player"/> object stores this value.
This value can be <c>null</c>.
</returns>
</member>
<member name="T:CivModel.Terrain">
<summary>
Represents a terrain of a game.
......@@ -1855,39 +2244,46 @@
<seealso cref="T:CivModel.Actor" />
<seealso cref="T:CivModel.InteriorBuilding"/>
</member>
<member name="P:CivModel.TileBuilding.MaxAP">
<member name="P:CivModel.TileBuilding.MoveAct">
<summary>
The maximum AP. <c>0</c> by default.
The action performing movement. <c>null</c> by default.
</summary>
</member>
<member name="P:CivModel.TileBuilding.GoldLogistics">
<member name="M:CivModel.TileBuilding.#ctor(CivModel.Player,CivModel.ActorConstants,CivModel.Terrain.Point)">
<summary>
The amount of gold logistics of this actor.
Initializes a new instance of the <see cref="T:CivModel.TileBuilding"/> class.
</summary>
<param name="owner">The player who owns this TileBuilding.</param>
<param name="constants">constants of this actor.</param>
<param name="point">The tile where the object will be.</param>
<exception cref="T:System.ArgumentNullException">
<paramref name="owner"/> is <c>null</c>.
or
<paramref name="constants"/> is <c>null</c>.
</exception>
</member>
<member name="P:CivModel.TileBuilding.FullLaborLogicstics">
<member name="M:CivModel.TileBuilding.OnChangePlacedPoint(System.Nullable{CivModel.Terrain.Point})">
<summary>
The amount of labor logistics of this actor to get the full heal amount of <see cref="P:CivModel.Actor.MaxHealPerTurn" />.
Called after <see cref="P:CivModel.TileObject.PlacedPoint" /> is changed.
</summary>
<param name="oldPoint">The old value of <see cref="P:CivModel.TileObject.PlacedPoint" />.</param>
</member>
<member name="P:CivModel.TileBuilding.MoveAct">
<member name="M:CivModel.TileBuilding.OnBeforeChangeOwner(CivModel.Player)">
<summary>
The action performing movement. <c>null</c> by default.
Called before [change owner], by <see cref="M:CivModel.Actor.ChangeOwner(CivModel.Player)" />.
</summary>
<param name="newOwner">The new owner.</param>
</member>
<member name="M:CivModel.TileBuilding.#ctor(CivModel.Player,CivModel.Terrain.Point)">
<member name="M:CivModel.TileBuilding.OnAfterChangeOwner(CivModel.Player)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.TileBuilding"/> class.
Called after [change owner], by <see cref="M:CivModel.Actor.ChangeOwner(CivModel.Player)" />.
</summary>
<param name="owner">The player who owns this TileBuilding.</param>
<param name="point">The tile where the object will be.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="owner"/> is <c>null</c>.</exception>
<param name="prevOwner">The previous owner.</param>
</member>
<member name="M:CivModel.TileBuilding.OnChangePlacedPoint(System.Nullable{CivModel.Terrain.Point})">
<member name="M:CivModel.TileBuilding.OnBeforeDestroy">
<summary>
Called after <see cref="P:CivModel.TileObject.PlacedPoint" /> is changed.
Called before [destroy], by <see cref="M:CivModel.Actor.Destroy" />
</summary>
<param name="oldPoint">The old value of <see cref="P:CivModel.TileObject.PlacedPoint" />.</param>
</member>
<member name="T:CivModel.BattleResult">
<summary>
......@@ -1931,10 +2327,16 @@
The name of this actor.
</summary>
</member>
<member name="P:CivModel.Actor.OriginalConstants">
<summary>
The original constants of this actor. The actual values can be different from the values of this property.
</summary>
</member>
<member name="P:CivModel.Actor.MaxAP">
<summary>
The maximum AP.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">MaxAP is negative</exception>
</member>
<member name="P:CivModel.Actor.RemainAP">
<summary>
......@@ -1951,12 +2353,14 @@
<summary>
The maximum HP. <c>0</c> if this actor is not a combattant.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">MaxHP is negative</exception>
</member>
<member name="P:CivModel.Actor.MaxHealPerTurn">
<summary>
The maximum heal per turn.
</summary>
<seealso cref="P:CivModel.Actor.RemainHP" />
<exception cref="T:System.ArgumentOutOfRangeException">MaxHealPerTurn is negative</exception>
<seealso cref="M:CivModel.Actor.HealByRepair(System.Double)"/>
</member>
<member name="P:CivModel.Actor.RemainHP">
<summary>
......@@ -1986,20 +2390,34 @@
<summary>
The amount of gold logistics of this actor.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">GoldLogistics is negative</exception>
</member>
<member name="P:CivModel.Actor.LaborLogistics">
<summary>
The amount of labor logistics of this actor.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">LaborLogistics is negative</exception>
</member>
<member name="P:CivModel.Actor.FullLaborLogicstics">
<member name="P:CivModel.Actor.IsStarved">
<summary>
The amount of labor logistics of this actor to get the full heal amount of <see cref="P:CivModel.Actor.MaxHealPerTurn"/>.
Whether this actor is provided with appropriate amount of logistics.
</summary>
</member>
<member name="P:CivModel.Actor.BasicLaborLogistics">
<member name="P:CivModel.Actor.FullLaborForRepair">
<summary>
The amount of labor logistics of this actor to get the maximum heal mount in this turn.
The amount of labor for this actor to get the full heal amount of <see cref="P:CivModel.Actor.MaxHealPerTurn"/>.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">FullLaborForRepair is negative</exception>
<seealso cref="M:CivModel.Actor.HealByRepair(System.Double)" />
</member>
<member name="P:CivModel.Actor.EstimatedLaborLogicstics">
<member name="P:CivModel.Actor.BasicLaborForRepair">
<summary>
The amount of labor logicstics to be inputed, estimated by <see cref="M:CivModel.Player.EstimateResourceInputs"/>.
The amount of labor for repair of this actor to get the maximum heal mount in this turn.
</summary>
</member>
<member name="P:CivModel.Actor.EstimatedLaborForRepair">
<summary>
The amount of labor for repair to be inputed, estimated by <see cref="M:CivModel.Player.EstimateResourceInputs"/>.
</summary>
<remarks>
This property is updated by <see cref="M:CivModel.Player.EstimateResourceInputs"/>.
......@@ -2051,14 +2469,24 @@
</summary>
<seealso cref="P:CivModel.Actor.SkipFlag"/>
</member>
<member name="M:CivModel.Actor.#ctor(CivModel.Player,CivModel.Terrain.Point,CivModel.TileTag)">
<member name="P:CivModel.Actor.IsCloacking">
<summary>
Whether this actor is cloacking.
</summary>
</member>
<member name="M:CivModel.Actor.#ctor(CivModel.Player,CivModel.ActorConstants,CivModel.Terrain.Point,CivModel.TileTag)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.Actor"/> class.
</summary>
<param name="owner">The player who owns this actor.</param>
<param name="constants">constants of this actor.</param>
<param name="point">The tile where the object will be.</param>
<param name="tag">The <seealso cref="T:CivModel.TileTag"/> of this actor.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="owner"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentNullException">
<paramref name="owner"/> is <c>null</c>.
or
<paramref name="constants"/> is <c>null</c>.
</exception>
</member>
<member name="M:CivModel.Actor.GetEffectByTag(CivModel.EffectTag)">
<summary>
......@@ -2075,7 +2503,7 @@
<exception cref="T:System.InvalidOperationException">
actor is already destroyed
or
the ownership of unit on TileBuilding cannot be changed
the ownership of actor on TileBuilding cannot be changed
</exception>
<exception cref="T:System.ArgumentNullException"><paramref name="newOwner"/> is <c>null</c>.</exception>
<seealso cref="P:CivModel.Actor.Owner"/>
......@@ -2086,6 +2514,12 @@
</summary>
<param name="newOwner">The new owner.</param>
</member>
<member name="M:CivModel.Actor.OnAfterChangeOwner(CivModel.Player)">
<summary>
Called after [change owner], by <see cref="M:CivModel.Actor.ChangeOwner(CivModel.Player)"/>.
</summary>
<param name="prevOwner">The previous owner.</param>
</member>
<member name="M:CivModel.Actor.Destroy">
<summary>
Destroys this actor. <see cref="M:CivModel.Actor.OnBeforeDestroy"/> is called before the actor is destroyed.
......@@ -2101,7 +2535,7 @@
Called before [destroy], by <see cref="M:CivModel.Actor.Destroy"/>
</summary>
</member>
<member name="M:CivModel.Actor.CanConsumeAP(System.Int32)">
<member name="M:CivModel.Actor.CanConsumeAP(System.Double)">
<summary>
Determines whether this actor can consume the specified amount of AP.
</summary>
......@@ -2112,7 +2546,7 @@
<exception cref="T:System.InvalidOperationException">actor is already destroyed</exception>
<exception cref="T:System.ArgumentException"><paramref name="amount"/> is negative</exception>
</member>
<member name="M:CivModel.Actor.ConsumeAP(System.Int32)">
<member name="M:CivModel.Actor.ConsumeAP(System.Double)">
<summary>
Consumes the specified amount of AP.
</summary>
......@@ -2129,7 +2563,7 @@
Consumes all of AP which this actor has.
</summary>
<exception cref="T:System.InvalidOperationException">actor is already destroyed</exception>
<seealso cref="M:CivModel.Actor.ConsumeAP(System.Int32)"/>
<seealso cref="M:CivModel.Actor.ConsumeAP(System.Double)"/>
</member>
<member name="M:CivModel.Actor.Heal(System.Double)">
<summary>
......@@ -2140,24 +2574,14 @@
<param name="amount">The amount to heal.</param>
<returns>The real amount which this actor was healed.</returns>
</member>
<member name="M:CivModel.Actor.GetAvailableInputLaborLogistics(System.Double)">
<member name="M:CivModel.Actor.HealByRepair(System.Double)">
<summary>
Check how much labor logistics can be inputed for healing.
</summary>
<param name="labor">labor amount which you want to put</param>
<exception cref="T:System.InvalidOperationException">actor is already destroyed</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="labor"/> is negative</exception>
<returns>maximum labor amount possible to put, less than <paramref name="labor"/></returns>
</member>
<member name="M:CivModel.Actor.HealByLogistics(System.Double)">
<summary>
Heals this actor by inputing labor logistics.
Heals this actor by inputing labor for repair.
</summary>
<param name="labor">labor amount to input</param>
<returns>The amount which is really inputed. It can be different from the argument.</returns>
<exception cref="T:System.InvalidOperationException">actor is already destroyed</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="labor"/> is negative</exception>
<seealso cref="M:CivModel.Actor.GetAvailableInputLaborLogistics(System.Double)"/>
</member>
<member name="M:CivModel.Actor.MeleeAttackTo(CivModel.Actor)">
<summary>
......@@ -2168,6 +2592,7 @@
This method is wrapper of <see cref="M:CivModel.Actor.AttackTo(System.Double,CivModel.Actor,System.Double,System.Boolean,System.Boolean)"/>.
See <see cref="M:CivModel.Actor.AttackTo(System.Double,CivModel.Actor,System.Double,System.Boolean,System.Boolean)"/> for more information about battle.
</remarks>
<returns><see cref="T:CivModel.BattleResult"/> indicating the result of this battle.</returns>
<seealso cref="M:CivModel.Actor.AttackTo(System.Double,CivModel.Actor,System.Double,System.Boolean,System.Boolean)"/>
</member>
<member name="M:CivModel.Actor.RangedAttackTo(CivModel.Actor)">
......@@ -2179,6 +2604,7 @@
This method is wrapper of <see cref="M:CivModel.Actor.AttackTo(System.Double,CivModel.Actor,System.Double,System.Boolean,System.Boolean)"/>.
See <see cref="M:CivModel.Actor.AttackTo(System.Double,CivModel.Actor,System.Double,System.Boolean,System.Boolean)"/> for more information about battle.
</remarks>
<returns><see cref="T:CivModel.BattleResult"/> indicating the result of this battle.</returns>
<seealso cref="M:CivModel.Actor.AttackTo(System.Double,CivModel.Actor,System.Double,System.Boolean,System.Boolean)"/>
</member>
<member name="M:CivModel.Actor.AttackTo(System.Double,CivModel.Actor,System.Double,System.Boolean,System.Boolean)">
......@@ -2239,12 +2665,12 @@
<param name="isSkillAttack">whether attack is <i>skill</i> type.</param>
<returns>the damage by battle.</returns>
</member>
<member name="M:CivModel.Actor.GetRequiredAPToMove(CivModel.Terrain.Point)">
<member name="M:CivModel.Actor.GetRequiredAPToMove(CivModel.TerrainType)">
<summary>
Gets the required AP to move to the specified target point from the near.
Gets the required AP to move to point of the specified type
</summary>
<param name="target">The target point</param>
<returns>the required AP. if this actor cannot move to <paramref name="target"/>, <c>-1</c>.</returns>
<param name="type">The type of <see cref="T:CivModel.Terrain.Point"/></param>
<returns>the required AP.</returns>
</member>
<member name="M:CivModel.Actor.Die(CivModel.Player)">
<summary>
......@@ -2365,6 +2791,18 @@
</summary>
<seealso cref="T:CivModel.ITurnObserver"/>
</member>
<member name="P:CivModel.Player.Happiness">
<summary>
The happiness of this player. This value is in [-100, 100].
</summary>
<seealso cref="P:CivModel.Player.HappinessIncome"/>
</member>
<member name="P:CivModel.Player.HappinessIncome">
<summary>
The happiness income of this player.
</summary>
<seealso cref="P:CivModel.IGameConstantScheme.HappinessCoefficient"/>
</member>
<member name="P:CivModel.Player.Gold">
<summary>
The gold of this player. This value is not negative.
......@@ -2375,14 +2813,14 @@
<summary>
The gold income of this player. This is not negative, and can be different from <see cref="P:CivModel.Player.GoldNetIncome"/>
</summary>
<seealso cref="P:CivModel.Player.GoldIncomeWithInvestments"/>
<seealso cref="P:CivModel.Player.GoldNetIncomeWithoutConsumption"/>
<seealso cref="P:CivModel.Player.GoldNetIncome"/>
<seealso cref="P:CivModel.Player.TaxRate"/>
<seealso cref="P:CivModel.IGameScheme.GoldCoefficient"/>
<seealso cref="P:CivModel.IGameConstantScheme.GoldCoefficient"/>
</member>
<member name="P:CivModel.Player.GoldIncomeWithInvestments">
<member name="P:CivModel.Player.GoldNetIncomeWithoutConsumption">
<summary>
The gold income with investments.
The gold net income without repair/production consumption.
</summary>
<seealso cref="P:CivModel.Player.GoldIncome"/>
<seealso cref="P:CivModel.Player.GoldNetIncome"/>
......@@ -2393,61 +2831,59 @@
Therefore, you must call <see cref="M:CivModel.Player.EstimateResourceInputs"/> before use this property.
</summary>
<seealso cref="P:CivModel.Player.GoldIncome"/>
<seealso cref="P:CivModel.Player.GoldIncomeWithInvestments"/>
<seealso cref="P:CivModel.Player.GoldNetIncomeWithoutConsumption"/>
<seealso cref="P:CivModel.Player.EstimatedUsedGold"/>
<seealso cref="M:CivModel.Player.EstimateResourceInputs"/>
</member>
<member name="P:CivModel.Player.Happiness">
<summary>
The happiness of this player. This value is in [-100, 100].
</summary>
<seealso cref="P:CivModel.Player.HappinessIncome"/>
</member>
<member name="P:CivModel.Player.HappinessIncome">
<summary>
The happiness income of this player.
</summary>
<seealso cref="P:CivModel.IGameScheme.HappinessCoefficient"/>
</member>
<member name="P:CivModel.Player.OriginalLabor">
<summary>
The labor per turn of this player, not controlled by <see cref="P:CivModel.Player.Happiness"/>.
It is equal to sum of all <see cref="P:CivModel.CityBase.Labor"/> of cities of this player.
</summary>
<seealso cref="P:CivModel.Player.LaborWithoutLogistics"/>
<seealso cref="P:CivModel.Player.Labor"/>
<seealso cref="P:CivModel.CityBase.Labor"/>
</member>
<member name="P:CivModel.Player.Labor">
<member name="P:CivModel.Player.LaborWithoutLogistics">
<summary>
The labor per turn of this player.
The labor per turn of this player without logistics consumption.
It is calculated from <see cref="P:CivModel.Player.OriginalLabor"/> with <see cref="P:CivModel.Player.Happiness"/>.
</summary>
<seealso cref="P:CivModel.Player.OriginalLabor"/>
<seealso cref="P:CivModel.CityBase.Labor"/>
<seealso cref="P:CivModel.Player.Labor"/>
</member>
<member name="P:CivModel.Player.OriginalResearchIncome">
<member name="P:CivModel.Player.Labor">
<summary>
The research per turn of this player, not controlled by <see cref="P:CivModel.Player.Happiness"/> and <see cref="P:CivModel.Player.ResearchInvestmentRatio"/>.
It is equal to sum of all <see cref="P:CivModel.CityBase.ResearchIncome"/> of cities of this player.
The labor per turn with logistics consumption.
</summary>
<seealso cref="P:CivModel.Player.LaborWithoutLogistics"/>
</member>
<member name="P:CivModel.Player.BasicResearchIncome">
<summary>
The total basic research income per turn of this player.
</summary>
<seealso cref="P:CivModel.Player.Research"/>
<seealso cref="P:CivModel.Player.ResearchIncome"/>
<seealso cref="P:CivModel.Player.ResearchInvestmentRatio"/>
<seealso cref="P:CivModel.CityBase.ResearchIncome"/>
<seealso cref="P:CivModel.InteriorBuilding.BasicResearchIncome"/>
</member>
<member name="P:CivModel.Player.ResearchIncome">
<summary>
The research per turn of this player.
It is calculated from <see cref="P:CivModel.Player.OriginalResearchIncome"/> with <see cref="P:CivModel.Player.Happiness"/> and <see cref="P:CivModel.Player.ResearchInvestmentRatio"/>.
The total actual research income per turn of this player.
</summary>
<seealso cref="P:CivModel.Player.OriginalResearchIncome"/>
<seealso cref="P:CivModel.Player.Research"/>
<seealso cref="P:CivModel.Player.BasicResearchIncome"/>
<seealso cref="P:CivModel.Player.ResearchInvestmentRatio"/>
<seealso cref="P:CivModel.CityBase.ResearchIncome"/>
<seealso cref="P:CivModel.InteriorBuilding.ResearchIncome"/>
</member>
<member name="P:CivModel.Player.Research">
<summary>
The total research of this player.
</summary>
<seealso cref="P:CivModel.Player.ResearchIncome"/>
<seealso cref="P:CivModel.Player.BasicResearchIncome"/>
<seealso cref="P:CivModel.Player.ResearchInvestmentRatio"/>
<seealso cref="P:CivModel.InteriorBuilding.Research"/>
</member>
<member name="P:CivModel.Player.Population">
<summary>
......@@ -2462,21 +2898,21 @@
</summary>
<exception cref="T:System.ArgumentOutOfRangeException"><see cref="P:CivModel.Player.TaxRate"/> is not in [0, 1]</exception>
</member>
<member name="P:CivModel.Player.LogisticInvestmentRatio">
<member name="P:CivModel.Player.RepairInvestmentRatio">
<summary>
The ratio of real amount to basic amount of logistic investment. It must be in [<c>0</c>, <c>2</c>].
The ratio of real amount to basic amount of repair investment. It must be in [<c>0</c>, <c>1</c>].
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">value is not in [<c>0</c>, <c>2</c>].</exception>
<seealso cref="P:CivModel.Player.BasicLogisticRequire"/>
<exception cref="T:System.ArgumentOutOfRangeException">value is not in [<c>0</c>, <c>1</c>].</exception>
<seealso cref="P:CivModel.Player.BasicLaborForRepair"/>
</member>
<member name="P:CivModel.Player.LogisticInvestment">
<member name="P:CivModel.Player.RepairInvestment">
<summary>
The amount of labor for logistic investment.
The amount of labor for repair investment.
</summary>
</member>
<member name="P:CivModel.Player.BasicLogisticRequire">
<member name="P:CivModel.Player.BasicLaborForRepair">
<summary>
The basic logistic labor requirement.
The basic labor requirement for repair.
</summary>
</member>
<member name="P:CivModel.Player.BasicEconomicRequire">
......@@ -2521,9 +2957,15 @@
</summary>
<seealso cref="T:CivModel.Unit"/>
</member>
<member name="P:CivModel.Player.TileBuildings">
<summary>
The list of tile buildings of this player.
</summary>
<seealso cref="T:CivModel.TileBuilding"/>
</member>
<member name="P:CivModel.Player.Cities">
<summary>
The list of cities of this player.
<see cref="T:System.Collections.Generic.IEnumerable`1"/> object which contains cities this player owns.
</summary>
<seealso cref="T:CivModel.CityBase"/>
</member>
......@@ -2531,6 +2973,7 @@
<summary>
<see cref="T:System.Collections.Generic.IEnumerable`1"/> object which contains <see cref="T:CivModel.Actor"/> objects this player owns.
</summary>
<seealso cref="T:CivModel.Actor"/>
</member>
<member name="P:CivModel.Player.Quests">
<summary>
......@@ -2582,20 +3025,73 @@
Whether this player is defeated.
</summary>
</member>
<member name="P:CivModel.Player.IsAIControlled">
<summary>
Whether this player is controlled by AI.
</summary>
</member>
<member name="P:CivModel.Player.Game">
<summary>
The game which this player participates.
</summary>
</member>
<member name="M:CivModel.Player.#ctor(CivModel.Game)">
<member name="P:CivModel.Player.Team">
<summary>
The team of this player.
</summary>
</member>
<member name="M:CivModel.Player.#ctor(CivModel.Game,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.Player"/> class.
</summary>
<param name="game">The game which this player participates.</param>
<param name="team">The team of this player.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="game"/> is <c>null</c>.</exception>
</member>
<member name="M:CivModel.Player.AddCityToList(CivModel.CityBase)">
this function is used by CityBase class
<member name="M:CivModel.Player.DoAITurnAction">
<summary>
Let AI Controller act. This method can be asynchronous.
</summary>
<remarks>
Since this method can be asynchronous, the model <strong>must not</strong> changed until the task is completed.
</remarks>
<exception cref="T:System.InvalidOperationException">this player does not controlled by AI</exception>
<returns>A <see cref="T:System.Threading.Tasks.Task"/> that represents the asynchronous operation.</returns>
</member>
<member name="P:CivModel.Player.SpecialResource">
<summary>
The indexer proxy for special resources of this player.
</summary>
<remarks>
Usage: <code>player.SpecialResource[res]</code>
</remarks>
</member>
<member name="T:CivModel.Player.SpecialResourceProxy">
<summary>
The proxy class for <see cref="P:CivModel.Player.SpecialResource"/>
</summary>
<seealso cref="P:CivModel.Player.SpecialResource"/>
</member>
<member name="P:CivModel.Player.SpecialResourceProxy.Item(CivModel.ISpecialResource)">
<summary>
Gets or sets the amount of the specified special resource.
</summary>
<value>
The amount of the specified special resource.
</value>
<param name="resource">The resource.</param>
<returns>The amount of the specified special resource.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">value - the amount of resource is out of range</exception>
</member>
<member name="M:CivModel.Player.GetSpecialResourceData(CivModel.ISpecialResource)">
<summary>
Gets the additional data of the specified special resource.
</summary>
<param name="resource">The special resource.</param>
<returns>The additional data.</returns>
</member>
<member name="M:CivModel.Player.AddTileBuildingToList(CivModel.TileBuilding)">
this function is used by TileBuilding class
</member>
<member name="M:CivModel.Player.TryAddTerritory(CivModel.Terrain.Point)">
<summary>
......@@ -2649,7 +3145,7 @@
<member name="M:CivModel.Player.EstimateResourceInputs">
<summary>
Update <see cref="P:CivModel.Production.EstimatedLaborInputing"/>, <see cref="P:CivModel.Production.EstimatedGoldInputing"/>,
<see cref="P:CivModel.Actor.EstimatedLaborLogicstics"/>, <see cref="P:CivModel.Player.EstimatedUsedLabor"/>
<see cref="P:CivModel.Actor.EstimatedLaborForRepair"/>, <see cref="P:CivModel.Player.EstimatedUsedLabor"/>
and <see cref="P:CivModel.Player.EstimatedUsedGold"/> property of this player.
</summary>
</member>
......@@ -2664,13 +3160,18 @@
The action performing movement. A <see cref="T:CivModel.MoveActorAction"/> object by default.
</summary>
</member>
<member name="M:CivModel.Unit.#ctor(CivModel.Player,CivModel.Terrain.Point)">
<member name="M:CivModel.Unit.#ctor(CivModel.Player,CivModel.ActorConstants,CivModel.Terrain.Point)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.Unit"/> class.
</summary>
<param name="owner">The <see cref="T:CivModel.Player"/> who owns this unit.</param>
<param name="constants">constants of this actor.</param>
<param name="point">The tile where the object will be.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="owner"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentNullException">
<paramref name="owner"/> is <c>null</c>.
or
<paramref name="constants"/> is <c>null</c>.
</exception>
</member>
<member name="M:CivModel.Unit.OnBeforeChangeOwner(CivModel.Player)">
<summary>
......@@ -2683,6 +3184,13 @@
Called before [destroy], by <see cref="M:CivModel.Actor.Destroy" />
</summary>
</member>
<member name="M:CivModel.Unit.OnChangePlacedPoint(System.Nullable{CivModel.Terrain.Point})">
<summary>
Called after <see cref="P:CivModel.TileObject.PlacedPoint"/> is changed.
</summary>
<param name="oldPoint">The old value of <see cref="P:CivModel.TileObject.PlacedPoint"/>.</param>
<exception cref="T:System.InvalidOperationException"></exception>
</member>
<member name="T:CivModel.ITileObjectProductionFactory">
<summary>
The factory interface of <see cref="T:CivModel.TileObjectProduction"/>.
......@@ -2709,31 +3217,41 @@
<param name="point">The tile where the object will be.</param>
<returns>the created <see cref="T:CivModel.TileObject"/> result.</returns>
</member>
<member name="T:CivModel.IActorProductionFactory">
<summary>
The factory interface of <see cref="T:CivModel.Production"/> which products <see cref="T:CivModel.Actor"/> objects.
This interface also provides <see cref="P:CivModel.IActorProductionFactory.ActorConstants"/> of production results.
</summary>
<seealso cref="T:CivModel.ActorConstants"/>
<seealso cref="T:CivModel.ITileObjectProductionFactory"/>
</member>
<member name="P:CivModel.IActorProductionFactory.ActorConstants">
<summary>
The constants of production result <see cref="T:CivModel.Actor"/>.
</summary>
<seealso cref="P:CivModel.IActorProductionFactory.ActorConstants"/>
</member>
<member name="T:CivModel.TileObjectProduction">
<summary>
The <see cref="T:CivModel.Production"/> class for <see cref="T:CivModel.TileObject"/>
</summary>
<seealso cref="T:CivModel.Production" />
</member>
<member name="M:CivModel.TileObjectProduction.#ctor(CivModel.ITileObjectProductionFactory,CivModel.Player,System.Double,System.Double,System.Double,System.Double)">
<member name="M:CivModel.TileObjectProduction.#ctor(CivModel.ITileObjectProductionFactory,CivModel.Player)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.TileObjectProduction"/> class.
</summary>
<param name="factory">The factory object of this production kind.</param>
<param name="owner">The <see cref="T:CivModel.Player"/> who will own the production.</param>
<param name="totalLaborCost"><see cref="P:CivModel.Production.TotalLaborCost"/> of the production</param>
<param name="laborCapacityPerTurn"><see cref="P:CivModel.Production.LaborCapacityPerTurn"/> of the production.</param>
<param name="totalGoldCost"><see cref="P:CivModel.Production.TotalGoldCost"/> of the production</param>
<param name="goldCapacityPerTurn"><see cref="P:CivModel.Production.GoldCapacityPerTurn"/> of the production.</param>
<exception cref="T:System.ArgumentException">
<paramref name="totalLaborCost"/> is negative
<see cref="P:CivModel.IProductionFactory.TotalLaborCost"/> is negative
or
<paramref name="totalGoldCost"/> is negative
<see cref="P:CivModel.IProductionFactory.TotalGoldCost"/> is negative
</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="laborCapacityPerTurn"/> is not in [0, <see cref="P:CivModel.Production.TotalLaborCost"/>]
<see cref="P:CivModel.IProductionFactory.LaborCapacityPerTurn"/> is not in [0, <see cref="P:CivModel.Production.TotalLaborCost"/>]
or
<paramref name="goldCapacityPerTurn"/> is not in [0, <see cref="P:CivModel.Production.TotalGoldCost"/>]
<see cref="P:CivModel.IProductionFactory.GoldCapacityPerTurn"/> is not in [0, <see cref="P:CivModel.Production.TotalGoldCost"/>]
</exception>
<exception cref="T:System.ArgumentNullException">
<paramref name="factory"/> is <c>null</c>
......
fileFormatVersion: 2
guid: 2413c1b1e7b93b84a957f43c0249b262
timeCreated: 1519646875
timeCreated: 1519738846
licenseType: Free
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
<?xml version="1.0"?>
<doc>
<assembly>
<name>CivPresenter</name>
</assembly>
<members>
<member name="T:CivPresenter.Direction">
<summary>
Represents a direction.
</summary>
</member>
<member name="F:CivPresenter.Direction.Up">
<summary>
Up direction
</summary>
</member>
<member name="F:CivPresenter.Direction.Down">
<summary>
Down direction
</summary>
</member>
<member name="F:CivPresenter.Direction.Left">
<summary>
Left direction
</summary>
</member>
<member name="F:CivPresenter.Direction.Right">
<summary>
Right direction
</summary>
</member>
<member name="T:CivPresenter.IView">
<summary>
The interface represents a View.
</summary>
</member>
<member name="M:CivPresenter.IView.Refocus">
<summary>
Called when view should refocus on <see cref="P:CivPresenter.Presenter.FocusedPoint"/>
</summary>
</member>
<member name="M:CivPresenter.IView.Shutdown">
<summary>
Called when the game should be shutdown.
</summary>
</member>
<member name="T:CivPresenter.NamespaceDoc">
<summary>
The <see cref="N:CivPresenter"/> namespace of CivPresenter.dll module
provides <see cref="T:CivPresenter.Presenter"/> class and other utils for it.
</summary>
</member>
<member name="T:CivPresenter.Presenter">
<summary>
Represents a presenter.
</summary>
<remarks>
The presenter works like a Finite State Machine.
<see cref="P:CivPresenter.Presenter.State"/> is changed by Command~~~ operations.
</remarks>
</member>
<member name="P:CivPresenter.Presenter.View">
<summary>
The <see cref="T:CivPresenter.IView"/> object
</summary>
</member>
<member name="P:CivPresenter.Presenter.Game">
<summary>
The <see cref="P:CivPresenter.Presenter.Game"/> object
</summary>
</member>
<member name="P:CivPresenter.Presenter.SelectedActor">
<summary>
The selected <see cref="T:CivModel.Actor"/>.
</summary>
</member>
<member name="P:CivPresenter.Presenter.FocusedPoint">
<summary>
The focused <see cref="T:CivModel.Terrain.Point"/>.
This point can be changed by [arrow key] command, or View's calling setter.
</summary>
</member>
<member name="P:CivPresenter.Presenter.IsThereTodos">
<summary>
Whether there is something to do in this turn.
If this value is <c>false</c>, user can go to the next turn
</summary>
</member>
<member name="P:CivPresenter.Presenter.RunningAction">
<summary>
The <see cref="T:CivModel.IReadOnlyActorAction"/> object used now.
<c>null</c> if no action is being done.
</summary>
</member>
<member name="P:CivPresenter.Presenter.SelectedInvestment">
<summary>
Index of the selected investment.
If <see cref="P:CivPresenter.Presenter.SelectedProduction"/> is not <c>-1</c>, this value is <c>-1</c>.
This value is valid iff <c><see cref="P:CivPresenter.Presenter.State"/> == <see cref="F:CivPresenter.Presenter.States.ProductUI"/></c>.
See remarks section for information about the value.
</summary>
<remarks>
<list type="bullet">
<item><c>0</c> if <see cref="P:CivModel.Player.TaxRate"/> is selected.</item>
<item><c>1</c> if <see cref="P:CivModel.Player.EconomicInvestmentRatio"/> is selected.</item>
<item><c>2</c> if <see cref="P:CivModel.Player.ResearchInvestmentRatio"/> is selected.</item>
<item><c>3</c> if <see cref="P:CivModel.Player.LogisticInvestmentRatio"/> is selected.</item>
<item><c>-1</c> if there is no selected deploy.</item>
</list>
</remarks>
</member>
<member name="P:CivPresenter.Presenter.SelectedDeploy">
<summary>
Index of the selected deploy to <see cref="P:CivModel.Player.Deployment"/> list.
<c>-1</c> if there is no selected deploy.
If <see cref="P:CivPresenter.Presenter.SelectedProduction"/> or <see cref="P:CivPresenter.Presenter.SelectedInvestment"/> is not <c>-1</c>, this value is <c>-1</c>.
This value is valid iff <c><see cref="P:CivPresenter.Presenter.State"/> == <see cref="F:CivPresenter.Presenter.States.ProductUI"/></c>.
</summary>
</member>
<member name="P:CivPresenter.Presenter.SelectedProduction">
<summary>
Index of the selected production to <see cref="P:CivModel.Player.Production"/> list.
<c>-1</c> if there is no selected production.
If <see cref="P:CivPresenter.Presenter.SelectedDeploy"/> or <see cref="P:CivPresenter.Presenter.SelectedInvestment"/> is not <c>-1</c>, this value is <c>-1</c>.
This value is valid iff <c><see cref="P:CivPresenter.Presenter.State"/> == <see cref="F:CivPresenter.Presenter.States.ProductUI"/> || <see cref="P:CivPresenter.Presenter.State"/> == <see cref="F:CivPresenter.Presenter.States.ProductAdd"/></c>.
</summary>
</member>
<member name="P:CivPresenter.Presenter.IsProductManipulating">
<summary>
Whether user is manipulating a production.
This value is valid iff <c><see cref="P:CivPresenter.Presenter.State"/> == <see cref="F:CivPresenter.Presenter.States.ProductUI"/></c>
</summary>
</member>
<member name="P:CivPresenter.Presenter.AvailableProduction">
<summary>
The list of the available production, retrieved by <see cref="P:CivModel.Player.AvailableProduction"/>
This value is valid iff <c><see cref="P:CivPresenter.Presenter.State"/> == <see cref="F:CivPresenter.Presenter.States.ProductAdd"/></c>
</summary>
</member>
<member name="P:CivPresenter.Presenter.DeployProduction">
<summary>
The production to deploy.
This value is valid iff <c><see cref="P:CivPresenter.Presenter.State"/> == <see cref="F:CivPresenter.Presenter.States.Deploy"/></c>
</summary>
</member>
<member name="P:CivPresenter.Presenter.State">
<summary>
The state of <see cref="T:CivPresenter.Presenter"/>.
</summary>
</member>
<member name="P:CivPresenter.Presenter.StateParam">
<summary>
The parameter of this <see cref="P:CivPresenter.Presenter.State"/>.
This value is valid iff <c><see cref="P:CivPresenter.Presenter.State"/> == <see cref="F:CivPresenter.Presenter.States.SpecialAct"/></c>,
and the value is the number of a special action.
</summary>
</member>
<member name="P:CivPresenter.Presenter.AcceptedQuests">
<summary>
The list of <see cref="T:CivModel.Quest"/> of <see cref="P:CivModel.Game.PlayerInTurn"/> whose status is <see cref="F:CivModel.QuestStatus.Accepted"/>.
This value is valid iff <c><see cref="P:CivPresenter.Presenter.State"/> == <see cref="F:CivPresenter.Presenter.States.Quest"/></c>.
</summary>
</member>
<member name="P:CivPresenter.Presenter.DeployedQuests">
<summary>
The list of <see cref="T:CivModel.Quest"/> of <see cref="P:CivModel.Game.PlayerInTurn"/> whose status is <see cref="F:CivModel.QuestStatus.Deployed"/>.
This value is valid iff <c><see cref="P:CivPresenter.Presenter.State"/> == <see cref="F:CivPresenter.Presenter.States.Quest"/></c>.
</summary>
</member>
<member name="P:CivPresenter.Presenter.CompletedQuests">
<summary>
The list of <see cref="T:CivModel.Quest"/> of <see cref="P:CivModel.Game.PlayerInTurn"/> whose status is <see cref="F:CivModel.QuestStatus.Completed"/>.
This value is valid iff <c><see cref="P:CivPresenter.Presenter.State"/> == <see cref="F:CivPresenter.Presenter.States.Quest"/></c>.
</summary>
</member>
<member name="P:CivPresenter.Presenter.DisabledQuests">
<summary>
The list of <see cref="T:CivModel.Quest"/> of <see cref="P:CivModel.Game.PlayerInTurn"/> whose status is <see cref="F:CivModel.QuestStatus.Disabled"/>.
This value is valid iff <c><see cref="P:CivPresenter.Presenter.State"/> == <see cref="F:CivPresenter.Presenter.States.Quest"/></c>.
</summary>
</member>
<member name="P:CivPresenter.Presenter.SelectedQuest">
<summary>
Index of the selected quest to <see cref="P:CivModel.Player.Quests"/> list.
<c>-1</c> if there is no selected quest.
This value is valid iff <c><see cref="P:CivPresenter.Presenter.State"/> == <see cref="F:CivPresenter.Presenter.States.Quest"/></c>.
</summary>
</member>
<member name="P:CivPresenter.Presenter.SaveFile">
<summary>
The path of the save file.
</summary>
</member>
<member name="M:CivPresenter.Presenter.#ctor(CivPresenter.IView)">
<summary>
Initializes a new instance of the <see cref="T:CivPresenter.Presenter"/> class, by creating a new game with testing-purpose parameters.
</summary>
<param name="view">The <see cref="T:CivPresenter.IView"/> object.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="view"/> is <c>null</c></exception>
<remarks>
This constructor calls <see cref="M:CivPresenter.Presenter.#ctor(CivPresenter.IView,System.Int32,System.Int32,System.Int32)"/> constructor with preset testing-purpsoe parameters.
</remarks>
<seealso cref="M:CivPresenter.Presenter.#ctor(CivPresenter.IView,System.Int32,System.Int32,System.Int32)"/>
</member>
<member name="M:CivPresenter.Presenter.#ctor(CivPresenter.IView,System.Int32,System.Int32,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:CivPresenter.Presenter"/> class, by creating a new game.
</summary>
<param name="view">The <see cref="T:CivPresenter.IView"/> object.</param>
<param name="terrainWidth"><see cref="P:CivModel.Terrain.Width"/> of the new game. If this value is <c>-1</c>, uses default value.</param>
<param name="terrainHeight"><see cref="P:CivModel.Terrain.Height"/> of the new game. If this value is <c>-1</c>, uses default value.</param>
<param name="numOfPlayer">The number of players of the new game. If this value is <c>-1</c>, uses default value.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="view"/> is <c>null</c></exception>
</member>
<member name="M:CivPresenter.Presenter.#ctor(CivPresenter.IView,System.String)">
<summary>
Initializes a new instance of the <see cref="T:CivPresenter.Presenter"/> class, by loading a existing save file.
</summary>
<param name="view">The <see cref="T:CivPresenter.IView"/> object.</param>
<param name="saveFile">The path of the save file to load. If <c>null</c>, create a new game.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="view"/> is <c>null</c></exception>
<remarks>
This constructor calls <see cref="M:CivModel.Game.#ctor(System.String,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"/> constructor.
See the <strong>exceptions</strong> and <strong>remarks</strong> parts of
the documentation of <see cref="M:CivModel.Game.#ctor(System.String,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"/> constructor.
</remarks>
<seealso cref="M:CivModel.Game.#ctor(System.String,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"/>
</member>
<member name="M:CivPresenter.Presenter.CommandApply">
<summary>
Gives the command [apply].
</summary>
</member>
<member name="M:CivPresenter.Presenter.CommandCancel">
<summary>
Gives the command [cancel].
</summary>
</member>
<member name="M:CivPresenter.Presenter.CommandArrowKey(CivPresenter.Direction)">
<summary>
Gives the command [arrow key].
</summary>
<param name="direction">The direction.</param>
</member>
<member name="M:CivPresenter.Presenter.CommandNumeric(System.Int32)">
<summary>
Gives the command [numeric].
This method may introduce <see cref="F:CivPresenter.Presenter.States.SpecialAct"/> state
if called when <see cref="F:CivPresenter.Presenter.States.Normal"/> state.
</summary>
<param name="index">The index.</param>
</member>
<member name="M:CivPresenter.Presenter.CommandRemove">
<summary>
Gives the command [remove].
</summary>
</member>
<member name="M:CivPresenter.Presenter.CommandSkip">
<summary>
Gives the command [skip].
</summary>
</member>
<member name="M:CivPresenter.Presenter.CommandSleep">
<summary>
Gives the command [sleep].
</summary>
</member>
<member name="M:CivPresenter.Presenter.CommandRefocus">
<summary>
Gives the command [refocus].
</summary>
</member>
<member name="M:CivPresenter.Presenter.CommandSelect">
<summary>
Gives the command [select].
</summary>
</member>
<member name="M:CivPresenter.Presenter.CommandSave">
<summary>
Gives the command [save].
</summary>
</member>
<member name="M:CivPresenter.Presenter.CommandMove">
<summary>
Gives the command [move].
This method may introduce <see cref="F:CivPresenter.Presenter.States.Move"/> state.
</summary>
</member>
<member name="M:CivPresenter.Presenter.CommandMovingAttack">
<summary>
Gives the command [moving attack].
This method may introduce <see cref="F:CivPresenter.Presenter.States.MovingAttack"/> state.
</summary>
</member>
<member name="M:CivPresenter.Presenter.CommandHoldingAttack">
<summary>
Gives the command [holding attack].
This method may introduce <see cref="F:CivPresenter.Presenter.States.HoldingAttack"/> state.
</summary>
</member>
<member name="M:CivPresenter.Presenter.CommandProductUI">
<summary>
Gives the command [product UI].
This method may introduce <see cref="F:CivPresenter.Presenter.States.ProductUI"/> state.
</summary>
</member>
<member name="M:CivPresenter.Presenter.CommandQuest">
<summary>
Gives the command [quest].
This method may introduce <see cref="F:CivPresenter.Presenter.States.Quest"/> state.
</summary>
</member>
<member name="T:CivPresenter.Presenter.States">
<summary>
Indicates the state of <see cref="T:CivPresenter.Presenter"/>.
</summary>
</member>
<member name="F:CivPresenter.Presenter.States.Normal">
<summary>
State [normal]. This is a default state.
</summary>
</member>
<member name="F:CivPresenter.Presenter.States.Move">
<summary>
State [move]. This state indicates user is giving a move action command.
<see cref="M:CivPresenter.Presenter.CommandMove"/> method may introduce this state.
In this state, <see cref="P:CivPresenter.Presenter.RunningAction"/> is set to an action of move.
</summary>
</member>
<member name="F:CivPresenter.Presenter.States.MovingAttack">
<summary>
State [moving attack]. This state indicates user is giving a moving attack action command.
<see cref="M:CivPresenter.Presenter.CommandMovingAttack"/> method may introduce this state.
In this state, <see cref="P:CivPresenter.Presenter.RunningAction"/> is set to an action of moving attack.
</summary>
</member>
<member name="F:CivPresenter.Presenter.States.HoldingAttack">
<summary>
State [holding attack]. This state indicates user is giving a holding attack action command.
<see cref="M:CivPresenter.Presenter.CommandHoldingAttack"/> method may introduce this state.
In this state, <see cref="P:CivPresenter.Presenter.RunningAction"/> is set to an action of holding attack.
</summary>
</member>
<member name="F:CivPresenter.Presenter.States.SpecialAct">
<summary>
State [special act]. This state indicates user is giving a special action command.
<see cref="M:CivPresenter.Presenter.CommandNumeric(System.Int32)"/> method may introduce this state.
In this state, <see cref="P:CivPresenter.Presenter.RunningAction"/> is set to an action of special act,
and <see cref="P:CivPresenter.Presenter.StateParam"/> indicates the index of special act.
</summary>
</member>
<member name="F:CivPresenter.Presenter.States.ProductUI">
<summary>
State [product UI]. This state indicates user is viewing a production UI.
<see cref="M:CivPresenter.Presenter.CommandProductUI"/> method may introduce this state.
In this state, <see cref="P:CivPresenter.Presenter.SelectedDeploy"/> and <see cref="P:CivPresenter.Presenter.SelectedProduction"/> indicate user's selection.
If user is manipulating a selected production, <see cref="P:CivPresenter.Presenter.IsProductManipulating"/> is set.
</summary>
</member>
<member name="F:CivPresenter.Presenter.States.ProductAdd">
<summary>
State [product Add]. This state indicates user is viewing a production addition UI.
This state may be introduced by <see cref="F:CivPresenter.Presenter.States.ProductUI"/> state.
In this state, <see cref="P:CivPresenter.Presenter.SelectedProduction"/> indicates user's selection,
and <see cref="P:CivPresenter.Presenter.AvailableProduction"/> indicates the list of available productions to add.
</summary>
</member>
<member name="F:CivPresenter.Presenter.States.Deploy">
<summary>
State [deploy]. This state indicates user is giving a deployment command.
This state may be introduced by <see cref="F:CivPresenter.Presenter.States.ProductUI"/> state.
In this state, <see cref="P:CivPresenter.Presenter.DeployProduction"/> indicates the production to deploy.
</summary>
</member>
<member name="F:CivPresenter.Presenter.States.Quest">
<summary>
State [quest]. This state indicates user is viewing the list of quests.
<see cref="M:CivPresenter.Presenter.CommandQuest"/> method may introduce this state.
In this state, asdf indicates asdf.
</summary>
</member>
<member name="F:CivPresenter.Presenter.States.Victory">
<summary>
State [victory]. This state indicates user is viewing a <strong>victory</strong> screen.
</summary>
</member>
<member name="F:CivPresenter.Presenter.States.Defeated">
<summary>
State [defeated]. This state indicates user is viewing a <strong>defeated</strong> screen.
</summary>
</member>
</members>
</doc>
fileFormatVersion: 2
guid: 217df20479bf25f4d875219899eec26d
timeCreated: 1519736656
licenseType: Free
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
Any:
second:
enabled: 1
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
This source diff could not be displayed because it is too large. You can view the blob instead.
fileFormatVersion: 2
guid: 82052a2180f59a54b897f737ddd0432a
timeCreated: 1519738846
licenseType: Free
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: e60396c5e7648224598d445fc0f9f2e4
timeCreated: 1519736659
licenseType: Free
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
Any:
second:
enabled: 1
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
This source diff could not be displayed because it is too large. You can view the blob instead.
fileFormatVersion: 2
guid: 7df5f73f906b83643996e151578c943d
timeCreated: 1519738846
licenseType: Free
TextScriptImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 0763b707e9b77b74cb81a71624f7dd1d
folderAsset: yes
timeCreated: 1519738838
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: f1cdfb9a65019044284f960a4eca40f9
timeCreated: 1519738841
licenseType: Free
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
Any:
second:
enabled: 1
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:
......@@ -11,16 +11,49 @@ Prefab:
m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 1823159130722898}
m_IsPrefabParent: 1
--- !u!1 &1000109618337908
--- !u!1 &1007955442867144
GameObject:
m_ObjectHideFlags: 0
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4268745177563672}
- component: {fileID: 64320392236666290}
- component: {fileID: 23037053612995674}
- component: {fileID: 33855223034399846}
m_Layer: 0
m_Name: CityCenter
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!1 &1009765518301364
GameObject:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4436999106154904}
- component: {fileID: 4968103370472446}
m_Layer: 0
m_Name: Building
m_Name: Factory
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1037520925213762
GameObject:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4881338538682394}
m_Layer: 0
m_Name: Mine
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
......@@ -95,6 +128,21 @@ GameObject:
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1458061431022694
GameObject:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4664541961396246}
m_Layer: 0
m_Name: Octagon
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1511768024445524
GameObject:
m_ObjectHideFlags: 1
......@@ -149,6 +197,21 @@ GameObject:
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!1 &1622781857682086
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4551114514983256}
m_Layer: 0
m_Name: TileBuilding
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1679681735439964
GameObject:
m_ObjectHideFlags: 1
......@@ -186,6 +249,21 @@ GameObject:
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1831616157282712
GameObject:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4836201807757712}
m_Layer: 0
m_Name: Fort
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1864306018844118
GameObject:
m_ObjectHideFlags: 1
......@@ -262,7 +340,7 @@ Transform:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1864306018844118}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0.4, z: 0}
m_LocalPosition: {x: 0, y: 1.222, z: 0}
m_LocalScale: {x: 0.5, y: 0.8, z: 0.5}
m_Children: []
m_Father: {fileID: 4310160372248550}
......@@ -288,12 +366,25 @@ Transform:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1187391223902348}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0.4, z: 0}
m_LocalPosition: {x: 0, y: 1.222, z: 0}
m_LocalScale: {x: 0.5, y: 0.8, z: 0.5}
m_Children: []
m_Father: {fileID: 4310160372248550}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4268745177563672
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1007955442867144}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 4551114514983256}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4297799600058746
Transform:
m_ObjectHideFlags: 1
......@@ -343,16 +434,21 @@ Transform:
m_Father: {fileID: 4297799600058746}
m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4436999106154904
--- !u!4 &4551114514983256
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1000109618337908}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_GameObject: {fileID: 1622781857682086}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Children:
- {fileID: 4268745177563672}
- {fileID: 4664541961396246}
- {fileID: 4881338538682394}
- {fileID: 4836201807757712}
- {fileID: 4968103370472446}
m_Father: {fileID: 4624084589808502}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
......@@ -381,7 +477,7 @@ Transform:
m_Children:
- {fileID: 4297799600058746}
- {fileID: 4310160372248550}
- {fileID: 4436999106154904}
- {fileID: 4551114514983256}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
......@@ -398,6 +494,19 @@ Transform:
m_Father: {fileID: 4297799600058746}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4664541961396246
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1458061431022694}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 4551114514983256}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4690190399569276
Transform:
m_ObjectHideFlags: 1
......@@ -437,6 +546,45 @@ Transform:
m_Father: {fileID: 4297799600058746}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4836201807757712
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1831616157282712}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 4551114514983256}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4881338538682394
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1037520925213762}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 4551114514983256}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4968103370472446
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1009765518301364}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 4551114514983256}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4985084088936646
Transform:
m_ObjectHideFlags: 1
......@@ -450,6 +598,38 @@ Transform:
m_Father: {fileID: 4297799600058746}
m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &23037053612995674
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1007955442867144}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: 7b559dd0a0e05ee498f3ad3ec1388fee, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23070297376802330
MeshRenderer:
m_ObjectHideFlags: 1
......@@ -459,7 +639,6 @@ MeshRenderer:
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
......@@ -475,7 +654,6 @@ MeshRenderer:
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
......@@ -493,7 +671,6 @@ MeshRenderer:
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
......@@ -509,7 +686,6 @@ MeshRenderer:
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
......@@ -527,7 +703,6 @@ MeshRenderer:
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
......@@ -543,7 +718,6 @@ MeshRenderer:
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
......@@ -561,7 +735,6 @@ MeshRenderer:
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
......@@ -577,7 +750,6 @@ MeshRenderer:
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
......@@ -595,12 +767,11 @@ MeshRenderer:
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 2100000, guid: e8dab69b341624f47a1bce8c857d10c2, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
......@@ -611,7 +782,6 @@ MeshRenderer:
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
......@@ -629,7 +799,6 @@ MeshRenderer:
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
......@@ -645,7 +814,6 @@ MeshRenderer:
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
......@@ -663,7 +831,6 @@ MeshRenderer:
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
......@@ -679,7 +846,6 @@ MeshRenderer:
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
......@@ -697,7 +863,6 @@ MeshRenderer:
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
......@@ -713,7 +878,6 @@ MeshRenderer:
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
......@@ -731,7 +895,6 @@ MeshRenderer:
m_Enabled: 0
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
......@@ -747,7 +910,6 @@ MeshRenderer:
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
......@@ -765,7 +927,6 @@ MeshRenderer:
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
......@@ -781,7 +942,6 @@ MeshRenderer:
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
......@@ -799,7 +959,6 @@ MeshRenderer:
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
......@@ -815,7 +974,6 @@ MeshRenderer:
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
......@@ -837,7 +995,7 @@ MeshFilter:
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1864306018844118}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
m_Mesh: {fileID: 4300000, guid: b30586820caa1de47b0e0ed1aa73c608, type: 3}
--- !u!33 &33091470807645124
MeshFilter:
m_ObjectHideFlags: 1
......@@ -851,7 +1009,7 @@ MeshFilter:
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1187391223902348}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
m_Mesh: {fileID: 4300000, guid: b30586820caa1de47b0e0ed1aa73c608, type: 3}
--- !u!33 &33156816092748102
MeshFilter:
m_ObjectHideFlags: 1
......@@ -894,6 +1052,13 @@ MeshFilter:
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1679681735439964}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!33 &33855223034399846
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1007955442867144}
m_Mesh: {fileID: 4300000, guid: 2f3720c9fd009724f914cb5ae6241f23, type: 3}
--- !u!33 &33901173367863546
MeshFilter:
m_ObjectHideFlags: 1
......@@ -910,9 +1075,9 @@ MeshCollider:
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 3
serializedVersion: 2
m_Convex: 0
m_CookingOptions: 14
m_InflateMesh: 0
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!64 &64136445634017532
......@@ -924,11 +1089,25 @@ MeshCollider:
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 3
serializedVersion: 2
m_Convex: 1
m_CookingOptions: 14
m_InflateMesh: 0
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 5fa74040be6e22d47844d6be63c76ee3, type: 3}
--- !u!64 &64320392236666290
MeshCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1007955442867144}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 2
m_Convex: 0
m_InflateMesh: 0
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 2f3720c9fd009724f914cb5ae6241f23, type: 3}
--- !u!64 &64330435631884436
MeshCollider:
m_ObjectHideFlags: 1
......@@ -938,9 +1117,9 @@ MeshCollider:
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 3
serializedVersion: 2
m_Convex: 0
m_CookingOptions: 14
m_InflateMesh: 0
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 42d530bc21360a945b3787f57452cc28, type: 3}
--- !u!64 &64357967316059052
......@@ -952,9 +1131,9 @@ MeshCollider:
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 3
serializedVersion: 2
m_Convex: 1
m_CookingOptions: 14
m_InflateMesh: 0
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 93b23d960c7fd2645bed567627e2e6db, type: 3}
--- !u!64 &64620577182621614
......@@ -966,9 +1145,9 @@ MeshCollider:
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 3
serializedVersion: 2
m_Convex: 0
m_CookingOptions: 14
m_InflateMesh: 0
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!64 &64645098208270654
......@@ -980,9 +1159,9 @@ MeshCollider:
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 3
serializedVersion: 2
m_Convex: 1
m_CookingOptions: 14
m_InflateMesh: 0
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: a44110f5a8c675e45bd12c7d0acf99ee, type: 3}
--- !u!64 &64677638604958692
......@@ -994,9 +1173,9 @@ MeshCollider:
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 3
serializedVersion: 2
m_Convex: 0
m_CookingOptions: 14
m_InflateMesh: 0
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 27823897e2212c64bbe127a9b997429f, type: 3}
--- !u!64 &64872765966139110
......@@ -1008,9 +1187,9 @@ MeshCollider:
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 3
serializedVersion: 2
m_Convex: 0
m_CookingOptions: 14
m_InflateMesh: 0
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 9e2c928d6a901384f9cba232a9b385f0, type: 3}
--- !u!64 &64940828068726894
......@@ -1022,9 +1201,9 @@ MeshCollider:
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 3
serializedVersion: 2
m_Convex: 0
m_CookingOptions: 14
m_InflateMesh: 0
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!65 &65133615766084452
......
......@@ -4,11 +4,10 @@ timeCreated: 1519651115
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 4
mipmaps:
mipMapMode: 0
enableMipMap: 1
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
......@@ -34,13 +33,13 @@ TextureImporter:
filterMode: -1
aniso: -1
mipBias: -1
wrapU: -1
wrapU: 1
wrapV: -1
wrapW: -1
nPOTScale: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
......@@ -48,9 +47,9 @@ TextureImporter:
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaUsage: 1
alphaIsTransparency: 0
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 0
textureType: 8
textureShape: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
......@@ -58,14 +57,20 @@ TextureImporter:
platformSettings:
- buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- buildTarget: Standalone
maxTextureSize: 2048
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
spriteSheet:
serializedVersion: 2
sprites: []
......
......@@ -38,7 +38,7 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
m_IndirectSpecularColor: {r: 0.44657844, g: 0.49641222, b: 0.57481694, a: 1}
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
......@@ -77,18 +77,15 @@ LightmapSettings:
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
m_PVRBounces: 2
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVRFiltering: 0
m_PVRFilteringMode: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ShowResolutionOverlay: 1
m_PVRFilteringAtrousColorSigma: 1
m_PVRFilteringAtrousNormalSigma: 1
m_PVRFilteringAtrousPositionSigma: 1
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 1
--- !u!196 &4
......@@ -110,8 +107,6 @@ NavMeshSettings:
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &22912418
GameObject:
......@@ -1188,6 +1183,20 @@ Light:
m_Lightmapping: 4
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_FalloffTable:
m_Table[0]: 0
m_Table[1]: 0
m_Table[2]: 0
m_Table[3]: 0
m_Table[4]: 0
m_Table[5]: 0
m_Table[6]: 0
m_Table[7]: 0
m_Table[8]: 0
m_Table[9]: 0
m_Table[10]: 0
m_Table[11]: 0
m_Table[12]: 0
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_ShadowRadius: 0
......@@ -7034,7 +7043,7 @@ MonoBehaviour:
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: "\uAE08:"
m_Text: "\uAE08: "
--- !u!222 &520572090
CanvasRenderer:
m_ObjectHideFlags: 0
......@@ -11181,7 +11190,7 @@ MonoBehaviour:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0}
m_Sprite: {fileID: 21300000, guid: dbefadd029ac98847b5983c6023972c7, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
......@@ -11332,11 +11341,11 @@ Camera:
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
m_StereoMirrorMode: 0
--- !u!4 &1006940700
Transform:
m_ObjectHideFlags: 0
......
public enum Buildings
{
CityCenter,
Octagon,
Mine,
Fort,
Factory
}
\ No newline at end of file
fileFormatVersion: 2
guid: 94a6cf157c0409d40bac6f981a77662e
timeCreated: 1519735355
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
......@@ -77,6 +77,11 @@ public class GameManager : MonoBehaviour {
// Update is called once per frame
void Update() {
Render(_game.Terrain);
Debug.Log("Gold:" + _game.PlayerInTurn.Gold + "(+" + _game.PlayerInTurn.GoldIncome +")");
Debug.Log("Pop:" + _game.PlayerInTurn.Population);
Debug.Log("Happ:" + _game.PlayerInTurn.Happiness);
Debug.Log("Prod:" + _game.PlayerInTurn.Labor);
Debug.Log("Tech:" + _game.PlayerInTurn.Research);
if (Input.GetKeyDown(KeyCode.Space))
{
......@@ -200,7 +205,7 @@ public class GameManager : MonoBehaviour {
CivModel.Terrain.Point point = terrain.GetPoint(i, j);
// TODO: Make prefab component
_cells[i, j].GetComponent<HexTile>().ChangeTile();
// _cells[i, j].GetComponent<HexTile>().BuildDistrict(point.TileBuilding);
_cells[i, j].GetComponent<HexTile>().BuildDistrict(point.TileBuilding);
_cells[i, j].GetComponent<HexTile>().DrawUnit(point.Unit);
}
}
......
......@@ -9,6 +9,7 @@ public class HexTile : MonoBehaviour {
public CivModel.Terrain.Point point;
Transform terrains;
Transform buildings;
Transform units;
public bool isFlickering;
......@@ -18,6 +19,8 @@ public class HexTile : MonoBehaviour {
void Start () {
terrains = transform.GetChild(0).transform;
units = transform.GetChild(1).transform;
buildings = transform.GetChild(2).transform;
}
// Update is called once per frame
......@@ -31,6 +34,39 @@ public class HexTile : MonoBehaviour {
terrains.GetChild((int)point.Type).gameObject.SetActive(true);
}
public void BuildDistrict(CivModel.TileBuilding building)
{
if (building == null)
{
foreach(Transform child in buildings)
{
child.gameObject.SetActive(false);
}
}
else
{
foreach (Transform child in buildings)
{
if (child.gameObject.name.Equals(TileBuildingObject(building)))
{
child.gameObject.SetActive(true);
}
else
{
child.gameObject.SetActive(false);
}
}
}
}
string TileBuildingObject(CivModel.TileBuilding building)
{
if (building is CivModel.Common.CityCenter)
{
return "CityCenter";
}
else return "";
}
// This method should be changed when unit type increses
public void DrawUnit(CivModel.Unit unit)
{
......@@ -45,7 +81,7 @@ public class HexTile : MonoBehaviour {
{
foreach (Transform child in units)
{
if (child.gameObject.name == "Pioneer")
if (child.gameObject.name == "Jedi Knight")
{
child.gameObject.SetActive(true);
}
......
......@@ -82,7 +82,7 @@ public class UIManager : MonoBehaviour {
}
Gold.text = "금 : " + GameManager.I.Game.PlayerInTurn.Gold + "(+" + GameManager.I.Game.PlayerInTurn.GoldIncome + ")";
Population.text = "인구 : "; // Model 업데이트 이후 어디서 찾아야 하는지 찾을 필요성 있음.
Population.text = "인구 : " + GameManager.I.Game.PlayerInTurn.Population;
Happiness.text = "행복 : " + GameManager.I.Game.PlayerInTurn.Happiness;
Technology.text = "기술력 : "; // Model 업데이트 이후 어디서 찾아야 하는지 찾을 필요성 있음.
Labor.text = "노동력 : " + GameManager.I.Game.PlayerInTurn.Labor;
......
Subproject commit 93c6ba947f6bc2aa1da061bcabd226ff44be0dbf
Subproject commit 2dbfb44eb8fb492c9d67f0f6798422aaf1e42a1c
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment