Commit 276fa256 authored by 16도재형's avatar 16도재형

CivGameManager WIP

parent 9d0ae61d
fileFormatVersion: 2
guid: 2c30431a1f1679f48abcfca63d03dc14
timeCreated: 1516610093
guid: 14316eefeff7b8c4882dee9cb31df5f1
timeCreated: 1518204165
licenseType: Free
MonoImporter:
DefaultImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 1b9aa6e20622168439f93d177f66126d
timeCreated: 1516875573
guid: 51a4ccfc53e3bd3489fedcd4adb9e458
timeCreated: 1518204165
licenseType: Free
MonoImporter:
DefaultImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
<?xml version="1.0"?>
<doc>
<assembly>
<name>CivModel</name>
</assembly>
<members>
<member name="T:CivModel.AttackActorAction">
<summary>
Represents an attack action.
</summary>
<seealso cref="T:CivModel.IActorAction" />
</member>
<member name="P:CivModel.AttackActorAction.Owner">
<summary>
The <see cref="T:CivModel.Actor" /> object which has this action.
</summary>
</member>
<member name="P:CivModel.AttackActorAction.IsParametered">
<summary>
Whether the action has a target parameter or not.
</summary>
</member>
<member name="M:CivModel.AttackActorAction.#ctor(CivModel.Actor,System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.AttackActorAction"/> class.
</summary>
<param name="owner">The <see cref="T:CivModel.Actor"/> who will own the action.</param>
<param name="isMoving">
<c>true</c> if this action is <strong>moving attack</strong>.
<c>false</c> if this action is <strong>holding attack</strong>.
</param>
<exception cref="T:System.ArgumentNullException"><paramref name="owner"/> is <c>null</c>.</exception>
</member>
<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.
</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>.
</returns>
</member>
<member name="M:CivModel.AttackActorAction.Act(System.Nullable{CivModel.Terrain.Point})">
<summary>
Acts the specified pt.
</summary>
<param name="pt">The pt.</param>
<exception cref="T:System.ArgumentException">parameter is invalid</exception>
<exception cref="T:System.InvalidOperationException">Actor is not placed yet</exception>
</member>
<member name="T:CivModel.Common.CityCenterProductionFactory">
<summary>
The factory interface for <see cref="T:CivModel.Common.CityCenter"/>.
</summary>
<seealso cref="T:CivModel.ITileObjectProductionFactory" />
</member>
<member name="P:CivModel.Common.CityCenterProductionFactory.Instance">
<summary>
The singleton instance.of <see cref="T:CivModel.Common.CityCenterProductionFactory"/>
</summary>
</member>
<member name="M:CivModel.Common.CityCenterProductionFactory.Create(CivModel.Player)">
<summary>
Creates the <see cref="T:CivModel.Production" /> object
</summary>
<param name="owner">The player who owns the <see cref="T:CivModel.Production" /> object.</param>
<returns>
the created <see cref="T:CivModel.Production" /> object
</returns>
</member>
<member name="M:CivModel.Common.CityCenterProductionFactory.IsPlacable(CivModel.TileObjectProduction,CivModel.Terrain.Point)">
<summary>
Determines whether the production result is placable at the specified point.
</summary>
<param name="production">The production.</param>
<param name="point">The point to test to place the production result.</param>
<returns>
<c>true</c> if the production is placable; otherwise, <c>false</c>.
</returns>
</member>
<member name="M:CivModel.Common.CityCenterProductionFactory.CreateTileObject(CivModel.Player,CivModel.Terrain.Point)">
<summary>
Creates the <see cref="T:CivModel.TileObject" /> which is the production result.
</summary>
<param name="owner">The <see cref="T:CivModel.Player" /> who owns the result.</param>
<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.Common.FactoryBuilding">
<summary>
Represents [factory] interior building.
</summary>
<seealso cref="T:CivModel.InteriorBuilding"/>
</member>
<member name="P:CivModel.Common.FactoryBuilding.ClassGuid">
<summary>
The unique identifier of this class.
</summary>
</member>
<member name="P:CivModel.Common.FactoryBuilding.Guid">
<summary>
The unique identifier of this class.
</summary>
</member>
<member name="M:CivModel.Common.FactoryBuilding.#ctor(CivModel.Common.CityCenter)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.Common.FactoryBuilding"/> class.
</summary>
<param name="city">The <see cref="T:CivModel.Common.CityCenter" /> who will own the building.</param>
</member>
<member name="T:CivModel.Common.FactoryBuildingProductionFactory">
<summary>
The factory interface for <see cref="T:CivModel.Common.FactoryBuilding"/>.
</summary>
<seealso cref="T:CivModel.IInteriorBuildingProductionFactory" />
</member>
<member name="P:CivModel.Common.FactoryBuildingProductionFactory.Instance">
<summary>
The singleton instance.of <see cref="T:CivModel.Common.FactoryBuildingProductionFactory"/>
</summary>
</member>
<member name="M:CivModel.Common.FactoryBuildingProductionFactory.Create(CivModel.Player)">
<summary>
Creates the <see cref="T:CivModel.Production" /> object
</summary>
<param name="owner">The player who owns the <see cref="T:CivModel.Production" /> object.</param>
<returns>
the created <see cref="T:CivModel.Production" /> object
</returns>
</member>
<member name="M:CivModel.Common.FactoryBuildingProductionFactory.IsPlacable(CivModel.InteriorBuildingProduction,CivModel.Common.CityCenter)">
<summary>
Determines whether the production result is placable in the specified city.
</summary>
<param name="production">The production.</param>
<param name="city">The city to test to place the production result.</param>
<returns>
<c>true</c> if the production is placable; otherwise, <c>false</c>.
</returns>
</member>
<member name="M:CivModel.Common.FactoryBuildingProductionFactory.CreateInteriorBuilding(CivModel.Common.CityCenter)">
<summary>
Creates the <see cref="T:CivModel.InteriorBuilding"/> which is the production result.
</summary>
<param name="city">The <see cref="T:CivModel.Common.CityCenter"/> who will own the building.</param>
<returns>the created <see cref="T:CivModel.InteriorBuilding"/> result.</returns>
</member>
<member name="T:CivModel.Common.NamespaceDoc">
<summary>
The <see cref="N:CivModel.Common"/> namespace of CivModel.dll module
provides core, basic common actors such as <see cref="T:CivModel.Common.CityCenter"/>.
</summary>
<remarks>
Most of common actors are provided by CivModel.Common.dll module.
The purpose of CivModel.dll module is to provide core features of CivModel.
</remarks>
<seealso cref="N:CivModel"/>
</member>
<member name="T:CivModel.Common.CityCenter">
<summary>
Represents a city as <see cref="T:CivModel.TileBuilding"/>.
</summary>
<seealso cref="T:CivModel.TileBuilding" />
</member>
<member name="P:CivModel.Common.CityCenter.ClassGuid">
<summary>
The unique identifier of this class.
</summary>
</member>
<member name="P:CivModel.Common.CityCenter.Guid">
<summary>
The unique identifier of this class.
</summary>
</member>
<member name="P:CivModel.Common.CityCenter.Name">
<summary>
The name of this city.
</summary>
<remarks>
<see cref="P:CivModel.Common.CityCenter.Name"/> cannot have newline characters and cannot be empty string.
See the list of newline characters at <see href="https://en.wikipedia.org/wiki/Newline#Unicode"/>.
</remarks>
<exception cref="T:System.ArgumentException">the name is invalid or already used.</exception>
<seealso cref="M:CivModel.Common.CityCenter.SetCityName(System.String)"/>
<seealso cref="M:CivModel.Common.CityCenter.TrySetCityName(System.String)"/>
</member>
<member name="P:CivModel.Common.CityCenter.MaxHP">
<summary>
The maximum HP. <c>0</c> if this actor is not a combattant.
</summary>
</member>
<member name="P:CivModel.Common.CityCenter.MaxHealPerTurn">
<summary>
The maximum heal per turn.
</summary>
<seealso cref="P:CivModel.Actor.RemainHP" />
</member>
<member name="P:CivModel.Common.CityCenter.AttackPower">
<summary>
The attack power.
</summary>
</member>
<member name="P:CivModel.Common.CityCenter.DefencePower">
<summary>
The defence power.
</summary>
</member>
<member name="P:CivModel.Common.CityCenter.HoldingAttackAct">
<summary>
The action performing movement. <c>null</c> if this actor cannot do.
</summary>
</member>
<member name="P:CivModel.Common.CityCenter.AvailableProduction">
<summary>
The list of available production from this city.
</summary>
<seealso cref="M:CivModel.Player.GetAvailableProduction"/>
</member>
<member name="P:CivModel.Common.CityCenter.Population">
<summary>
The population of this city.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">Population must be bigger or equal than 1</exception>
<seealso cref="P:CivModel.Player.Population"/>
<seealso cref="P:CivModel.Common.CityCenter.PopulationIncome"/>
</member>
<member name="P:CivModel.Common.CityCenter.PopulationIncome">
<summary>
The population income of this city.
</summary>
<seealso cref="P:CivModel.IGameScheme.PopulationCoefficient"/>
<seealso cref="P:CivModel.IGameScheme.PopulationHappinessConstant"/>
</member>
<member name="P:CivModel.Common.CityCenter.Labor">
<summary>
The labor per turn which this city offers.
</summary>
<seealso cref="P:CivModel.Player.Labor"/>
<seealso cref="P:CivModel.IGameScheme.LaborCoefficient"/>
<seealso cref="P:CivModel.IGameScheme.LaborHappinessConstant"/>
</member>
<member name="P:CivModel.Common.CityCenter.InteriorBuildings">
<summary>
The list of <see cref="T:CivModel.InteriorBuilding"/> this city owns.
</summary>
</member>
<member name="M:CivModel.Common.CityCenter.#ctor(CivModel.Player,CivModel.Terrain.Point)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.Common.CityCenter"/> class.
</summary>
<param name="owner">The player who owns this city.</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>
</member>
<member name="M:CivModel.Common.CityCenter.TrySetCityName(System.String)">
<summary>
Sets <see cref="P:CivModel.Common.CityCenter.Name"/> of the city. A return value indicates whether the setting is succeeded.
</summary>
<param name="value">The value.</param>
<returns><c>true</c> if succeded. otherwise, <c>false</c>.</returns>
<seealso cref="P:CivModel.Common.CityCenter.Name"/>
<seealso cref="M:CivModel.Common.CityCenter.SetCityName(System.String)"/>
</member>
<member name="M:CivModel.Common.CityCenter.SetCityName(System.String)">
<summary>
Sets <see cref="P:CivModel.Common.CityCenter.Name"/> of the city. The behavior of this method is equal to the setter of <see cref="P:CivModel.Common.CityCenter.Name"/>.
</summary>
<param name="value">The value to set.</param>
<exception cref="T:System.ArgumentException">the name is invalid or already used.</exception>
<seealso cref="P:CivModel.Common.CityCenter.Name"/>
<seealso cref="M:CivModel.Common.CityCenter.TrySetCityName(System.String)"/>
</member>
<member name="M:CivModel.Common.CityCenter.AddBuilding(CivModel.InteriorBuilding)">
<summary>
This method is used by <see cref="P:CivModel.InteriorBuilding.City"/>
</summary>
</member>
<member name="M:CivModel.Common.CityCenter.RemoveBuilding(CivModel.InteriorBuilding)">
<summary>
This method is used by <see cref="P:CivModel.InteriorBuilding.City"/>
</summary>
</member>
<member name="M:CivModel.Common.CityCenter.OnBeforeChangeOwner(CivModel.Player)">
<summary>
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.Common.CityCenter.OnBeforeDestroy">
<summary>
Called before [destroy], by <see cref="M:CivModel.Actor.Destroy" />
</summary>
</member>
<member name="M:CivModel.Common.CityCenter.OnDie(CivModel.Player)">
<summary>
Called when [die] by <see cref="M:CivModel.Actor.Die(CivModel.Player)" />.
The default implementation calls <see cref="M:CivModel.Actor.Destroy" />.
</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.Common.CityCenter.PostTurn">
<summary>
Called after a turn.
</summary>
</member>
<member name="T:CivModel.IGameSchemeFactory">
<summary>
The factory interface of <see cref="T:CivModel.IGameScheme"/>
</summary>
</member>
<member name="P:CivModel.IGameSchemeFactory.Guid">
<summary>
The unique identifier of this factory.
</summary>
</member>
<member name="M:CivModel.IGameSchemeFactory.Create">
<summary>
Creates the <see cref="T:CivModel.IGameScheme"/> object
</summary>
<returns></returns>
</member>
<member name="T:CivModel.IGameScheme">
<summary>
The interface represents a scheme of a <see cref="T:CivModel.Game"/>.
</summary>
</member>
<member name="P:CivModel.IGameScheme.Factory">
<summary>
The factory object of this instance.
</summary>
</member>
<member name="P:CivModel.IGameScheme.OnlyDefaultPlayers">
<summary>
Whether the number of players must be equal to default value or not.
</summary>
<seealso cref="P:CivModel.IGameScheme.DefaultNumberOfPlayers"/>
</member>
<member name="P:CivModel.IGameScheme.DefaultNumberOfPlayers">
<summary>
The default number of players. It must be positive.
</summary>
</member>
<member name="P:CivModel.IGameScheme.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"/>
</member>
<member name="P:CivModel.IGameScheme.DefaultTerrainWidth">
<summary>
The default width of the <see cref="T:CivModel.Terrain"/>. It must be positive.
</summary>
</member>
<member name="P:CivModel.IGameScheme.DefaultTerrainHeight">
<summary>
The default height of the <see cref="T:CivModel.Terrain"/>. It must be positive.
</summary>
</member>
<member name="P:CivModel.IGameScheme.GoldCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.GoldIncome"/>.
</summary>
</member>
<member name="P:CivModel.IGameScheme.PopulationCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Common.CityCenter.Population"/>.
</summary>
</member>
<member name="P:CivModel.IGameScheme.PopulationHappinessConstant">
<summary>
Constant amount of <see cref="P:CivModel.Player.Happiness"/> for <see cref="P:CivModel.Player.Population"/>.
</summary>
</member>
<member name="P:CivModel.IGameScheme.HappinessCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.HappinessIncome"/>.
</summary>
</member>
<member name="P:CivModel.IGameScheme.LaborCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.Labor"/>.
</summary>
</member>
<member name="P:CivModel.IGameScheme.LaborHappinessConstant">
<summary>
Constant amount of <see cref="P:CivModel.Player.Happiness"/> for <see cref="P:CivModel.Player.Labor"/>.
</summary>
</member>
<member name="P:CivModel.IGameScheme.EconomicRequireCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.BasicEconomicRequire"/>.
</summary>
</member>
<member name="P:CivModel.IGameScheme.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">
<summary>
Coefficient for <see cref="P:CivModel.Player.BasicResearchRequire"/>.
</summary>
</member>
<member name="M:CivModel.IGameScheme.RegisterGuid(CivModel.Game)">
<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)"/>.
</summary>
<param name="game">The <see cref="T:CivModel.Game"/> object.</param>
</member>
<member name="M:CivModel.IGameScheme.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="M:CivModel.IGameScheme.InitializeNewCity(CivModel.Common.CityCenter)">
<summary>
Initializes a newly created city
</summary>
<param name="city">The city to initialize.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="city"/> is <c>null</c>.</exception>
</member>
<member name="T:CivModel.IReadOnlyActorAction">
<summary>
The read-only version of <see cref="T:CivModel.IActorAction"/>.
</summary>
</member>
<member name="P:CivModel.IReadOnlyActorAction.Owner">
<summary>
The <see cref="T:CivModel.Actor"/> object which has this action.
</summary>
</member>
<member name="P:CivModel.IReadOnlyActorAction.IsParametered">
<summary>
Whether the action has a target parameter or not.
</summary>
</member>
<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.
</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>.
</returns>
</member>
<member name="T:CivModel.IActorAction">
<summary>
Represents an action which <see cref="T:CivModel.Actor"/> can do.
</summary>
<seealso cref="T:CivModel.IReadOnlyActorAction" />
</member>
<member name="M:CivModel.IActorAction.Act(System.Nullable{CivModel.Terrain.Point})">
<summary>
Acts with the specified parameter.
</summary>
<param name="pt">The parameter.</param>
<exception cref="T:System.ArgumentException">the parameter is invalid.</exception>
<exception cref="T:System.InvalidOperationException"><see cref="P:CivModel.IReadOnlyActorAction.Owner"/> of this action is not placed yet.</exception>
</member>
<member name="T:CivModel.ActorAction">
<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})">
<summary>
Test whether the action is actable with specified parameter.
</summary>
<param name="action">the action.</param>
<param name="pt">the parameter with which action will be tested.</param>
<returns>
<c>true</c> if the action is actable; otherwise, <c>false</c>.
</returns>
</member>
<member name="T:CivModel.IGuidTaggedObject">
<summary>
The interface represents an object which can be created and class-level distinguished from <see cref="T:System.Guid"/>.
</summary>
<remarks>
To enable object creation from Guid, <see cref="M:CivModel.GuidTaggedObjectManager.RegisterGuid(System.Guid,System.Func{CivModel.Player,CivModel.Terrain.Point,CivModel.IGuidTaggedObject})"/> must be called.
</remarks>
<seealso cref="T:CivModel.GuidTaggedObjectManager"/>
</member>
<member name="P:CivModel.IGuidTaggedObject.Guid">
<summary>
The unique identifier of this class.
</summary>
</member>
<member name="T:CivModel.GuidTaggedObjectManager">
<summary>
Provides object creation of <see cref="T:CivModel.IGuidTaggedObject"/> from Guid
</summary>
<seealso cref="T:CivModel.IGuidTaggedObject"/>
</member>
<member name="M:CivModel.GuidTaggedObjectManager.RegisterGuid(System.Guid,System.Func{CivModel.Player,CivModel.Terrain.Point,CivModel.IGuidTaggedObject})">
<summary>
Registers a Guid with <see cref="T:CivModel.IGuidTaggedObject"/> supplier.
</summary>
<remarks>
<paramref name="supplier"/> creates an object from arguments. If arguments are invalid, supplier can return <c>null</c>.
</remarks>
<param name="guid">The Guid.</param>
<param name="supplier">The supplier.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="supplier"/> is <c>null</c>.</exception>
<exception cref="T:System.ArgumentException">The same Guid is already registered.</exception>
</member>
<member name="M:CivModel.GuidTaggedObjectManager.Create(System.Guid,CivModel.Player,CivModel.Terrain.Point)">
<summary>
Creates the <see cref="T:CivModel.IGuidTaggedObject"/> from a specified Guid. If arguments are invalid, returns <c>null</c>.
</summary>
<param name="guid">The Guid.</param>
<param name="owner">The <see cref="T:CivModel.Player"/> who will own the object.</param>
<param name="point">The tile where the object will be.</param>
<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.InteriorBuilding">
<summary>
Represents a building which must be built in <see cref="T:CivModel.Common.CityCenter"/>.
</summary>
<seealso cref="T:CivModel.TileBuilding"/>
</member>
<member name="P:CivModel.InteriorBuilding.Guid">
<summary>
The unique identifier of this class.
</summary>
</member>
<member name="P:CivModel.InteriorBuilding.Owner">
<summary>
The <see cref="T:CivModel.Player"/> who owns this building.
</summary>
</member>
<member name="P:CivModel.InteriorBuilding.City">
<summary>
The <see cref="T:CivModel.Common.CityCenter"/> where this building is.
</summary>
</member>
<member name="M:CivModel.InteriorBuilding.#ctor(CivModel.Common.CityCenter)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.InteriorBuilding"/> class.
</summary>
<param name="city">The <see cref="T:CivModel.Common.CityCenter"/> who will own the building.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="city"/> is <c>null</c>.</exception>
</member>
<member name="M:CivModel.InteriorBuilding.Destroy">
<summary>
Destroys this building. <see cref="M:CivModel.InteriorBuilding.OnBeforeDestroy"/> is called before the building is destroyed.
</summary>
<remarks>
<strong>postcondition</strong>:
<c><see cref="P:CivModel.TileObject.PlacedPoint"/> == null &amp;&amp; <see cref="P:CivModel.InteriorBuilding.Owner"/> == null</c>
</remarks>
</member>
<member name="M:CivModel.InteriorBuilding.OnBeforeDestroy">
<summary>
Called before [destroy], by <see cref="M:CivModel.InteriorBuilding.Destroy"/>
</summary>
</member>
<member name="M:CivModel.InteriorBuilding.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="M:CivModel.InteriorBuilding.PostTurn">
<summary>
Called after a turn.
</summary>
</member>
<member name="M:CivModel.InteriorBuilding.PrePlayerSubTurn(CivModel.Player)">
<summary>
Called before a sub turn.
</summary>
<param name="playerInTurn">The player which the sub turn is dedicated to.</param>
</member>
<member name="M:CivModel.InteriorBuilding.PreTurn">
<summary>
Called before a turn.
</summary>
</member>
<member name="T:CivModel.IInteriorBuildingProductionFactory">
<summary>
The factory interface of <see cref="T:CivModel.InteriorBuildingProduction"/>.
This interface additionally provides <see cref="M:CivModel.IInteriorBuildingProductionFactory.IsPlacable(CivModel.InteriorBuildingProduction,CivModel.Common.CityCenter)"/>
and <see cref="M:CivModel.IInteriorBuildingProductionFactory.CreateInteriorBuilding(CivModel.Common.CityCenter)"/> methods.
</summary>
<seealso cref="T:CivModel.IProductionFactory" />
</member>
<member name="M:CivModel.IInteriorBuildingProductionFactory.IsPlacable(CivModel.InteriorBuildingProduction,CivModel.Common.CityCenter)">
<summary>
Determines whether the production result is placable in the specified city.
</summary>
<param name="production">The production.</param>
<param name="city">The city to test to place the production result.</param>
<returns>
<c>true</c> if the production is placable; otherwise, <c>false</c>.
</returns>
</member>
<member name="M:CivModel.IInteriorBuildingProductionFactory.CreateInteriorBuilding(CivModel.Common.CityCenter)">
<summary>
Creates the <see cref="T:CivModel.InteriorBuilding"/> which is the production result.
</summary>
<param name="city">The <see cref="T:CivModel.Common.CityCenter"/> who will own the building.</param>
<returns>the created <see cref="T:CivModel.InteriorBuilding"/> result.</returns>
</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)">
<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="totalCost"><see cref="P:CivModel.Production.TotalCost"/> of the production</param>
<param name="capacityPerTurn"><see cref="P:CivModel.Production.CapacityPerTurn"/> of the production.</param>
<exception cref="T:System.ArgumentException">totalCost is not positive</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacityPerTurn"/> is not in [0, <see cref="P:CivModel.Production.TotalCost"/>]</exception>
<exception cref="T:System.ArgumentNullException">
<paramref name="factory"/> is <c>null</c>
or
<paramref name="owner"/> is <c>null</c>
</exception>
</member>
<member name="M:CivModel.InteriorBuildingProduction.IsPlacable(CivModel.Terrain.Point)">
<summary>
Determines whether the production result is placable at the specified point.
</summary>
<param name="point">The point to test to place the production result.</param>
<returns>
<c>true</c> if the production is placable; otherwise, <c>false</c>.
</returns>
</member>
<member name="M:CivModel.InteriorBuildingProduction.Place(CivModel.Terrain.Point)">
<summary>
Places the production result at the specified point.
</summary>
<param name="point">The point to place the production result.</param>
<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.ITurnObserver">
<summary>
The interface to observe pre/post turn event.
</summary>
<seealso cref="T:CivModel.Game"/>
</member>
<member name="M:CivModel.ITurnObserver.PreTurn">
<summary>
Called before a turn.
</summary>
</member>
<member name="M:CivModel.ITurnObserver.PostTurn">
<summary>
Called after a turn.
</summary>
</member>
<member name="M:CivModel.ITurnObserver.PrePlayerSubTurn(CivModel.Player)">
<summary>
Called before a sub turn.
</summary>
<param name="playerInTurn">The player which the sub turn is dedicated to.</param>
</member>
<member name="M:CivModel.ITurnObserver.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.MoveActorAction">
<summary>
Represents an movement action.
</summary>
<seealso cref="T:CivModel.IActorAction" />
</member>
<member name="P:CivModel.MoveActorAction.Owner">
<summary>
The <see cref="T:CivModel.Actor" /> object which has this action.
</summary>
</member>
<member name="P:CivModel.MoveActorAction.IsParametered">
<summary>
Whether the action has a target parameter or not.
</summary>
</member>
<member name="M:CivModel.MoveActorAction.#ctor(CivModel.Actor)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.MoveActorAction"/> class.
</summary>
<param name="owner">The <see cref="T:CivModel.Actor"/> who will own the action.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="owner"/> is <c>null</c>.</exception>
</member>
<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.
</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>.
</returns>
</member>
<member name="M:CivModel.MoveActorAction.Act(System.Nullable{CivModel.Terrain.Point})">
<summary>
Acts with the specified parameter.
</summary>
<param name="pt">The parameter.</param>
<exception cref="T:System.ArgumentException">parameter is invalid</exception>
<exception cref="T:System.InvalidOperationException">Owner of this action is not placed yet</exception>
</member>
<member name="T:CivModel.NamespaceDoc">
<summary>
The <see cref="N:CivModel"/> namespace of CivModel.dll module
provides a core classes and interfaces of CivModel.
</summary>
</member>
<member name="T:CivModel.Position">
<summary>
Represents the coordinate for <see cref="T:CivModel.Terrain"/>.
The coordinate system is documented in "docs/Coordinate System.pptx".
</summary>
</member>
<member name="P:CivModel.Position.X">
<summary>
X in physical coordinate system.
</summary>
</member>
<member name="P:CivModel.Position.Y">
<summary>
Y in physical coordinate system.
</summary>
</member>
<member name="P:CivModel.Position.A">
<summary>
A in logical coordinate system.
</summary>
</member>
<member name="P:CivModel.Position.B">
<summary>
B in logical coordinate system.
</summary>
</member>
<member name="P:CivModel.Position.C">
<summary>
C in logical coordinate system.
</summary>
</member>
<member name="M:CivModel.Position.FromPhysical(System.Int32,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.Position"/> structure from the physical coordinates.
</summary>
<param name="x">X in physical coordinate system.</param>
<param name="y">Y in physical coordinate system.</param>
<returns>the created <see cref="T:CivModel.Position"/></returns>
</member>
<member name="M:CivModel.Position.FromLogical(System.Int32,System.Int32,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.Position"/> structure from the logical coordinates.
</summary>
<param name="a">A in logical coordinate system.</param>
<param name="b">B in logical coordinate system.</param>
<param name="c">C in logical coordinate system.</param>
<returns>the created <see cref="T:CivModel.Position"/></returns>
<exception cref="T:System.ArgumentException">logical coordinate is invalid</exception>
</member>
<member name="M:CivModel.Position.op_UnaryPlus(CivModel.Position)">
<summary>
Implements the operator +.
</summary>
<param name="obj">The object.</param>
<returns>
The result of the operator.
</returns>
</member>
<member name="M:CivModel.Position.op_UnaryNegation(CivModel.Position)">
<summary>
Implements the operator -.
</summary>
<param name="obj">The object.</param>
<returns>
The result of the operator.
</returns>
</member>
<member name="M:CivModel.Position.op_Addition(CivModel.Position,CivModel.Position)">
<summary>
Implements the operator +.
</summary>
<param name="lhs">The LHS.</param>
<param name="rhs">The RHS.</param>
<returns>
The result of the operator.
</returns>
</member>
<member name="M:CivModel.Position.op_Subtraction(CivModel.Position,CivModel.Position)">
<summary>
Implements the operator -.
</summary>
<param name="lhs">The LHS.</param>
<param name="rhs">The RHS.</param>
<returns>
The result of the operator.
</returns>
</member>
<member name="M:CivModel.Position.op_Multiply(System.Int32,CivModel.Position)">
<summary>
Implements the operator *.
</summary>
<param name="lhs">The LHS.</param>
<param name="rhs">The RHS.</param>
<returns>
The result of the operator.
</returns>
</member>
<member name="M:CivModel.Position.Norm">
<summary>
Get norm of this position. It is equal to <c>(|A| + |B| + |C|) / 2</c>
</summary>
<returns>The norm of this position.</returns>
</member>
<member name="M:CivModel.Position.Distance(CivModel.Position,CivModel.Position)">
<summary>
Get the distance between two <see cref="T:CivModel.Position"/>.
It is equal to <c>(<paramref name="lhs"/> - <paramref name="rhs"/>).<see cref="M:CivModel.Position.Norm"/>()</c>.
</summary>
<param name="lhs">left hand side parameter</param>
<param name="rhs">right hand side parameter</param>
<returns>The distance between two <see cref="T:CivModel.Position"/>.</returns>
</member>
<member name="M:CivModel.Position.ToString">
<summary>
Returns a <see cref="T:System.String" /> that represents this instance.
</summary>
<returns>
A <see cref="T:System.String" /> that represents this instance.
</returns>
</member>
<member name="M:CivModel.Position.op_Equality(CivModel.Position,CivModel.Position)">
<summary>
Implements the operator ==.
</summary>
<param name="lhs">The LHS.</param>
<param name="rhs">The RHS.</param>
<returns>
The result of the operator.
</returns>
</member>
<member name="M:CivModel.Position.op_Inequality(CivModel.Position,CivModel.Position)">
<summary>
Implements the operator !=.
</summary>
<param name="lhs">The LHS.</param>
<param name="rhs">The RHS.</param>
<returns>
The result of the operator.
</returns>
</member>
<member name="M:CivModel.Position.Equals(System.Object)">
<summary>
Determines whether the specified <see cref="T:System.Object" />, is equal to this instance.
</summary>
<param name="obj">The <see cref="T:System.Object" /> to compare with this instance.</param>
<returns>
<c>true</c> if the specified <see cref="T:System.Object" /> is equal to this instance; otherwise, <c>false</c>.
</returns>
</member>
<member name="M:CivModel.Position.GetHashCode">
<summary>
Returns a hash code for this instance.
</summary>
<returns>
A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
</returns>
</member>
<member name="T:CivModel.IProductionFactory">
<summary>
The factory interface of <see cref="T:CivModel.Production"/>
</summary>
<seealso cref="M:CivModel.Player.GetAvailableProduction"/>
<seealso cref="P:CivModel.Common.CityCenter.AvailableProduction"/>
<seealso cref="P:CivModel.Player.AdditionalAvailableProduction"/>
</member>
<member name="M:CivModel.IProductionFactory.Create(CivModel.Player)">
<summary>
Creates the <see cref="T:CivModel.Production"/> object
</summary>
<param name="owner">The player who owns the <see cref="T:CivModel.Production"/> object.</param>
<returns>the created <see cref="T:CivModel.Production"/> object</returns>
</member>
<member name="T:CivModel.Production">
<summary>
An abstract class represents a production.
</summary>
</member>
<member name="P:CivModel.Production.Factory">
<summary>
The factory object of this production kind.
</summary>
</member>
<member name="P:CivModel.Production.Owner">
<summary>
The player who owns this production.
</summary>
</member>
<member name="P:CivModel.Production.TotalCost">
<summary>
The total cost to finish this production.
</summary>
</member>
<member name="P:CivModel.Production.CapacityPerTurn">
<summary>
The maximum labor which can put into this production per turn.
</summary>
</member>
<member name="P:CivModel.Production.LaborInputed">
<summary>
The total labor inputed so far.
</summary>
</member>
<member name="P:CivModel.Production.EstimatedLaborInputing">
<summary>
This property is updated by <see cref="M:CivModel.Player.EstimateLaborInputing"/>.
You must call that function before use this property.
</summary>
</member>
<member name="P:CivModel.Production.Completed">
<summary>
Whether this production is completed.
</summary>
</member>
<member name="M:CivModel.Production.#ctor(CivModel.IProductionFactory,CivModel.Player,System.Double,System.Double)">
<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="totalCost"><see cref="P:CivModel.Production.TotalCost"/> of the production</param>
<param name="capacityPerTurn"><see cref="P:CivModel.Production.CapacityPerTurn"/> of the production.</param>
<exception cref="T:System.ArgumentException">totalCost is not positive</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacityPerTurn"/> is not in [0, <see cref="P:CivModel.Production.TotalCost"/>]</exception>
<exception cref="T:System.ArgumentNullException">
<paramref name="factory"/> is <c>null</c>
or
<paramref name="owner"/> is <c>null</c>
</exception>
</member>
<member name="M:CivModel.Production.GetAvailableInputLabor(System.Double)">
<summary>
check how much labor is inputed into this production in this turn
</summary>
<param name="labor">labor amount which you want to put</param>
<returns>maximum labor amount possible to put, less than <paramref name="labor"/></returns>
</member>
<member name="M:CivModel.Production.InputLabor(System.Double)">
<summary>
input labor into this production
</summary>
<param name="labor">labor amount to input</param>
<returns>labor amount which is really used. it can be different from the parameter.</returns>
</member>
<member name="M:CivModel.Production.IsPlacable(CivModel.Terrain.Point)">
<summary>
Determines whether the production result is placable at the specified point.
</summary>
<param name="point">The point to test to place the production result.</param>
<returns>
<c>true</c> if the production is placable; otherwise, <c>false</c>.
</returns>
</member>
<member name="M:CivModel.Production.Place(CivModel.Terrain.Point)">
<summary>
Places the production result at the specified point.
</summary>
<param name="point">The point to place the production result.</param>
<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.Terrain">
<summary>
Represents a terrain of a game.
</summary>
</member>
<member name="T:CivModel.Terrain.Point">
<summary>
Represents one tile of a <see cref="P:CivModel.Terrain.Point.Terrain"/>.
</summary>
</member>
<member name="P:CivModel.Terrain.Point.Terrain">
<summary>
The <see cref="P:CivModel.Terrain.Point.Terrain"/> object.
</summary>
</member>
<member name="P:CivModel.Terrain.Point.Position">
<summary>
The <see cref="P:CivModel.Terrain.Point.Position"/> where this tile is.
</summary>
</member>
<member name="P:CivModel.Terrain.Point.Type">
<summary>
<see cref="T:CivModel.TerrainType"/> of the tile.
</summary>
</member>
<member name="P:CivModel.Terrain.Point.TileOwner">
<summary>
<see cref="T:CivModel.Player"/> which owns this tile. If no one owns this tile, <c>null</c>.
</summary>
<remarks>
The setter of this property is wrapper of <see cref="M:CivModel.Player.AddTerritory(CivModel.Terrain.Point)"/> and <see cref="M:CivModel.Player.RemoveTerritory(CivModel.Terrain.Point)"/>.
See these methods for more details and throwable exceptions.
</remarks>
<seealso cref="M:CivModel.Player.AddTerritory(CivModel.Terrain.Point)"/>
<seealso cref="M:CivModel.Player.RemoveTerritory(CivModel.Terrain.Point)"/>
</member>
<member name="P:CivModel.Terrain.Point.Unit">
<summary>
The <see cref="P:CivModel.Terrain.Point.Unit"/> placed at the tile.
</summary>
</member>
<member name="P:CivModel.Terrain.Point.TileBuilding">
<summary>
The <see cref="P:CivModel.Terrain.Point.TileBuilding"/> placed at the tile.
</summary>
</member>
<member name="M:CivModel.Terrain.Point.#ctor(CivModel.Terrain,CivModel.Position)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.Terrain.Point"/> struct.
</summary>
<param name="terrain">The terrain object.</param>
<param name="pos">The position where a tile will be.</param>
<exception cref="T:System.ArgumentException"><paramref name="pos"/> is invalid.</exception>
</member>
<member name="M:CivModel.Terrain.Point.ToString">
<summary>
Returns a <see cref="T:System.String" /> that represents this instance.
</summary>
<returns>
A <see cref="T:System.String" /> that represents this instance.
</returns>
</member>
<member name="M:CivModel.Terrain.Point.op_Equality(CivModel.Terrain.Point,CivModel.Terrain.Point)">
<summary>
Implements the operator ==.
</summary>
<param name="lhs">The LHS.</param>
<param name="rhs">The RHS.</param>
<returns>
The result of the operator.
</returns>
</member>
<member name="M:CivModel.Terrain.Point.op_Inequality(CivModel.Terrain.Point,CivModel.Terrain.Point)">
<summary>
Implements the operator !=.
</summary>
<param name="lhs">The LHS.</param>
<param name="rhs">The RHS.</param>
<returns>
The result of the operator.
</returns>
</member>
<member name="M:CivModel.Terrain.Point.Equals(System.Object)">
<summary>
Determines whether the specified <see cref="T:System.Object" />, is equal to this instance.
</summary>
<param name="obj">The <see cref="T:System.Object" /> to compare with this instance.</param>
<returns>
<c>true</c> if the specified <see cref="T:System.Object" /> is equal to this instance; otherwise, <c>false</c>.
</returns>
</member>
<member name="M:CivModel.Terrain.Point.GetHashCode">
<summary>
Returns a hash code for this instance.
</summary>
<returns>
A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
</returns>
</member>
<member name="M:CivModel.Terrain.Point.Adjacents">
<summary>
get adjacent points, in clockwise order.
</summary>
<remarks>
Get the array of the adjacent points in clockwise order.
If the position is invalid, the value is null.
A first element of the array is the left one.
1 2
0 pt 3
5 4
</remarks>
<returns>an array of the adjacent points</returns>
</member>
<member name="P:CivModel.Terrain.Width">
<summary>
The width of this terrain.
</summary>
</member>
<member name="P:CivModel.Terrain.Height">
<summary>
The height of this terrain.
</summary>
</member>
<member name="M:CivModel.Terrain.#ctor(System.Int32,System.Int32)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.Terrain"/> class.
</summary>
<param name="width">The width of a terrain.</param>
<param name="height">The height of a terrain.</param>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="width"/> is not positive
or
<paramref name="height"/> is not positive
</exception>
</member>
<member name="M:CivModel.Terrain.GetPoint(System.Int32,System.Int32)">
<summary>
Gets the <see cref="T:CivModel.Terrain.Point"/> from physical coordinates.
</summary>
<param name="x">X in physical coordinate.</param>
<param name="y">Y in physical coordinate.</param>
<returns>the <see cref="T:CivModel.Terrain.Point"/> object</returns>
<exception cref="T:System.ArgumentException">coordinate is invalid.</exception>
</member>
<member name="M:CivModel.Terrain.GetPoint(System.Int32,System.Int32,System.Int32)">
<summary>
Gets the <see cref="T:CivModel.Terrain.Point"/> from logical coordinates.
</summary>
<param name="a">A in logical coordinate.</param>
<param name="b">B in logical coordinate.</param>
<param name="c">C in logical coordinate.</param>
<returns>the <see cref="T:CivModel.Terrain.Point"/> object</returns>
<exception cref="T:System.ArgumentException">coordinate is invalid.</exception>
</member>
<member name="M:CivModel.Terrain.GetPoint(CivModel.Position)">
<summary>
Gets the <see cref="T:CivModel.Terrain.Point"/> from <see cref="T:CivModel.Position"/>
</summary>
<param name="pos">The <see cref="T:CivModel.Position"/> object.</param>
<returns>the <see cref="T:CivModel.Terrain.Point"/> objec</returns>
</member>
<member name="M:CivModel.Terrain.PlaceObject(CivModel.TileObject)">
<summary>
this function is used by the setter of <see cref="P:CivModel.TileObject.PlacedPoint"/>.
In general case you should use <see cref="P:CivModel.TileObject.PlacedPoint"/> instead.
</summary>
</member>
<member name="M:CivModel.Terrain.UnplaceObject(CivModel.TileObject,CivModel.Terrain.Point)">
<summary>
this function is used by the setter of <see cref="P:CivModel.TileObject.PlacedPoint"/>.
In general case you should use <see cref="P:CivModel.TileObject.PlacedPoint"/> instead.
</summary>
</member>
<member name="M:CivModel.Terrain.IsValidPosition(CivModel.Position)">
<summary>
Determines whether the specified position is vaild.
</summary>
<param name="pos">The <see cref="T:CivModel.Position"/> object.</param>
<returns>
<c>true</c> if the specified position is valid; otherwise, <c>false</c>.
</returns>
</member>
<member name="T:CivModel.TerrainType">
<summary>
The type of a tile of <see cref="T:CivModel.Terrain"/>.
</summary>
</member>
<member name="F:CivModel.TerrainType.Plain">
<summary>
[plain] Terrain Type.
</summary>
</member>
<member name="F:CivModel.TerrainType.Ocean">
<summary>
[Ocean] Terrain Type.
</summary>
</member>
<member name="F:CivModel.TerrainType.Mount">
<summary>
[Mount] Terrain Type.
</summary>
</member>
<member name="F:CivModel.TerrainType.Forest">
<summary>
[Forest] Terrain Type.
</summary>
</member>
<member name="F:CivModel.TerrainType.Swamp">
<summary>
[Swamp] Terrain Type.
</summary>
</member>
<member name="F:CivModel.TerrainType.Tundra">
<summary>
[Tundra] Terrain Type.
</summary>
</member>
<member name="F:CivModel.TerrainType.Ice">
<summary>
[Ice] Terrain Type.
</summary>
</member>
<member name="F:CivModel.TerrainType.Hill">
<summary>
[Hill] Terrain Type.
</summary>
</member>
<member name="T:CivModel.TileBuilding">
<summary>
Represents a building which is an actor.
</summary>
<seealso cref="T:CivModel.Actor" />
<seealso cref="T:CivModel.InteriorBuilding"/>
</member>
<member name="P:CivModel.TileBuilding.MaxAP">
<summary>
The maximum AP. <c>0</c> by default.
</summary>
</member>
<member name="P:CivModel.TileBuilding.MoveAct">
<summary>
The action performing movement. <c>null</c> by default.
</summary>
</member>
<member name="M:CivModel.TileBuilding.#ctor(CivModel.Player,CivModel.Terrain.Point)">
<summary>
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="point">The tile where the object will be.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="owner"/> is <c>null</c>.</exception>
</member>
<member name="M:CivModel.TileBuilding.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>
</member>
<member name="T:CivModel.Game">
<summary>
Represents one civ game.
</summary>
</member>
<member name="F:CivModel.Game.Scheme">
<summary>
The scheme of this game.
</summary>
</member>
<member name="P:CivModel.Game.GuidManager">
<summary>
The manager object of <see cref="T:CivModel.IGuidTaggedObject"/>.
This property is used by model extension modules.
</summary>
</member>
<member name="P:CivModel.Game.Terrain">
<summary>
<see cref="P:CivModel.Game.Terrain"/> of this game.
</summary>
</member>
<member name="P:CivModel.Game.Players">
<summary>
The players of this game.
</summary>
</member>
<member name="P:CivModel.Game.SubTurnNumber">
<summary>
The subturn number.
</summary>
<remarks>
Subturn represents a part of turn, dedicated to each player.
</remarks>
</member>
<member name="P:CivModel.Game.TurnNumber">
<summary>
The turn number.
</summary>
</member>
<member name="P:CivModel.Game.IsInsideTurn">
<summary>
Gets a value indicating whether this game is inside a turn.
</summary>
</member>
<member name="P:CivModel.Game.PlayerNumberInTurn">
<summary>
Gets the index of <see cref="P:CivModel.Game.PlayerInTurn"/>.
</summary>
</member>
<member name="P:CivModel.Game.PlayerInTurn">
<summary>
The player who plays in this turn.
</summary>
</member>
<member name="F:CivModel.Game._guidSaveFormat">
<summary>
See remark section of <see cref="M:System.Guid.ParseExact(System.String,System.String)"/>.
</summary>
</member>
<member name="M:CivModel.Game.#ctor(System.Int32,System.Int32,System.Int32,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>
<exception cref="T:System.ArgumentException">
<paramref name="width"/> is not positive
or
<paramref name="height"/> is not positive
or
<paramref name="numOfPlayer"/> is not positive
or
parameter is not equal to default value of scheme, while scheme forces to be.
</exception>
</member>
<member name="M:CivModel.Game.#ctor(System.String,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})">
<summary>
Initializes a new instance of the <see cref="T:CivModel.Game"/> class, by loading a existing save file.
</summary>
<param name="saveFile">The path of the save file.</param>
<param name="schemeFactories">the candidates of factories for <see cref="T:CivModel.IGameScheme"/> of the game.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="schemeFactories"/> is <c>null</c>.</exception>
<exception cref="T:System.IO.InvalidDataException">
save file is invalid
or
there is no <see cref="T:CivModel.IGameSchemeFactory"/> for this save file.
</exception>
<remarks>
This constructor uses <see cref="M:System.IO.File.OpenText(System.String)"/>.
See the list of the exceptions <see cref="M:System.IO.File.OpenText(System.String)"/> may throw.
</remarks>
</member>
<member name="M:CivModel.Game.Save(System.String)">
<summary>
Saves current status of the game to the specified save file.
</summary>
<param name="saveFile">The path of the save file.</param>
</member>
<member name="M:CivModel.Game.StartTurn">
<summary>
Starts the turn. If the game is loaded from a save file and not resumed, Resume the game.
</summary>
<remarks>
This method also resumes the game loaded from a save file. In this case, Turn/Subturn does not change.
</remarks>
<exception cref="T:System.InvalidOperationException">this game is inside turn yet</exception>
</member>
<member name="M:CivModel.Game.EndTurn">
<summary>
Ends the turn.
</summary>
<exception cref="T:System.InvalidOperationException">the turn is not started yet</exception>
</member>
<member name="T:CivModel.BattleResult">
<summary>
The result of a battle. This is used by <see cref="M:CivModel.Actor.AttackTo(CivModel.Actor)"/> and <see cref="M:CivModel.Actor.RangedAttackTo(CivModel.Actor)"/>.
</summary>
</member>
<member name="F:CivModel.BattleResult.Draw">
<summary>
Indicating that battle result is draw.
</summary>
</member>
<member name="F:CivModel.BattleResult.Victory">
<summary>
Indicating that battle result is victory.
</summary>
</member>
<member name="F:CivModel.BattleResult.Defeated">
<summary>
Indicating that battle result is defeated.
</summary>
</member>
<member name="T:CivModel.Actor">
<summary>
An absract class represents the <see cref="T:CivModel.TileObject"/> which can have actions and action point (AP).
</summary>
<seealso cref="T:CivModel.TileObject" />
<seealso cref="T:CivModel.ITurnObserver"/>
</member>
<member name="P:CivModel.Actor.Owner">
<summary>
The player who owns this actor.
</summary>
</member>
<member name="P:CivModel.Actor.MaxAP">
<summary>
The maximum AP.
</summary>
</member>
<member name="P:CivModel.Actor.RemainAP">
<summary>
The remaining AP. It must be in [0, <see cref="P:CivModel.Actor.MaxAP"/>].
It is reset to <see cref="P:CivModel.Actor.MaxAP"/> when <see cref="M:CivModel.Actor.PreTurn"/> is called.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException"><see cref="P:CivModel.Actor.RemainAP"/> is not in [0, <see cref="P:CivModel.Actor.MaxAP"/>]</exception>
</member>
<member name="P:CivModel.Actor.SkipFlag">
<summary>
The flag indicating this actor is skipped in this turn. This flag is used by Presenter module.
</summary>
</member>
<member name="P:CivModel.Actor.MoveAct">
<summary>
The action performing movement. <c>null</c> if this actor cannot do.
</summary>
</member>
<member name="P:CivModel.Actor.HoldingAttackAct">
<summary>
The action performing movement. <c>null</c> if this actor cannot do.
</summary>
</member>
<member name="P:CivModel.Actor.MovingAttackAct">
<summary>
The action performing moving attack. <c>null</c> if this actor cannot do.
</summary>
</member>
<member name="P:CivModel.Actor.SpecialActs">
<summary>
The list of special actions. <c>null</c> if not exists.
</summary>
</member>
<member name="P:CivModel.Actor.AttackPower">
<summary>
The attack power.
</summary>
</member>
<member name="P:CivModel.Actor.DefencePower">
<summary>
The defence power.
</summary>
</member>
<member name="P:CivModel.Actor.MaxHP">
<summary>
The maximum HP. <c>0</c> if this actor is not a combattant.
</summary>
</member>
<member name="P:CivModel.Actor.MaxHealPerTurn">
<summary>
The maximum heal per turn.
</summary>
<seealso cref="P:CivModel.Actor.RemainHP" />
</member>
<member name="P:CivModel.Actor.RemainHP">
<summary>
The remaining AP. It must be in [0, <see cref="P:CivModel.Actor.MaxHP"/>].
If this is lower than <see cref="P:CivModel.Actor.MaxHP"/>,
this value is increased to min{<see cref="P:CivModel.Actor.MaxHP"/>, value + <see cref="P:CivModel.Actor.MaxHealPerTurn"/>}
when <see cref="M:CivModel.Actor.PreTurn"/> is called.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException"><see cref="P:CivModel.Actor.RemainHP"/> is not in [0, <see cref="P:CivModel.Actor.MaxHP"/>]</exception>
</member>
<member name="M:CivModel.Actor.#ctor(CivModel.Player,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="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>
</member>
<member name="M:CivModel.Actor.ChangeOwner(CivModel.Player)">
<summary>
Changes <see cref="P:CivModel.Actor.Owner"/>. <see cref="M:CivModel.Actor.OnBeforeChangeOwner(CivModel.Player)"/> is called before the property is changed.
</summary>
<param name="newOwner">The new owner.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="newOwner"/> is null.</exception>
</member>
<member name="M:CivModel.Actor.OnBeforeChangeOwner(CivModel.Player)">
<summary>
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.Actor.Destroy">
<summary>
Destroys this actor. <see cref="M:CivModel.Actor.OnBeforeDestroy"/> is called before the actor is destroyed.
</summary>
<remarks>
<strong>postcondition</strong>:
<c><see cref="P:CivModel.TileObject.PlacedPoint"/> == null &amp;&amp; <see cref="P:CivModel.Actor.Owner"/> == null</c>
</remarks>
</member>
<member name="M:CivModel.Actor.OnBeforeDestroy">
<summary>
Called before [destroy], by <see cref="M:CivModel.Actor.Destroy"/>
</summary>
</member>
<member name="M:CivModel.Actor.CanConsumeAP(System.Int32)">
<summary>
Determines whether this actor can consume the specified amount of AP.
</summary>
<param name="amount">The amount of AP</param>
<returns>
<c>true</c> if this actor can consume the specified amount of AP; otherwise, <c>false</c>.
</returns>
<exception cref="T:System.ArgumentException"><paramref name="amount"/> is negative</exception>
</member>
<member name="M:CivModel.Actor.ConsumeAP(System.Int32)">
<summary>
Consumes the specified amount of AP.
</summary>
<param name="amount">The amount of AP</param>
<exception cref="T:System.ArgumentException">
<paramref name="amount"/> is negative
or
<paramref name="amount"/> is bigger than <see cref="P:CivModel.Actor.RemainAP"/>
</exception>
</member>
<member name="M:CivModel.Actor.ConsumeAllAP">
<summary>
Consumes all of AP which this actor has.
</summary>
<seealso cref="M:CivModel.Actor.ConsumeAP(System.Int32)"/>
</member>
<member name="M:CivModel.Actor.Heal(System.Double)">
<summary>
Heals HP of this actor with the specified amount.
</summary>
<param name="amount">The amount to heal.</param>
</member>
<member name="M:CivModel.Actor.AttackTo(CivModel.Actor)">
<summary>
Melee-Attack to another <see cref="T:CivModel.Actor"/>.
</summary>
<param name="opposite">The opposite.</param>
<returns>
<see cref="T:CivModel.BattleResult"/> indicating the result of this battle.
if <paramref name="opposite"/> has died, <see cref="F:CivModel.BattleResult.Victory"/>.
if this object has died, <see cref="F:CivModel.BattleResult.Defeated"/>.
if both have died or survived, <see cref="F:CivModel.BattleResult.Draw"/>.
</returns>
<seealso cref="M:CivModel.Actor.RangedAttackTo(CivModel.Actor)"/>
</member>
<member name="M:CivModel.Actor.RangedAttackTo(CivModel.Actor)">
<summary>
Ranged-Attack to another <see cref="T:CivModel.Actor"/>.
</summary>
<param name="opposite">The opposite.</param>
<returns>
<see cref="T:CivModel.BattleResult"/> indicating the result of this battle.
if <paramref name="opposite"/> has died, <see cref="F:CivModel.BattleResult.Victory"/>.
otherwise, <see cref="F:CivModel.BattleResult.Draw"/>.
</returns>
<seealso cref="M:CivModel.Actor.AttackTo(CivModel.Actor)"/>
</member>
<member name="M:CivModel.Actor.GetRequiredAPToMove(CivModel.Terrain.Point)">
<summary>
Gets the required AP to move to the specified target point from the near.
</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>
</member>
<member name="M:CivModel.Actor.Die(CivModel.Player)">
<summary>
Make this actor die. This function calls <see cref="M:CivModel.Actor.OnDie(CivModel.Player)"/>.
</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.Actor.OnDie(CivModel.Player)">
<summary>
Called when [die] by <see cref="M:CivModel.Actor.Die(CivModel.Player)"/>.
The default implementation calls <see cref="M:CivModel.Actor.Destroy"/>.
</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.Actor.PreTurn">
<summary>
Called before a turn.
</summary>
</member>
<member name="M:CivModel.Actor.PostTurn">
<summary>
Called after a turn.
</summary>
</member>
<member name="M:CivModel.Actor.PrePlayerSubTurn(CivModel.Player)">
<summary>
Called before a sub turn.
</summary>
<param name="playerInTurn">The player which the sub turn is dedicated to.</param>
</member>
<member name="M:CivModel.Actor.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.TileTag">
<summary>
The value indicating the kind of <see cref="T:CivModel.TileObject"/>.
</summary>
</member>
<member name="F:CivModel.TileTag.Unit">
<summary>
Tag for <see cref="F:CivModel.TileTag.Unit"/> object
</summary>
</member>
<member name="F:CivModel.TileTag.TileBuilding">
<summary>
Tag for <see cref="F:CivModel.TileTag.TileBuilding"/> object
</summary>
</member>
<member name="T:CivModel.TileObject">
<summary>
Represents an object which can be placed on <see cref="T:CivModel.Terrain.Point"/>.
</summary>
</member>
<member name="P:CivModel.TileObject.Guid">
<summary>
The unique identifier of this class.
</summary>
</member>
<member name="P:CivModel.TileObject.TileTag">
<summary>
The value indicating the kind of this object.
</summary>
</member>
<member name="P:CivModel.TileObject.PlacedPoint">
<summary>
The placed point of this object. <c>null</c> if not placed.
</summary>
</member>
<member name="M:CivModel.TileObject.#ctor(CivModel.Terrain.Point,CivModel.TileTag)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.TileObject"/> class.
</summary>
<param name="point">The tile where the object will be.</param>
<param name="tileTag">The <see cref="P:CivModel.TileObject.TileTag"/> of the object.</param>
</member>
<member name="M:CivModel.TileObject.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>
</member>
<member name="T:CivModel.Player">
<summary>
Represents a player of a game.
</summary>
<seealso cref="T:CivModel.ITurnObserver"/>
</member>
<member name="P:CivModel.Player.Gold">
<summary>
The gold of this player. This value is not negative.
</summary>
<seealso cref="P:CivModel.Player.GoldIncome"/>
</member>
<member name="P:CivModel.Player.GoldIncome">
<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.GoldNetIncome"/>
<seealso cref="P:CivModel.Player.TaxRate"/>
<seealso cref="P:CivModel.IGameScheme.GoldCoefficient"/>
</member>
<member name="P:CivModel.Player.GoldNetIncome">
<summary>
The net income of gold.
</summary>
<seealso cref="P:CivModel.Player.GoldIncome"/>
</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.Labor">
<summary>
The labor per turn of this player. It is equal to sum of all <see cref="P:CivModel.Common.CityCenter.Labor"/> of cities of this player.
</summary>
<seealso cref="P:CivModel.Common.CityCenter.Labor"/>
</member>
<member name="P:CivModel.Player.Population">
<summary>
The whole population which this player has. It is equal to sum of all <see cref="P:CivModel.Common.CityCenter.Population"/> of cities of this player.
</summary>
<seealso cref="P:CivModel.Common.CityCenter.Population"/>
</member>
<member name="P:CivModel.Player.TaxRate">
<summary>
The tax rate of this player. It affects <see cref="P:CivModel.Player.GoldIncome"/> and <see cref="P:CivModel.Player.BasicEconomicRequire"/>.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException"><see cref="P:CivModel.Player.TaxRate"/> is not in [0, 1]</exception>
</member>
<member name="P:CivModel.Player.BasicEconomicRequire">
<summary>
The basic economic gold requirement.
</summary>
<seealso cref="P:CivModel.Player.EconomicInvestment"/>
</member>
<member name="P:CivModel.Player.EconomicInvestment">
<summary>
The amount of gold for economic investment.
</summary>
<seealso cref="P:CivModel.Player.BasicEconomicRequire"/>
</member>
<member name="P:CivModel.Player.BasicResearchRequire">
<summary>
The basic research gold requirement.
</summary>
<seealso cref="P:CivModel.Player.ResearchInvestment"/>
</member>
<member name="P:CivModel.Player.ResearchInvestment">
<summary>
The amount of gold for research investment.
</summary>
<seealso cref="P:CivModel.Player.BasicResearchRequire"/>
</member>
<member name="P:CivModel.Player.Units">
<summary>
The list of units of this player.
</summary>
<seealso cref="T:CivModel.Unit"/>
</member>
<member name="P:CivModel.Player.Cities">
<summary>
The list of cities of this player.
</summary>
<seealso cref="T:CivModel.Common.CityCenter"/>
</member>
<member name="P:CivModel.Player.Production">
<summary>
The list of the not-finished productions of this player.
</summary>
<seealso cref="P:CivModel.Player.Deployment"/>
</member>
<member name="P:CivModel.Player.Deployment">
<summary>
The list of the ready-to-deploy productions of this player.
</summary>
<seealso cref="P:CivModel.Player.Production"/>
</member>
<member name="P:CivModel.Player.AdditionalAvailableProduction">
<summary>
The list of additional available productions of this player.
This list will added to the calculation of <see cref="M:CivModel.Player.GetAvailableProduction"/>
</summary>
</member>
<member name="P:CivModel.Player.EstimatedUsedLabor">
<summary>
The estimated used labor in this turn.
</summary>
<remarks>
This property is updated by <see cref="M:CivModel.Player.EstimateLaborInputing"/>.
You must call that function before use this property.
</remarks>
</member>
<member name="P:CivModel.Player.Territory">
<summary>
The list of tiles which this player owns as territory.
</summary>
</member>
<member name="P:CivModel.Player.IsDefeated">
<summary>
Whether this player is defeated.
</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)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.Player"/> class.
</summary>
<param name="game">The game which this player participates.</param>
</member>
<member name="M:CivModel.Player.AddUnitToList(CivModel.Unit)">
<summary>
this function is used by <see cref="T:CivModel.Unit"/> class
</summary>
<param name="unit">unit to add</param>
</member>
<member name="M:CivModel.Player.RemoveUnitFromList(CivModel.Unit)">
<summary>
this function is used by <see cref="T:CivModel.Unit"/> class
</summary>
<param name="unit">unit to remove</param>
</member>
<member name="M:CivModel.Player.AddCityToList(CivModel.Common.CityCenter)">
<summary>
this function is used by <see cref="T:CivModel.Common.CityCenter"/> class
</summary>
<param name="city">city to add</param>
</member>
<member name="M:CivModel.Player.RemoveCityFromList(CivModel.Common.CityCenter)">
<summary>
this function is used by <see cref="T:CivModel.Common.CityCenter"/> class
</summary>
<param name="city">city to remove</param>
</member>
<member name="M:CivModel.Player.GetAvailableProduction">
<summary>
Gets the list of available productions of this player.
</summary>
<remarks>
The return value is the result of
merging the result of <see cref="P:CivModel.Common.CityCenter.AvailableProduction"/> of all cities of this player
and <see cref="P:CivModel.Player.AdditionalAvailableProduction"/>.
</remarks>
<returns>the list of available productions</returns>
</member>
<member name="M:CivModel.Player.AddTerritory(CivModel.Terrain.Point)">
<summary>
Adds the territory of this player.
</summary>
<param name="pt">The tile to be in the territory.</param>
<exception cref="T:System.InvalidOperationException">a <see cref="T:CivModel.TileBuilding"/> of another player is at <paramref name="pt"/></exception>
</member>
<member name="M:CivModel.Player.RemoveTerritory(CivModel.Terrain.Point)">
<summary>
Removes the territory of this player.
</summary>
<param name="pt">The tile to be out of the territory.</param>
<exception cref="T:System.ArgumentException"><paramref name="pt"/> is not in the territoriy of this player</exception>
<exception cref="T:System.InvalidOperationException">the tile where a <see cref="T:CivModel.TileBuilding"/> is cannot be removed from the territory</exception>
</member>
<member name="M:CivModel.Player.PreTurn">
<summary>
Called before a turn.
</summary>
</member>
<member name="M:CivModel.Player.PostTurn">
<summary>
Called after a turn.
</summary>
</member>
<member name="M:CivModel.Player.PrePlayerSubTurn(CivModel.Player)">
<summary>
Called before a sub turn.
</summary>
<param name="playerInTurn">The player which the sub turn is dedicated to.</param>
</member>
<member name="M:CivModel.Player.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="M:CivModel.Player.EstimateLaborInputing">
<summary>
Update <see cref="P:CivModel.Production.EstimatedLaborInputing"/> property of all productions
and <see cref="P:CivModel.Player.EstimatedUsedLabor"/> property of this player.
</summary>
</member>
<member name="T:CivModel.Unit">
<summary>
Represents an unit.
</summary>
<seealso cref="T:CivModel.Actor" />
</member>
<member name="P:CivModel.Unit.MoveAct">
<summary>
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)">
<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="point">The tile where the object will be.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="owner"/> is <c>null</c>.</exception>
</member>
<member name="M:CivModel.Unit.OnBeforeChangeOwner(CivModel.Player)">
<summary>
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.Unit.OnBeforeDestroy">
<summary>
Called before [destroy], by <see cref="M:CivModel.Actor.Destroy" />
</summary>
</member>
<member name="T:CivModel.ITileObjectProductionFactory">
<summary>
The factory interface of <see cref="T:CivModel.TileObjectProduction"/>.
This interface additionally provides <see cref="M:CivModel.ITileObjectProductionFactory.IsPlacable(CivModel.TileObjectProduction,CivModel.Terrain.Point)"/>
and <see cref="M:CivModel.ITileObjectProductionFactory.CreateTileObject(CivModel.Player,CivModel.Terrain.Point)"/> methods.
</summary>
<seealso cref="T:CivModel.IProductionFactory" />
</member>
<member name="M:CivModel.ITileObjectProductionFactory.IsPlacable(CivModel.TileObjectProduction,CivModel.Terrain.Point)">
<summary>
Determines whether the production result is placable at the specified point.
</summary>
<param name="production">The production.</param>
<param name="point">The point to test to place the production result.</param>
<returns>
<c>true</c> if the production is placable; otherwise, <c>false</c>.
</returns>
</member>
<member name="M:CivModel.ITileObjectProductionFactory.CreateTileObject(CivModel.Player,CivModel.Terrain.Point)">
<summary>
Creates the <see cref="T:CivModel.TileObject"/> which is the production result.
</summary>
<param name="owner">The <see cref="T:CivModel.Player"/> who owns the result.</param>
<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.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)">
<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="totalCost"><see cref="P:CivModel.Production.TotalCost"/> of the production</param>
<param name="capacityPerTurn"><see cref="P:CivModel.Production.CapacityPerTurn"/> of the production.</param>
<exception cref="T:System.ArgumentException">totalCost is not positive</exception>
<exception cref="T:System.ArgumentOutOfRangeException"><paramref name="capacityPerTurn"/> is not in [0, <see cref="P:CivModel.Production.TotalCost"/>]</exception>
<exception cref="T:System.ArgumentNullException">
<paramref name="factory"/> is <c>null</c>
or
<paramref name="owner"/> is <c>null</c>
</exception>
</member>
<member name="M:CivModel.TileObjectProduction.IsPlacable(CivModel.Terrain.Point)">
<summary>
Determines whether the production result is placable at the specified point.
</summary>
<param name="point">The point to test to place the production result.</param>
<returns>
<c>true</c> if the production is placable; otherwise, <c>false</c>.
</returns>
</member>
<member name="M:CivModel.TileObjectProduction.Place(CivModel.Terrain.Point)">
<summary>
Places the production result at the specified point.
</summary>
<param name="point">The point to place the production result.</param>
<exception cref="T:System.InvalidOperationException">production is not completed yet</exception>
<exception cref="T:System.ArgumentException">point is invalid</exception>
</member>
</members>
</doc>
fileFormatVersion: 2
guid: bdf0fa739872652438abde0f4b5f6f2a
timeCreated: 1516875551
guid: 2413c1b1e7b93b84a957f43c0249b262
timeCreated: 1518204162
licenseType: Free
MonoImporter:
TextScriptImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: f6fc0c038e7ce6640910e93606bc6076
timeCreated: 1518204165
licenseType: Free
DefaultImporter:
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.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"/> 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"/> 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="M:CivModel.Player.GetAvailableProduction"/>
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.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.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="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.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: c10ada295d908db498d79b64d9cff2c3
timeCreated: 1518204162
licenseType: Free
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &100100000
Prefab:
m_ObjectHideFlags: 1
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications: []
m_RemovedComponents: []
m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 1839775916168536}
m_IsPrefabParent: 1
--- !u!1 &1839775916168536
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4443529018794624}
- component: {fileID: 33096381128257470}
- component: {fileID: 23665916450649864}
m_Layer: 0
m_Name: hextile
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4443529018794624
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1839775916168536}
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: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &23665916450649864
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1839775916168536}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: 93b23d960c7fd2645bed567627e2e6db, type: 3}
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_StitchLightmapSeams: 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!33 &33096381128257470
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1839775916168536}
m_Mesh: {fileID: 4300000, guid: 93b23d960c7fd2645bed567627e2e6db, type: 3}
fileFormatVersion: 2
guid: 900341537233caf489d432cff5440dd3
timeCreated: 1518211537
licenseType: Free
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 9dd83cb44cef097419ada0fc7975a3a6
folderAsset: yes
timeCreated: 1518210032
licenseType: Free
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
# Blender v2.79 (sub 0) OBJ File: ''
# www.blender.org
mtllib hextile.mtl
o Cylinder
v 0.000000 -0.050000 -1.000000
v 0.000000 0.050000 -1.000000
v 0.866025 -0.050000 -0.500000
v 0.866025 0.050000 -0.500000
v 0.866025 -0.050000 0.500000
v 0.866025 0.050000 0.500000
v -0.000000 -0.050000 1.000000
v -0.000000 0.050000 1.000000
v -0.866025 -0.050000 0.500000
v -0.866025 0.050000 0.500000
v -0.866025 -0.050000 -0.500000
v -0.866025 0.050000 -0.500000
vn 0.5000 0.0000 -0.8660
vn 1.0000 0.0000 0.0000
vn 0.5000 0.0000 0.8660
vn -0.5000 0.0000 0.8660
vn 0.0000 1.0000 -0.0000
vn -1.0000 0.0000 0.0000
vn -0.5000 0.0000 -0.8660
vn 0.0000 -1.0000 0.0000
usemtl None
s off
f 1//1 2//1 4//1 3//1
f 3//2 4//2 6//2 5//2
f 5//3 6//3 8//3 7//3
f 7//4 8//4 10//4 9//4
f 4//5 2//5 12//5 10//5 8//5 6//5
f 9//6 10//6 12//6 11//6
f 11//7 12//7 2//7 1//7
f 1//8 3//8 5//8 7//8 9//8 11//8
fileFormatVersion: 2
guid: 93b23d960c7fd2645bed567627e2e6db
timeCreated: 1518210045
licenseType: Free
ModelImporter:
serializedVersion: 22
fileIDToRecycleName:
100000: default
100002: //RootNode
400000: default
400002: //RootNode
2100000: defaultMat
2300000: default
3300000: default
4300000: default
externalObjects: {}
materials:
importMaterials: 1
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 1
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
optimizeMeshForGPU: 1
keepQuads: 0
weldVertices: 1
preserveHierarchy: 0
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
importAnimation: 1
copyAvatar: 0
humanDescription:
serializedVersion: 2
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using CivModel;
using CivModel.Common;
public class CIVGameManager : MonoBehaviour {
public float outerRadius;
public float innerRadius;
public int width = 80;
public int height = 20;
public GameObject cellPrefab;
private GameObject[,] _cells;
// Use this for initialization
void Start() {
innerRadius = outerRadius * Mathf.Sqrt(3.0f) / 2;
}
// Update is called once per frame
void Update() {
}
void DrawMap() // Draw hexagonal tile map
{
for (int i = 0; i < width; i++)
{
for (int j = 0; j < height; j++)
{
Vector3 pos = new Vector3(2 * i * innerRadius, -j * outerRadius * 1.5f);
if (j % 2 != 0)
{
pos.x -= innerRadius;
}
_cells[i, j] = Instantiate(cellPrefab, pos, Quaternion.identity);
_cells[i, j].name = "(" + i + "," + j + ")";
}
}
}
}
fileFormatVersion: 2
guid: 3ce71f86ddf9be04dac73d95cd355f41
timeCreated: 1516875535
guid: 112f8b62e41ed9842a4ad52cdb5b87df
timeCreated: 1518204182
licenseType: Free
MonoImporter:
externalObjects: {}
......
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using CivPresenter;
using CivModel;
using CivModel.Common;
public class ManagementUIController : MonoBehaviour {
private static ManagementUIController managementUIController;
public Canvas managementUI;
public Button managementTab;
private LinkedList<Production> mProduction;
private LinkedList<Production> mDeployment;
private IReadOnlyList<IProductionFactory> facList;
//private IReadOnlyList<Player> mPlayers;
private GameObject gameManagerObject;
private CIVGameManager gameManager;
private Presenter mPresenter;
private Game mGame;
public List<GameObject> PQlist;
public List<GameObject> DQlist;
public List<GameObject> SQlist;
public GameObject proPrefab;
public GameObject depPrefab;
public GameObject productablePrefab; // prefab templates
public GameObject proQueue;
public GameObject depQueue;
public GameObject productableQueue;
public void SetManagementUI(bool val)
{
Debug.Log("manUI : " + val);
managementUI.enabled = val;
}
public void ManageButton() // Management tab on/off button
{
if (mPresenter.State == Presenter.States.Normal)
{
mPresenter.CommandProductUI();
if(mPresenter.State == Presenter.States.ProductUI)
{
List<GameObject> tempList = new List<GameObject>();
Debug.Log("SelectList startMaking");
mPresenter.CommandApply();
foreach(GameObject sq in SQlist)
{
Destroy(sq);
}
SQlist.Clear();
facList = mPresenter.AvailableProduction;
Debug.Log(mPresenter.AvailableProduction + " " + mPresenter.AvailableProduction.Count);
Debug.Log("facList : " + facList.Count);
Debug.Log("SelectList Updated");
foreach (IProductionFactory fac in facList)
{
var SPrefab = Instantiate(productablePrefab, new Vector3(0f, 0f, 0f), Quaternion.identity);
SPrefab.transform.SetParent(productableQueue.transform);
SPrefab.transform.localScale = new Vector3(1f, 1f, 1f);
SPrefab.transform.localPosition = new Vector3(0f, 0f, 0f);
tempList.Add(SPrefab.GetComponent<SelPrefab>().MakeItem(fac));
}
if(facList.Count == 0)
{
Debug.Log("SelectList null");
var SPrefab = Instantiate(productablePrefab, new Vector3(0f, 0f, 0f), Quaternion.identity);
SPrefab.transform.SetParent(productableQueue.transform);
SPrefab.transform.localScale = new Vector3(1f, 1f, 1f);
SPrefab.transform.localPosition = new Vector3(0f, 0f, 0f);
SPrefab.GetComponent<SelPrefab>().MakeItem();
tempList.Add(SPrefab);
}
SQlist = tempList;
mPresenter.CommandCancel();
MakeProductionQ();
MakeDeploymentQ();
foreach(GameObject sq in SQlist)
{
sq.GetComponent<SelPrefab>().SetButton(SQlist.IndexOf(sq));
}
foreach (GameObject dq in DQlist)
{
dq.GetComponent<DepPrefab>().SetButton(DQlist.IndexOf(dq));
}
}
}
else if (mPresenter.State == Presenter.States.ProductUI)
{
mPresenter.CommandCancel();
}
}
void Awake()
{
DontDestroyOnLoad(this);
if (managementUIController == null)
{
managementUIController = this;
}
else
{
Destroy(this);
}
}
void Start()
{
if (managementUIController == this)
{
gameManagerObject = CIVGameManager.GetGameManager();
gameManager = gameManagerObject.GetComponent<CIVGameManager>();
mPresenter = gameManager.GetPresenter();
mGame = mPresenter.Game;
//mPlayers = mGame.Players;
}
else
{
Destroy(this);
}
}
void Update()
{
mProduction = mPresenter.Game.PlayerInTurn.Production;
mDeployment = mPresenter.Game.PlayerInTurn.Deployment;
switch (mPresenter.State)//for debug
{
case CivPresenter.Presenter.States.ProductUI:
{
SetManagementUI(true);
break;
}
case CivPresenter.Presenter.States.ProductAdd:
{
SetManagementUI(true);
break;
}
default:
SetManagementUI(false);
break;
}
}
public void MakeProductionQ()
{
List<GameObject> tempList = new List<GameObject>();
Debug.Log("ProductionList startMaking");
foreach (GameObject pq in PQlist)
{
Destroy(pq);
}
PQlist.Clear();
mProduction = mGame.PlayerInTurn.Production;
Debug.Log("ProList : " + mProduction.Count);
Debug.Log("ProductionList Updated");
foreach (Production prod in mProduction)
{
var PPrefab = Instantiate(proPrefab, new Vector3(0f, 0f, 0f), Quaternion.identity);
PPrefab.transform.SetParent(proQueue.transform);
PPrefab.transform.localScale = new Vector3(1f, 1f, 1f);
PPrefab.transform.localPosition = new Vector3(0f, 0f, 0f);
tempList.Add(PPrefab.GetComponent<ProPrefab>().MakeItem(prod));
}
if (mProduction.Count == 0)
{
Debug.Log("ProductionList null");
var PPrefab = Instantiate(proPrefab, new Vector3(0f, 0f, 0f), Quaternion.identity);
PPrefab.transform.SetParent(proQueue.transform);
PPrefab.transform.localScale = new Vector3(1f, 1f, 1f);
PPrefab.transform.localPosition = new Vector3(0f, 0f, 0f);
PPrefab.GetComponent<ProPrefab>().MakeItem();
tempList.Add(PPrefab);
}
PQlist = tempList;
}
public void MakeDeploymentQ()
{
List<GameObject> tempList = new List<GameObject>();
Debug.Log("DeploymentList startMaking");
foreach (GameObject dq in DQlist)
{
Destroy(dq);
}
DQlist.Clear();
mDeployment = mGame.PlayerInTurn.Deployment;
Debug.Log("DepList : " + mDeployment.Count);
Debug.Log("DeploymentList Updated");
foreach (Production prod in mDeployment)
{
var DPrefab = Instantiate(depPrefab, new Vector3(0f, 0f, 0f), Quaternion.identity);
DPrefab.transform.SetParent(depQueue.transform);
DPrefab.transform.localScale = new Vector3(1f, 1f, 1f);
DPrefab.transform.localPosition = new Vector3(0f, 0f, 0f);
tempList.Add(DPrefab.GetComponent<DepPrefab>().MakeItem(prod));
}
if (mDeployment.Count == 0)
{
Debug.Log("DeploymentList null");
var DPrefab = Instantiate(depPrefab, new Vector3(0f, 0f, 0f), Quaternion.identity);
DPrefab.transform.SetParent(depQueue.transform);
DPrefab.transform.localScale = new Vector3(1f, 1f, 1f);
DPrefab.transform.localPosition = new Vector3(0f, 0f, 0f);
tempList.Add(DPrefab.GetComponent<DepPrefab>().MakeItem());
tempList.Add(DPrefab);
}
DQlist = tempList;
}
public static void PrefabsSetting()
{
//ProPrefab.SetPresenter();
DepPrefab.SetPresenter();
SelPrefab.SetPresenter();
}
public static ManagementUIController GetManagementUIController()
{
if(managementUIController == null)
{
Debug.Log("managementUIController not made");
throw new MissingComponentException();
}
return managementUIController;
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: 7e00ac4430b211b4992dbfe702a49536
folderAsset: yes
timeCreated: 1517989383
timeCreated: 1518212165
licenseType: Free
DefaultImporter:
externalObjects: {}
......
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using CivModel;
using CivModel.Common;
using CivPresenter;
public class DepPrefab : MonoBehaviour
{
private static Presenter presenter;
private static ManagementUIController uicontroller;
private Text[] textarguments;
private Image unitPrt;
private Button[] buttons;
// Use this for initialization
void Awake()
{
Debug.Log("call DepPre");
textarguments = gameObject.GetComponentsInChildren<Text>();
foreach (Image unt in gameObject.GetComponentsInChildren<Image>())
{
if (unt.name == "Portrait")
{
unitPrt = unt;
}
}
buttons = gameObject.GetComponentsInChildren<Button>();
}
void Start()
{
uicontroller = ManagementUIController.GetManagementUIController();
}
// Update is called once per frame
void Update()
{
}
public GameObject MakeItem(Production prod)
{
string nameofProduction = ProductionFactoryTraits.GetFactoryName(prod.Factory);
unitPrt.sprite = Resources.Load<Sprite>("Unit_portrait/" + nameofProduction + "_portrait");
foreach (Text txt in textarguments)
{
switch (txt.name)
{
case "UnitName":
txt.text = nameofProduction;
break;
}
}
return this.gameObject;
}
public GameObject MakeItem()
{
unitPrt.enabled = false;
foreach (Text txt in textarguments)
{
switch (txt.name)
{
case "UnitName":
txt.text = "비었음";
break;
}
}
return this.gameObject;
}
public void SetButton(int i)
{
foreach (Button but in buttons)
{
if (but.name == "Deploy")
{
but.onClick.AddListener(delegate () { DeployItem(i); });
}
}
}
public static void SetPresenter()
{
presenter = CIVGameManager.GetGameManager().GetComponent<CIVGameManager>().GetPresenter();
}
private void DeployItem(int i)
{
if (presenter.State == Presenter.States.ProductUI)
{
presenter.CommandNumeric(i);
presenter.CommandApply();
uicontroller.MakeProductionQ();
uicontroller.MakeDeploymentQ();
}
}
}
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using CivModel;
using CivModel.Common;
using CivPresenter;
public class ProPrefab : MonoBehaviour
{
//private static Presenter presenter;
private Text[] textarguments;
private Image unitPrt;
private Button[] buttons;
// Use this for initialization
void Awake()
{
Debug.Log("call ProPre");
textarguments = gameObject.GetComponentsInChildren<Text>();
foreach(Image unt in gameObject.GetComponentsInChildren<Image>())
{
if(unt.name == "Image")
{
unitPrt = unt;
}
}
}
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public GameObject MakeItem(Production prod)
{
string nameofProduction = ProductionFactoryTraits.GetFactoryName(prod.Factory);
unitPrt.sprite = Resources.Load<Sprite>("Unit_portrait/" + nameofProduction + "_portrait");
foreach (Text txt in textarguments)
{
switch(txt.name)
{
case "TurnsLeft":
txt.text = "?턴 이후 배치 가능.";
break;
case "UnitName":
txt.text = nameofProduction;
break;
case "GoldPer":
txt.text = "금 : 턴당 " + "?" + " (" + "?" + "/" + Convert.ToInt32(prod.TotalCost).ToString() + ")";
break;
case "LaborPer":
txt.text = "노동력 : 턴당 " + "?" + " (" + Convert.ToInt32(prod.LaborInputed).ToString() + "/" + Convert.ToInt32(prod.TotalCost).ToString() + ")";
break;
}
}
return this.gameObject;
}
public GameObject MakeItem()
{
unitPrt.enabled = false;
foreach (Text txt in textarguments)
{
switch (txt.name)
{
case "TurnsLeft":
txt.text = "비었음";
break;
case "UnitName":
txt.text = "B었음";
break;
}
}
return this.gameObject;
}
public void SetButton(int i)
{
}
/*public static void SetPresenter()
{
presenter = CIVGameManager.GetGameManager().GetComponent<CIVGameManager>().GetPresenter();
}*/
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using CivModel;
using CivModel.Common;
using CivPresenter;
public class SelPrefab : MonoBehaviour {
private static Presenter presenter;
private static ManagementUIController uicontroller;
private Text unitName;
private Image unitPrt;
private Text theNumberofProduce;
private Button[] buttons;
// Use this for initialization
void Awake () {
Debug.Log("call SelPre");
unitName = gameObject.GetComponentsInChildren<Text>()[1];
unitName.text = "초기";
foreach (Image unt in gameObject.GetComponentsInChildren<Image>())
{
if (unt.name == "Portrait")
{
unitPrt = unt;
}
}
buttons = gameObject.GetComponentsInChildren<Button>();
theNumberofProduce = gameObject.GetComponentsInChildren<Text>()[2];
}
void Start()
{
uicontroller = ManagementUIController.GetManagementUIController();
}
// Update is called once per frame
void Update () {
}
public GameObject MakeItem(IProductionFactory fact)
{
Debug.Log("Selection Queue Item Made");
string nameofFactory = ProductionFactoryTraits.GetFactoryName(fact);
unitPrt.sprite = Resources.Load<Sprite>("Unit_portrait/" + nameofFactory +"_portrait");
unitName.text = nameofFactory;
theNumberofProduce.text = "X 1";
return this.gameObject;
}
public GameObject MakeItem()
{
unitPrt.enabled = false;
Debug.Log("NULL Selection Queue");
unitName.text = "생산 가능 유닛 없음";
unitName.fontSize = 10;
theNumberofProduce.text = "";
return this.gameObject;
}
public void SetButton(int i)
{
foreach (Button but in buttons)
{
if (but.name == "Produce")
{
but.onClick.AddListener(delegate() { ProduceItem(i); });
}
}
}
public static void SetPresenter()
{
presenter = CIVGameManager.GetGameManager().GetComponent<CIVGameManager>().GetPresenter();
}
private void ProduceItem(int i)
{
if(presenter.State == Presenter.States.ProductUI)
{
presenter.CommandApply();
for(int k = 0; k < i; k++)
{
presenter.CommandArrowKey(Direction.Down);
}
presenter.CommandApply();
uicontroller.MakeProductionQ();
uicontroller.MakeDeploymentQ();
}
}
}
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &100100000
Prefab:
m_ObjectHideFlags: 1
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications: []
m_RemovedComponents: []
m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 1823663182664700}
m_IsPrefabParent: 1
--- !u!1 &1823663182664700
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4511157978174578}
- component: {fileID: 33704587241987444}
- component: {fileID: 23657486422157358}
m_Layer: 0
m_Name: hextile
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4511157978174578
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1823663182664700}
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: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &23657486422157358
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1823663182664700}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: 93b23d960c7fd2645bed567627e2e6db, type: 3}
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_StitchLightmapSeams: 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!33 &33704587241987444
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1823663182664700}
m_Mesh: {fileID: 4300000, guid: 93b23d960c7fd2645bed567627e2e6db, type: 3}
fileFormatVersion: 2
guid: f97ce35f32d75c648b7e56f79b6454c0
timeCreated: 1518211489
licenseType: Free
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:
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