Commit 410e5e56 authored by Chae Ho Shin's avatar Chae Ho Shin

Non-resource assets for final revision

parent f0ed7cfd
...@@ -382,6 +382,117 @@ ...@@ -382,6 +382,117 @@
</summary> </summary>
<param name="playerInTurn">The player which the sub turn is dedicated to.</param> <param name="playerInTurn">The player which the sub turn is dedicated to.</param>
</member> </member>
<member name="T:CivModel.EndingType">
<summary>
The type of <see cref="T:CivModel.Ending"/>.
</summary>
</member>
<member name="F:CivModel.EndingType.Victory">
<summary>
The ending of victory.
</summary>
</member>
<member name="F:CivModel.EndingType.Draw">
<summary>
The ending of draw.
</summary>
</member>
<member name="F:CivModel.EndingType.Defeat">
<summary>
The ending of defeat.
</summary>
</member>
<member name="T:CivModel.Ending">
<summary>
Represents an ending of a game that <see cref="T:CivModel.Player"/> can achieve.
</summary>
<seealso cref="T:System.IEquatable`1" />
</member>
<member name="P:CivModel.Ending.Game">
<summary>
The <see cref="T:CivModel.Game"/> object
</summary>
</member>
<member name="P:CivModel.Ending.Guid">
<summary>
The unique identifier of this object.
</summary>
</member>
<member name="P:CivModel.Ending.TextName">
<summary>
The name of this ending.
</summary>
</member>
<member name="P:CivModel.Ending.Type">
<summary>
The type of this ending.
</summary>
</member>
<member name="M:CivModel.Ending.#ctor(CivModel.Game,System.Type)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.Ending"/> class.
</summary>
<param name="game">The game.</param>
<param name="type">The concrete type of this object.</param>
</member>
<member name="M:CivModel.Ending.op_Equality(CivModel.Ending,CivModel.Ending)">
<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.Ending.op_Inequality(CivModel.Ending,CivModel.Ending)">
<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.Ending.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.Ending.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.Ending.Equals(CivModel.Ending)">
<summary>
현재 개체가 동일한 형식의 다른 개체와 같은지 여부를 나타냅니다.
</summary>
<param name="other">이 개체와 비교할 개체입니다.</param>
<returns>
현재 개체가 <see langword="true" /> 매개 변수와 같으면 <paramref name="other" />이고, 그렇지 않으면 <see langword="false" />입니다.
</returns>
</member>
<member name="T:CivModel.EndingPrototype">
<summary>
Represents a prototype of <see cref="T:CivModel.Ending"/>.
</summary>
<seealso cref="T:CivModel.GuidObjectPrototype"/>
<seealso cref="T:CivModel.Ending"/>
</member>
<member name="P:CivModel.EndingPrototype.Type">
<summary>
The type of this ending.
</summary>
</member>
<member name="T:CivModel.GuidObjectPrototype"> <member name="T:CivModel.GuidObjectPrototype">
<summary> <summary>
The base class represents a prototype. The base class represents a prototype.
...@@ -417,6 +528,20 @@ ...@@ -417,6 +528,20 @@
The name of an object of the kind of this prototype. The name of an object of the kind of this prototype.
</summary> </summary>
</member> </member>
<member name="T:CivModel.IActorObserver">
<summary>
The interface to observe <see cref="T:CivModel.Actor"/> related events.
</summary>
<seealso cref="T:CivModel.Actor"/>
</member>
<member name="M:CivModel.IActorObserver.OnSkipFlagChanged(CivModel.Actor,System.Boolean,System.Boolean)">
<summary>
Called when either <see cref="P:CivModel.Actor.SkipFlag"/> or <see cref="P:CivModel.Actor.SleepFlag"/> is changed.
</summary>
<param name="actor">the <see cref="T:CivModel.Actor"/> object that raised event.</param>
<param name="prevSkipFlag">the previous <see cref="P:CivModel.Actor.SkipFlag"/>.</param>
<param name="prevSleepFlag">the previous <see cref="P:CivModel.Actor.SleepFlag"/>.</param>
</member>
<member name="T:CivModel.IActorProductionFactory"> <member name="T:CivModel.IActorProductionFactory">
<summary> <summary>
The factory interface of <see cref="T:CivModel.Production"/> which products <see cref="T:CivModel.Actor"/> objects. The factory interface of <see cref="T:CivModel.Production"/> which products <see cref="T:CivModel.Actor"/> objects.
...@@ -518,8 +643,8 @@ ...@@ -518,8 +643,8 @@
<summary> <summary>
The population income of this city. The population income of this city.
</summary> </summary>
<seealso cref="P:CivModel.IGameConstantScheme.PopulationConstant"/> <seealso cref="P:CivModel.IGameConstants.PopulationConstant"/>
<seealso cref="P:CivModel.IGameConstantScheme.PopulationHappinessCoefficient"/> <seealso cref="P:CivModel.IGameConstants.PopulationHappinessCoefficient"/>
</member> </member>
<member name="P:CivModel.CityBase.ProvidedGold"> <member name="P:CivModel.CityBase.ProvidedGold">
<summary> <summary>
...@@ -626,11 +751,14 @@ ...@@ -626,11 +751,14 @@
See remark section of <see cref="M:System.Guid.ParseExact(System.String,System.String)"/>. See remark section of <see cref="M:System.Guid.ParseExact(System.String,System.String)"/>.
</summary> </summary>
</member> </member>
<member name="M:CivModel.Game.Load(System.IO.StreamReader,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"> <member name="M:CivModel.Game.Load(System.IO.StreamReader,System.IO.TextReader[],System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})">
<summary> <summary>
Re-initializes the <see cref="T:CivModel.Game"/> object, by loading a existing save file from stream. Re-initializes the <see cref="T:CivModel.Game"/> object, by loading a existing save file from stream.
</summary> </summary>
<param name="stream"><see cref="T:System.IO.StreamReader"/> object which contains a save file.</param> <param name="stream"><see cref="T:System.IO.StreamReader"/> object which contains a save file.</param>
<param name="prototypes">
The array of <see cref="T:System.IO.TextReader"/> for xml prototype data.
</param>
<param name="knownSchemes"> <param name="knownSchemes">
the known factories of <see cref="T:CivModel.IGameScheme"/> for the game. the known factories of <see cref="T:CivModel.IGameScheme"/> for the game.
If <c>null</c>, use previous scheme. If <c>null</c>, use previous scheme.
...@@ -659,10 +787,10 @@ ...@@ -659,10 +787,10 @@
The constants of this game. The constants of this game.
</summary> </summary>
<remarks> <remarks>
For performance purpose, constant values are copied from <see cref="T:CivModel.IGameConstantScheme"/> into this property when game starts. For performance purpose, constant values are copied from <see cref="T:CivModel.IGameConstantsScheme"/> into this property when game starts.
</remarks> </remarks>
<seealso cref="T:CivModel.GameConstants"/> <seealso cref="T:CivModel.GameConstants"/>
<seealso cref="T:CivModel.IGameConstantScheme"/> <seealso cref="T:CivModel.IGameConstantsScheme"/>
</member> </member>
<member name="P:CivModel.Game.Random"> <member name="P:CivModel.Game.Random">
<summary> <summary>
...@@ -715,7 +843,7 @@ ...@@ -715,7 +843,7 @@
The count of teams of this game. The count of teams of this game.
</summary> </summary>
</member> </member>
<member name="M:CivModel.Game.#ctor(System.Int32,System.Int32,System.Int32,CivModel.IGameSchemeFactory,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"> <member name="M:CivModel.Game.#ctor(System.Int32,System.Int32,System.Int32,System.IO.TextReader[],CivModel.IGameSchemeFactory,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})">
<summary> <summary>
Initializes a new instance of the <see cref="T:CivModel.Game"/> class, by creating a new game. Initializes a new instance of the <see cref="T:CivModel.Game"/> class, by creating a new game.
</summary> </summary>
...@@ -731,6 +859,9 @@ ...@@ -731,6 +859,9 @@
The number of players. It must be positive. The number of players. It must be positive.
if the value is <c>-1</c>, uses <see cref="P:CivModel.IGameStartupScheme.DefaultNumberOfPlayers"/> of the scheme. if the value is <c>-1</c>, uses <see cref="P:CivModel.IGameStartupScheme.DefaultNumberOfPlayers"/> of the scheme.
</param> </param>
<param name="prototypes">
The array of <see cref="T:System.IO.TextReader"/> for xml prototype data.
</param>
<param name="rootFactory">The factory for <see cref="T:CivModel.IGameScheme"/> of the game.</param> <param name="rootFactory">The factory for <see cref="T:CivModel.IGameScheme"/> of the game.</param>
<param name="knownSchemes"> <param name="knownSchemes">
the known factories of <see cref="T:CivModel.IGameScheme"/> for the game. the known factories of <see cref="T:CivModel.IGameScheme"/> for the game.
...@@ -747,11 +878,14 @@ ...@@ -747,11 +878,14 @@
parameter is not equal to default value of scheme, while scheme forces to be. parameter is not equal to default value of scheme, while scheme forces to be.
</exception> </exception>
</member> </member>
<member name="M:CivModel.Game.#ctor(System.String,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"> <member name="M:CivModel.Game.#ctor(System.String,System.IO.TextReader[],System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})">
<summary> <summary>
Initializes a new instance of the <see cref="T:CivModel.Game"/> class, by loading a existing save file. Initializes a new instance of the <see cref="T:CivModel.Game"/> class, by loading a existing save file.
</summary> </summary>
<param name="saveFile">The path of the save file.</param> <param name="saveFile">The path of the save file.</param>
<param name="prototypes">
The array of <see cref="T:System.IO.TextReader"/> for xml prototype data.
</param>
<param name="schemeFactories">the candidates of factories for <see cref="T:CivModel.IGameScheme"/> of the game.</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.ArgumentNullException"><paramref name="schemeFactories"/> is <c>null</c>.</exception>
<exception cref="T:System.IO.InvalidDataException"> <exception cref="T:System.IO.InvalidDataException">
...@@ -765,17 +899,20 @@ ...@@ -765,17 +899,20 @@
See the list of the exceptions <see cref="M:System.IO.File.OpenText(System.String)"/> may throw. See the list of the exceptions <see cref="M:System.IO.File.OpenText(System.String)"/> may throw.
</para> </para>
<para> <para>
This constructor is wrapper of <see cref="M:CivModel.Game.Load(System.IO.StreamReader,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"/>. This constructor is wrapper of <see cref="M:CivModel.Game.Load(System.IO.StreamReader,System.IO.TextReader[],System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"/>.
See <see cref="M:CivModel.Game.Load(System.IO.StreamReader,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"/> for more information. See <see cref="M:CivModel.Game.Load(System.IO.StreamReader,System.IO.TextReader[],System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"/> for more information.
</para> </para>
</remarks> </remarks>
<seealso cref="M:CivModel.Game.Load(System.IO.StreamReader,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"/> <seealso cref="M:CivModel.Game.Load(System.IO.StreamReader,System.IO.TextReader[],System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"/>
</member> </member>
<member name="M:CivModel.Game.#ctor(System.IO.StreamReader,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"> <member name="M:CivModel.Game.#ctor(System.IO.StreamReader,System.IO.TextReader[],System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})">
<summary> <summary>
Initializes a new instance of the <see cref="T:CivModel.Game"/> class, by loading a existing save file from stream. Initializes a new instance of the <see cref="T:CivModel.Game"/> class, by loading a existing save file from stream.
</summary> </summary>
<param name="stream"><see cref="T:System.IO.StreamReader"/> object which contains a save file.</param> <param name="stream"><see cref="T:System.IO.StreamReader"/> object which contains a save file.</param>
<param name="prototypes">
The array of <see cref="T:System.IO.TextReader"/> for xml prototype data.
</param>
<param name="schemeFactories">the candidates of factories for <see cref="T:CivModel.IGameScheme"/> of the game.</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.ArgumentNullException"><paramref name="schemeFactories"/> is <c>null</c>.</exception>
<exception cref="T:System.IO.InvalidDataException"> <exception cref="T:System.IO.InvalidDataException">
...@@ -784,10 +921,10 @@ ...@@ -784,10 +921,10 @@
there is no <see cref="T:CivModel.IGameSchemeFactory"/> for this save file. there is no <see cref="T:CivModel.IGameSchemeFactory"/> for this save file.
</exception> </exception>
<remarks> <remarks>
This constructor is wrapper of <see cref="M:CivModel.Game.Load(System.IO.StreamReader,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"/>. This constructor is wrapper of <see cref="M:CivModel.Game.Load(System.IO.StreamReader,System.IO.TextReader[],System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"/>.
See <see cref="M:CivModel.Game.Load(System.IO.StreamReader,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"/> for more information. See <see cref="M:CivModel.Game.Load(System.IO.StreamReader,System.IO.TextReader[],System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"/> for more information.
</remarks> </remarks>
<seealso cref="M:CivModel.Game.Load(System.IO.StreamReader,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"/> <seealso cref="M:CivModel.Game.Load(System.IO.StreamReader,System.IO.TextReader[],System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"/>
</member> </member>
<member name="M:CivModel.Game.GetPrototype``1(System.Type)"> <member name="M:CivModel.Game.GetPrototype``1(System.Type)">
<summary> <summary>
...@@ -842,16 +979,21 @@ ...@@ -842,16 +979,21 @@
An <see cref="T:CivObservable.IObservable`2"/> object which can be observed by <see cref="T:CivModel.IQuestObserver"/>. An <see cref="T:CivObservable.IObservable`2"/> object which can be observed by <see cref="T:CivModel.IQuestObserver"/>.
</summary> </summary>
</member> </member>
<member name="P:CivModel.Game.VictoryObservable"> <member name="P:CivModel.Game.EndingObservable">
<summary> <summary>
An <see cref="T:CivObservable.IObservable`2"/> object which can be observed by <see cref="T:CivModel.IVictoryObserver"/>. An <see cref="T:CivObservable.IObservable`2"/> object which can be observed by <see cref="T:CivModel.IEndingObserver"/>.
</summary>
</member>
<member name="P:CivModel.Game.ActorObservable">
<summary>
An <see cref="T:CivObservable.IObservable`2"/> object which can be observed by <see cref="T:CivModel.IActorObserver"/>.
</summary> </summary>
</member> </member>
<member name="T:CivModel.GameConstants"> <member name="T:CivModel.GameConstants">
<summary> <summary>
Represents a game constants storage. Constant values are copied from an applied <seealso cref="T:CivModel.IGameConstantScheme"/>. Represents a game constants storage. Constant values are copied from an applied <seealso cref="T:CivModel.IGameConstants"/>.
</summary> </summary>
<seealso cref="T:CivModel.IGameConstantScheme"/> <seealso cref="T:CivModel.IGameConstants"/>
<seealso cref="F:CivModel.Game.Constants"/> <seealso cref="F:CivModel.Game.Constants"/>
</member> </member>
<member name="P:CivModel.GameConstants.GoldCoefficient"> <member name="P:CivModel.GameConstants.GoldCoefficient">
...@@ -899,11 +1041,11 @@ ...@@ -899,11 +1041,11 @@
Coefficient for <see cref="P:CivModel.Player.BasicResearchRequire" />. Coefficient for <see cref="P:CivModel.Player.BasicResearchRequire" />.
</summary> </summary>
</member> </member>
<member name="M:CivModel.GameConstants.#ctor(CivModel.IGameConstantScheme)"> <member name="M:CivModel.GameConstants.#ctor(CivModel.IGameConstants)">
<summary> <summary>
Initializes a new instance of the <see cref="T:CivModel.GameConstants"/> class. Initializes a new instance of the <see cref="T:CivModel.GameConstants"/> class.
</summary> </summary>
<param name="scheme">The <see cref="T:CivModel.IGameConstantScheme"/> object holding constant values.</param> <param name="constants">The <see cref="T:CivModel.IGameConstants"/> object holding constant values.</param>
</member> </member>
<member name="T:CivModel.IBattleObserver"> <member name="T:CivModel.IBattleObserver">
<summary> <summary>
...@@ -933,6 +1075,57 @@ ...@@ -933,6 +1075,57 @@
In this case, <paramref name="atkOwner"/> and <paramref name="defOwner"/> parameters can be used to get their previous value. In this case, <paramref name="atkOwner"/> and <paramref name="defOwner"/> parameters can be used to get their previous value.
</remarks> </remarks>
</member> </member>
<member name="T:CivModel.IGameConstants">
<summary>
The interface represents the constants for <see cref="T:CivModel.Game"/>.
</summary>
<seealso cref="T:CivModel.IGameConstantsScheme"/>
</member>
<member name="P:CivModel.IGameConstants.GoldCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.GoldIncome"/>.
</summary>
</member>
<member name="P:CivModel.IGameConstants.PopulationConstant">
<summary>
Constant amount of <see cref="P:CivModel.CityBase.Population"/>.
</summary>
</member>
<member name="P:CivModel.IGameConstants.PopulationHappinessCoefficient">
<summary>
Coefficient of <see cref="P:CivModel.Player.Happiness"/> for <see cref="P:CivModel.Player.Population"/>.
</summary>
</member>
<member name="P:CivModel.IGameConstants.HappinessCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.HappinessIncome"/>.
</summary>
</member>
<member name="P:CivModel.IGameConstants.LaborHappinessCoefficient">
<summary>
Coefficient of <see cref="P:CivModel.Player.Happiness"/> for <see cref="P:CivModel.Player.Labor"/>.
</summary>
</member>
<member name="P:CivModel.IGameConstants.ResearchHappinessCoefficient">
<summary>
Coefficient of <see cref="P:CivModel.Player.Happiness"/> for <see cref="P:CivModel.Player.ResearchIncome"/>.
</summary>
</member>
<member name="P:CivModel.IGameConstants.EconomicRequireCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.BasicEconomicRequire"/>.
</summary>
</member>
<member name="P:CivModel.IGameConstants.EconomicRequireTaxRateConstant">
<summary>
Constant amount of <see cref="P:CivModel.Player.TaxRate"/> for <see cref="P:CivModel.Player.BasicEconomicRequire"/>.
</summary>
</member>
<member name="P:CivModel.IGameConstants.ResearchRequireCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.BasicResearchRequire"/>.
</summary>
</member>
<member name="T:CivModel.IProductionFactory"> <member name="T:CivModel.IProductionFactory">
<summary> <summary>
The factory interface of <see cref="T:CivModel.Production"/> The factory interface of <see cref="T:CivModel.Production"/>
...@@ -966,31 +1159,17 @@ ...@@ -966,31 +1159,17 @@
If this method is called by initialization purpose, <c>null</c>. If this method is called by initialization purpose, <c>null</c>.
</param> </param>
</member> </member>
<member name="T:CivModel.IVictoryObserver"> <member name="T:CivModel.IEndingObserver">
<summary> <summary>
The interface to observe victories and defeats of <see cref="T:CivModel.Player"/>. The interface to observe game ending of <see cref="T:CivModel.Player"/>.
</summary> </summary>
</member> </member>
<member name="M:CivModel.IVictoryObserver.OnVictory(CivModel.Player,CivModel.IVictoryCondition)"> <member name="M:CivModel.IEndingObserver.OnEnding(CivModel.Player,CivModel.Ending)">
<summary>
Called when a player achieves victory.
</summary>
<param name="player">The player.</param>
<param name="victory">The victory that player achieves.</param>
</member>
<member name="M:CivModel.IVictoryObserver.OnDefeat(CivModel.Player,CivModel.IDefeatCondition)">
<summary> <summary>
Called when a player achieves defeat. Called when a player achieves ending.
</summary> </summary>
<param name="player">The player.</param> <param name="player">The player.</param>
<param name="defeat">The defeat that player achieves.</param> <param name="victory">The ending that player achieves.</param>
</member>
<member name="M:CivModel.IVictoryObserver.OnDraw(CivModel.Player,CivModel.IDrawCondition)">
<summary>
Called when a player achieves draw.
</summary>
<param name="player">The player.</param>
<param name="draw">The draw that player achieves.</param>
</member> </member>
<member name="T:CivModel.IGameSchemeFactory"> <member name="T:CivModel.IGameSchemeFactory">
<summary> <summary>
...@@ -1033,15 +1212,6 @@ ...@@ -1033,15 +1212,6 @@
The factory object of this instance. The factory object of this instance.
</summary> </summary>
</member> </member>
<member name="M:CivModel.IGameScheme.GetPackageData">
<summary>
Gets the package data of this game scheme.
</summary>
<returns>
The <see cref="T:System.IO.TextReader"/> object on the package data of this game scheme.
If the package data does not exists, <c>null</c>.
</returns>
</member>
<member name="M:CivModel.IGameScheme.OnAfterInitialized(CivModel.Game)"> <member name="M:CivModel.IGameScheme.OnAfterInitialized(CivModel.Game)">
<summary> <summary>
Called after the game is initialized. Called after the game is initialized.
...@@ -1090,60 +1260,23 @@ ...@@ -1090,60 +1260,23 @@
<param name="isNewGame"><c>true</c> if initializing a new game. <c>false</c> if initializing a game loaded from a save file.</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> <exception cref="T:System.ArgumentNullException"><paramref name="game"/> is <c>null</c>.</exception>
</member> </member>
<member name="T:CivModel.IGameConstantScheme"> <member name="T:CivModel.IGameConstantsScheme">
<summary> <summary>
The interface represents <see cref="T:CivModel.IGameScheme"/> for game constants. The interface represents <see cref="T:CivModel.IGameScheme"/> for game constants.
This type of scheme is exclusive, that is, can be applied only once per a game. This type of scheme is exclusive, that is, can be applied only once per a game.
</summary> </summary>
<remarks> <remarks>
For performance purpose, constant values are copied into <see cref="F:CivModel.Game.Constants"/> when game starts. This interface is dummy to mark scheme as <see cref="T:CivModel.IGameConstants"/> provider,
although you can manually provide <see cref="T:CivModel.IGameConstants"/> object.
The <see cref="T:CivModel.IGameConstants"/> object is retrieved from xml data.
</remarks> </remarks>
<seealso cref="F:CivModel.Game.Constants"/> <seealso cref="F:CivModel.Game.Constants"/>
<seealso cref="T:CivModel.GameConstants"/> <seealso cref="T:CivModel.IGameConstants"/>
</member>
<member name="P:CivModel.IGameConstantScheme.GoldCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.GoldIncome"/>.
</summary>
</member>
<member name="P:CivModel.IGameConstantScheme.PopulationConstant">
<summary>
Constant amount of <see cref="P:CivModel.CityBase.Population"/>.
</summary>
</member> </member>
<member name="P:CivModel.IGameConstantScheme.PopulationHappinessCoefficient"> <member name="P:CivModel.IGameConstantsScheme.Constants">
<summary> <summary>
Coefficient of <see cref="P:CivModel.Player.Happiness"/> for <see cref="P:CivModel.Player.Population"/>. The <see cref="T:CivModel.IGameConstants"/> object manually provided.
</summary> If this value is <c>null</c>, the <see cref="T:CivModel.IGameConstants"/> object is retrieved from xml data.
</member>
<member name="P:CivModel.IGameConstantScheme.HappinessCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.HappinessIncome"/>.
</summary>
</member>
<member name="P:CivModel.IGameConstantScheme.LaborHappinessCoefficient">
<summary>
Coefficient of <see cref="P:CivModel.Player.Happiness"/> for <see cref="P:CivModel.Player.Labor"/>.
</summary>
</member>
<member name="P:CivModel.IGameConstantScheme.ResearchHappinessCoefficient">
<summary>
Coefficient of <see cref="P:CivModel.Player.Happiness"/> for <see cref="P:CivModel.Player.ResearchIncome"/>.
</summary>
</member>
<member name="P:CivModel.IGameConstantScheme.EconomicRequireCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.BasicEconomicRequire"/>.
</summary>
</member>
<member name="P:CivModel.IGameConstantScheme.EconomicRequireTaxRateConstant">
<summary>
Constant amount of <see cref="P:CivModel.Player.TaxRate"/> for <see cref="P:CivModel.Player.BasicEconomicRequire"/>.
</summary>
</member>
<member name="P:CivModel.IGameConstantScheme.ResearchRequireCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.BasicResearchRequire"/>.
</summary> </summary>
</member> </member>
<member name="T:CivModel.IGameAIScheme"> <member name="T:CivModel.IGameAIScheme">
...@@ -1608,6 +1741,18 @@ ...@@ -1608,6 +1741,18 @@
<seealso cref="T:CivModel.Game"/> <seealso cref="T:CivModel.Game"/>
<seealso cref="T:CivModel.Production"/> <seealso cref="T:CivModel.Production"/>
</member> </member>
<member name="M:CivModel.IProductionObserver.OnProductionListChanged(CivModel.Player)">
<summary>
Called when <see cref="P:CivModel.Player.Production"/> is changed.
</summary>
<param name="player">The player of production list.</param>
</member>
<member name="M:CivModel.IProductionObserver.OnDeploymentListChanged(CivModel.Player)">
<summary>
Called when <see cref="P:CivModel.Player.Deployment"/> is changed.
</summary>
<param name="player">The player of production list.</param>
</member>
<member name="M:CivModel.IProductionObserver.OnProductionDeploy(CivModel.Terrain.Point,CivModel.Production,System.Object)"> <member name="M:CivModel.IProductionObserver.OnProductionDeploy(CivModel.Terrain.Point,CivModel.Production,System.Object)">
<summary> <summary>
Called when the result of <see cref="T:CivModel.Production"/> is deployed, that is, <see cref="M:CivModel.Production.Place(CivModel.Terrain.Point)"/> is succeeded. Called when the result of <see cref="T:CivModel.Production"/> is deployed, that is, <see cref="M:CivModel.Production.Place(CivModel.Terrain.Point)"/> is succeeded.
...@@ -1776,7 +1921,7 @@ ...@@ -1776,7 +1921,7 @@
</member> </member>
<member name="P:CivModel.Quest.Game"> <member name="P:CivModel.Quest.Game">
<summary> <summary>
The <see cref="P:CivModel.Quest.Game"/> object. The <see cref="T:CivModel.Game"/> object.
</summary> </summary>
</member> </member>
<member name="P:CivModel.Quest.Guid"> <member name="P:CivModel.Quest.Guid">
...@@ -1789,6 +1934,11 @@ ...@@ -1789,6 +1934,11 @@
[퀘스트 이름]. [퀘스트 이름].
</summary> </summary>
</member> </member>
<member name="P:CivModel.Quest.IsVisible">
<summary>
Whether the quest is visible to user or not.
</summary>
</member>
<member name="P:CivModel.Quest.PostingTurn"> <member name="P:CivModel.Quest.PostingTurn">
<summary> <summary>
[퀘스트 게시 기간]. <c>-1</c> if forever. [퀘스트 게시 기간]. <c>-1</c> if forever.
...@@ -1819,6 +1969,28 @@ ...@@ -1819,6 +1969,28 @@
[교육용 알림]. [교육용 알림].
</summary> </summary>
</member> </member>
<member name="F:CivModel.Quest.Progresses">
<summary>
The list of progress of this quest.
</summary>
</member>
<member name="P:CivModel.Quest.TotalProgress">
<summary>
The current total progress of this quest.
This value is equal to sum of <see cref="P:CivModel.QuestProgress.Value"/>.
</summary>
</member>
<member name="P:CivModel.Quest.MaxTotalProgress">
<summary>
The maximum total progress of this quest.
This value is equal to sum of <see cref="P:CivModel.QuestProgress.MaxValue"/>.
</summary>
</member>
<member name="P:CivModel.Quest.IsTotalProgressFull">
<summary>
Whether the total progress is full.
</summary>
</member>
<member name="P:CivModel.Quest.LeftTurn"> <member name="P:CivModel.Quest.LeftTurn">
<summary> <summary>
The left turn. <c>-1</c> if this value is invalid. The left turn. <c>-1</c> if this value is invalid.
...@@ -2466,6 +2638,210 @@ ...@@ -2466,6 +2638,210 @@
<exception cref="T:System.ArgumentException">point is invalid</exception> <exception cref="T:System.ArgumentException">point is invalid</exception>
<seealso cref="M:CivModel.Production.Place(CivModel.Terrain.Point)"/> <seealso cref="M:CivModel.Production.Place(CivModel.Terrain.Point)"/>
</member> </member>
<member name="T:CivModel.QuestProgress">
<summary>
Represents one of progresses of <see cref="T:CivModel.Quest"/>.
</summary>
<seealso cref="T:CivModel.Quest"/>.
</member>
<member name="P:CivModel.QuestProgress.Quest">
<summary>
The <see cref="T:CivModel.Quest"/> which has this object.
</summary>
</member>
<member name="P:CivModel.QuestProgress.Game">
<summary>
The <see cref="T:CivModel.Game"/> object.
</summary>
</member>
<member name="P:CivModel.QuestProgress.Id">
<summary>
The identifier of this progress. This value is unique per <see cref="T:CivModel.Quest"/>.
</summary>
</member>
<member name="P:CivModel.QuestProgress.Description">
<summary>
The description of this progress.
</summary>
</member>
<member name="P:CivModel.QuestProgress.Enabled">
<summary>
Whether this progress is enabled.
</summary>
</member>
<member name="P:CivModel.QuestProgress.MaxValue">
<summary>
The maximum value of this progress.
</summary>
<seealso cref="P:CivModel.QuestProgress.Value"/>
</member>
<member name="P:CivModel.QuestProgress.Value">
<summary>
The current value of this progress.
</summary>
<exception cref="T:System.ArgumentOutOfRangeException">value is less than zero or bigger than MaxValue</exception>
<seealso cref="P:CivModel.QuestProgress.MaxValue"/>
</member>
<member name="P:CivModel.QuestProgress.IsFull">
<summary>
Whether this progress is full.
This value is equal to <c><see cref="P:CivModel.QuestProgress.Value"/> == <see cref="P:CivModel.QuestProgress.MaxValue"/></c>.
</summary>
</member>
<member name="M:CivModel.QuestProgress.#ctor(CivModel.Quest,System.String)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.QuestProgress"/> class.
</summary>
<param name="quest">The quest.</param>
<param name="id">The identifier of progress.</param>
</member>
<member name="M:CivModel.QuestProgress.SafeIncrement(System.Int32)">
<summary>
Increment <see cref="P:CivModel.QuestProgress.Value"/> by <paramref name="amount"/> safely.
If <c><see cref="P:CivModel.QuestProgress.Value"/> + <paramref name="amount"/></c> is bigger than <see cref="P:CivModel.QuestProgress.MaxValue"/>,
set <see cref="P:CivModel.QuestProgress.Value"/> by <see cref="P:CivModel.QuestProgress.MaxValue"/>.
</summary>
<param name="amount">the amount to increment</param>
</member>
<member name="M:CivModel.QuestProgress.SafeSetValue(System.Int32)">
<summary>
Set <see cref="P:CivModel.QuestProgress.Value"/> by <paramref name="value"/> safely.
If <paramref name="value"/> is less than zero or bigger than <see cref="P:CivModel.QuestProgress.MaxValue"/>,
set <see cref="P:CivModel.QuestProgress.Value"/> by zero or <see cref="P:CivModel.QuestProgress.MaxValue"/> respectively.
</summary>
<param name="value"></param>
</member>
<member name="T:CivModel.QuestProgressList">
<summary>
Represents a list of <see cref="T:CivModel.QuestProgress"/>.
This collection is also dictionary with <see cref="P:CivModel.QuestProgress.Id"/> as a key.
</summary>
<seealso cref="F:CivModel.Quest.Progresses"/>
<seealso cref="T:CivModel.QuestProgress"/>
<seealso cref="T:System.Collections.Generic.IReadOnlyList`1"/>
<seealso cref="T:System.Collections.Generic.IReadOnlyDictionary`2"/>
</member>
<member name="M:CivModel.QuestProgressList.AddProgress(CivModel.QuestProgress)">
<summary>
Adds the progress into quest.
</summary>
<param name="progress">The progress.</param>
<exception cref="T:System.ArgumentException">
progress is already added
or
the id of progress is not unique
</exception>
</member>
<member name="M:CivModel.QuestProgressList.RemoveProgress(CivModel.QuestProgress)">
<summary>
Removes the progress of quest.
</summary>
<param name="progress">The progress.</param>
<exception cref="T:System.ArgumentException">progress is not added</exception>
</member>
<member name="M:CivModel.QuestProgressList.RemoveProgress(System.String)">
<summary>
Removes the progress.
</summary>
<param name="id">The identifier of progress.</param>
<exception cref="T:System.Collections.Generic.KeyNotFoundException">id is not found</exception>
</member>
<member name="P:CivModel.QuestProgressList.Item(System.Int32)">
<summary>
읽기 전용 목록에서 지정된 인덱스의 요소를 가져옵니다.
</summary>
<param name="index">가져올 요소의 0부터 시작하는 인덱스입니다.</param>
<returns>읽기 전용 목록에서 지정된 인덱스의 요소입니다.</returns>
</member>
<member name="P:CivModel.QuestProgressList.Item(System.String)">
<summary>
읽기 전용 사전에 지정된 된 키를 가진 요소를 가져옵니다.
</summary>
<param name="key">찾을 키입니다.</param>
<returns>읽기 전용 사전에 지정된 된 키가 있는 요소입니다.</returns>
</member>
<member name="P:CivModel.QuestProgressList.AsDictionary">
<summary>
This collection as dictionary.
</summary>
</member>
<member name="P:CivModel.QuestProgressList.Count">
<summary>
컬렉션의 요소 수를 가져옵니다.
</summary>
</member>
<member name="P:CivModel.QuestProgressList.Keys">
<summary>
읽기 전용 사전의 키를 포함하는 열거 가능한 컬렉션을 가져옵니다.
</summary>
</member>
<member name="P:CivModel.QuestProgressList.Values">
<summary>
읽기 전용 사전의 값을 포함하는 열거 가능한 컬렉션을 가져옵니다.
</summary>
</member>
<member name="M:CivModel.QuestProgressList.ContainsKey(System.String)">
<summary>
읽기 전용 사전의 지정된 된 키가 있는 요소가 포함 되어 있는지 여부를 결정 합니다.
</summary>
<param name="key">찾을 키입니다.</param>
<returns>
<see langword="true" /> 읽기 전용 사전에 지정된 된 키를 가진 요소가 포함 되어 있는 경우 그렇지 않으면 <see langword="false" />합니다.
</returns>
</member>
<member name="M:CivModel.QuestProgressList.GetEnumerator">
<summary>
컬렉션을 반복하는 열거자를 반환합니다.
</summary>
<returns>
컬렉션을 반복하는 데 사용할 수 있는 열거자입니다.
</returns>
</member>
<member name="M:CivModel.QuestProgressList.TryGetValue(System.String,CivModel.QuestProgress@)">
<summary>
지정된 된 키와 연결 된 값을 가져옵니다.
</summary>
<param name="key">찾을 키입니다.</param>
<param name="value">이 메서드가 반환될 때 지정된 키가 있으면 해당 키와 연결된 값이고, 그렇지 않으면 <paramref name="value" /> 매개 변수의 형식에 대한 기본값입니다.
이 매개 변수는 초기화되지 않은 상태로 전달됩니다.</param>
<returns>
<see langword="true" /> 구현 하는 개체는 <see cref="T:System.Collections.Generic.IReadOnlyDictionary`2" /> 가 지정 하는 요소를 포함 하는 인터페이스 키이 고, 그렇지 않으면 <see langword="false" />합니다.
</returns>
</member>
<member name="M:CivModel.QuestProgressList.System#Collections#IEnumerable#GetEnumerator">
<summary>
컬렉션을 반복하는 열거자를 반환합니다.
</summary>
<returns>
컬렉션을 반복하는 데 사용할 수 있는 <see cref="T:System.Collections.IEnumerator" /> 개체입니다.
</returns>
</member>
<member name="T:CivModel.QuestProgressPrototype">
<summary>
Represents a prototype of <see cref="T:CivModel.QuestProgress"/>.
</summary>
<seealso cref="T:CivModel.QuestProgress"/>
</member>
<member name="P:CivModel.QuestProgressPrototype.Id">
<summary>
The identifier of this progress. This value is unique per <see cref="T:CivModel.Quest"/>.
</summary>
</member>
<member name="P:CivModel.QuestProgressPrototype.Description">
<summary>
The description of this progress.
</summary>
</member>
<member name="P:CivModel.QuestProgressPrototype.MaxValue">
<summary>
The maximum value of this progress.
</summary>
</member>
<member name="P:CivModel.QuestProgressPrototype.Enabled">
<summary>
Whether this progress is enabled.
</summary>
</member>
<member name="T:CivModel.QuestPrototype"> <member name="T:CivModel.QuestPrototype">
<summary> <summary>
Represents a prototype of <see cref="T:CivModel.Quest"/>. Represents a prototype of <see cref="T:CivModel.Quest"/>.
...@@ -2473,6 +2849,11 @@ ...@@ -2473,6 +2849,11 @@
<seealso cref="T:CivModel.GuidObjectPrototype"/> <seealso cref="T:CivModel.GuidObjectPrototype"/>
<seealso cref="T:CivModel.Quest"/> <seealso cref="T:CivModel.Quest"/>
</member> </member>
<member name="P:CivModel.QuestPrototype.IsVisible">
<summary>
Whether the quest is visible to user or not.
</summary>
</member>
<member name="P:CivModel.QuestPrototype.PostingTurn"> <member name="P:CivModel.QuestPrototype.PostingTurn">
<summary> <summary>
[퀘스트 게시 기간]. <c>-1</c> if forever. [퀘스트 게시 기간]. <c>-1</c> if forever.
...@@ -2503,6 +2884,11 @@ ...@@ -2503,6 +2884,11 @@
[교육용 알림]. [교육용 알림].
</summary> </summary>
</member> </member>
<member name="F:CivModel.QuestPrototype.Progresses">
<summary>
The list of progress of this quest.
</summary>
</member>
<member name="T:CivModel.SchemeLoader"> <member name="T:CivModel.SchemeLoader">
<summary> <summary>
Provides <see cref="T:CivModel.IGameScheme"/> management. Provides <see cref="T:CivModel.IGameScheme"/> management.
...@@ -3618,7 +4004,7 @@ ...@@ -3618,7 +4004,7 @@
</member> </member>
<member name="P:CivModel.TileObject.Game"> <member name="P:CivModel.TileObject.Game">
<summary> <summary>
The <see cref="P:CivModel.TileObject.Game"/> object The <see cref="T:CivModel.Game"/> object
</summary> </summary>
</member> </member>
<member name="P:CivModel.TileObject.TileTag"> <member name="P:CivModel.TileObject.TileTag">
...@@ -3689,7 +4075,7 @@ ...@@ -3689,7 +4075,7 @@
<summary> <summary>
The happiness income of this player. The happiness income of this player.
</summary> </summary>
<seealso cref="P:CivModel.IGameConstantScheme.HappinessCoefficient"/> <seealso cref="P:CivModel.IGameConstants.HappinessCoefficient"/>
</member> </member>
<member name="P:CivModel.Player.Gold"> <member name="P:CivModel.Player.Gold">
<summary> <summary>
...@@ -3704,7 +4090,7 @@ ...@@ -3704,7 +4090,7 @@
<seealso cref="P:CivModel.Player.GoldNetIncomeWithoutConsumption"/> <seealso cref="P:CivModel.Player.GoldNetIncomeWithoutConsumption"/>
<seealso cref="P:CivModel.Player.GoldNetIncome"/> <seealso cref="P:CivModel.Player.GoldNetIncome"/>
<seealso cref="P:CivModel.Player.TaxRate"/> <seealso cref="P:CivModel.Player.TaxRate"/>
<seealso cref="P:CivModel.IGameConstantScheme.GoldCoefficient"/> <seealso cref="P:CivModel.IGameConstants.GoldCoefficient"/>
</member> </member>
<member name="P:CivModel.Player.GoldNetIncomeWithoutConsumption"> <member name="P:CivModel.Player.GoldNetIncomeWithoutConsumption">
<summary> <summary>
...@@ -3913,63 +4299,38 @@ ...@@ -3913,63 +4299,38 @@
Whether this player is eliminated. Whether this player is eliminated.
</summary> </summary>
</member> </member>
<member name="P:CivModel.Player.HasEnding"> <member name="P:CivModel.Player.AchievedEnding">
<summary> <summary>
Whether this player has ending, that is, this player is either victoried or defeated or drawed. The ending this player has achieved. If this player has not achieved ending yet, <c>null</c>.
</summary> </summary>
<seealso cref="P:CivModel.Player.IsVictoried"/>
<seealso cref="P:CivModel.Player.IsDefeated"/>
<seealso cref="P:CivModel.Player.IsDrawed"/>
</member> </member>
<member name="P:CivModel.Player.IsVictoried"> <member name="P:CivModel.Player.HasEnding">
<summary> <summary>
Whether this player is victoried. Whether this player has achieved ending.
</summary> </summary>
<seealso cref="P:CivModel.Player.VictoryCondition"/> <seealso cref="P:CivModel.Player.AchievedEnding"/>
</member> </member>
<member name="P:CivModel.Player.VictoryCondition"> <member name="P:CivModel.Player.IsVictoried">
<summary> <summary>
The victory condition this player has achieved. If this player is not victoried yet, <c>null</c>. Whether this player is victoried.
</summary> </summary>
<seealso cref="P:CivModel.Player.IsVictoried"/> <seealso cref="P:CivModel.Player.AchievedEnding"/>
</member> </member>
<member name="P:CivModel.Player.IsDefeated"> <member name="P:CivModel.Player.IsDefeated">
<summary> <summary>
Whether this player is defeated. Whether this player is defeated.
</summary> </summary>
<seealso cref="P:CivModel.Player.DefeatCondition"/> <seealso cref="P:CivModel.Player.AchievedEnding"/>
</member>
<member name="P:CivModel.Player.DefeatCondition">
<summary>
The defeat condition this player has achieved. If this player is not defeated yet, <c>null</c>.
</summary>
<seealso cref="P:CivModel.Player.IsDefeated"/>
</member> </member>
<member name="P:CivModel.Player.IsDrawed"> <member name="P:CivModel.Player.IsDrawed">
<summary> <summary>
Whether this player is drawed. Whether this player is drawed.
</summary> </summary>
<seealso cref="P:CivModel.Player.DrawCondition"/> <seealso cref="P:CivModel.Player.AchievedEnding"/>
</member> </member>
<member name="P:CivModel.Player.DrawCondition"> <member name="P:CivModel.Player.AvailableEndings">
<summary> <summary>
The draw condition this player has achieved. If this player is not drawed yet, <c>null</c>. The list of available endings that this player can achieve.
</summary>
<seealso cref="P:CivModel.Player.IsDrawed"/>
</member>
<member name="P:CivModel.Player.AvailableVictories">
<summary>
The list of available victories that this player can achieve.
</summary>
</member>
<member name="P:CivModel.Player.AvailableDefeats">
<summary>
The list of available defeats that this player can achieve.
</summary>
</member>
<member name="P:CivModel.Player.AvailableDraws">
<summary>
The list of available defeats that this player can achieve.
</summary> </summary>
</member> </member>
<member name="P:CivModel.Player.IsAIControlled"> <member name="P:CivModel.Player.IsAIControlled">
...@@ -4017,29 +4378,12 @@ ...@@ -4017,29 +4378,12 @@
</member> </member>
<member name="P:CivModel.Player.SpecialResource"> <member name="P:CivModel.Player.SpecialResource">
<summary> <summary>
The indexer proxy for special resources of this player. The dictionary for special resources of this player.
</summary> </summary>
<remarks> <remarks>
Usage: <code>player.SpecialResource[res]</code> Usage: <code>player.SpecialResource[res]</code>
</remarks> </remarks>
</member> </member>
<member name="T:CivModel.Player.SpecialResourceProxy">
<summary>
The proxy class for <see cref="P:CivModel.Player.SpecialResource"/>
</summary>
<seealso cref="P:CivModel.Player.SpecialResource"/>
</member>
<member name="P:CivModel.Player.SpecialResourceProxy.Item(CivModel.ISpecialResource)">
<summary>
Gets or sets the amount of the specified special resource.
</summary>
<value>
The amount of the specified special resource.
</value>
<param name="resource">The resource.</param>
<returns>The amount of the specified special resource.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">value - the amount of resource is out of range</exception>
</member>
<member name="M:CivModel.Player.GetSpecialResourceData(CivModel.ISpecialResource)"> <member name="M:CivModel.Player.GetSpecialResourceData(CivModel.ISpecialResource)">
<summary> <summary>
Gets the additional data of the specified special resource. Gets the additional data of the specified special resource.
...@@ -4095,96 +4439,32 @@ ...@@ -4095,96 +4439,32 @@
<seealso cref="M:CivModel.Player.AddTerritory(CivModel.Terrain.Point)"/> <seealso cref="M:CivModel.Player.AddTerritory(CivModel.Terrain.Point)"/>
<seealso cref="M:CivModel.Player.TryRemoveTerritory(CivModel.Terrain.Point)"/> <seealso cref="M:CivModel.Player.TryRemoveTerritory(CivModel.Terrain.Point)"/>
</member> </member>
<member name="M:CivModel.Player.AddVictoryCondition(CivModel.IVictoryCondition)"> <member name="M:CivModel.Player.AddAvailableEnding(CivModel.Ending)">
<summary>
Adds an available victory condition to this player.
</summary>
<param name="victory">The victory condition to add.</param>
<exception cref="T:System.InvalidOperationException">the player already has ending</exception>
<exception cref="T:System.ArgumentException">specified <paramref name="victory"/> is already added</exception>
</member>
<member name="M:CivModel.Player.RemoveVictoryCondition(CivModel.IVictoryCondition)">
<summary>
Removes an available victory condition of this player.
</summary>
<param name="victory">The victory condition to remove.</param>
<exception cref="T:System.InvalidOperationException">the player already has ending</exception>
<exception cref="T:System.ArgumentException">specific <paramref name="victory"/> has not added</exception>
</member>
<member name="M:CivModel.Player.AddDefeatCondition(CivModel.IDefeatCondition)">
<summary>
Adds an available defeat condition to this player.
</summary>
<param name="defeat">The defeat condition to add.</param>
<exception cref="T:System.InvalidOperationException">the player already has ending</exception>
<exception cref="T:System.ArgumentException">specified <paramref name="defeat"/> is already added</exception>
</member>
<member name="M:CivModel.Player.RemoveDefeatCondition(CivModel.IDefeatCondition)">
<summary>
Removes an available defeat condition of this player.
</summary>
<param name="defeat">The defeat condition to remove.</param>
<exception cref="T:System.InvalidOperationException">the player already has ending</exception>
<exception cref="T:System.ArgumentException">specific <paramref name="defeat"/> has not added</exception>
</member>
<member name="M:CivModel.Player.AddDrawCondition(CivModel.IDrawCondition)">
<summary>
Adds an available draw condition to this player.
</summary>
<param name="draw">The draw condition to add.</param>
<exception cref="T:System.InvalidOperationException">the player already has ending</exception>
<exception cref="T:System.ArgumentException">specified <paramref name="draw"/> is already added</exception>
</member>
<member name="M:CivModel.Player.RemoveDrawCondition(CivModel.IDrawCondition)">
<summary>
Removes an available draw condition of this player.
</summary>
<param name="draw">The draw condition to remove.</param>
<exception cref="T:System.InvalidOperationException">the player already has ending</exception>
<exception cref="T:System.ArgumentException">specific <paramref name="draw"/> has not added</exception>
</member>
<member name="M:CivModel.Player.Victory(CivModel.IVictoryCondition)">
<summary> <summary>
Make this player achieve the specified victory. Adds an available ending this player can achieve.
</summary> </summary>
<param name="victory">The victory.</param> <param name="ending">The available ending to add.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="ending"/> is <c>null</c>.</exception>
<exception cref="T:System.InvalidOperationException">the player already has ending</exception> <exception cref="T:System.InvalidOperationException">the player already has ending</exception>
<exception cref="T:System.ArgumentException">specified <paramref name="victory"/> is not available to the player</exception> <exception cref="T:System.ArgumentException">specified <paramref name="ending"/> is already added</exception>
<seealso cref="P:CivModel.Player.IsVictoried"/>
<seealso cref="P:CivModel.Player.VictoryCondition"/>
<seealso cref="M:CivModel.Player.Defeat(CivModel.IDefeatCondition)"/>
<seealso cref="M:CivModel.Player.Draw(CivModel.IDrawCondition)"/>
</member> </member>
<member name="M:CivModel.Player.Defeat(CivModel.IDefeatCondition)"> <member name="M:CivModel.Player.RemoveAvailableEnding(CivModel.Ending)">
<summary> <summary>
Make this player achieve the specified defeat. Removes an available ending this player can achieve.
</summary> </summary>
<param name="defeat">The defeat.</param> <param name="ending">The available ending to add.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="ending"/> is <c>null</c>.</exception>
<exception cref="T:System.InvalidOperationException">the player already has ending</exception> <exception cref="T:System.InvalidOperationException">the player already has ending</exception>
<exception cref="T:System.ArgumentException">specified <paramref name="defeat"/> is not available to the player</exception> <exception cref="T:System.ArgumentException">specific <paramref name="ending"/> has not added</exception>
<seealso cref="P:CivModel.Player.IsDefeated"/>
<seealso cref="P:CivModel.Player.DefeatCondition"/>
<seealso cref="M:CivModel.Player.Victory(CivModel.IVictoryCondition)"/>
<seealso cref="M:CivModel.Player.Draw(CivModel.IDrawCondition)"/>
</member> </member>
<member name="M:CivModel.Player.Draw(CivModel.IDrawCondition)"> <member name="M:CivModel.Player.AchieveEnding(CivModel.Ending)">
<summary> <summary>
Make this player achieve the specified draw. Make this player achieve the specified ending.
</summary> </summary>
<param name="draw">The draw.</param> <param name="ending">The ending.</param>
<exception cref="T:System.ArgumentNullException"><paramref name="ending"/> is <c>null</c>.</exception>
<exception cref="T:System.InvalidOperationException">the player already has ending</exception> <exception cref="T:System.InvalidOperationException">the player already has ending</exception>
<exception cref="T:System.ArgumentException">specified <paramref name="draw"/> is not available to the player</exception> <exception cref="T:System.ArgumentException">specified <paramref name="ending"/> is not available to the player</exception>
<seealso cref="P:CivModel.Player.IsDrawed"/>
<seealso cref="P:CivModel.Player.DrawCondition"/>
<seealso cref="M:CivModel.Player.Victory(CivModel.IVictoryCondition)"/>
<seealso cref="M:CivModel.Player.Defeat(CivModel.IDefeatCondition)"/>
</member>
<member name="M:CivModel.Player.EndingCheck">
<summary>
Check whether player achieves the ending condition and process it if necessary.
If <see cref="P:CivModel.Player.HasEnding"/> is <c>true</c>, do nothing.
</summary>
<returns>Whether the ending process was done or not.</returns>
</member> </member>
<member name="M:CivModel.Player.IsAlliedWith(CivModel.Player)"> <member name="M:CivModel.Player.IsAlliedWith(CivModel.Player)">
<summary> <summary>
...@@ -4326,85 +4606,6 @@ ...@@ -4326,85 +4606,6 @@
<exception cref="T:System.ArgumentException">point is invalid</exception> <exception cref="T:System.ArgumentException">point is invalid</exception>
<returns>The production result.</returns> <returns>The production result.</returns>
</member> </member>
<member name="T:CivModel.IVictoryCondition">
<summary>
The interface represents a victory condition that <see cref="T:CivModel.Player"/> can achieve.
</summary>
</member>
<member name="M:CivModel.IVictoryCondition.CheckVictory(CivModel.Player)">
<summary>
Checks whether <see cref="T:CivModel.Player"/> has achieved this victory condition.
</summary>
<param name="player">The player.</param>
<returns>whether <see cref="T:CivModel.Player"/> has achieved this victory condition</returns>
<remarks>
Victory check is done after draw check, before defeat check.
</remarks>
</member>
<member name="M:CivModel.IVictoryCondition.DoVictory(CivModel.Player)">
<summary>
Called when <see cref="T:CivModel.Player"/> achieves this victory.
</summary>
<param name="player">The player.</param>
</member>
<member name="T:CivModel.IDefeatCondition">
<summary>
The interface represents a defeat condition that <see cref="T:CivModel.Player"/> can achieve.
</summary>
</member>
<member name="M:CivModel.IDefeatCondition.CheckDefeat(CivModel.Player)">
<summary>
Checks whether <see cref="T:CivModel.Player"/> has achieved this defeat condition.
</summary>
<param name="player">The player.</param>
<returns>whether <see cref="T:CivModel.Player"/> has achieved this defeat condition</returns>
<remarks>
Defeat check is done after draw check and victory check.
</remarks>
</member>
<member name="M:CivModel.IDefeatCondition.DoDefeat(CivModel.Player)">
<summary>
Called when <see cref="T:CivModel.Player"/> achieves this defeat.
</summary>
<param name="player">The player.</param>
</member>
<member name="T:CivModel.IDrawCondition">
<summary>
The interface represents a draw condition that <see cref="T:CivModel.Player"/> can achieve.
</summary>
</member>
<member name="M:CivModel.IDrawCondition.CheckDraw(CivModel.Player)">
<summary>
Checks whether <see cref="T:CivModel.Player"/> has achieved this draw condition.
</summary>
<param name="player">The player.</param>
<returns>whether <see cref="T:CivModel.Player"/> has achieved this draw condition</returns>
<remarks>
Draw check is done before victory check or defeat check.
If you want to check draw condition when player achieves both victory and defeat simultaneously,
implements <see cref="M:CivModel.IDrawCondition.OnBothVictoriedAndDefeated(CivModel.Player,CivModel.IVictoryCondition,CivModel.IDefeatCondition)"/>.
</remarks>
</member>
<member name="M:CivModel.IDrawCondition.OnBothVictoriedAndDefeated(CivModel.Player,CivModel.IVictoryCondition,CivModel.IDefeatCondition)">
<summary>
Checks whether <see cref="T:CivModel.Player"/> has achieved this draw condition
when <paramref name="player"/> achieves both victory and defeat.
</summary>
<param name="player">The player.</param>
<param name="victory">The victory that player achieves.</param>
<param name="defeat">The defeat that player achieves.</param>
<returns>whether <see cref="T:CivModel.Player"/> has achieved this draw condition</returns>
<remarks>
This method is called when player achieves both victory and defeat simultaneously.
If you want to check draw condition manually, implements <see cref="M:CivModel.IDrawCondition.CheckDraw(CivModel.Player)"/>.
</remarks>
</member>
<member name="M:CivModel.IDrawCondition.DoDraw(CivModel.Player)">
<summary>
Called when <see cref="T:CivModel.Player"/> achieves this draw.
</summary>
<param name="player">The player.</param>
</member>
<member name="T:CivModel.UnitPrototype"> <member name="T:CivModel.UnitPrototype">
<summary> <summary>
Represents a prototype of <see cref="T:CivModel.Unit"/>. Represents a prototype of <see cref="T:CivModel.Unit"/>.
......
...@@ -157,6 +157,167 @@ ...@@ -157,6 +157,167 @@
provides the feature about fixed/observable event provides the feature about fixed/observable event
</summary> </summary>
</member> </member>
<member name="T:CivObservable.NotifyingLinkedList`1">
<summary>
Represents a linked list that notifies its modification.
</summary>
<typeparam name="T">The type of elements.</typeparam>
</member>
<member name="M:CivObservable.NotifyingLinkedList`1.#ctor(System.Action)">
<summary>
Initializes a new instance of the <see cref="T:CivObservable.NotifyingLinkedList`1"/> class.
</summary>
<param name="notifyHandler">the handler to call on notification.</param>
</member>
<member name="M:CivObservable.NotifyingLinkedList`1.Contains(`0)">
<summary>
<see cref="T:System.Collections.Generic.ICollection`1" />에 항목을 추가합니다.
</summary>
<param name="item"><see cref="T:System.Collections.Generic.ICollection`1" />에 추가할 개체입니다.</param>
</member>
<member name="M:CivObservable.NotifyingLinkedList`1.CopyTo(`0[],System.Int32)">
<summary>
특정 <see cref="T:System.Collections.Generic.ICollection`1" /> 인덱스부터 시작하여 <see cref="T:System.Array" />의 요소를 <see cref="T:System.Array" />에 복사합니다.
</summary>
<param name="array"><see cref="T:System.Array" />에서 복사한 요소의 대상인 일차원 <see cref="T:System.Collections.Generic.ICollection`1" />입니다.
<see cref="T:System.Array" />에는 0부터 시작하는 인덱스가 있어야 합니다.</param>
<param name="index"><paramref name="array" />에서 복사가 시작되는 0부터 시작하는 인덱스입니다.</param>
<exception cref="T:System.ArgumentNullException">array</exception>
<exception cref="T:System.ArgumentOutOfRangeException">arrayIndex - arrayIndex is less than 0</exception>
<exception cref="T:System.ArgumentException">The available space from arrayIndex to the end of the destination array is not enough</exception>
</member>
<member name="M:CivObservable.NotifyingLinkedList`1.Find(`0)">
<summary>
Finds the specified value.
</summary>
<param name="value">The value.</param>
<returns></returns>
</member>
<member name="M:CivObservable.NotifyingLinkedList`1.FindLast(`0)">
<summary>
Finds the last.
</summary>
<param name="value">The value.</param>
<returns></returns>
</member>
<member name="M:CivObservable.NotifyingLinkedList`1.GetEnumerator">
<summary>
컬렉션을 반복하는 열거자를 반환합니다.
</summary>
<returns>
컬렉션을 반복하는 데 사용할 수 있는 열거자입니다.
</returns>
</member>
<member name="P:CivObservable.NotifyingLinkedList`1.Last">
<summary>
Gets the last.
</summary>
<value>
The last.
</value>
</member>
<member name="P:CivObservable.NotifyingLinkedList`1.First">
<summary>
Gets the first.
</summary>
<value>
The first.
</value>
</member>
<member name="P:CivObservable.NotifyingLinkedList`1.Count">
<summary>
<see cref="T:System.Collections.Generic.ICollection`1" />에 포함된 요소 수를 가져옵니다.
</summary>
</member>
<member name="P:CivObservable.NotifyingLinkedList`1.IsReadOnly">
<summary>
<see cref="T:System.Collections.Generic.ICollection`1" />가 읽기 전용인지 여부를 나타내는 값을 가져옵니다.
</summary>
</member>
<member name="M:CivObservable.NotifyingLinkedList`1.AddAfter(System.Collections.Generic.LinkedListNode{`0},`0)">
<summary>
Adds the after.
</summary>
<param name="node">The node.</param>
<param name="value">The value.</param>
<returns></returns>
</member>
<member name="M:CivObservable.NotifyingLinkedList`1.AddAfter(System.Collections.Generic.LinkedListNode{`0},System.Collections.Generic.LinkedListNode{`0})">
<summary>
Adds the after.
</summary>
<param name="node">The node.</param>
<param name="newNode">The new node.</param>
</member>
<member name="M:CivObservable.NotifyingLinkedList`1.AddBefore(System.Collections.Generic.LinkedListNode{`0},`0)">
<summary>
Adds the before.
</summary>
<param name="node">The node.</param>
<param name="value">The value.</param>
<returns></returns>
</member>
<member name="M:CivObservable.NotifyingLinkedList`1.AddBefore(System.Collections.Generic.LinkedListNode{`0},System.Collections.Generic.LinkedListNode{`0})">
<summary>
Adds the before.
</summary>
<param name="node">The node.</param>
<param name="newNode">The new node.</param>
</member>
<member name="M:CivObservable.NotifyingLinkedList`1.AddFirst(`0)">
<summary>
Adds the first.
</summary>
<param name="value">The value.</param>
<returns></returns>
</member>
<member name="M:CivObservable.NotifyingLinkedList`1.AddFirst(System.Collections.Generic.LinkedListNode{`0})">
<summary>
Adds the first.
</summary>
<param name="node">The node.</param>
</member>
<member name="M:CivObservable.NotifyingLinkedList`1.AddLast(`0)">
<summary>
Adds the last.
</summary>
<param name="value">The value.</param>
<returns></returns>
</member>
<member name="M:CivObservable.NotifyingLinkedList`1.AddLast(System.Collections.Generic.LinkedListNode{`0})">
<summary>
Adds the last.
</summary>
<param name="node">The node.</param>
</member>
<member name="M:CivObservable.NotifyingLinkedList`1.Clear">
<summary>
<see cref="T:System.Collections.Generic.ICollection`1" />에서 항목을 모두 제거합니다.
</summary>
</member>
<member name="M:CivObservable.NotifyingLinkedList`1.Remove(`0)">
<summary>
Removes the specified value.
</summary>
<param name="value">The value.</param>
<returns></returns>
</member>
<member name="M:CivObservable.NotifyingLinkedList`1.Remove(System.Collections.Generic.LinkedListNode{`0})">
<summary>
Removes the specified node.
</summary>
<param name="node">The node.</param>
</member>
<member name="M:CivObservable.NotifyingLinkedList`1.RemoveFirst">
<summary>
Removes the first.
</summary>
</member>
<member name="M:CivObservable.NotifyingLinkedList`1.RemoveLast">
<summary>
Removes the last.
</summary>
</member>
<member name="T:CivObservable.Observable`1"> <member name="T:CivObservable.Observable`1">
<summary> <summary>
Represents an object observable by observer interface. Represents an object observable by observer interface.
......
...@@ -73,7 +73,6 @@ GameObject: ...@@ -73,7 +73,6 @@ GameObject:
- component: {fileID: 114166279479683586} - component: {fileID: 114166279479683586}
- component: {fileID: 114629431975265818} - component: {fileID: 114629431975265818}
- component: {fileID: 114099225236326680} - component: {fileID: 114099225236326680}
- component: {fileID: 82050683054055120}
m_Layer: 5 m_Layer: 5
m_Name: AlarmContent m_Name: AlarmContent
m_TagString: AlarmContent m_TagString: AlarmContent
...@@ -81,101 +80,6 @@ GameObject: ...@@ -81,101 +80,6 @@ GameObject:
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!82 &82050683054055120
AudioSource:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1957132441411150}
m_Enabled: 1
serializedVersion: 4
OutputAudioMixerGroup: {fileID: 0}
m_audioClip: {fileID: 8300000, guid: 78a909749d24541b5a4dde1a4729c375, type: 3}
m_PlayOnAwake: 1
m_Volume: 0.5
m_Pitch: 1
Loop: 0
Mute: 0
Spatialize: 0
SpatializePostEffects: 0
Priority: 128
DopplerLevel: 1
MinDistance: 1
MaxDistance: 500
Pan2D: 0
rolloffMode: 0
BypassEffects: 0
BypassListenerEffects: 0
BypassReverbZones: 0
rolloffCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
panLevelCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
spreadCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
reverbZoneMixCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
--- !u!114 &114099225236326680 --- !u!114 &114099225236326680
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
......
This source diff could not be displayed because it is too large. You can view the blob instead.
fileFormatVersion: 2 fileFormatVersion: 2
guid: f04e803f8819b574d8fe6e3d96466079 guid: da51c17b826f7604987e6f1e2cb81dc4
NativeFormatImporter: NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 2100000 mainObjectFileID: 100100000
userData: userData:
assetBundleName: assetBundleName:
assetBundleVariant: assetBundleVariant:
This source diff could not be displayed because it is too large. You can view the blob instead.
fileFormatVersion: 2 fileFormatVersion: 2
guid: 67bd9f3dcec70a040b5c1d82951d50b2 guid: 535e51a65748023489d6fd7c4bff5f1c
NativeFormatImporter: NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 2100000 mainObjectFileID: 100100000
userData: userData:
assetBundleName: assetBundleName:
assetBundleVariant: assetBundleVariant:
...@@ -484,9 +484,9 @@ MonoBehaviour: ...@@ -484,9 +484,9 @@ MonoBehaviour:
m_Font: {fileID: 12800000, guid: d716ac8e5646a55448ac141489d12c16, type: 3} m_Font: {fileID: 12800000, guid: d716ac8e5646a55448ac141489d12c16, type: 3}
m_FontSize: 24 m_FontSize: 24
m_FontStyle: 0 m_FontStyle: 0
m_BestFit: 0 m_BestFit: 1
m_MinSize: 2 m_MinSize: 2
m_MaxSize: 40 m_MaxSize: 24
m_Alignment: 3 m_Alignment: 3
m_AlignByGeometry: 0 m_AlignByGeometry: 0
m_RichText: 1 m_RichText: 1
...@@ -979,7 +979,7 @@ MonoBehaviour: ...@@ -979,7 +979,7 @@ MonoBehaviour:
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData: m_FontData:
m_Font: {fileID: 12800000, guid: d716ac8e5646a55448ac141489d12c16, type: 3} m_Font: {fileID: 12800000, guid: d716ac8e5646a55448ac141489d12c16, type: 3}
m_FontSize: 30 m_FontSize: 20
m_FontStyle: 0 m_FontStyle: 0
m_BestFit: 0 m_BestFit: 0
m_MinSize: 0 m_MinSize: 0
...@@ -1387,6 +1387,6 @@ RectTransform: ...@@ -1387,6 +1387,6 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: -148.64505, y: 154.51868}
m_SizeDelta: {x: 890, y: 90} m_SizeDelta: {x: 890, y: 90}
m_Pivot: {x: 0, y: 1} m_Pivot: {x: 0, y: 1}
%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: 1045459382986280}
m_IsPrefabParent: 1
--- !u!1 &1045459382986280
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 224199697647104840}
- component: {fileID: 222921207199585318}
- component: {fileID: 114913365084626636}
- component: {fileID: 114944058923622046}
m_Layer: 5
m_Name: UltimatePrefab
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1146481227971150
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 224483068534089476}
- component: {fileID: 222710067804861058}
- component: {fileID: 114300513938852958}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &114300513938852958
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1146481227971150}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
m_Font: {fileID: 12800000, guid: d716ac8e5646a55448ac141489d12c16, type: 3}
m_FontSize: 25
m_FontStyle: 0
m_BestFit: 1
m_MinSize: 0
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: ResourceName
--- !u!114 &114913365084626636
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1045459382986280}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
--- !u!114 &114944058923622046
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1045459382986280}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b3477e38f04bb4c4cad021b059cdf5a1, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!222 &222710067804861058
CanvasRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1146481227971150}
--- !u!222 &222921207199585318
CanvasRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1045459382986280}
--- !u!224 &224199697647104840
RectTransform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1045459382986280}
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:
- {fileID: 224483068534089476}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 350, y: 89.1}
m_Pivot: {x: 0, y: 1}
--- !u!224 &224483068534089476
RectTransform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1146481227971150}
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: 224199697647104840}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0.000076293945, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
fileFormatVersion: 2 fileFormatVersion: 2
guid: 41fdaa9191fe9ed4f82449ff701f76ed guid: 51e183b1a606d4cedaa5cf90b8e2d8ee
NativeFormatImporter: NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 2100000 mainObjectFileID: 100100000
userData: userData:
assetBundleName: assetBundleName:
assetBundleVariant: assetBundleVariant:
...@@ -283,7 +283,6 @@ MonoBehaviour: ...@@ -283,7 +283,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 57eef24760736f94c81b892da8fa4718, type: 3} m_Script: {fileID: 11500000, guid: 57eef24760736f94c81b892da8fa4718, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
unitInfoText: {fileID: 0}
--- !u!114 &114305620023846986 --- !u!114 &114305620023846986
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
...@@ -757,7 +756,7 @@ RectTransform: ...@@ -757,7 +756,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: -162.06384, y: 482.05267}
m_SizeDelta: {x: 640, y: 90} m_SizeDelta: {x: 640, y: 90}
m_Pivot: {x: 0, y: 1} m_Pivot: {x: 0, y: 1}
--- !u!224 &224411969505313536 --- !u!224 &224411969505313536
......
This source diff could not be displayed because it is too large. You can view the blob instead.
fileFormatVersion: 2 fileFormatVersion: 2
guid: ef12b8f6d512e104b979d4a75f3e60c0 guid: ef12b8f6d512e104b979d4a75f3e60c0
NativeFormatImporter: NativeFormatImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 100100000 mainObjectFileID: 0
userData: userData:
assetBundleName: assetBundleName:
assetBundleVariant: assetBundleVariant:
...@@ -11,37 +11,53 @@ Prefab: ...@@ -11,37 +11,53 @@ Prefab:
m_ParentPrefab: {fileID: 0} m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 1769877253499246} m_RootGameObject: {fileID: 1769877253499246}
m_IsPrefabParent: 1 m_IsPrefabParent: 1
--- !u!1 &1049932579251446 --- !u!1 &1000363758783094
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5 serializedVersion: 5
m_Component: m_Component:
- component: {fileID: 4945201479771094} - component: {fileID: 4140740641558078}
- component: {fileID: 33737213269375472} - component: {fileID: 33701204314710106}
- component: {fileID: 23766667989738562} - component: {fileID: 23752647496407976}
- component: {fileID: 64728951137569338}
m_Layer: 9 m_Layer: 9
m_Name: CityCenter m_Name: ROF
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295 m_StaticEditorFlags: 1
m_IsActive: 0 m_IsActive: 0
--- !u!1 &1068150770459476 --- !u!1 &1018854988809870
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5 serializedVersion: 5
m_Component: m_Component:
- component: {fileID: 4119006118808578} - component: {fileID: 4435259817948360}
- component: {fileID: 64426101437399500} - component: {fileID: 33178054887759484}
- component: {fileID: 23145182553768302} - component: {fileID: 23157419643824784}
- component: {fileID: 33867560220810886}
m_Layer: 9 m_Layer: 9
m_Name: RepublicOfFish m_Name: Finno
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 1
m_IsActive: 0
--- !u!1 &1049932579251446
GameObject:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4945201479771094}
- component: {fileID: 33737213269375472}
- component: {fileID: 23766667989738562}
- component: {fileID: 64728951137569338}
m_Layer: 9
m_Name: CityCenter
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
...@@ -62,59 +78,56 @@ GameObject: ...@@ -62,59 +78,56 @@ GameObject:
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295 m_StaticEditorFlags: 4294967295
m_IsActive: 1 m_IsActive: 1
--- !u!1 &1077092770262174 --- !u!1 &1282129293925294
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5 serializedVersion: 5
m_Component: m_Component:
- component: {fileID: 4351165595833348} - component: {fileID: 4374158917902284}
- component: {fileID: 64698094558186128} - component: {fileID: 33155332942635734}
- component: {fileID: 23299259653360652} - component: {fileID: 23638021064979388}
- component: {fileID: 33959011275245366}
m_Layer: 9 m_Layer: 9
m_Name: Lemuria m_Name: EC
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295 m_StaticEditorFlags: 1
m_IsActive: 0 m_IsActive: 0
--- !u!1 &1333046483476470 --- !u!1 &1323504025322370
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5 serializedVersion: 5
m_Component: m_Component:
- component: {fileID: 4402582016939778} - component: {fileID: 4080111155726924}
- component: {fileID: 64658301789179566} - component: {fileID: 33173242086466862}
- component: {fileID: 23045501965462446} - component: {fileID: 23795567161434438}
- component: {fileID: 33102151740873682}
m_Layer: 9 m_Layer: 9
m_Name: Atlantis m_Name: Lemuria
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295 m_StaticEditorFlags: 1
m_IsActive: 0 m_IsActive: 0
--- !u!1 &1412447782214352 --- !u!1 &1395464057428746
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5 serializedVersion: 5
m_Component: m_Component:
- component: {fileID: 4267544703387016} - component: {fileID: 4234997159749210}
- component: {fileID: 64693614437753418} - component: {fileID: 33104675857359236}
- component: {fileID: 23826742370778630} - component: {fileID: 23926750149507194}
- component: {fileID: 33264027351815174}
m_Layer: 9 m_Layer: 9
m_Name: Finno m_Name: Egypt
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295 m_StaticEditorFlags: 1
m_IsActive: 0 m_IsActive: 0
--- !u!1 &1420250530906088 --- !u!1 &1420250530906088
GameObject: GameObject:
...@@ -131,188 +144,164 @@ GameObject: ...@@ -131,188 +144,164 @@ GameObject:
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295 m_StaticEditorFlags: 4294967295
m_IsActive: 1 m_IsActive: 1
--- !u!1 &1542602466595496 --- !u!1 &1440010725298516
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5 serializedVersion: 5
m_Component: m_Component:
- component: {fileID: 4317089670513964} - component: {fileID: 4698109827938742}
- component: {fileID: 64651154849233870} - component: {fileID: 33500140652430354}
- component: {fileID: 23459222307007520} - component: {fileID: 23755189029153234}
- component: {fileID: 33935090738769108}
m_Layer: 9 m_Layer: 9
m_Name: Ocean m_Name: Atlantis
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295 m_StaticEditorFlags: 1
m_IsActive: 0 m_IsActive: 0
--- !u!1 &1551046316466834 --- !u!1 &1627155355426796
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5 serializedVersion: 5
m_Component: m_Component:
- component: {fileID: 4127794111841646} - component: {fileID: 4273249843974854}
- component: {fileID: 64556048689147166} - component: {fileID: 33182387726908012}
- component: {fileID: 23326409063657358} - component: {fileID: 23908401365852038}
- component: {fileID: 33740067255103548}
m_Layer: 9 m_Layer: 9
m_Name: SheidKangdom m_Name: Null
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295 m_StaticEditorFlags: 1
m_IsActive: 0 m_IsActive: 0
--- !u!1 &1769877253499246 --- !u!1 &1755395281021088
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4780838353057842}
- component: {fileID: 33823903887123472}
- component: {fileID: 114931742162027262}
- component: {fileID: 64500296840194154}
m_Layer: 9
m_Name: minimaptile
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295
m_IsActive: 1
--- !u!1 &1778689071446150
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5 serializedVersion: 5
m_Component: m_Component:
- component: {fileID: 4925649242266350} - component: {fileID: 4389761339825550}
- component: {fileID: 33977825163726542} - component: {fileID: 33222030283090640}
- component: {fileID: 23889594030395902} - component: {fileID: 23179418442598470}
- component: {fileID: 64850002460147078}
m_Layer: 9 m_Layer: 9
m_Name: NULL m_Name: Hwan
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295 m_StaticEditorFlags: 1
m_IsActive: 1 m_IsActive: 0
--- !u!1 &1847308958288918 --- !u!1 &1765927084013258
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5 serializedVersion: 5
m_Component: m_Component:
- component: {fileID: 4472345846560388} - component: {fileID: 4845744993571970}
- component: {fileID: 64900931245494340} - component: {fileID: 33543789428561092}
- component: {fileID: 23679670220506830} - component: {fileID: 23227726084733678}
- component: {fileID: 33259114071790496}
m_Layer: 9 m_Layer: 9
m_Name: EmuConfederation m_Name: EK
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295 m_StaticEditorFlags: 1
m_IsActive: 0 m_IsActive: 0
--- !u!1 &1927290837748992 --- !u!1 &1769877253499246
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5 serializedVersion: 5
m_Component: m_Component:
- component: {fileID: 4778181885146006} - component: {fileID: 4780838353057842}
- component: {fileID: 64351465270499386} - component: {fileID: 33823903887123472}
- component: {fileID: 23213586999803302} - component: {fileID: 114931742162027262}
- component: {fileID: 33220603777180174} - component: {fileID: 64500296840194154}
m_Layer: 9 m_Layer: 9
m_Name: Egypt m_Name: minimaptile
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295 m_StaticEditorFlags: 4294967295
m_IsActive: 0 m_IsActive: 1
--- !u!1 &1933866160088734 --- !u!1 &1785101792986888
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5 serializedVersion: 5
m_Component: m_Component:
- component: {fileID: 4139111654652450} - component: {fileID: 4189153276782586}
- component: {fileID: 64508688011746560} - component: {fileID: 33255540487333522}
- component: {fileID: 23121715103291918} - component: {fileID: 23071727151115744}
- component: {fileID: 33766587949940938}
m_Layer: 9 m_Layer: 9
m_Name: Hwan m_Name: SK
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295 m_StaticEditorFlags: 1
m_IsActive: 0 m_IsActive: 0
--- !u!1 &1957152527922782 --- !u!1 &1913891644086886
GameObject: GameObject:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5 serializedVersion: 5
m_Component: m_Component:
- component: {fileID: 4965343918653650} - component: {fileID: 4515314444798372}
- component: {fileID: 64134196901494074} - component: {fileID: 33121091771270114}
- component: {fileID: 23460536930412524} - component: {fileID: 23892187286997194}
- component: {fileID: 33406567516297316}
m_Layer: 9 m_Layer: 9
m_Name: EasterKingdom m_Name: Ocean
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295 m_StaticEditorFlags: 1
m_IsActive: 0 m_IsActive: 0
--- !u!4 &4119006118808578 --- !u!4 &4080111155726924
Transform: Transform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1068150770459476} m_GameObject: {fileID: 1323504025322370}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 4461497901477466} m_Father: {fileID: 4461497901477466}
m_RootOrder: 4 m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4127794111841646 --- !u!4 &4140740641558078
Transform: Transform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1551046316466834} m_GameObject: {fileID: 1000363758783094}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 4461497901477466} m_Father: {fileID: 4461497901477466}
m_RootOrder: 6 m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4139111654652450 --- !u!4 &4189153276782586
Transform: Transform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1933866160088734} m_GameObject: {fileID: 1785101792986888}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 4461497901477466} m_Father: {fileID: 4461497901477466}
m_RootOrder: 0 m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4221280926982418 --- !u!4 &4221280926982418
Transform: Transform:
...@@ -328,57 +317,70 @@ Transform: ...@@ -328,57 +317,70 @@ Transform:
m_Father: {fileID: 4780838353057842} m_Father: {fileID: 4780838353057842}
m_RootOrder: 1 m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4267544703387016 --- !u!4 &4234997159749210
Transform: Transform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1412447782214352} m_GameObject: {fileID: 1395464057428746}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 4461497901477466} m_Father: {fileID: 4461497901477466}
m_RootOrder: 1 m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4317089670513964 --- !u!4 &4273249843974854
Transform: Transform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1542602466595496} m_GameObject: {fileID: 1627155355426796}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 4461497901477466} m_Father: {fileID: 4461497901477466}
m_RootOrder: 10 m_RootOrder: 9
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4351165595833348 --- !u!4 &4374158917902284
Transform: Transform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1077092770262174} m_GameObject: {fileID: 1282129293925294}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 4461497901477466} m_Father: {fileID: 4461497901477466}
m_RootOrder: 7 m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4402582016939778 --- !u!4 &4389761339825550
Transform: Transform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1333046483476470} m_GameObject: {fileID: 1755395281021088}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 4461497901477466} m_Father: {fileID: 4461497901477466}
m_RootOrder: 3 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4435259817948360
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1018854988809870}
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: 4461497901477466}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4461497901477466 --- !u!4 &4461497901477466
Transform: Transform:
...@@ -390,45 +392,45 @@ Transform: ...@@ -390,45 +392,45 @@ Transform:
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 4139111654652450} - {fileID: 4389761339825550}
- {fileID: 4267544703387016} - {fileID: 4435259817948360}
- {fileID: 4778181885146006} - {fileID: 4234997159749210}
- {fileID: 4402582016939778} - {fileID: 4698109827938742}
- {fileID: 4119006118808578} - {fileID: 4140740641558078}
- {fileID: 4472345846560388} - {fileID: 4374158917902284}
- {fileID: 4127794111841646} - {fileID: 4189153276782586}
- {fileID: 4351165595833348} - {fileID: 4080111155726924}
- {fileID: 4965343918653650} - {fileID: 4845744993571970}
- {fileID: 4925649242266350} - {fileID: 4273249843974854}
- {fileID: 4317089670513964} - {fileID: 4515314444798372}
m_Father: {fileID: 4780838353057842} m_Father: {fileID: 4780838353057842}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4472345846560388 --- !u!4 &4515314444798372
Transform: Transform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1847308958288918} m_GameObject: {fileID: 1913891644086886}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 4461497901477466} m_Father: {fileID: 4461497901477466}
m_RootOrder: 5 m_RootOrder: 10
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4778181885146006 --- !u!4 &4698109827938742
Transform: Transform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1927290837748992} m_GameObject: {fileID: 1440010725298516}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 4461497901477466} m_Father: {fileID: 4461497901477466}
m_RootOrder: 2 m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4780838353057842 --- !u!4 &4780838353057842
Transform: Transform:
...@@ -445,18 +447,18 @@ Transform: ...@@ -445,18 +447,18 @@ Transform:
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4925649242266350 --- !u!4 &4845744993571970
Transform: Transform:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1778689071446150} m_GameObject: {fileID: 1765927084013258}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 4461497901477466} m_Father: {fileID: 4461497901477466}
m_RootOrder: 9 m_RootOrder: 8
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4945201479771094 --- !u!4 &4945201479771094
Transform: Transform:
...@@ -471,25 +473,12 @@ Transform: ...@@ -471,25 +473,12 @@ Transform:
m_Father: {fileID: 4221280926982418} m_Father: {fileID: 4221280926982418}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
--- !u!4 &4965343918653650 --- !u!23 &23071727151115744
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1957152527922782}
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: 4461497901477466}
m_RootOrder: 8
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &23045501965462446
MeshRenderer: MeshRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1333046483476470} m_GameObject: {fileID: 1785101792986888}
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
...@@ -499,7 +488,7 @@ MeshRenderer: ...@@ -499,7 +488,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1 m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295 m_RenderingLayerMask: 4294967295
m_Materials: m_Materials:
- {fileID: 2100000, guid: a488828751be43049978c6a2c4f914ab, type: 2} - {fileID: 2100000, guid: 9c6ffccf4f8712a47a54b30a0bde61cc, type: 2}
m_StaticBatchInfo: m_StaticBatchInfo:
firstSubMesh: 0 firstSubMesh: 0
subMeshCount: 0 subMeshCount: 0
...@@ -519,12 +508,12 @@ MeshRenderer: ...@@ -519,12 +508,12 @@ MeshRenderer:
m_SortingLayerID: 0 m_SortingLayerID: 0
m_SortingLayer: 0 m_SortingLayer: 0
m_SortingOrder: 0 m_SortingOrder: 0
--- !u!23 &23121715103291918 --- !u!23 &23157419643824784
MeshRenderer: MeshRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1933866160088734} m_GameObject: {fileID: 1018854988809870}
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
...@@ -534,7 +523,7 @@ MeshRenderer: ...@@ -534,7 +523,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1 m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295 m_RenderingLayerMask: 4294967295
m_Materials: m_Materials:
- {fileID: 2100000, guid: 4258a5de902f4e342b7f3fe37c993d94, type: 2} - {fileID: 2100000, guid: b91b030bdd9519d4595880b42097209e, type: 2}
m_StaticBatchInfo: m_StaticBatchInfo:
firstSubMesh: 0 firstSubMesh: 0
subMeshCount: 0 subMeshCount: 0
...@@ -554,12 +543,12 @@ MeshRenderer: ...@@ -554,12 +543,12 @@ MeshRenderer:
m_SortingLayerID: 0 m_SortingLayerID: 0
m_SortingLayer: 0 m_SortingLayer: 0
m_SortingOrder: 0 m_SortingOrder: 0
--- !u!23 &23145182553768302 --- !u!23 &23179418442598470
MeshRenderer: MeshRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1068150770459476} m_GameObject: {fileID: 1755395281021088}
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
...@@ -569,7 +558,7 @@ MeshRenderer: ...@@ -569,7 +558,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1 m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295 m_RenderingLayerMask: 4294967295
m_Materials: m_Materials:
- {fileID: 2100000, guid: df5a5abf275ea374084f6cb002b9d748, type: 2} - {fileID: 2100000, guid: 4258a5de902f4e342b7f3fe37c993d94, type: 2}
m_StaticBatchInfo: m_StaticBatchInfo:
firstSubMesh: 0 firstSubMesh: 0
subMeshCount: 0 subMeshCount: 0
...@@ -589,12 +578,12 @@ MeshRenderer: ...@@ -589,12 +578,12 @@ MeshRenderer:
m_SortingLayerID: 0 m_SortingLayerID: 0
m_SortingLayer: 0 m_SortingLayer: 0
m_SortingOrder: 0 m_SortingOrder: 0
--- !u!23 &23213586999803302 --- !u!23 &23227726084733678
MeshRenderer: MeshRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1927290837748992} m_GameObject: {fileID: 1765927084013258}
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
...@@ -604,7 +593,7 @@ MeshRenderer: ...@@ -604,7 +593,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1 m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295 m_RenderingLayerMask: 4294967295
m_Materials: m_Materials:
- {fileID: 2100000, guid: 5923786953c2e4440b9fc568c4cbd154, type: 2} - {fileID: 2100000, guid: 81c42f8467ac78d4580d3e54bbd48c4e, type: 2}
m_StaticBatchInfo: m_StaticBatchInfo:
firstSubMesh: 0 firstSubMesh: 0
subMeshCount: 0 subMeshCount: 0
...@@ -624,12 +613,12 @@ MeshRenderer: ...@@ -624,12 +613,12 @@ MeshRenderer:
m_SortingLayerID: 0 m_SortingLayerID: 0
m_SortingLayer: 0 m_SortingLayer: 0
m_SortingOrder: 0 m_SortingOrder: 0
--- !u!23 &23299259653360652 --- !u!23 &23638021064979388
MeshRenderer: MeshRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1077092770262174} m_GameObject: {fileID: 1282129293925294}
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
...@@ -639,7 +628,7 @@ MeshRenderer: ...@@ -639,7 +628,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1 m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295 m_RenderingLayerMask: 4294967295
m_Materials: m_Materials:
- {fileID: 2100000, guid: 9e239a8f3d75fd245b5beb18179e33c1, type: 2} - {fileID: 2100000, guid: 686ad6af22cfb4b41b5e78256067d561, type: 2}
m_StaticBatchInfo: m_StaticBatchInfo:
firstSubMesh: 0 firstSubMesh: 0
subMeshCount: 0 subMeshCount: 0
...@@ -659,12 +648,12 @@ MeshRenderer: ...@@ -659,12 +648,12 @@ MeshRenderer:
m_SortingLayerID: 0 m_SortingLayerID: 0
m_SortingLayer: 0 m_SortingLayer: 0
m_SortingOrder: 0 m_SortingOrder: 0
--- !u!23 &23326409063657358 --- !u!23 &23752647496407976
MeshRenderer: MeshRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1551046316466834} m_GameObject: {fileID: 1000363758783094}
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
...@@ -674,7 +663,7 @@ MeshRenderer: ...@@ -674,7 +663,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1 m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295 m_RenderingLayerMask: 4294967295
m_Materials: m_Materials:
- {fileID: 2100000, guid: 9c6ffccf4f8712a47a54b30a0bde61cc, type: 2} - {fileID: 2100000, guid: df5a5abf275ea374084f6cb002b9d748, type: 2}
m_StaticBatchInfo: m_StaticBatchInfo:
firstSubMesh: 0 firstSubMesh: 0
subMeshCount: 0 subMeshCount: 0
...@@ -694,12 +683,12 @@ MeshRenderer: ...@@ -694,12 +683,12 @@ MeshRenderer:
m_SortingLayerID: 0 m_SortingLayerID: 0
m_SortingLayer: 0 m_SortingLayer: 0
m_SortingOrder: 0 m_SortingOrder: 0
--- !u!23 &23459222307007520 --- !u!23 &23755189029153234
MeshRenderer: MeshRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1542602466595496} m_GameObject: {fileID: 1440010725298516}
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
...@@ -709,7 +698,7 @@ MeshRenderer: ...@@ -709,7 +698,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1 m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295 m_RenderingLayerMask: 4294967295
m_Materials: m_Materials:
- {fileID: 2100000, guid: 93a6d77aba0fd894a84f5e8477b36266, type: 2} - {fileID: 2100000, guid: a488828751be43049978c6a2c4f914ab, type: 2}
m_StaticBatchInfo: m_StaticBatchInfo:
firstSubMesh: 0 firstSubMesh: 0
subMeshCount: 0 subMeshCount: 0
...@@ -729,12 +718,12 @@ MeshRenderer: ...@@ -729,12 +718,12 @@ MeshRenderer:
m_SortingLayerID: 0 m_SortingLayerID: 0
m_SortingLayer: 0 m_SortingLayer: 0
m_SortingOrder: 0 m_SortingOrder: 0
--- !u!23 &23460536930412524 --- !u!23 &23766667989738562
MeshRenderer: MeshRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1957152527922782} m_GameObject: {fileID: 1049932579251446}
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
...@@ -744,7 +733,7 @@ MeshRenderer: ...@@ -744,7 +733,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1 m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295 m_RenderingLayerMask: 4294967295
m_Materials: m_Materials:
- {fileID: 2100000, guid: 81c42f8467ac78d4580d3e54bbd48c4e, type: 2} - {fileID: 2100000, guid: 15b7a205fe87c4149a45db5b7613f512, type: 2}
m_StaticBatchInfo: m_StaticBatchInfo:
firstSubMesh: 0 firstSubMesh: 0
subMeshCount: 0 subMeshCount: 0
...@@ -764,12 +753,12 @@ MeshRenderer: ...@@ -764,12 +753,12 @@ MeshRenderer:
m_SortingLayerID: 0 m_SortingLayerID: 0
m_SortingLayer: 0 m_SortingLayer: 0
m_SortingOrder: 0 m_SortingOrder: 0
--- !u!23 &23679670220506830 --- !u!23 &23795567161434438
MeshRenderer: MeshRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1847308958288918} m_GameObject: {fileID: 1323504025322370}
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
...@@ -779,7 +768,7 @@ MeshRenderer: ...@@ -779,7 +768,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1 m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295 m_RenderingLayerMask: 4294967295
m_Materials: m_Materials:
- {fileID: 2100000, guid: 686ad6af22cfb4b41b5e78256067d561, type: 2} - {fileID: 2100000, guid: 9e239a8f3d75fd245b5beb18179e33c1, type: 2}
m_StaticBatchInfo: m_StaticBatchInfo:
firstSubMesh: 0 firstSubMesh: 0
subMeshCount: 0 subMeshCount: 0
...@@ -799,12 +788,12 @@ MeshRenderer: ...@@ -799,12 +788,12 @@ MeshRenderer:
m_SortingLayerID: 0 m_SortingLayerID: 0
m_SortingLayer: 0 m_SortingLayer: 0
m_SortingOrder: 0 m_SortingOrder: 0
--- !u!23 &23766667989738562 --- !u!23 &23892187286997194
MeshRenderer: MeshRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1049932579251446} m_GameObject: {fileID: 1913891644086886}
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
...@@ -814,7 +803,7 @@ MeshRenderer: ...@@ -814,7 +803,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1 m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295 m_RenderingLayerMask: 4294967295
m_Materials: m_Materials:
- {fileID: 2100000, guid: 15b7a205fe87c4149a45db5b7613f512, type: 2} - {fileID: 2100000, guid: 2db4c332bc784a9488fef182a8efd22c, type: 2}
m_StaticBatchInfo: m_StaticBatchInfo:
firstSubMesh: 0 firstSubMesh: 0
subMeshCount: 0 subMeshCount: 0
...@@ -834,12 +823,12 @@ MeshRenderer: ...@@ -834,12 +823,12 @@ MeshRenderer:
m_SortingLayerID: 0 m_SortingLayerID: 0
m_SortingLayer: 0 m_SortingLayer: 0
m_SortingOrder: 0 m_SortingOrder: 0
--- !u!23 &23826742370778630 --- !u!23 &23908401365852038
MeshRenderer: MeshRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1412447782214352} m_GameObject: {fileID: 1627155355426796}
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
...@@ -849,7 +838,7 @@ MeshRenderer: ...@@ -849,7 +838,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1 m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295 m_RenderingLayerMask: 4294967295
m_Materials: m_Materials:
- {fileID: 2100000, guid: b91b030bdd9519d4595880b42097209e, type: 2} - {fileID: 2100000, guid: efa55ae9524562344820c7a5318ebe33, type: 2}
m_StaticBatchInfo: m_StaticBatchInfo:
firstSubMesh: 0 firstSubMesh: 0
subMeshCount: 0 subMeshCount: 0
...@@ -869,12 +858,12 @@ MeshRenderer: ...@@ -869,12 +858,12 @@ MeshRenderer:
m_SortingLayerID: 0 m_SortingLayerID: 0
m_SortingLayer: 0 m_SortingLayer: 0
m_SortingOrder: 0 m_SortingOrder: 0
--- !u!23 &23889594030395902 --- !u!23 &23926750149507194
MeshRenderer: MeshRenderer:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1778689071446150} m_GameObject: {fileID: 1395464057428746}
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
...@@ -884,7 +873,7 @@ MeshRenderer: ...@@ -884,7 +873,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1 m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295 m_RenderingLayerMask: 4294967295
m_Materials: m_Materials:
- {fileID: 2100000, guid: efa55ae9524562344820c7a5318ebe33, type: 2} - {fileID: 2100000, guid: 5923786953c2e4440b9fc568c4cbd154, type: 2}
m_StaticBatchInfo: m_StaticBatchInfo:
firstSubMesh: 0 firstSubMesh: 0
subMeshCount: 0 subMeshCount: 0
...@@ -904,139 +893,97 @@ MeshRenderer: ...@@ -904,139 +893,97 @@ MeshRenderer:
m_SortingLayerID: 0 m_SortingLayerID: 0
m_SortingLayer: 0 m_SortingLayer: 0
m_SortingOrder: 0 m_SortingOrder: 0
--- !u!33 &33102151740873682 --- !u!33 &33104675857359236
MeshFilter: MeshFilter:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1333046483476470} m_GameObject: {fileID: 1395464057428746}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3} m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33220603777180174 --- !u!33 &33121091771270114
MeshFilter: MeshFilter:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1927290837748992} m_GameObject: {fileID: 1913891644086886}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3} m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33259114071790496 --- !u!33 &33155332942635734
MeshFilter: MeshFilter:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1847308958288918} m_GameObject: {fileID: 1282129293925294}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3} m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33264027351815174 --- !u!33 &33173242086466862
MeshFilter: MeshFilter:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1412447782214352} m_GameObject: {fileID: 1323504025322370}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3} m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33406567516297316 --- !u!33 &33178054887759484
MeshFilter: MeshFilter:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1957152527922782} m_GameObject: {fileID: 1018854988809870}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3} m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33737213269375472 --- !u!33 &33182387726908012
MeshFilter: MeshFilter:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1049932579251446} m_GameObject: {fileID: 1627155355426796}
m_Mesh: {fileID: 4300000, guid: 2f3720c9fd009724f914cb5ae6241f23, type: 3} m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33740067255103548 --- !u!33 &33222030283090640
MeshFilter: MeshFilter:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1551046316466834} m_GameObject: {fileID: 1755395281021088}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3} m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33766587949940938 --- !u!33 &33255540487333522
MeshFilter: MeshFilter:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1933866160088734} m_GameObject: {fileID: 1785101792986888}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3} m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33823903887123472 --- !u!33 &33500140652430354
MeshFilter: MeshFilter:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1769877253499246} m_GameObject: {fileID: 1440010725298516}
m_Mesh: {fileID: 4300000, guid: 93b23d960c7fd2645bed567627e2e6db, type: 3} m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33867560220810886 --- !u!33 &33543789428561092
MeshFilter: MeshFilter:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1068150770459476} m_GameObject: {fileID: 1765927084013258}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3} m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33935090738769108 --- !u!33 &33701204314710106
MeshFilter: MeshFilter:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1542602466595496} m_GameObject: {fileID: 1000363758783094}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3} m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33959011275245366 --- !u!33 &33737213269375472
MeshFilter: MeshFilter:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1077092770262174} m_GameObject: {fileID: 1049932579251446}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3} m_Mesh: {fileID: 4300000, guid: 2f3720c9fd009724f914cb5ae6241f23, type: 3}
--- !u!33 &33977825163726542 --- !u!33 &33823903887123472
MeshFilter: MeshFilter:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000} m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1778689071446150} m_GameObject: {fileID: 1769877253499246}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3} m_Mesh: {fileID: 4300000, guid: 93b23d960c7fd2645bed567627e2e6db, type: 3}
--- !u!64 &64134196901494074
MeshCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1957152527922782}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 3
m_Convex: 0
m_CookingOptions: 14
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!64 &64351465270499386
MeshCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1927290837748992}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 3
m_Convex: 0
m_CookingOptions: 14
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!64 &64426101437399500
MeshCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1068150770459476}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 3
m_Convex: 0
m_CookingOptions: 14
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!64 &64500296840194154 --- !u!64 &64500296840194154
MeshCollider: MeshCollider:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
...@@ -1051,90 +998,6 @@ MeshCollider: ...@@ -1051,90 +998,6 @@ MeshCollider:
m_CookingOptions: 14 m_CookingOptions: 14
m_SkinWidth: 0.01 m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 93b23d960c7fd2645bed567627e2e6db, type: 3} m_Mesh: {fileID: 4300000, guid: 93b23d960c7fd2645bed567627e2e6db, type: 3}
--- !u!64 &64508688011746560
MeshCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1933866160088734}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 3
m_Convex: 0
m_CookingOptions: 14
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!64 &64556048689147166
MeshCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1551046316466834}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 3
m_Convex: 0
m_CookingOptions: 14
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!64 &64651154849233870
MeshCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1542602466595496}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 3
m_Convex: 0
m_CookingOptions: 14
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!64 &64658301789179566
MeshCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1333046483476470}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 3
m_Convex: 0
m_CookingOptions: 14
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!64 &64693614437753418
MeshCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1412447782214352}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 3
m_Convex: 0
m_CookingOptions: 14
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!64 &64698094558186128
MeshCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1077092770262174}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 3
m_Convex: 0
m_CookingOptions: 14
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!64 &64728951137569338 --- !u!64 &64728951137569338
MeshCollider: MeshCollider:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
...@@ -1149,34 +1012,6 @@ MeshCollider: ...@@ -1149,34 +1012,6 @@ MeshCollider:
m_CookingOptions: 14 m_CookingOptions: 14
m_SkinWidth: 0.01 m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 2f3720c9fd009724f914cb5ae6241f23, type: 3} m_Mesh: {fileID: 4300000, guid: 2f3720c9fd009724f914cb5ae6241f23, type: 3}
--- !u!64 &64850002460147078
MeshCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1778689071446150}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 3
m_Convex: 0
m_CookingOptions: 14
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!64 &64900931245494340
MeshCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1847308958288918}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 0
serializedVersion: 3
m_Convex: 0
m_CookingOptions: 14
m_SkinWidth: 0.01
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!114 &114931742162027262 --- !u!114 &114931742162027262
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 1 m_ObjectHideFlags: 1
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -38,7 +38,7 @@ RenderSettings: ...@@ -38,7 +38,7 @@ RenderSettings:
m_ReflectionIntensity: 1 m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0} m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0} m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.44657898, g: 0.496413, b: 0.5748175, a: 1} m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
m_UseRadianceAmbientProbe: 0 m_UseRadianceAmbientProbe: 0
--- !u!157 &3 --- !u!157 &3
LightmapSettings: LightmapSettings:
...@@ -356,6 +356,130 @@ CanvasRenderer: ...@@ -356,6 +356,130 @@ CanvasRenderer:
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 948563886} m_GameObject: {fileID: 948563886}
--- !u!1 &1017155716
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1017155718}
- component: {fileID: 1017155717}
m_Layer: 0
m_Name: BGM
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!82 &1017155717
AudioSource:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1017155716}
m_Enabled: 1
serializedVersion: 4
OutputAudioMixerGroup: {fileID: 0}
m_audioClip: {fileID: 8300000, guid: 566383e9ed5c2684899aa73b82735388, type: 3}
m_PlayOnAwake: 1
m_Volume: 1
m_Pitch: 1
Loop: 1
Mute: 0
Spatialize: 0
SpatializePostEffects: 0
Priority: 128
DopplerLevel: 1
MinDistance: 1
MaxDistance: 500
Pan2D: 0
rolloffMode: 0
BypassEffects: 0
BypassListenerEffects: 0
BypassReverbZones: 0
rolloffCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
panLevelCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
spreadCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
reverbZoneMixCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
--- !u!4 &1017155718
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1017155716}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 587.17096, y: 357.30228, z: 246.125}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1045975245 --- !u!1 &1045975245
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
......
...@@ -140,7 +140,9 @@ MonoBehaviour: ...@@ -140,7 +140,9 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 17a69fe1b2d304c64aaa0d2f7824b1dc, type: 3} m_Script: {fileID: 11500000, guid: 17a69fe1b2d304c64aaa0d2f7824b1dc, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
progressBar: {fileID: 1155206179} HwanprogressBar: {fileID: 1155206179}
FinnoprogressBar: {fileID: 1920196082}
progressBar: {fileID: 0}
--- !u!4 &120043004 --- !u!4 &120043004
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
...@@ -338,6 +340,7 @@ RectTransform: ...@@ -338,6 +340,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 1155206178} - {fileID: 1155206178}
- {fileID: 1920196081}
m_Father: {fileID: 954953868} m_Father: {fileID: 954953868}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
...@@ -390,7 +393,7 @@ GameObject: ...@@ -390,7 +393,7 @@ GameObject:
- component: {fileID: 1155206180} - component: {fileID: 1155206180}
- component: {fileID: 1155206179} - component: {fileID: 1155206179}
m_Layer: 5 m_Layer: 5
m_Name: Image m_Name: HwanImage
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
...@@ -512,6 +515,74 @@ Transform: ...@@ -512,6 +515,74 @@ Transform:
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 1 m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
--- !u!1 &1920196080
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 1920196081}
- component: {fileID: 1920196083}
- component: {fileID: 1920196082}
m_Layer: 5
m_Name: FinnoImage
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1920196081
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1920196080}
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: 1119985966}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1920196082
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1920196080}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -765806418, guid: f70555f144d8491a825f0804e09c671c, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_Sprite: {fileID: 21300000, guid: 40f0611053c667e43bb0cf81df72877f, type: 3}
m_Type: 3
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 0
m_FillAmount: 0
m_FillClockwise: 1
m_FillOrigin: 0
--- !u!222 &1920196083
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1920196080}
--- !u!1 &1935237765 --- !u!1 &1935237765
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
......
...@@ -28,14 +28,15 @@ public class CameraControl : MonoBehaviour { ...@@ -28,14 +28,15 @@ public class CameraControl : MonoBehaviour {
// Update is called once per frame // Update is called once per frame
void Update() void Update()
{ {
//The earth is round
if (Camera.main.transform.position.x < 0) if (Camera.main.transform.position.x < 0)
Camera.main.transform.position = new Vector3(Camera.main.transform.position.x + Mathf.Sqrt(3) * GameManager.Instance.Game.Terrain.Width, Camera.main.transform.position.y, Camera.main.transform.position.z); Camera.main.transform.position = new Vector3(Camera.main.transform.position.x + Mathf.Sqrt(3) * GameManager.Instance.Game.Terrain.Width, Camera.main.transform.position.y, Camera.main.transform.position.z);
if (Camera.main.transform.position.x > Mathf.Sqrt(3) * GameManager.Instance.Game.Terrain.Width) if (Camera.main.transform.position.x > Mathf.Sqrt(3) * GameManager.Instance.Game.Terrain.Width)
Camera.main.transform.position = new Vector3(Camera.main.transform.position.x - Mathf.Sqrt(3) * GameManager.Instance.Game.Terrain.Width, Camera.main.transform.position.y, Camera.main.transform.position.z); Camera.main.transform.position = new Vector3(Camera.main.transform.position.x - Mathf.Sqrt(3) * GameManager.Instance.Game.Terrain.Width, Camera.main.transform.position.y, Camera.main.transform.position.z);
if (!QuestUI.activeSelf && !ManagementUI.activeSelf) if (!QuestUI.activeSelf && !ManagementUI.activeSelf && !UIManager.Instance.isTutorialActivated && !UIManager.Instance.AskToQuit.activeSelf)
{ {
//Camera scaler
if (Input.GetAxis("Mouse ScrollWheel") < 0 && ViewFieldSquareControl.ViewInstance.zoom_counter < 2) if (Input.GetAxis("Mouse ScrollWheel") < 0 && ViewFieldSquareControl.ViewInstance.zoom_counter < 2)
{ {
if (!EventSystem.current.IsPointerOverGameObject()) if (!EventSystem.current.IsPointerOverGameObject())
...@@ -49,15 +50,13 @@ public class CameraControl : MonoBehaviour { ...@@ -49,15 +50,13 @@ public class CameraControl : MonoBehaviour {
} }
//Camera movement by putting mouse on edge
if (Input.mousePosition.x > screen_width - boundary && !Input.GetMouseButton(0)) if (Input.mousePosition.x > screen_width - boundary && !Input.GetMouseButton(0))
Camera.main.transform.Translate(5 * speed * Time.deltaTime, 0, 0); Camera.main.transform.Translate(5 * speed * Time.deltaTime, 0, 0);
if (Input.mousePosition.x < 0 + boundary && !Input.GetMouseButton(0)) if (Input.mousePosition.x < 0 + boundary && !Input.GetMouseButton(0))
Camera.main.transform.Translate(-5 * speed * Time.deltaTime, 0, 0); Camera.main.transform.Translate(-5 * speed * Time.deltaTime, 0, 0);
if (Input.mousePosition.y > screen_height - boundary && !Input.GetMouseButton(0)) if (Input.mousePosition.y > screen_height - boundary && !Input.GetMouseButton(0))
{ {
if (Camera.main.transform.position.z < -10 - (Camera.main.transform.position.y - 10) / Mathf.Sqrt(3)) if (Camera.main.transform.position.z < -10 - (Camera.main.transform.position.y - 10) / Mathf.Sqrt(3))
...@@ -66,26 +65,26 @@ public class CameraControl : MonoBehaviour { ...@@ -66,26 +65,26 @@ public class CameraControl : MonoBehaviour {
else if (Camera.main.transform.position.z > -10 - (Camera.main.transform.position.y - 10) / Mathf.Sqrt(3)) else if (Camera.main.transform.position.z > -10 - (Camera.main.transform.position.y - 10) / Mathf.Sqrt(3))
Camera.main.transform.position = new Vector3(Camera.main.transform.position.x, Camera.main.transform.position.y, -10 - (Camera.main.transform.position.y - 10) / Mathf.Sqrt(3)); Camera.main.transform.position = new Vector3(Camera.main.transform.position.x, Camera.main.transform.position.y, -10 - (Camera.main.transform.position.y - 10) / Mathf.Sqrt(3));
if (Input.mousePosition.y < 0 + boundary && !Input.GetMouseButton(0)) if (Input.mousePosition.y < 0 + boundary && !Input.GetMouseButton(0))
{ {
if (Camera.main.transform.position.z > -130) if (Camera.main.transform.position.z > -95)
Camera.main.transform.Translate(0, -3 * speed * Time.deltaTime * Mathf.Sqrt(2), -3 * speed * Time.deltaTime * Mathf.Sqrt(2)); Camera.main.transform.Translate(0, -3 * speed * Time.deltaTime * Mathf.Sqrt(2), -3 * speed * Time.deltaTime * Mathf.Sqrt(2));
} }
else if (Camera.main.transform.position.z < -130) else if (Camera.main.transform.position.z < -95)
Camera.main.transform.position = new Vector3(Camera.main.transform.position.x, Camera.main.transform.position.y, -130); Camera.main.transform.position = new Vector3(Camera.main.transform.position.x, Camera.main.transform.position.y, -95);
//Camera movement by mouse dragging
if (Input.GetMouseButton(1) && !EventSystem.current.IsPointerOverGameObject()) if (Input.GetMouseButton(1) && !EventSystem.current.IsPointerOverGameObject())
{ {
mouse_position = new Vector3(Input.GetAxis("Mouse X"), 0, Input.GetAxis("Mouse Y")); mouse_position = new Vector3(Input.GetAxis("Mouse X"), 0, Input.GetAxis("Mouse Y"));
Camera.main.transform.position -= mouse_position; Camera.main.transform.position -= mouse_position;
} }
//Camera movement by clicking minimap
if (is_mouse_on_minimap() && MapUI.activeSelf) if (is_mouse_on_minimap() && MapUI.activeSelf)
{ {
float adjust_by_zoom; float adjust_by_zoom;
adjust_by_zoom = 24.5f - (2 - ViewFieldSquareControl.ViewInstance.zoom_counter) * 6; adjust_by_zoom = 35 - (2 - ViewFieldSquareControl.ViewInstance.zoom_counter) * 8;
if (Input.GetMouseButton(0)) if (Input.GetMouseButton(0))
{ {
......
...@@ -17,7 +17,7 @@ public class EndingMgr : MonoBehaviour { ...@@ -17,7 +17,7 @@ public class EndingMgr : MonoBehaviour {
else if (instance != this) else if (instance != this)
Destroy(gameObject); Destroy(gameObject);
DontDestroyOnLoad(gameObject); //DontDestroyOnLoad(gameObject);
} }
// Use this for initialization // Use this for initialization
void Start () { void Start () {
......
...@@ -9,37 +9,41 @@ using UnityEngine.EventSystems; ...@@ -9,37 +9,41 @@ using UnityEngine.EventSystems;
using System.Linq; using System.Linq;
public class GameManager : MonoBehaviour { public class GameManager : MonoBehaviour
{
// Game Model Instance Singleton // Game Model Instance Singleton
private CivModel.Game _game; private CivModel.Game _game;
public CivModel.Game Game { get { return _game; } } public CivModel.Game Game { get { return _game; } }
// GameManager Class Instance Singleton // GameManager Class Instance Singleton
private static GameManager _manager = null; private static GameManager _manager = null;
public static GameManager Instance { get { return _manager; } } public static GameManager Instance { get { return _manager; } }
// Tiles Instance Singleton // Tiles Instance Singleton
public GameObject HextilePrefab; public GameObject HextilePrefab;
private GameObject[,] _tiles; private GameObject[,] _tiles;
public GameObject[,] Tiles { get { return _tiles; } } public GameObject[,] Tiles { get { return _tiles; } }
private GameObject[,] _additional_tiles; private GameObject[,] _additional_tiles;
public GameObject[,] AdditionalTiles { get { return _additional_tiles; } } public GameObject[,] AdditionalTiles { get { return _additional_tiles; } }
// Minimap Tiles Instance Singleton // Minimap Tiles Instance Singleton
public GameObject MinimaptilePrefab; public GameObject MinimaptilePrefab;
private GameObject[,] _minimap_tiles; private GameObject[,] _minimap_tiles;
public GameObject[,] Minimap_tiles { get { return _minimap_tiles; } } public GameObject[,] Minimap_tiles { get { return _minimap_tiles; } }
// List of Units // List of Units
public GameObject UnitPrefab; public GameObject UnitPrefab;
private List<GameObject> _units = new List<GameObject>(); private List<GameObject> _units = new List<GameObject>();
public List<GameObject> Units { get { return _units; } } public List<GameObject> Units { get { return _units; } }
private List<GameObject> _additional_units = new List<GameObject>(); private List<GameObject> _additional_units = new List<GameObject>();
public List<GameObject> Additional_Units { get { return _additional_units; } } public List<GameObject> Additional_Units { get { return _additional_units; } }
// CivModel.Unit, Unit, Additional Unit dictionary
public Dictionary<CivModel.Unit, KeyValuePair<Unit, Unit>> UnitDic;
// Deploy State Singleton // Deploy State Singleton
public GameObject DeployRay;
private bool _inDepState = false; private bool _inDepState = false;
public bool DepState { get { return _inDepState; } } public bool DepState { get { return _inDepState; } }
...@@ -47,11 +51,8 @@ public class GameManager : MonoBehaviour { ...@@ -47,11 +51,8 @@ public class GameManager : MonoBehaviour {
private Production _deployment; private Production _deployment;
public Production Deployment { get { return _deployment; } } public Production Deployment { get { return _deployment; } }
// List of Unit Materials. Stored in Unity Editor
public Material[] materials;
// Class Variable which stores CivModel.Terrain.Point Component of Selected Point // Class Variable which stores CivModel.Terrain.Point Component of Selected Point
public CivModel.Terrain.Point selectedPoint; public CivModel.Terrain.Point selectedPoint;
// Class Variable which stores HexTile Component of Selected Tile // Class Variable which stores HexTile Component of Selected Tile
public HexTile selectedTile; public HexTile selectedTile;
...@@ -81,7 +82,15 @@ public class GameManager : MonoBehaviour { ...@@ -81,7 +82,15 @@ public class GameManager : MonoBehaviour {
private ManagementController managementcontroller; private ManagementController managementcontroller;
void Awake() { public GameObject QuestVoice;
public GameObject DoYouKnows;
public GameObject BGMs;
public GameObject HolySound;
void EstimateResource() {
}
void Awake() {
// Singleton // Singleton
if (_manager != null) { if (_manager != null) {
Destroy(gameObject); Destroy(gameObject);
...@@ -93,17 +102,27 @@ public class GameManager : MonoBehaviour { ...@@ -93,17 +102,27 @@ public class GameManager : MonoBehaviour {
var factories = new IGameSchemeFactory[] var factories = new IGameSchemeFactory[]
{ {
new CivModel.Common.GameSchemeFactory(),
new CivModel.Hwan.GameSchemeFactory(), new CivModel.Hwan.GameSchemeFactory(),
new CivModel.Finno.GameSchemeFactory(), new CivModel.Finno.GameSchemeFactory(),
new CivModel.Quests.GameSchemeFactory(), new CivModel.Quests.GameSchemeFactory(),
new CivModel.Zap.GameSchemeFactory(), new CivModel.Zap.GameSchemeFactory(),
new CivModel.AI.GameSchemeFactory() new CivModel.AI.GameSchemeFactory()
}; };
string[] pathStr = { "Assets", "map.txt" };
string path = Path.Combine(pathStr); string mapFile = Application.streamingAssetsPath + "/mapx.75.txt";
_game = new CivModel.Game(path, factories); Debug.Log(mapFile);
_game.StartTurn();
string[] protoFiles =
{
Application.streamingAssetsPath + "/package/finno/package.xml",
Application.streamingAssetsPath + "/package/hwan/package.xml",
Application.streamingAssetsPath + "/package/zap/package.xml",
Application.streamingAssetsPath + "/package/quests/package.xml",
};
var protoArray = protoFiles.Select(x => File.OpenText(x)).ToArray();
_game = new CivModel.Game(mapFile, protoArray, factories);
_game.StartTurn();
InitiateTurn(); InitiateTurn();
...@@ -111,13 +130,15 @@ public class GameManager : MonoBehaviour { ...@@ -111,13 +130,15 @@ public class GameManager : MonoBehaviour {
InitiateMap(); InitiateMap();
InitiateUnit(); InitiateUnit();
InitiateMinimapCamera(); InitiateMinimapCamera();
UnitAnimation.AnimationParticleObjectPool();
} }
// Use this for initialization // Use this for initialization
void Start() { void Start() {
CheckToDo(); CheckToDo();
managementcontroller = ManagementController.GetManagementController(); managementcontroller = ManagementController.GetManagementController();
GameUI.Instance.updatePanel();
Focus(_game.PlayerInTurn.Cities.First());
} }
void Update() void Update()
{ {
...@@ -152,7 +173,6 @@ public class GameManager : MonoBehaviour { ...@@ -152,7 +173,6 @@ public class GameManager : MonoBehaviour {
tile.SetPoints(point); tile.SetPoints(point);
tile.SetTerrain(); tile.SetTerrain();
tile.SetBuilding(); tile.SetBuilding();
tile.UpdateColor();
// The earth is round. // The earth is round.
HexTile additional_tile = _additional_tiles[i, j].GetComponent<HexTile>(); HexTile additional_tile = _additional_tiles[i, j].GetComponent<HexTile>();
Vector3 pos = ModelPntToUnityPnt(point, -0.05f); Vector3 pos = ModelPntToUnityPnt(point, -0.05f);
...@@ -164,11 +184,13 @@ public class GameManager : MonoBehaviour { ...@@ -164,11 +184,13 @@ public class GameManager : MonoBehaviour {
additional_tile.SetPoints(point, ad_pos); additional_tile.SetPoints(point, ad_pos);
additional_tile.SetTerrain(); additional_tile.SetTerrain();
additional_tile.SetBuilding(); additional_tile.SetBuilding();
additional_tile.UpdateColor();
} }
// Check if there exists quest that has completed. // Check if there exists quest that has completed.
CheckCompletedQuest(); CheckCompletedQuest();
} }
GameUI.Instance.updatePanel();
} }
// Unit Postion Fix, Deletion and Insertion // Unit Postion Fix, Deletion and Insertion
...@@ -209,7 +231,7 @@ public class GameManager : MonoBehaviour { ...@@ -209,7 +231,7 @@ public class GameManager : MonoBehaviour {
0, 0,
true); true);
} }
UnitDic.Remove(unit.GetComponent<Unit>().unitModel);
_units.Remove(unit); _units.Remove(unit);
Destroy(unit); Destroy(unit);
GameObject additionalUnitToDelete = _additional_units.Find(x => x.name.Equals("Additional" + unit.name)); GameObject additionalUnitToDelete = _additional_units.Find(x => x.name.Equals("Additional" + unit.name));
...@@ -262,6 +284,10 @@ public class GameManager : MonoBehaviour { ...@@ -262,6 +284,10 @@ public class GameManager : MonoBehaviour {
ad_unit.GetComponent<Unit>().unitOwnerNumber = unt.Owner.PlayerNumber; ad_unit.GetComponent<Unit>().unitOwnerNumber = unt.Owner.PlayerNumber;
_additional_units.Add(ad_unit); _additional_units.Add(ad_unit);
ad_unit.GetComponent<Unit>().unitModel.SkipFlag = true; ad_unit.GetComponent<Unit>().unitModel.SkipFlag = true;
UnitDic.Add(unt, new KeyValuePair<Unit, Unit>
(unit.GetComponent<Unit>(), ad_unit.GetComponent<Unit>()));
unit.GetComponent<Unit>().pairUnit = ad_unit.GetComponent<Unit>();
ad_unit.GetComponent<Unit>().pairUnit = unit.GetComponent<Unit>();
} }
} }
...@@ -308,6 +334,8 @@ public class GameManager : MonoBehaviour { ...@@ -308,6 +334,8 @@ public class GameManager : MonoBehaviour {
UIManager.Instance.UpdateUnitInfo(); UIManager.Instance.UpdateUnitInfo();
// Update Quest Queue // Update Quest Queue
UIController.GetUIController().MakeQuestQueue(); UIController.GetUIController().MakeQuestQueue();
GameUI.Instance.updatePanel();
} }
// Initialize Tile Map // Initialize Tile Map
...@@ -369,6 +397,7 @@ public class GameManager : MonoBehaviour { ...@@ -369,6 +397,7 @@ public class GameManager : MonoBehaviour {
// Initialize Units of Model // Initialize Units of Model
private void InitiateUnit() { private void InitiateUnit() {
int plyrIdx = 0; int plyrIdx = 0;
UnitDic = new Dictionary<CivModel.Unit, KeyValuePair<Unit, Unit>>();
foreach (CivModel.Player plyr in Game.Players) { foreach (CivModel.Player plyr in Game.Players) {
int untIdx = 0; int untIdx = 0;
foreach (CivModel.Unit unt in plyr.Units) { foreach (CivModel.Unit unt in plyr.Units) {
...@@ -390,7 +419,7 @@ public class GameManager : MonoBehaviour { ...@@ -390,7 +419,7 @@ public class GameManager : MonoBehaviour {
unit.AddComponent<Unit>(); unit.AddComponent<Unit>();
additional_unit.AddComponent<Unit>(); additional_unit.AddComponent<Unit>();
unit.name = String.Format("Unit({0},{1})", plyrIdx, untIdx); unit.name = String.Format("Unit({0},{1})", plyrIdx, untIdx);
additional_unit.name = String.Format("AdditionalUnit({0},{1})", plyrIdx, untIdx); additional_unit.name = String.Format("AdditionalUnit({0},{1})", plyrIdx, untIdx);
unit.GetComponent<Unit>().unitModel = unt; unit.GetComponent<Unit>().unitModel = unt;
additional_unit.GetComponent<Unit>().unitModel = unt; additional_unit.GetComponent<Unit>().unitModel = unt;
...@@ -400,12 +429,16 @@ public class GameManager : MonoBehaviour { ...@@ -400,12 +429,16 @@ public class GameManager : MonoBehaviour {
additional_unit.GetComponent<Unit>().unitOwnerNumber = unt.Owner.PlayerNumber; additional_unit.GetComponent<Unit>().unitOwnerNumber = unt.Owner.PlayerNumber;
_units.Add(unit); _units.Add(unit);
_additional_units.Add(additional_unit); _additional_units.Add(additional_unit);
} UnitDic.Add( unt, new KeyValuePair<Unit, Unit>
(unit.GetComponent<Unit>(), additional_unit.GetComponent<Unit>()) );
unit.GetComponent<Unit>().pairUnit = additional_unit.GetComponent<Unit>();
additional_unit.GetComponent<Unit>().pairUnit = unit.GetComponent<Unit>();
}
untIdx++; untIdx++;
} }
plyrIdx++; plyrIdx++;
} }
} }
private void InitiateMinimapCamera() private void InitiateMinimapCamera()
{ {
...@@ -581,7 +614,7 @@ public class GameManager : MonoBehaviour { ...@@ -581,7 +614,7 @@ public class GameManager : MonoBehaviour {
// State change // State change
if (depList.First() == null || _inDepState) return; if (depList.First() == null || _inDepState) return;
_inDepState = true; _inDepState = true;
List<GameObject> PlaceablePoints = new List<GameObject>();
// Represent Tiles which are available to place Actor // Represent Tiles which are available to place Actor
CivModel.Terrain terrain = Instance.Game.Terrain; CivModel.Terrain terrain = Instance.Game.Terrain;
for (int i = 0; i < terrain.Width; i++) for (int i = 0; i < terrain.Width; i++)
...@@ -591,22 +624,30 @@ public class GameManager : MonoBehaviour { ...@@ -591,22 +624,30 @@ public class GameManager : MonoBehaviour {
CivModel.Terrain.Point point = terrain.GetPoint(i, j); CivModel.Terrain.Point point = terrain.GetPoint(i, j);
if (depList.First().IsPlacable(point)) if (depList.First().IsPlacable(point))
{ {
Instance.Tiles[point.Position.X, point.Position.Y].GetComponent<HexTile>().FlickerBlue(); GameObject tile = Instance.Tiles[point.Position.X, point.Position.Y];
Instance.AdditionalTiles[point.Position.X, point.Position.Y].GetComponent<HexTile>().FlickerBlue(); GameObject additionaltile = Instance.AdditionalTiles[point.Position.X, point.Position.Y];
PlaceablePoints.Add(tile);
PlaceablePoints.Add(additionaltile);
Instantiate(DeployRay, tile.transform);
Instantiate(DeployRay, additionaltile.transform);
tile.GetComponent<HexTile>().isFlickerForSelect = true;
additionaltile.GetComponent<HexTile>().isFlickerForSelect = true;
//Instance.Tiles[point.Position.X, point.Position.Y].GetComponent<HexTile>().FlickerBlue();
//Instance.AdditionalTiles[point.Position.X, point.Position.Y].GetComponent<HexTile>().FlickerBlue();
} }
} }
} }
CivModel.Terrain.Point StartPoint = Instance.selectedPoint; CivModel.Terrain.Point StartPoint = Instance.selectedPoint;
IEnumerator _coroutine = DeployUnit(StartPoint, depList); IEnumerator _coroutine = DeployUnit(StartPoint, depList, PlaceablePoints);
StartCoroutine(_coroutine); StartCoroutine(_coroutine);
} }
IEnumerator DeployUnit(CivModel.Terrain.Point point, List<Production> depList) IEnumerator DeployUnit(CivModel.Terrain.Point point, List<Production> depList, List<GameObject> PlaceablePoints)
{ {
while (true) while (true)
{ {
if (!EventSystem.current.IsPointerOverGameObject() && Input.GetMouseButtonUp(0)) if (!EventSystem.current.IsPointerOverGameObject() && Input.GetMouseButtonDown(0))
{ {
if (Instance.selectedTile == null) if (Instance.selectedTile == null)
yield return new WaitUntil(() => Instance.selectedTile != null); yield return new WaitUntil(() => Instance.selectedTile != null);
...@@ -614,27 +655,30 @@ public class GameManager : MonoBehaviour { ...@@ -614,27 +655,30 @@ public class GameManager : MonoBehaviour {
CivModel.Terrain.Point destPoint = Instance.selectedPoint; CivModel.Terrain.Point destPoint = Instance.selectedPoint;
// Flicker하고 있는 Tile을 선택했을 때 // Flicker하고 있는 Tile을 선택했을 때
if (Instance.selectedTile.isFlickering) if (Instance.selectedTile.isFlickerForSelect)
{ {
Debug.Log("flicker");
if (depList.First().IsPlacable(destPoint)) if (depList.First().IsPlacable(destPoint))
{ {
foreach(Production dep in depList) Debug.Log("deploy");
foreach (Production dep in depList)
{ {
Game.PlayerInTurn.Deployment.Remove(dep); Game.PlayerInTurn.Deployment.Remove(dep);
dep.Place(destPoint); dep.Place(destPoint);
} }
DepStateExit(); DepStateExit(PlaceablePoints);
GameManager.Instance.UpdateUnit(); GameManager.Instance.UpdateUnit();
GameManager.Instance.UpdateMap(); GameManager.Instance.UpdateMap();
break; break;
} }
else else
{ {
DepStateExit(); Debug.Log("no");
DepStateExit(PlaceablePoints);
break; break;
} }
} }
DepStateExit(); DepStateExit(PlaceablePoints);
break; break;
} }
yield return null; yield return null;
...@@ -642,20 +686,32 @@ public class GameManager : MonoBehaviour { ...@@ -642,20 +686,32 @@ public class GameManager : MonoBehaviour {
} }
// Exiting Deploy State // Exiting Deploy State
void DepStateExit() void DepStateExit(List<GameObject> PlaceablePoints)
{ {
_inDepState = false; _inDepState = false;
_deployment = null; _deployment = null;
CivModel.Terrain terrain = Instance.Game.Terrain;
foreach (GameObject Point in PlaceablePoints)
{
int count = Point.transform.childCount;
if (count > 2)
{
Point.GetComponent<HexTile>().isFlickerForSelect = true;
Destroy(Point.transform.Find("DeployRay(Clone)").gameObject);
}
}
/*
for (int i = 0; i < terrain.Width; i++) for (int i = 0; i < terrain.Width; i++)
{ {
for (int j = 0; j < terrain.Height; j++) for (int j = 0; j < terrain.Height; j++)
{ {
CivModel.Terrain.Point point = terrain.GetPoint(i, j); CivModel.Terrain.Point point = terrain.GetPoint(i, j);
Instance.Tiles[point.Position.X, point.Position.Y].GetComponent<HexTile>().StopFlickering(); Instance.Tiles[point.Position.X, point.Position.Y].GetComponent<HexTile>().StopFlickering();
Instance.AdditionalTiles[point.Position.X, point.Position.Y].GetComponent<HexTile>().StopFlickering(); Instance.AdditionalTiles[point.Position.X, point.Position.Y].GetComponent<HexTile>().StopFlickering();
} }
} }*/
managementcontroller.MakeProductionQ(); managementcontroller.MakeProductionQ();
managementcontroller.MakeDeploymentQ(); managementcontroller.MakeDeploymentQ();
...@@ -673,7 +729,7 @@ public class GameManager : MonoBehaviour { ...@@ -673,7 +729,7 @@ public class GameManager : MonoBehaviour {
case QuestStatus.Deployed: case QuestStatus.Deployed:
if (!NewQuestQueue.Contains(qst)) if (!NewQuestQueue.Contains(qst))
{ {
Sprite questPortrait = QuestInfo.GetPortraitImage(qst); Sprite questPortrait = QuestInfo.GetRequesterPortraitImage(qst);
AlarmManager.Instance.AddAlarm(questPortrait, AlarmManager.Instance.AddAlarm(questPortrait,
qst.TextName + " 시작가능", qst.TextName + " 시작가능",
delegate { delegate {
...@@ -691,7 +747,7 @@ public class GameManager : MonoBehaviour { ...@@ -691,7 +747,7 @@ public class GameManager : MonoBehaviour {
// Check if there exist quests that have finished. // Check if there exist quests that have finished.
public void CheckCompletedQuest() public void CheckCompletedQuest()
{ {
foreach (Quest qst in GameManager.Instance.Game.PlayerInTurn.Quests) foreach (Quest qst in Instance.Game.PlayerInTurn.Quests)
{ {
switch (qst.Status) switch (qst.Status)
{ {
...@@ -701,6 +757,8 @@ public class GameManager : MonoBehaviour { ...@@ -701,6 +757,8 @@ public class GameManager : MonoBehaviour {
Sprite questPortrait = QuestInfo.GetPortraitImage(qst); Sprite questPortrait = QuestInfo.GetPortraitImage(qst);
UIManager.Instance.SetQuestComplete(qst); UIManager.Instance.SetQuestComplete(qst);
UIManager.Instance.QuestComplete.SetActive(true); UIManager.Instance.QuestComplete.SetActive(true);
StartCoroutine(PlayQuestSound(qst, HolySound.GetComponent<AudioSource>().clip.length));
//PlayQuestSoundVoice(qst);
AlarmManager.Instance.AddAlarm(questPortrait, AlarmManager.Instance.AddAlarm(questPortrait,
qst.TextName + " 완료됨", qst.TextName + " 완료됨",
delegate { delegate {
...@@ -717,10 +775,38 @@ public class GameManager : MonoBehaviour { ...@@ -717,10 +775,38 @@ public class GameManager : MonoBehaviour {
GameUI.Instance.CheckEnd(); GameUI.Instance.CheckEnd();
} }
private int GetQuestNumber(Quest qst)
{
switch(QuestInfo.GetQuestName(qst))
{
case "hwan_main1":
return 0;
case "hwan_main2":
return 1;
case "hwan_main3":
return 2;
case "hwan_sub1":
return 3;
case "hwan_sub2":
return 4;
case "finno_main1":
return 5;
case "finno_main2":
return 6;
case "finno_main3":
return 7;
case "finno_sub1":
return 8;
case "finno_sub2":
return 9;
default:
return 10;
}
}
// Check if there exist production that have finished. // Check if there exist production that have finished.
public void CheckCompletedProduction() public void CheckCompletedProduction()
{ {
foreach (Production prod in GameManager.Instance.Game.PlayerInTurn.Deployment) foreach (Production prod in GameManager.Instance.Game.PlayerInTurn.Deployment)
{ {
if (!AlarmedProduction.Contains(ProductionFactoryTraits.GetFacPortName(prod.Factory))) if (!AlarmedProduction.Contains(ProductionFactoryTraits.GetFacPortName(prod.Factory)))
...@@ -736,9 +822,6 @@ public class GameManager : MonoBehaviour { ...@@ -736,9 +822,6 @@ public class GameManager : MonoBehaviour {
AlarmedProduction.Add(ProductionFactoryTraits.GetFacPortName(prod.Factory)); AlarmedProduction.Add(ProductionFactoryTraits.GetFacPortName(prod.Factory));
} }
} }
// If you do not want to re-alarm production, Comment this line.
AlarmedProduction.Clear();
} }
bool IsSpyNear(CivModel.Position pt) bool IsSpyNear(CivModel.Position pt)
...@@ -859,4 +942,134 @@ public class GameManager : MonoBehaviour { ...@@ -859,4 +942,134 @@ public class GameManager : MonoBehaviour {
return false; return false;
} }
IEnumerator PlayQuestSound(Quest qst, float delay)
{
PauseBGM();
PlayHolySound();
if (UIManager.Instance.QuestComplete.activeSelf)
{
yield return new WaitForSeconds(delay);
PlayQuestSoundVoice(qst);
}
}
private void PlayQuestSoundVoice(Quest qst)
{
if (UIManager.Instance.QuestComplete.activeSelf)
{
int n = GetQuestNumber(qst);
if (n == 10) return;
System.Random rand = new System.Random();
int doyouknowidx = rand.Next(0, 10);
PauseBGM();
float dyklength = PlayDoYouKnow(doyouknowidx) - 1f;
if (UIManager.Instance.QuestComplete.activeSelf)
{
switch (n)
{
case 0:
Invoke("PlayHM1QuestVoice", dyklength);
break;
case 1:
Invoke("PlayHM2QuestVoice", dyklength);
break;
case 2:
Invoke("PlayHM3QuestVoice", dyklength);
break;
case 3:
Invoke("PlayHS1QuestVoice", dyklength);
break;
case 4:
Invoke("PlayHS2QuestVoice", dyklength);
break;
case 5:
Invoke("PlayFM1QuestVoice", dyklength);
break;
case 6:
Invoke("PlayFM2QuestVoice", dyklength);
break;
case 7:
Invoke("PlayFM3QuestVoice", dyklength);
break;
case 8:
Invoke("PlayFS1QuestVoice", dyklength);
break;
case 9:
Invoke("PlayFS2QuestVoice", dyklength);
break;
default:
break;
}
}
}
}
private void PlayHolySound()
{
HolySound.GetComponent<AudioSource>().Play();
}
private float PlayDoYouKnow(int idx)
{
DoYouKnows.transform.GetChild(idx).GetComponent<AudioSource>().Play();
return DoYouKnows.transform.GetChild(idx).GetComponent<AudioSource>().clip.length;
}
private void PlayHM1QuestVoice()
{
QuestVoice.transform.GetChild(0).GetComponent<AudioSource>().Play();
}
private void PlayHM2QuestVoice()
{
QuestVoice.transform.GetChild(1).GetComponent<AudioSource>().Play();
}
private void PlayHM3QuestVoice()
{
QuestVoice.transform.GetChild(2).GetComponent<AudioSource>().Play();
}
private void PlayHS1QuestVoice()
{
QuestVoice.transform.GetChild(3).GetComponent<AudioSource>().Play();
}
private void PlayHS2QuestVoice()
{
QuestVoice.transform.GetChild(4).GetComponent<AudioSource>().Play();
}
private void PlayFM1QuestVoice()
{
QuestVoice.transform.GetChild(5).GetComponent<AudioSource>().Play();
}
private void PlayFM2QuestVoice()
{
QuestVoice.transform.GetChild(6).GetComponent<AudioSource>().Play();
}
private void PlayFM3QuestVoice()
{
QuestVoice.transform.GetChild(7).GetComponent<AudioSource>().Play();
}
private void PlayFS1QuestVoice()
{
QuestVoice.transform.GetChild(8).GetComponent<AudioSource>().Play();
}
private void PlayFS2QuestVoice()
{
QuestVoice.transform.GetChild(9).GetComponent<AudioSource>().Play();
}
private void PauseBGM()
{
if (BGMs.transform.GetChild(0).GetComponent<AudioSource>().isPlaying)
BGMs.transform.GetChild(0).GetComponent<AudioSource>().Pause();
if (BGMs.transform.GetChild(0).GetComponent<AudioSource>().isPlaying)
BGMs.transform.GetChild(1).GetComponent<AudioSource>().Pause();
}
public void StopQuestVoice()
{
for(int i = 0; i < 10; i++)
{
if (QuestVoice.transform.GetChild(i).GetComponent<AudioSource>().isPlaying)
QuestVoice.transform.GetChild(i).GetComponent<AudioSource>().Stop();
}
}
} }
\ No newline at end of file
...@@ -14,12 +14,6 @@ public class GameStarter : MonoBehaviour ...@@ -14,12 +14,6 @@ public class GameStarter : MonoBehaviour
GameInfo.SetPlayer(CivModel.Hwan.HwanPlayerNumber.Number); GameInfo.SetPlayer(CivModel.Hwan.HwanPlayerNumber.Number);
} }
// Update is called once per frame
void Update()
{
}
public void StartHwan() public void StartHwan()
{ {
GameInfo.SetPlayer(CivModel.Hwan.HwanPlayerNumber.Number); GameInfo.SetPlayer(CivModel.Hwan.HwanPlayerNumber.Number);
......
...@@ -4,16 +4,20 @@ using UnityEngine; ...@@ -4,16 +4,20 @@ using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using UnityEngine.SceneManagement; using UnityEngine.SceneManagement;
public class LoadingSceneMgr : MonoBehaviour public class LoadingSceneMgr : MonoBehaviour
{ {
public static string nextScene; public static string nextScene;
[SerializeField] [SerializeField]
Image progressBar; Image HwanprogressBar, FinnoprogressBar, progressBar;
private void Start() private void Start()
{ {
if (GameInfo.UserPlayer == 0)
progressBar = HwanprogressBar;
else
progressBar = FinnoprogressBar;
StartCoroutine(LoadScene()); StartCoroutine(LoadScene());
} }
......
...@@ -17,7 +17,7 @@ public class QuestInfo : MonoBehaviour { ...@@ -17,7 +17,7 @@ public class QuestInfo : MonoBehaviour {
} }
static public string GetRequesterCountry(Quest qst) { static public string GetRequesterCountry(Quest qst) {
return qst.Requester.PlayerName; return qst.Requester?.PlayerName ?? "(없음)";
} }
static public string GetQuestName(Quest qst) static public string GetQuestName(Quest qst)
...@@ -64,9 +64,49 @@ public class QuestInfo : MonoBehaviour { ...@@ -64,9 +64,49 @@ public class QuestInfo : MonoBehaviour {
{ {
questName = "finno_main1"; questName = "finno_main1";
} }
else if(qst is QuestHwanTuto1)
{
questName = "hwan_tuto1";
}
else if(qst is QuestHwanTuto2)
{
questName = "hwan_tuto2";
}
else if(qst is QuestHwanTuto3)
{
questName = "hwan_tuto3";
}
else if(qst is QuestHwanTuto4)
{
questName = "hwan_tuto4";
}
else if(qst is QuestHwanTuto5)
{
questName = "hwan_tuto5";
}
else if(qst is QuestFinnoTuto1)
{
questName = "finno_tuto1";
}
else if (qst is QuestFinnoTuto2)
{
questName = "finno_tuto2";
}
else if (qst is QuestFinnoTuto3)
{
questName = "finno_tuto3";
}
else if (qst is QuestFinnoTuto4)
{
questName = "finno_tuto4";
}
else if (qst is QuestFinnoTuto5)
{
questName = "finno_tuto5";
}
else else
{ {
questName = "hwan_main1"; questName = "invisible";
Debug.Log("Unknown Quest: " + qst.TextName); Debug.Log("Unknown Quest: " + qst.TextName);
} }
...@@ -78,6 +118,42 @@ public class QuestInfo : MonoBehaviour { ...@@ -78,6 +118,42 @@ public class QuestInfo : MonoBehaviour {
return Resources.Load<Sprite>("Quests/" + questName); return Resources.Load<Sprite>("Quests/" + questName);
} }
static public Sprite GetRequesterPortraitImage(Quest qst) {
if (qst.Requester == null)
return Resources.Load<Sprite>("Quests/lemuria");
int requesterNumber = qst.Requester.PlayerNumber;
string requesterName = "";
switch (requesterNumber)
{
case 0:
requesterName = "hwan"; break;
case 1:
requesterName = "finno"; break;
case 2:
requesterName = "egypt"; break;
case 3:
requesterName = "atlantis"; break;
case 4:
requesterName = "fish"; break;
case 5:
requesterName = "emu"; break;
case 6:
requesterName = "shied"; break;
case 7:
requesterName = "lemuria"; break;
case 8:
requesterName = "easter"; break;
default:
requesterName = GetQuestName(qst);
Debug.Log("Unknown Requester");
break;
}
return Resources.Load<Sprite>("Quests/" + requesterName);
}
static public Sprite GetExplainImage(Quest qst) static public Sprite GetExplainImage(Quest qst)
{ {
string questName = GetQuestName(qst); string questName = GetQuestName(qst);
...@@ -88,4 +164,6 @@ public class QuestInfo : MonoBehaviour { ...@@ -88,4 +164,6 @@ public class QuestInfo : MonoBehaviour {
return ""; return "";
} }
} }
...@@ -108,8 +108,8 @@ public class ResourceInfo : MonoBehaviour { ...@@ -108,8 +108,8 @@ public class ResourceInfo : MonoBehaviour {
} }
else else
{ {
resourceSpriteName = "finno_crystal"; resourceSpriteName = "questionmark";
Debug.Log("Unknown Quest: " + qst.TextName); //Debug.Log("Unknown Quest: " + qst.TextName);
} }
return Resources.Load<Sprite>("SpecialResource/" + resourceSpriteName); return Resources.Load<Sprite>("SpecialResource/" + resourceSpriteName);
} }
......
...@@ -31,42 +31,8 @@ public class HexTile : MonoBehaviour ...@@ -31,42 +31,8 @@ public class HexTile : MonoBehaviour
void Start() { void Start() {
SetTerrain(); SetTerrain();
SetBuilding(); SetBuilding();
SetColor();
terrains.GetChild((int)point.Type).GetComponent<Renderer>().material.color += color;
}
//Set tile's color depending on owner.
private void SetColor()
{
var owner = point.TileOwner;
if (owner == GameManager.Instance.Game.Players[0])
color = Color.red / 2;
else if (owner == GameManager.Instance.Game.Players[1])
color = Color.blue * 1.5f;
else if (owner == GameManager.Instance.Game.Players[2])
color = Color.yellow / 3;
else if (owner == GameManager.Instance.Game.Players[3])
color = Color.cyan / 3;
else if (owner == GameManager.Instance.Game.Players[4])
color = Color.gray;
else if (owner == GameManager.Instance.Game.Players[5])
color = Color.magenta;
else if (owner == GameManager.Instance.Game.Players[6])
color = Color.magenta * 2;
else if (owner == GameManager.Instance.Game.Players[7])
color = Color.yellow / 2;
else if (owner == GameManager.Instance.Game.Players[8])
color = Color.green / 2;
else
color = new Color(0, 0, 0, 0);
}
public void UpdateColor()
{
terrains.GetChild((int)point.Type).GetComponent<Renderer>().material.color -= color;
SetColor();
terrains.GetChild((int)point.Type).GetComponent<Renderer>().material.color += color;
} }
// Change Tile position to given CivModel.Terrain.Point value // Change Tile position to given CivModel.Terrain.Point value
// Default y position is -.0.05f // Default y position is -.0.05f
public void SetPoints(CivModel.Terrain.Point p1) { public void SetPoints(CivModel.Terrain.Point p1) {
...@@ -81,14 +47,12 @@ public class HexTile : MonoBehaviour ...@@ -81,14 +47,12 @@ public class HexTile : MonoBehaviour
// Render Tile Terrain // Render Tile Terrain
public void SetTerrain() { public void SetTerrain() {
terrains = transform.GetChild(0).transform; int type = (int)point.Type;
if (terrains != null) { int owner = GetPlayerNumber();
foreach (Transform child in terrains) { for(int i = 0; i < 8; i++)
child.gameObject.SetActive(false); for(int j = 0; j < 10; j++)
} transform.GetChild(0).GetChild(i).GetChild(j).gameObject.SetActive(false);
transform.GetChild(0).GetChild(type).GetChild(owner).gameObject.SetActive(true);
terrains.GetChild((int)point.Type).gameObject.SetActive(true);
}
} }
// Render Tile Building // Render Tile Building
...@@ -134,13 +98,33 @@ public class HexTile : MonoBehaviour ...@@ -134,13 +98,33 @@ public class HexTile : MonoBehaviour
side = buildings.GetChild(1); side = buildings.GetChild(1);
side.GetChild(4).gameObject.SetActive(true); side.GetChild(4).gameObject.SetActive(true);
} }
else if(building is CivModel.Hwan.Preternaturality) {
side = buildings.GetChild(0);
side.GetChild(5).gameObject.SetActive(true);
}
else if(building is CivModel.Finno.Preternaturality) {
side = buildings.GetChild(0);
side.GetChild(5).gameObject.SetActive(true);
}
} }
// Set player number which model didn't implemented
public int GetPlayerNumber()
{
var owner = point.TileOwner;
if (owner == null) return 9;
else
for (int i = 0; i < 9; i++)
if (owner == GameManager.Instance.Game.Players[i])
return i;
return 9;
}
// Flicker Tile with White Color // Flicker Tile with White Color
public void FlickerWhite() public void FlickerWhite()
{ {
isFlickerForSelect = true; isFlickerForSelect = true;
if (terrains.GetChild((int)point.Type).GetComponent<Renderer>() == null) if (transform.GetChild(0).GetChild((int)point.Type).GetChild(GetPlayerNumber()).GetComponent<Renderer>() == null)
return; return;
_coroutine = Flicker(Color.white); _coroutine = Flicker(Color.white);
StartCoroutine(_coroutine); StartCoroutine(_coroutine);
...@@ -148,9 +132,9 @@ public class HexTile : MonoBehaviour ...@@ -148,9 +132,9 @@ public class HexTile : MonoBehaviour
// Flicker Tile with Cyan Color // Flicker Tile with Cyan Color
public void FlickerCyan() { public void FlickerCyan() {
isFlickerForSelect = true; isFlickerForSelect = true;
//Debug.Log(gameObject.name + " is flickering with cyan"); //Debug.Log(gameObject.name + " is flickering with cyan");
if (terrains.GetChild((int)point.Type).GetComponent<Renderer>() == null) if (transform.GetChild(0).GetChild((int)point.Type).GetChild(GetPlayerNumber()).GetComponent<Renderer>() == null)
return; return;
_coroutine = Flicker(Color.cyan); _coroutine = Flicker(Color.cyan);
StartCoroutine(_coroutine); StartCoroutine(_coroutine);
} }
...@@ -159,7 +143,7 @@ public class HexTile : MonoBehaviour ...@@ -159,7 +143,7 @@ public class HexTile : MonoBehaviour
{ {
isFlickering = true; isFlickering = true;
//Debug.Log(gameObject.name + " is flickering with blue"); //Debug.Log(gameObject.name + " is flickering with blue");
if (terrains.GetChild((int)point.Type).GetComponent<Renderer>() == null) if (transform.GetChild(0).GetChild((int)point.Type).GetChild(GetPlayerNumber()).GetComponent<Renderer>() == null)
return; return;
_coroutine = Flicker(Color.blue); _coroutine = Flicker(Color.blue);
StartCoroutine(_coroutine); StartCoroutine(_coroutine);
...@@ -170,7 +154,7 @@ public class HexTile : MonoBehaviour ...@@ -170,7 +154,7 @@ public class HexTile : MonoBehaviour
{ {
isFlickering = true; isFlickering = true;
//Debug.Log(gameObject.name + " is flickering with red"); //Debug.Log(gameObject.name + " is flickering with red");
if (terrains.GetChild((int)point.Type).GetComponent<Renderer>() == null) if (transform.GetChild(0).GetChild((int)point.Type).GetChild(GetPlayerNumber()).GetComponent<Renderer>() == null)
return; return;
_coroutine = Flicker(Color.red); _coroutine = Flicker(Color.red);
StartCoroutine(_coroutine); StartCoroutine(_coroutine);
...@@ -182,20 +166,18 @@ public class HexTile : MonoBehaviour ...@@ -182,20 +166,18 @@ public class HexTile : MonoBehaviour
isFlickering = false; isFlickering = false;
isFlickerForSelect = false; isFlickerForSelect = false;
//Debug.Log(gameObject.name + " stopped flickering"); //Debug.Log(gameObject.name + " stopped flickering");
if (terrains.GetChild((int)point.Type).GetComponent<Renderer>() == null) if (transform.GetChild(0).GetChild((int)point.Type).GetChild(GetPlayerNumber()).GetComponent<Renderer>() == null)
return; return;
if (_coroutine == null) if (_coroutine == null)
return; return;
StopCoroutine(_coroutine); StopCoroutine(_coroutine);
Material mat = terrains.GetChild((int)point.Type).GetComponent<Renderer>().material; transform.GetChild(0).GetChild((int)point.Type).GetChild(GetPlayerNumber()).GetComponent<Renderer>().material.SetColor("_Color", Color.white);
mat.SetColor("_Color", Color.white);
terrains.GetChild((int)point.Type).GetComponent<Renderer>().material.color += color;
} }
// Make tile flicker with color c. // Make tile flicker with color c.
IEnumerator Flicker(Color c) IEnumerator Flicker(Color c)
{ {
Material mat = terrains.GetChild((int)point.Type).GetComponent<Renderer>().material; Material mat = transform.GetChild(0).GetChild((int)point.Type).GetChild(GetPlayerNumber()).GetComponent<Renderer>().material;
Color delta = Color.white - c; Color delta = Color.white - c;
while (true) while (true)
...@@ -343,4 +325,4 @@ public class HexTile : MonoBehaviour ...@@ -343,4 +325,4 @@ public class HexTile : MonoBehaviour
} }
_skillParameterPoints.Clear(); _skillParameterPoints.Clear();
} }
} }
\ No newline at end of file
...@@ -3,7 +3,6 @@ using System.Collections.Generic; ...@@ -3,7 +3,6 @@ using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using CivModel; using CivModel;
using CivModel.Common;
using System; using System;
using System.Linq; using System.Linq;
...@@ -22,8 +21,6 @@ public class AlarmManager : MonoBehaviour ...@@ -22,8 +21,6 @@ public class AlarmManager : MonoBehaviour
public AudioClip alarmSound; public AudioClip alarmSound;
AudioSource alarmAudio; AudioSource alarmAudio;
int rowCount = 0;
void Awake() void Awake()
{ {
// Singleton // Singleton
...@@ -48,10 +45,13 @@ public class AlarmManager : MonoBehaviour ...@@ -48,10 +45,13 @@ public class AlarmManager : MonoBehaviour
void ActiveAlarm() void ActiveAlarm()
{ {
if (alarmViewPort.transform.childCount <= 0) if (alarmViewPort.transform.childCount <= 0)
{
alarmTab.SetActive(false); alarmTab.SetActive(false);
}
else else
{ {
alarmTab.SetActive(true); alarmTab.SetActive(true);
PlayAlarmSound();
} }
} }
...@@ -82,14 +82,10 @@ public class AlarmManager : MonoBehaviour ...@@ -82,14 +82,10 @@ public class AlarmManager : MonoBehaviour
// Update leftTurn of alarms and Show alarms whose leftTurn is 0. // Update leftTurn of alarms and Show alarms whose leftTurn is 0.
// Called After a Turn Starts. // Called After a Turn Starts.
public void updateAlarmQueue() public void updateAlarmQueue()
{ {
rowCount = 0; for (int x = alarmViewPort.transform.childCount - 1; x >= 0; x--)
alarmViewPort.GetComponent<RectTransform>().sizeDelta = Vector2.zero;
foreach(Transform alarm in alarmViewPort.GetComponentsInChildren<Transform>().Skip(1))
{ {
Destroy(alarm.gameObject); DeleteAlarm(alarmViewPort.transform.GetChild(x).gameObject);
} }
List<GameObject> alarmToRemove = new List<GameObject>(); List<GameObject> alarmToRemove = new List<GameObject>();
...@@ -130,13 +126,14 @@ public class AlarmManager : MonoBehaviour ...@@ -130,13 +126,14 @@ public class AlarmManager : MonoBehaviour
alarm.transform.SetParent(alarmViewPort.transform, false); alarm.transform.SetParent(alarmViewPort.transform, false);
alarm.GetComponent<AlarmModel>().DispAlarmData(isDied); alarm.GetComponent<AlarmModel>().DispAlarmData(isDied);
alarmViewPort.GetComponent<GridLayoutGroup>().constraintCount = ++rowCount; //alarmViewPort.GetComponent<GridLayoutGroup>().constraintCount = ++rowCount;
alarmViewPort.GetComponent<RectTransform>().sizeDelta += new Vector2(0, 20); //alarmViewPort.GetComponent<RectTransform>().sizeDelta += new Vector2(0, 20);
ActiveAlarm(); ActiveAlarm();
} }
public void PlayAlarmSound() public void PlayAlarmSound()
{ {
if (alarmAudio.isPlaying) return;
alarmAudio.PlayOneShot(alarmSound); alarmAudio.PlayOneShot(alarmSound);
} }
......
...@@ -4,7 +4,6 @@ using UnityEngine; ...@@ -4,7 +4,6 @@ using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using UnityEngine.EventSystems; using UnityEngine.EventSystems;
using CivModel; using CivModel;
using CivModel.Common;
using System; using System;
public class CityBuilding : MonoBehaviour public class CityBuilding : MonoBehaviour
......
...@@ -6,6 +6,12 @@ using CivModel; ...@@ -6,6 +6,12 @@ using CivModel;
using System.Threading.Tasks; using System.Threading.Tasks;
using System; using System;
using UnityEngine.SceneManagement; using UnityEngine.SceneManagement;
using System.Linq;
using CivModel.Quests;
using static CivModel.Finno.FinnoPlayerNumber;
using static CivModel.Hwan.HwanPlayerNumber;
public class GameUI : MonoBehaviour { public class GameUI : MonoBehaviour {
...@@ -15,11 +21,16 @@ public class GameUI : MonoBehaviour { ...@@ -15,11 +21,16 @@ public class GameUI : MonoBehaviour {
public GameObject EndTurn; public GameObject EndTurn;
public Text goldText, populationText, happinessText, researchText, laborText; public Text goldText, populationText, happinessText, researchText, laborText;
public GameObject endingScene; public GameObject endingScene;
public GameObject Music;
private UIController uicontroller; private UIController uicontroller;
private ManagementController managementcontroller; private ManagementController managementcontroller;
private SpecialResourceView specialResourceView; private SpecialResourceView specialResourceView;
//public GameObject ultimateProgress = null;
public GameObject myUltimateProgress;
public GameObject oppositeUltimateProgress;
public GameObject UltAlert;
bool checkButtonText = true; bool checkButtonText = true;
void Awake() void Awake()
{ {
...@@ -28,20 +39,22 @@ public class GameUI : MonoBehaviour { ...@@ -28,20 +39,22 @@ public class GameUI : MonoBehaviour {
else if (Instance != this) else if (Instance != this)
Destroy(gameObject); Destroy(gameObject);
DontDestroyOnLoad(gameObject); //DontDestroyOnLoad(gameObject);
} }
// Use this for initialization // Use this for initialization
void Start () { void Start()
{
endingScene.SetActive(false); endingScene.SetActive(false);
//mapUI = GameObject.Find("MapUI"); //mapUI = GameObject.Find("MapUI");
uicontroller = UIController.GetUIController(); uicontroller = UIController.GetUIController();
managementcontroller = ManagementController.GetManagementController(); managementcontroller = ManagementController.GetManagementController();
specialResourceView = SpecialResourceView.GetSpecialResourceView(); specialResourceView = SpecialResourceView.GetSpecialResourceView();
StartCoroutine(updatePanelCoroutine());
} }
// Update is called once per frame // Update is called once per frame
void Update () { void Update() {
if (!GameManager.Instance.Game.PlayerInTurn.IsAIControlled) if (!GameManager.Instance.Game.PlayerInTurn.IsAIControlled)
{ {
EndTurn.GetComponentInChildren<Button>().enabled = true; EndTurn.GetComponentInChildren<Button>().enabled = true;
...@@ -51,37 +64,86 @@ public class GameUI : MonoBehaviour { ...@@ -51,37 +64,86 @@ public class GameUI : MonoBehaviour {
EndTurn.GetComponentInChildren<Text>().text = "유닛이 명령을 기다리고 있습니다"; EndTurn.GetComponentInChildren<Text>().text = "유닛이 명령을 기다리고 있습니다";
EndTurn.GetComponentInChildren<Text>().fontSize = 30; EndTurn.GetComponentInChildren<Text>().fontSize = 30;
} }
else if(checkButtonText) else if (checkButtonText)
{ {
EndTurn.GetComponentInChildren<Text>().text = "다음 턴"; EndTurn.GetComponentInChildren<Text>().text = "다음 턴";
EndTurn.GetComponentInChildren<Text>().fontSize = 40; EndTurn.GetComponentInChildren<Text>().fontSize = 40;
} }
}
}
IEnumerator updatePanelCoroutine()
{
while (true)
{
updatePanel(); updatePanel();
yield return new WaitForSeconds(1f);
} }
} }
public void updatePanel() public void updatePanel()
{ {
GameManager.Instance.Game.PlayerInTurn.EstimateResourceInputs(); GameManager.Instance.Game.PlayerInTurn.EstimateResourceInputs();
double gold = GameManager.Instance.Game.PlayerInTurn.Gold; double gold = GameManager.Instance.Game.PlayerInTurn.Gold;
double goldTurn = GameManager.Instance.Game.PlayerInTurn.GoldNetIncome; double goldTurn = GameManager.Instance.Game.PlayerInTurn.GoldNetIncome;
goldText.text = Math.Round(gold, 1) + "(+" + Math.Round(goldTurn, 1) + ")"; if (goldTurn >= 0)
{
goldText.text = Math.Round(gold, 1) + "(<color=#00ff00>+" + Math.Round(goldTurn, 1) + "</color>)";
}
else
{
goldText.text = Math.Round(gold, 1) + "(<color=#ff0000>" + Math.Round(goldTurn, 1) + "</color>)";
}
double population = GameManager.Instance.Game.PlayerInTurn.Population; double population = GameManager.Instance.Game.PlayerInTurn.Population;
populationText.text = Math.Round(population, 1).ToString(); populationText.text = Math.Round(population, 1).ToString();
double happiness = GameManager.Instance.Game.PlayerInTurn.Happiness; double happiness = GameManager.Instance.Game.PlayerInTurn.Happiness;
double happinessTurn = GameManager.Instance.Game.PlayerInTurn.HappinessIncome; double happinessTurn = GameManager.Instance.Game.PlayerInTurn.HappinessIncome;
happinessText.text = Math.Round(happiness, 1) + "(+" + Math.Round(happinessTurn, 1) + ")"; if (happinessTurn >= 0)
{
happinessText.text = Math.Round(happiness, 1) + "(<color=#00ff00>+" + Math.Round(happinessTurn, 1) + "</color>)";
}
else
{
happinessText.text = Math.Round(happiness, 1) + "(<color=#ff0000>" + Math.Round(happinessTurn, 1) + "</color>)";
}
double research = GameManager.Instance.Game.PlayerInTurn.Research; double research = GameManager.Instance.Game.PlayerInTurn.Research;
double researchTurn = GameManager.Instance.Game.PlayerInTurn.ResearchIncome; double researchTurn = GameManager.Instance.Game.PlayerInTurn.ResearchIncome;
researchText.text = Math.Round(research, 1) + "(+" + Math.Round(researchTurn, 1) + ")"; researchText.text = Math.Round(research, 1) + "(<color=#00ff00>+" + Math.Round(researchTurn, 1) + "</color>)";
double labor = GameManager.Instance.Game.PlayerInTurn.Labor; double labor = GameManager.Instance.Game.PlayerInTurn.Labor;
laborText.text = Math.Round(labor, 1).ToString(); double usedLabor = GameManager.Instance.Game.PlayerInTurn.EstimatedUsedLabor;
laborText.text = Math.Round(usedLabor, 1).ToString() + " / " + Math.Round(labor, 1).ToString();
var game = GameManager.Instance.Game;
var player = game.PlayerInTurn;
Quest myVictory = game.GetPlayerHwan().Quests.OfType<QuestHwanVictory>().FirstOrDefault();
Quest theirVictory = game.GetPlayerFinno().Quests.OfType<QuestFinnoVictory>().FirstOrDefault();
if (player.Team == 1)
{
var tmp = myVictory;
myVictory = theirVictory;
theirVictory = myVictory;
}
if (myUltimateProgress != null)
myUltimateProgress.GetComponent<Text>().text = "<color=#00ffff>" + (int)(GetProgressPercentage(myVictory) * 100) + "%</color>";
if (oppositeUltimateProgress != null)
oppositeUltimateProgress.GetComponent<Text>().text = "<color=#ff00ff>" + (int)(GetProgressPercentage(theirVictory) * 100) + "%</color>";
}
private double GetProgressPercentage(Quest quest)
{
return quest.Progresses
.Where(p => p.Enabled)
.Select(p => (double)p.Value / p.MaxValue)
.Average();
} }
public void updateQuest() public void updateQuest()
...@@ -114,8 +176,13 @@ public class GameUI : MonoBehaviour { ...@@ -114,8 +176,13 @@ public class GameUI : MonoBehaviour {
else else
{ {
endingScene.GetComponentInChildren<Image>().sprite = Resources.Load<Sprite>("Endings/Finno_ending"); endingScene.GetComponentInChildren<Image>().sprite = Resources.Load<Sprite>("Endings/Finno_ending");
} }
endingScene.GetComponentInChildren<Text>().text = "승리하셨습니다!";
endingScene.SetActive(true); endingScene.SetActive(true);
Music.transform.GetChild(GameInfo.UserPlayer).GetComponent<AudioSource>().Pause();
Music.transform.GetChild(2).GetComponent<AudioSource>().Play();
UIManager.Instance.MenuButton.SetActive(false);
} }
else if (GameManager.Instance.Game.PlayerInTurn.IsDefeated) else if (GameManager.Instance.Game.PlayerInTurn.IsDefeated)
{ {
...@@ -127,31 +194,78 @@ public class GameUI : MonoBehaviour { ...@@ -127,31 +194,78 @@ public class GameUI : MonoBehaviour {
{ {
endingScene.GetComponentInChildren<Image>().sprite = Resources.Load<Sprite>("Endings/Hwan_ending"); endingScene.GetComponentInChildren<Image>().sprite = Resources.Load<Sprite>("Endings/Hwan_ending");
} }
endingScene.GetComponentInChildren<Text>().text = "패배하셨습니다...";
endingScene.SetActive(true); endingScene.SetActive(true);
Music.transform.GetChild(GameInfo.UserPlayer).GetComponent<AudioSource>().Pause();
Music.transform.GetChild(2).GetComponent<AudioSource>().Play();
UIManager.Instance.MenuButton.SetActive(false);
} }
else if (GameManager.Instance.Game.PlayerInTurn.IsDrawed) else if (GameManager.Instance.Game.PlayerInTurn.IsDrawed)
{ {
endingScene.GetComponentInChildren<Image>().sprite = Resources.Load<Sprite>("Endings/Draw_ending"); endingScene.GetComponentInChildren<Image>().sprite = Resources.Load<Sprite>("Endings/Draw_ending");
endingScene.GetComponentInChildren<Text>().text = "공멸하셨습니다...";
endingScene.SetActive(true); endingScene.SetActive(true);
Music.transform.GetChild(GameInfo.UserPlayer).GetComponent<AudioSource>().Pause();
Music.transform.GetChild(2).GetComponent<AudioSource>().Play();
UIManager.Instance.MenuButton.SetActive(false);
} }
} }
public void onClickUltAlertExit()
{
UltAlert.SetActive(false);
}
private List<bool> prevEnemyUltimateProgress = null;
private void NextTurn() private void NextTurn()
{ {
GameManager.Instance.Game.EndTurn(); Game game = GameManager.Instance.Game;
GameManager.Instance.Game.StartTurn();
game.EndTurn();
game.StartTurn();
//Proceeds AI's Turns //Proceeds AI's Turns
while (GameManager.Instance.Game.PlayerInTurn.IsAIControlled) while (game.PlayerInTurn.IsAIControlled)
{ {
GameManager.Instance.Game.PlayerInTurn.DoAITurnAction().GetAwaiter().GetResult(); game.PlayerInTurn.DoAITurnAction().GetAwaiter().GetResult();
GameManager.Instance.Game.EndTurn(); game.EndTurn();
GameManager.Instance.Game.StartTurn(); game.StartTurn();
} }
checkButtonText = true; checkButtonText = true;
EndTurn.GetComponentInChildren<Button>().interactable = true; EndTurn.GetComponentInChildren<Button>().interactable = true;
Quest enemyVictoryQuest;
if (game.PlayerInTurn.Team == 0)
enemyVictoryQuest = game.GetPlayerFinno().Quests.OfType<CivModel.Quests.QuestFinnoVictory>().FirstOrDefault();
else
enemyVictoryQuest = game.GetPlayerHwan().Quests.OfType<CivModel.Quests.QuestHwanVictory>().FirstOrDefault();
if (enemyVictoryQuest != null)
{
var newList = enemyVictoryQuest.Progresses.Where(p => p.Enabled).ToList();
if (prevEnemyUltimateProgress == null)
{
prevEnemyUltimateProgress = newList.Select(p => p.IsFull).ToList();
}
else
{
bool notify = false;
for (int idx = 0; idx < newList.Count; ++idx)
{
if (!prevEnemyUltimateProgress[idx] && newList[idx].IsFull)
{
prevEnemyUltimateProgress[idx] = true;
notify = true;
}
}
if (notify)
{
UltAlert.SetActive(true);
}
}
}
AlarmManager.Instance.updateAlarmQueue(); AlarmManager.Instance.updateAlarmQueue();
GameManager.Instance.UpdateMap(); GameManager.Instance.UpdateMap();
...@@ -159,17 +273,30 @@ public class GameUI : MonoBehaviour { ...@@ -159,17 +273,30 @@ public class GameUI : MonoBehaviour {
GameManager.Instance.UpdateMinimap(); GameManager.Instance.UpdateMinimap();
UIManager.Instance.ButtonInteractChange(); UIManager.Instance.ButtonInteractChange();
GameManager.Instance.CheckCompletedProduction();
managementcontroller.MakeProductionQ(); managementcontroller.MakeProductionQ();
managementcontroller.MakeDeploymentQ(); managementcontroller.MakeDeploymentQ();
uicontroller.MakeQuestQueue(); uicontroller.MakeQuestQueue();
GameManager.Instance.CheckNewQuest(); GameManager.Instance.CheckNewQuest();
GameManager.Instance.CheckCompletedProduction();
GameManager.Instance.CheckToDo(); GameManager.Instance.CheckToDo();
if (GameManager.Instance.isThereTodos) if (GameManager.Instance.isThereTodos)
GameManager.Instance.FocusOnNextActableUnit(); GameManager.Instance.FocusOnNextActableUnit();
GameUI.Instance.updatePanel();
if(game.PlayerInTurn.Cities.First() != null)
{
if (GameManager.Instance.isThereTodos)
GameManager.Instance.FocusOnNextActableUnit();
else
GameManager.Focus(game.PlayerInTurn.Cities.First());
}
foreach (GameObject unit in GameManager.Instance.Units)
unit.GetComponent<Unit>().UpdateSkillCooldown();
foreach (GameObject unit in GameManager.Instance.Additional_Units)
unit.GetComponent<Unit>().UpdateSkillCooldown();
} }
public void onClickNextTurn() public void onClickNextTurn()
...@@ -180,11 +307,6 @@ public class GameUI : MonoBehaviour { ...@@ -180,11 +307,6 @@ public class GameUI : MonoBehaviour {
} }
else else
{ {
foreach (CivModel.Unit unit in GameManager.Instance.Game.PlayerInTurn.Units)
{
unit.SkipFlag = false;
}
if (GameManager.Instance.Game.PlayerInTurn == GameManager.Instance.Game.Players[GameInfo.UserPlayer]) if (GameManager.Instance.Game.PlayerInTurn == GameManager.Instance.Game.Players[GameInfo.UserPlayer])
{ {
/* /*
...@@ -210,6 +332,63 @@ public class GameUI : MonoBehaviour { ...@@ -210,6 +332,63 @@ public class GameUI : MonoBehaviour {
} }
} }
} }
public void BackToIntro()
{
LoadingSceneMgr.LoadScene("Intro");
}
public void RestartGame()
{
LoadingSceneMgr.LoadScene("Game");
}
private double Clamp(double a, double b, double x)
{
if (a > x) return a;
else if (x > b) return b;
else return x;
}
public void OnClickAutoSet()
{
var _plyrInTurn = GameManager.Instance.Game.PlayerInTurn;
if (_plyrInTurn.Happiness < 0.0)
{
InvestmentController.I.eiSlider.value = 2f;
}
else if (_plyrInTurn.Happiness < 30.0)
{
InvestmentController.I.eiSlider.value = 1.1f;
}
else
{
InvestmentController.I.eiSlider.value = 1.0f;
}
_plyrInTurn.EstimateResourceInputs();
var _gameConstants = GameManager.Instance.Game.Constants;
double N = _gameConstants.GoldCoefficient;
double LM = _gameConstants.EconomicRequireCoefficient;
double t = Clamp(0.0, 1.0, (N / LM / 2.0 / InvestmentController.I.eiSlider.value));
// Debug.Log(N / LM / 2.0 / InvestmentController.I.eiSlider.value);
InvestmentController.I.taxSlider.value = (float) t;
_plyrInTurn.EstimateResourceInputs();
InvestmentController.I.tiSlider.value = 1.0f;
InvestmentController.I.logiSlider.value = 1.0f;
}
} }
// HWAN ONLY PLAY // HWAN ONLY PLAY
......
...@@ -3,7 +3,6 @@ using System.Collections.Generic; ...@@ -3,7 +3,6 @@ using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using CivModel; using CivModel;
using CivModel.Common;
public class InvestmentController : MonoBehaviour { public class InvestmentController : MonoBehaviour {
...@@ -13,10 +12,10 @@ public class InvestmentController : MonoBehaviour { ...@@ -13,10 +12,10 @@ public class InvestmentController : MonoBehaviour {
public GameObject TechInv; public GameObject TechInv;
public GameObject Logistics; public GameObject Logistics;
private Slider taxSlider; public Slider taxSlider;
private Slider eiSlider; public Slider eiSlider;
private Slider tiSlider; public Slider tiSlider;
private Slider logiSlider; public Slider logiSlider;
private Text taxRateText; private Text taxRateText;
private Text eiRateText; private Text eiRateText;
...@@ -116,62 +115,79 @@ public class InvestmentController : MonoBehaviour { ...@@ -116,62 +115,79 @@ public class InvestmentController : MonoBehaviour {
} }
} }
public void OnValueChanged()
{
GameUI.Instance.updatePanel();
}
public void ChangeTaxValue(float adden) public void ChangeTaxValue(float adden)
{ {
taxSlider.value += adden; taxSlider.value += adden;
GameUI.Instance.updatePanel();
} }
public void ChangeEIValue(float adden) public void ChangeEIValue(float adden)
{ {
eiSlider.value += adden; eiSlider.value += adden;
GameUI.Instance.updatePanel();
} }
public void ChangeTIValue(float adden) public void ChangeTIValue(float adden)
{ {
tiSlider.value += adden; tiSlider.value += adden;
GameUI.Instance.updatePanel();
} }
public void ChangeLogiValue(float adden) public void ChangeLogiValue(float adden)
{ {
logiSlider.value += adden; logiSlider.value += adden;
GameUI.Instance.updatePanel();
} }
public void ChangeTaxPlus(float adden) public void ChangeTaxPlus(float adden)
{ {
taxSlider.value += 0.01f; taxSlider.value += 0.01f;
if (taxSlider.value > 1) taxSlider.value = 1; if (taxSlider.value > 1) taxSlider.value = 1;
GameUI.Instance.updatePanel();
} }
public void ChangeEIPlus(float adden) public void ChangeEIPlus(float adden)
{ {
eiSlider.value += 0.01f; eiSlider.value += 0.01f;
if (taxSlider.value > 2) taxSlider.value = 2; if (taxSlider.value > 2) taxSlider.value = 2;
GameUI.Instance.updatePanel();
} }
public void ChangeTIPlus(float adden) public void ChangeTIPlus(float adden)
{ {
tiSlider.value += 0.01f; tiSlider.value += 0.01f;
if (taxSlider.value > 2) taxSlider.value = 2; if (taxSlider.value > 2) taxSlider.value = 2;
GameUI.Instance.updatePanel();
} }
public void ChangeLogiPlus(float adden) public void ChangeLogiPlus(float adden)
{ {
logiSlider.value += 0.01f; logiSlider.value += 0.01f;
if (taxSlider.value > 1) taxSlider.value = 1; if (taxSlider.value > 1) taxSlider.value = 1;
GameUI.Instance.updatePanel();
} }
public void ChangeTaxMinus(float adden) public void ChangeTaxMinus(float adden)
{ {
taxSlider.value -= 0.01f; taxSlider.value -= 0.01f;
if (taxSlider.value < 0) taxSlider.value = 0; if (taxSlider.value < 0) taxSlider.value = 0;
GameUI.Instance.updatePanel();
} }
public void ChangeEIMinus(float adden) public void ChangeEIMinus(float adden)
{ {
eiSlider.value -= 0.01f; eiSlider.value -= 0.01f;
if (eiSlider.value < 0) eiSlider.value = 0; if (eiSlider.value < 0) eiSlider.value = 0;
GameUI.Instance.updatePanel();
} }
public void ChangeTIMinus(float adden) public void ChangeTIMinus(float adden)
{ {
tiSlider.value -= 0.01f; tiSlider.value -= 0.01f;
if (taxSlider.value < 0) taxSlider.value = 0; if (taxSlider.value < 0) taxSlider.value = 0;
GameUI.Instance.updatePanel();
} }
public void ChangeLogiMinus(float adden) public void ChangeLogiMinus(float adden)
{ {
logiSlider.value -= 0.01f; logiSlider.value -= 0.01f;
if (taxSlider.value < 0) taxSlider.value = 0; if (taxSlider.value < 0) taxSlider.value = 0;
GameUI.Instance.updatePanel();
} }
} }
\ No newline at end of file
...@@ -3,7 +3,6 @@ using System.Collections.Generic; ...@@ -3,7 +3,6 @@ using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using CivModel; using CivModel;
using CivModel.Common;
using System.Linq; using System.Linq;
// 운영/내정 관련 큐 만들어서 프리팹 생성하는 컨트롤러 // 운영/내정 관련 큐 만들어서 프리팹 생성하는 컨트롤러
...@@ -14,8 +13,8 @@ public class ManagementController : MonoBehaviour { ...@@ -14,8 +13,8 @@ public class ManagementController : MonoBehaviour {
public Canvas managementUI; public Canvas managementUI;
private LinkedList<Production> mProduction; private CivObservable.NotifyingLinkedList<Production> mProduction;
private LinkedList<Production> mDeployment; private CivObservable.NotifyingLinkedList<Production> mDeployment;
private IReadOnlyList<IProductionFactory> facList; private IReadOnlyList<IProductionFactory> facList;
private GameObject gameManagerObject; private GameObject gameManagerObject;
...@@ -45,14 +44,14 @@ public class ManagementController : MonoBehaviour { ...@@ -45,14 +44,14 @@ public class ManagementController : MonoBehaviour {
MakeDeploymentQ(); MakeDeploymentQ();
foreach (GameObject dq in DQlist) foreach (GameObject dq in DQlist)
{ {
dq.GetComponent<DeployPrefab>().SetButton(DQlist.IndexOf(dq)); dq.GetComponent<DeployPrefab>().SetButton();
} }
} }
void Awake() void Awake()
{ {
DontDestroyOnLoad(this); // DontDestroyOnLoad(this);
if (managementcontroller == null) if (managementcontroller == null)
{ {
managementcontroller = this; managementcontroller = this;
...@@ -199,7 +198,7 @@ public class ManagementController : MonoBehaviour { ...@@ -199,7 +198,7 @@ public class ManagementController : MonoBehaviour {
throw new MissingComponentException(); throw new MissingComponentException();
} }
//Debug.Log("SelectionList: " + ASQlist.IndexOf(qlist) + "null"); //Debug.Log("SelectionList: " + ASQlist.IndexOf(qlist) + "null");
var SPrefab = Instantiate(productablePrefab, new Vector3(0f, 0f, 0f), Quaternion.identity); var SPrefab = Instantiate(productablePrefab, new Vector3(10f, 0f, 0f), Quaternion.identity);
SPrefab.transform.SetParent(productableQueue.transform); SPrefab.transform.SetParent(productableQueue.transform);
SPrefab.transform.localScale = new Vector3(1f, 1f, 1f); SPrefab.transform.localScale = new Vector3(1f, 1f, 1f);
SPrefab.transform.localPosition = new Vector3(0f, 0f, 0f); SPrefab.transform.localPosition = new Vector3(0f, 0f, 0f);
...@@ -216,7 +215,7 @@ public class ManagementController : MonoBehaviour { ...@@ -216,7 +215,7 @@ public class ManagementController : MonoBehaviour {
{ {
return null; return null;
}*/ }*/
var SPrefab = Instantiate(productablePrefab, new Vector3(0f, 0f, 0f), Quaternion.identity); var SPrefab = Instantiate(productablePrefab, new Vector3(10f, 0f, 0f), Quaternion.identity);
SPrefab.transform.SetParent(productableQueue.transform); SPrefab.transform.SetParent(productableQueue.transform);
SPrefab.transform.localScale = new Vector3(1f, 1f, 1f); SPrefab.transform.localScale = new Vector3(1f, 1f, 1f);
SPrefab.transform.localPosition = new Vector3(0f, 0f, 0f); SPrefab.transform.localPosition = new Vector3(0f, 0f, 0f);
...@@ -291,7 +290,7 @@ public class ManagementController : MonoBehaviour { ...@@ -291,7 +290,7 @@ public class ManagementController : MonoBehaviour {
foreach (Production prod in ProductionDic.Keys) foreach (Production prod in ProductionDic.Keys)
{ {
var PPrefab = Instantiate(proPrefab, new Vector3(0f, 0f, 0f), Quaternion.identity); var PPrefab = Instantiate(proPrefab, new Vector3(10f, 0f, 0f), Quaternion.identity);
PPrefab.transform.SetParent(proQueue.transform); PPrefab.transform.SetParent(proQueue.transform);
PPrefab.transform.localScale = new Vector3(1f, 1f, 1f); PPrefab.transform.localScale = new Vector3(1f, 1f, 1f);
PPrefab.transform.localPosition = new Vector3(0f, 0f, 0f); PPrefab.transform.localPosition = new Vector3(0f, 0f, 0f);
...@@ -300,7 +299,7 @@ public class ManagementController : MonoBehaviour { ...@@ -300,7 +299,7 @@ public class ManagementController : MonoBehaviour {
if (mProduction.Count == 0) if (mProduction.Count == 0)
{ {
var PPrefab = Instantiate(proPrefab, new Vector3(0f, 0f, 0f), Quaternion.identity); var PPrefab = Instantiate(proPrefab, new Vector3(10f, 0f, 0f), Quaternion.identity);
PPrefab.transform.SetParent(proQueue.transform); PPrefab.transform.SetParent(proQueue.transform);
PPrefab.transform.localScale = new Vector3(1f, 1f, 1f); PPrefab.transform.localScale = new Vector3(1f, 1f, 1f);
PPrefab.transform.localPosition = new Vector3(0f, 0f, 0f); PPrefab.transform.localPosition = new Vector3(0f, 0f, 0f);
...@@ -350,7 +349,7 @@ public class ManagementController : MonoBehaviour { ...@@ -350,7 +349,7 @@ public class ManagementController : MonoBehaviour {
foreach (Production prod in DeploymentDic.Keys) foreach (Production prod in DeploymentDic.Keys)
{ {
var DPrefab = Instantiate(depPrefab, new Vector3(0f, 0f, 0f), Quaternion.identity); var DPrefab = Instantiate(depPrefab, new Vector3(10f, 0f, 0f), Quaternion.identity);
DPrefab.transform.SetParent(depQueue.transform); DPrefab.transform.SetParent(depQueue.transform);
DPrefab.transform.localScale = new Vector3(1f, 1f, 1f); DPrefab.transform.localScale = new Vector3(1f, 1f, 1f);
DPrefab.transform.localPosition = new Vector3(0f, 0f, 0f); DPrefab.transform.localPosition = new Vector3(0f, 0f, 0f);
...@@ -360,7 +359,7 @@ public class ManagementController : MonoBehaviour { ...@@ -360,7 +359,7 @@ public class ManagementController : MonoBehaviour {
if (mDeployment.Count == 0) if (mDeployment.Count == 0)
{ {
//Debug.Log("DeploymentList null"); //Debug.Log("DeploymentList null");
var DPrefab = Instantiate(depPrefab, new Vector3(0f, 0f, 0f), Quaternion.identity); var DPrefab = Instantiate(depPrefab, new Vector3(10f, 0f, 0f), Quaternion.identity);
DPrefab.transform.SetParent(depQueue.transform); DPrefab.transform.SetParent(depQueue.transform);
DPrefab.transform.localScale = new Vector3(1f, 1f, 1f); DPrefab.transform.localScale = new Vector3(1f, 1f, 1f);
DPrefab.transform.localPosition = new Vector3(0f, 0f, 0f); DPrefab.transform.localPosition = new Vector3(0f, 0f, 0f);
...@@ -368,10 +367,11 @@ public class ManagementController : MonoBehaviour { ...@@ -368,10 +367,11 @@ public class ManagementController : MonoBehaviour {
tempList.Add(DPrefab); tempList.Add(DPrefab);
} }
DQlist = tempList; DQlist = tempList;
foreach (GameObject dq in DQlist)
{ foreach (GameObject dq in DQlist)
dq.GetComponent<DeployPrefab>().SetButton(DQlist.IndexOf(dq)); {
dq.GetComponent<DeployPrefab>().SetButton();
} }
} }
...@@ -384,4 +384,20 @@ public class ManagementController : MonoBehaviour { ...@@ -384,4 +384,20 @@ public class ManagementController : MonoBehaviour {
} }
return managementcontroller; return managementcontroller;
} }
public void onClickAutoSet()
{
var _player = GameManager.Instance.Game.PlayerInTurn;
if(_player.Happiness <= 50)
{
GameManager.Instance.Game.PlayerInTurn.EconomicInvestmentRatio = 2;
}
else
{
GameManager.Instance.Game.PlayerInTurn.EconomicInvestmentRatio = 1;
}
var _const = GameManager.Instance.Game.Constants;
double taxrate = _const.GoldCoefficient;
}
} }
...@@ -4,11 +4,9 @@ using System.Collections.Generic; ...@@ -4,11 +4,9 @@ using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using CivModel; using CivModel;
using CivModel.Common;
public class DeployPrefab : MonoBehaviour public class DeployPrefab : MonoBehaviour
{ {
private Text[] textarguments; private Text[] textarguments;
private Image unitPrt; private Image unitPrt;
private Button[] buttons; private Button[] buttons;
...@@ -47,6 +45,7 @@ public class DeployPrefab : MonoBehaviour ...@@ -47,6 +45,7 @@ public class DeployPrefab : MonoBehaviour
public GameObject MakeItem(Production prod, int numOfUnit) public GameObject MakeItem(Production prod, int numOfUnit)
{ {
_deployment = prod;
string nameofProduction = ProductionFactoryTraits.GetFactoryName(prod.Factory); string nameofProduction = ProductionFactoryTraits.GetFactoryName(prod.Factory);
unitPrt.sprite = Resources.Load(("Portraits/" + (ProductionFactoryTraits.GetFacPortName(prod.Factory)).ToLower()), typeof(Sprite)) as Sprite; unitPrt.sprite = Resources.Load(("Portraits/" + (ProductionFactoryTraits.GetFacPortName(prod.Factory)).ToLower()), typeof(Sprite)) as Sprite;
this.numOfUnit = numOfUnit; this.numOfUnit = numOfUnit;
...@@ -68,6 +67,7 @@ public class DeployPrefab : MonoBehaviour ...@@ -68,6 +67,7 @@ public class DeployPrefab : MonoBehaviour
public GameObject MakeItem() public GameObject MakeItem()
{ {
_deployment = null;
unitPrt.enabled = false; unitPrt.enabled = false;
foreach (Text txt in textarguments) foreach (Text txt in textarguments)
{ {
...@@ -93,9 +93,9 @@ public class DeployPrefab : MonoBehaviour ...@@ -93,9 +93,9 @@ public class DeployPrefab : MonoBehaviour
} }
public void SetButton(int i) public void SetButton()
{ {
if (i == -1) if (_deployment == null)
{ {
foreach (Button but in buttons) foreach (Button but in buttons)
{ {
...@@ -104,42 +104,37 @@ public class DeployPrefab : MonoBehaviour ...@@ -104,42 +104,37 @@ public class DeployPrefab : MonoBehaviour
} }
else else
{ {
LinkedListNode<Production> dep = GameManager.Instance.Game.PlayerInTurn.Deployment.First;
for (int k = 0; k < i; k++)
{
dep = dep.Next;
}
foreach (Button but in buttons) foreach (Button but in buttons)
{ {
switch (but.name) switch (but.name)
{ {
case "Deploy": case "Deploy":
if (dep != null) if (_deployment != null)
{ {
if (ProductionFactoryTraits.isCityBuilding(dep.Value.Factory)) if (ProductionFactoryTraits.isCityBuilding(_deployment.Factory))
{ {
but.onClick.AddListener(delegate () but.onClick.AddListener(delegate ()
{ {
List<Production> prodToDepList = new List<Production>(); List<Production> prodToDepList = new List<Production>();
LinkedListNode<Production> nodeToDep = GameManager.Instance.Game.PlayerInTurn.Deployment.First; LinkedListNode<Production> nodeToDep = GameManager.Instance.Game.PlayerInTurn.Deployment.First;
while (nodeToDep != null) while (nodeToDep != null)
{ {
if (ProductionFactoryTraits.GetFactoryName(nodeToDep.Value.Factory) == ProductionFactoryTraits.GetFactoryName(dep.Value.Factory)) if (ProductionFactoryTraits.GetFactoryName(nodeToDep.Value.Factory) == ProductionFactoryTraits.GetFactoryName(_deployment.Factory))
{ {
prodToDepList.Add(nodeToDep.Value); prodToDepList.Add(nodeToDep.Value);
} }
nodeToDep = nodeToDep.Next; nodeToDep = nodeToDep.Next;
} }
DeployItem(prodToDepList); DeployItem(prodToDepList);
}); });
} }
else else
{ {
but.interactable = false; but.interactable = false;
} }
} }
break; break;
...@@ -147,7 +142,7 @@ public class DeployPrefab : MonoBehaviour ...@@ -147,7 +142,7 @@ public class DeployPrefab : MonoBehaviour
case "IndividualDeploy": case "IndividualDeploy":
but.onClick.AddListener(delegate () { but.onClick.AddListener(delegate () {
List<Production> prodToDepList = new List<Production>(); List<Production> prodToDepList = new List<Production>();
prodToDepList.Add(dep.Value); prodToDepList.Add(_deployment);
DeployItem(prodToDepList); DeployItem(prodToDepList);
}); });
break; break;
......
...@@ -4,7 +4,6 @@ using System.Collections.Generic; ...@@ -4,7 +4,6 @@ using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using CivModel; using CivModel;
using CivModel.Common;
using System.Linq; using System.Linq;
using UnityEngine.EventSystems; using UnityEngine.EventSystems;
...@@ -96,7 +95,7 @@ public class ProductablePrefab : MonoBehaviour, IPointerClickHandler { ...@@ -96,7 +95,7 @@ public class ProductablePrefab : MonoBehaviour, IPointerClickHandler {
switch (but.name) switch (but.name)
{ {
case "Deploy": case "Deploy":
but.onClick.AddListener(delegate () { ProduceItem(fac); }); but.onClick.AddListener(delegate () { ProduceItem(fac); GameManager.Instance.CheckCompletedQuest(); });
break; break;
case "Up": case "Up":
but.onClick.AddListener(delegate () { IncreseProduction(); }); but.onClick.AddListener(delegate () { IncreseProduction(); });
......
...@@ -4,7 +4,6 @@ using System.Collections.Generic; ...@@ -4,7 +4,6 @@ using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using CivModel; using CivModel;
using CivModel.Common;
public class ProductionPrefab : MonoBehaviour { public class ProductionPrefab : MonoBehaviour {
......
...@@ -3,7 +3,6 @@ using System.Collections.Generic; ...@@ -3,7 +3,6 @@ using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using CivModel; using CivModel;
using CivModel.Common;
public class Quests : MonoBehaviour { public class Quests : MonoBehaviour {
...@@ -51,7 +50,7 @@ public class Quests : MonoBehaviour { ...@@ -51,7 +50,7 @@ public class Quests : MonoBehaviour {
foreach (Image img in images) { foreach (Image img in images) {
switch (img.name) { switch (img.name) {
case "Portrait": case "Portrait":
img.sprite = QuestInfo.GetPortraitImage(quest); img.sprite = QuestInfo.GetRequesterPortraitImage(quest);
img.enabled = true; img.enabled = true;
break; break;
case "ResourceImage": case "ResourceImage":
...@@ -156,7 +155,7 @@ public class Quests : MonoBehaviour { ...@@ -156,7 +155,7 @@ public class Quests : MonoBehaviour {
foreach (Image img in images) { foreach (Image img in images) {
switch (img.name) { switch (img.name) {
case "Portrait": case "Portrait":
img.sprite = QuestInfo.GetPortraitImage(quest); img.sprite = QuestInfo.GetRequesterPortraitImage(quest);
img.enabled = true; img.enabled = true;
break; break;
case "ResourceImage": case "ResourceImage":
...@@ -250,7 +249,7 @@ public class Quests : MonoBehaviour { ...@@ -250,7 +249,7 @@ public class Quests : MonoBehaviour {
foreach (Image img in images) { foreach (Image img in images) {
switch (img.name) { switch (img.name) {
case "Portrait": case "Portrait":
img.sprite = QuestInfo.GetPortraitImage(quest); img.sprite = QuestInfo.GetRequesterPortraitImage(quest);
img.enabled = true; img.enabled = true;
break; break;
case "ResourceImage": case "ResourceImage":
......
...@@ -4,7 +4,6 @@ using System.Collections.Generic; ...@@ -4,7 +4,6 @@ using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using CivModel; using CivModel;
using CivModel.Common;
public class SpecialResourcePrefab : MonoBehaviour { public class SpecialResourcePrefab : MonoBehaviour {
private Text[] textarguments; private Text[] textarguments;
......
...@@ -580,14 +580,18 @@ public class ProductionFactoryTraits : MonoBehaviour ...@@ -580,14 +580,18 @@ public class ProductionFactoryTraits : MonoBehaviour
result = "hwan_decentralized_soldier"; result = "hwan_decentralized_soldier";
else if (unit.Owner == GameManager.Instance.Game.GetPlayerFinno()) else if (unit.Owner == GameManager.Instance.Game.GetPlayerFinno())
result = "finno_decentralized_soldier"; result = "finno_decentralized_soldier";
else result = name; else result = "jap_decentralized_soldier";
} }
break; break;
case "JackieChan": case "JackieChan":
result = "hwan_jackie"; result = "hwan_jackie";
break; break;
case "LEOSpaceArmada": case "LEOSpaceArmada":
result = "hwan_spaceship"; {
if (unit.Owner == GameManager.Instance.Game.GetPlayerHwan())
result = "hwan_spaceship";
else result = "jap_spaceship";
}
break; break;
case "ProtoNinja": case "ProtoNinja":
{ {
...@@ -626,17 +630,57 @@ public class ProductionFactoryTraits : MonoBehaviour ...@@ -626,17 +630,57 @@ public class ProductionFactoryTraits : MonoBehaviour
result = "finno_genghis"; result = "finno_genghis";
break; break;
case "ArmedDivision": case "ArmedDivision":
result = "기갑사단"; result = "jap_armored_division";
break; break;
case "InfantryDivision": case "InfantryDivision":
result = "보병사단"; result = "jap_infantry_division";
break; break;
case "Padawan": case "Padawan":
result = "파다완"; result = "jap_padawan";
break; break;
case "ZapNinja": case "ZapNinja":
result = "닌자"; result = "jap_pseudo_ninja";
break;
// 2. Normal Buildings
case "HwanEmpireFIRFortress": // 환 5차산업혁명요새
result = "Normal Buildings/hwan_FIR_fort";
break;
case "HwanEmpireIbiza": // 이비자
result = "Normal Buildings/hwan_ibiza";
break;
case "HwanEmpireKimchiFactory": // 김치팩토리
result = "Normal Buildings/hwan_kimchi_factory";
break;
case "HwanEmpireLatifundium": // 라티푼티움
result = "Normal Buildings/hwan_latifundium";
break;
case "AncientFinnoFineDustFactory": // 미세먼지공장
result = "Normal Buildings/finno_fine_dust_factory";
break;
case "AncientFinnoFIRFortress": // 피노 5차산업혁명요새
result = "Normal Buildings/finno_FIR_fort";
break;
case "AncientFinnoGermaniumMine": // 게르마늄광산
result = "Normal Buildings/finno_germanium_mine";
break; break;
case "AncientFinnoOctagon": // 옥타곤
result = "Normal Buildings/finno_ocatagon";
break;
case "Preternaturality": // 불가사의
result = "Normal Buildings/wonders";
break;
case "Casino": // 카지노
result = "Normal Buildings/Casino";
break;
case " ZapFactory": // 잡국 공장
result = "Normal Buildings/ZapFactory";
break;
case "FIRFortress": // 잡국 공장
result = "Normal Buildings/FIRFortress";
break;
default: default:
result = name; result = name;
break; break;
......
...@@ -3,17 +3,89 @@ using System.Collections.Generic; ...@@ -3,17 +3,89 @@ using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using UnityEngine.EventSystems; using UnityEngine.EventSystems;
using System;
using static CivModel.Finno.FinnoPlayerNumber;
using static CivModel.Hwan.HwanPlayerNumber;
public class SkillButton : MonoBehaviour , IPointerEnterHandler, IPointerExitHandler public class SkillButton : MonoBehaviour , IPointerEnterHandler, IPointerExitHandler
{ {
public void OnPointerEnter(PointerEventData pointerEventData) public void OnPointerEnter(PointerEventData pointerEventData)
{ {
UIManager.Instance.skillDescription.SetActive(true); if(GameManager.Instance.selectedActor != null)
UIManager.Instance.skillDescription.transform.GetChild(0).GetComponent<Text>().text = GameManager.Instance.selectedActor.ActiveSkills[(int)(gameObject.name[5]) - 49].SkillDescription; {
var skill = GameManager.Instance.selectedActor.ActiveSkills[Convert.ToInt32(gameObject.name[5] - '1')];
UIManager.Instance.skillDescription.transform.GetChild(0).GetComponent<Text>().text = skill.SkillName + ": " + skill.SkillDescription;
UIManager.Instance.skillDescription.SetActive(true);
}
} }
public void OnPointerExit(PointerEventData pointerEventData) public void OnPointerExit(PointerEventData pointerEventData)
{ {
UIManager.Instance.skillDescription.SetActive(false); UIManager.Instance.skillDescription.SetActive(false);
} }
public static Sprite GetSkillIcon(CivModel.Actor unit, int idx)
{
char[] sep = { '.' };
string name = unit.ToString().Split(sep)[2];
string skillIconName;
switch (name)
{
case "JediKnight":
{
if (unit.Owner == GameManager.Instance.Game.GetPlayerHwan())
skillIconName = "hwan_jedi";
else if (unit.Owner == GameManager.Instance.Game.GetPlayerFinno())
skillIconName = "finno_jedi";
else skillIconName = "hwan_jedi";
}
break;
case "JackieChan":
skillIconName = "hwan_jackie_chan";
break;
case "LEOSpaceArmada":
skillIconName = "hwan_spaceship";
break;
case "ProtoNinja":
{
if (unit.Owner == GameManager.Instance.Game.GetPlayerHwan())
skillIconName = "hwan_ninja";
else if (unit.Owner == GameManager.Instance.Game.GetPlayerFinno())
skillIconName = "finno_ninja";
else skillIconName = "hwan_ninja";
}
break;
case "UnicornOrder":
skillIconName = "hwan_unicorn";
break;
case "Spy":
{
if (unit.Owner == GameManager.Instance.Game.GetPlayerHwan())
skillIconName = "hwan_spy";
else if (unit.Owner == GameManager.Instance.Game.GetPlayerFinno())
skillIconName = "finno_spy";
else skillIconName = "hwan_spy";
}
break;
case "AncientSorcerer":
skillIconName = "finno_sorcerer";
break;
case "AutismBeamDrone":
skillIconName = "finno_autism";
break;
case "ElephantCavalry":
skillIconName = "finno_elephant";
break;
case "GenghisKhan":
skillIconName = "finno_genghis_khan";
break;
default:
skillIconName = "city_range_attack";
break;
}
return Resources.Load<Sprite>("SkillIcon/" + skillIconName);
}
} }
...@@ -3,7 +3,6 @@ using System.Collections.Generic; ...@@ -3,7 +3,6 @@ using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using CivModel; using CivModel;
using CivModel.Common;
using System.Linq; using System.Linq;
public class SpecialResourceView : MonoBehaviour public class SpecialResourceView : MonoBehaviour
...@@ -17,7 +16,7 @@ public class SpecialResourceView : MonoBehaviour ...@@ -17,7 +16,7 @@ public class SpecialResourceView : MonoBehaviour
private List<GameObject> SRQlist; private List<GameObject> SRQlist;
public GameObject SRQueue; public GameObject SRQueue;
public CivModel.Player.SpecialResourceProxy mSRlist; public IDictionary<ISpecialResource, int> mSRlist;
public void begin() public void begin()
{ {
...@@ -26,7 +25,7 @@ public class SpecialResourceView : MonoBehaviour ...@@ -26,7 +25,7 @@ public class SpecialResourceView : MonoBehaviour
void Awake() void Awake()
{ {
DontDestroyOnLoad(this); // DontDestroyOnLoad(this);
if (specialResourceView == null) if (specialResourceView == null)
{ {
specialResourceView = this; specialResourceView = this;
......
...@@ -24,10 +24,12 @@ public class UIController : MonoBehaviour { ...@@ -24,10 +24,12 @@ public class UIController : MonoBehaviour {
public GameObject QstExplain; public GameObject QstExplain;
public GameObject QstExplainBtn; public GameObject QstExplainBtn;
public GameObject _tutorialbutton;
private Text[] questInfotexts; private Text[] questInfotexts;
void Awake() { void Awake() {
DontDestroyOnLoad(this); // DontDestroyOnLoad(this);
if (uicontroller == null) { if (uicontroller == null) {
uicontroller = this; uicontroller = this;
} }
...@@ -79,63 +81,67 @@ public class UIController : MonoBehaviour { ...@@ -79,63 +81,67 @@ public class UIController : MonoBehaviour {
questList = GameManager.Instance.Game.PlayerInTurn.Quests; questList = GameManager.Instance.Game.PlayerInTurn.Quests;
// Debug.Log("Quest: " + questList.Count); // Debug.Log("Quest: " + questList.Count);
foreach (Quest qst in questList) { foreach (Quest qst in questList) {
switch (qst.Status) { if (qst.IsVisible)
case QuestStatus.Deployed: {
var dqPrefab = Instantiate(DQPrefab, new Vector3(0f, 0f, 0f), Quaternion.identity); switch (qst.Status)
dqPrefab.transform.SetParent(DQQueue.transform, false); {
dqPrefab.transform.localScale = new Vector3(1f, 1f, 1f); case QuestStatus.Deployed:
dqPrefab.transform.localPosition = new Vector3(0f, 0f, 0f); var dqPrefab = Instantiate(DQPrefab, new Vector3(10f, 0f, 0f), Quaternion.identity);
dqPrefab.name = "DQuest"; dqPrefab.transform.SetParent(DQQueue.transform, false);
tempDList.Add(dqPrefab.GetComponent<Quests>().MakeDItem(qst)); dqPrefab.transform.localScale = new Vector3(1f, 1f, 1f);
break; dqPrefab.transform.localPosition = new Vector3(10f, 0f, 0f);
case QuestStatus.Accepted: dqPrefab.name = "DQuest";
var aqPrefab = Instantiate(AQPrefab, new Vector3(0f, 0f, 0f), Quaternion.identity); tempDList.Add(dqPrefab.GetComponent<Quests>().MakeDItem(qst));
aqPrefab.transform.SetParent(AQQueue.transform, false); break;
aqPrefab.transform.localScale = new Vector3(1f, 1f, 1f); case QuestStatus.Accepted:
aqPrefab.transform.localPosition = new Vector3(0f, 0f, 0f); var aqPrefab = Instantiate(AQPrefab, new Vector3(10f, 0f, 0f), Quaternion.identity);
aqPrefab.name = "AQuest"; aqPrefab.transform.SetParent(AQQueue.transform, false);
tempAList.Add(aqPrefab.GetComponent<Quests>().MakeAItem(qst)); aqPrefab.transform.localScale = new Vector3(1f, 1f, 1f);
break; aqPrefab.transform.localPosition = new Vector3(10f, 0f, 0f);
case QuestStatus.Completed: aqPrefab.name = "AQuest";
var cqPrefab = Instantiate(CQPrefab, new Vector3(0f, 0f, 0f), Quaternion.identity); tempAList.Add(aqPrefab.GetComponent<Quests>().MakeAItem(qst));
cqPrefab.transform.SetParent(CQQueue.transform, false); break;
cqPrefab.transform.localScale = new Vector3(1f, 1f, 1f); case QuestStatus.Completed:
cqPrefab.transform.localPosition = new Vector3(0f, 0f, 0f); var cqPrefab = Instantiate(CQPrefab, new Vector3(10f, 0f, 0f), Quaternion.identity);
cqPrefab.name = "CQuest"; cqPrefab.transform.SetParent(CQQueue.transform, false);
tempCList.Add(cqPrefab.GetComponent<Quests>().MakeCItem(qst)); cqPrefab.transform.localScale = new Vector3(1f, 1f, 1f);
break; cqPrefab.transform.localPosition = new Vector3(10f, 0f, 0f);
case QuestStatus.Disabled: cqPrefab.name = "CQuest";
break; tempCList.Add(cqPrefab.GetComponent<Quests>().MakeCItem(qst));
break;
default: case QuestStatus.Disabled:
Debug.Log("Undefined Status"); break;
throw new System.Exception("Undefined Status");
} default:
Debug.Log("Undefined Status");
throw new System.Exception("Undefined Status");
}
}
} }
if (tempDList.Count == 0) { if (tempDList.Count == 0) {
var dqPrefab = Instantiate(DQPrefab, new Vector3(0f, 0f, 0f), Quaternion.identity); var dqPrefab = Instantiate(DQPrefab, new Vector3(10f, 0f, 0f), Quaternion.identity);
dqPrefab.transform.SetParent(DQQueue.transform, false); dqPrefab.transform.SetParent(DQQueue.transform, false);
dqPrefab.transform.localScale = new Vector3(1f, 1f, 1f); dqPrefab.transform.localScale = new Vector3(1f, 1f, 1f);
dqPrefab.transform.localPosition = new Vector3(0f, 0f, 0f); dqPrefab.transform.localPosition = new Vector3(10f, 0f, 0f);
dqPrefab.name = "DQuest_null"; dqPrefab.name = "DQuest_null";
tempDList.Add(dqPrefab.GetComponent<Quests>().MakeDItem()); tempDList.Add(dqPrefab.GetComponent<Quests>().MakeDItem());
} }
DQQlist = tempDList; DQQlist = tempDList;
if (tempAList.Count == 0) { if (tempAList.Count == 0) {
var aqPrefab = Instantiate(AQPrefab, new Vector3(0f, 0f, 0f), Quaternion.identity); var aqPrefab = Instantiate(AQPrefab, new Vector3(10f, 0f, 0f), Quaternion.identity);
aqPrefab.transform.SetParent(AQQueue.transform, false); aqPrefab.transform.SetParent(AQQueue.transform, false);
aqPrefab.transform.localScale = new Vector3(1f, 1f, 1f); aqPrefab.transform.localScale = new Vector3(1f, 1f, 1f);
aqPrefab.transform.localPosition = new Vector3(0f, 0f, 0f); aqPrefab.transform.localPosition = new Vector3(10f, 0f, 0f);
aqPrefab.name = "AQuest_null"; aqPrefab.name = "AQuest_null";
tempAList.Add(aqPrefab.GetComponent<Quests>().MakeAItem()); tempAList.Add(aqPrefab.GetComponent<Quests>().MakeAItem());
} }
AQQlist = tempAList; AQQlist = tempAList;
if (tempCList.Count == 0) { if (tempCList.Count == 0) {
var cqPrefab = Instantiate(CQPrefab, new Vector3(0f, 0f, 0f), Quaternion.identity); var cqPrefab = Instantiate(CQPrefab, new Vector3(10f, 0f, 0f), Quaternion.identity);
cqPrefab.transform.SetParent(CQQueue.transform, false); cqPrefab.transform.SetParent(CQQueue.transform, false);
cqPrefab.transform.localScale = new Vector3(1f, 1f, 1f); cqPrefab.transform.localScale = new Vector3(1f, 1f, 1f);
cqPrefab.transform.localPosition = new Vector3(0f, 0f, 0f); cqPrefab.transform.localPosition = new Vector3(10f, 0f, 0f);
cqPrefab.name = "CQuest_null"; cqPrefab.name = "CQuest_null";
tempCList.Add(cqPrefab.GetComponent<Quests>().MakeCItem()); tempCList.Add(cqPrefab.GetComponent<Quests>().MakeCItem());
} }
...@@ -214,11 +220,15 @@ public class UIController : MonoBehaviour { ...@@ -214,11 +220,15 @@ public class UIController : MonoBehaviour {
public void onClickExplain() public void onClickExplain()
{ {
QstExplain.SetActive(true); QstExplain.SetActive(true);
_tutorialbutton.SetActive(false);
UIManager.Instance.MenuButton.SetActive(false);
} }
public void onClickExplainExit() public void onClickExplainExit()
{ {
QstExplain.SetActive(false); QstExplain.SetActive(false);
_tutorialbutton.SetActive(true);
UIManager.Instance.MenuButton.SetActive(true);
} }
public void SetQstExplain(Quest qst) public void SetQstExplain(Quest qst)
......
...@@ -3,10 +3,13 @@ using System.Collections.Generic; ...@@ -3,10 +3,13 @@ using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using UnityEngine.EventSystems; using UnityEngine.EventSystems;
using UnityEngine.SceneManagement;
using CivModel; using CivModel;
using CivModel.Common;
using System.Linq; using System.Linq;
using static CivModel.Hwan.HwanPlayerNumber;
using static CivModel.Finno.FinnoPlayerNumber;
public class UIManager : MonoBehaviour public class UIManager : MonoBehaviour
{ {
...@@ -17,6 +20,9 @@ public class UIManager : MonoBehaviour ...@@ -17,6 +20,9 @@ public class UIManager : MonoBehaviour
public GameObject questUI; public GameObject questUI;
public GameObject selectedActor; public GameObject selectedActor;
public GameObject SpecialSpec; public GameObject SpecialSpec;
public GameObject Menu;
public GameObject AskToQuit;
public GameObject ActivatedUI;
public GameObject spyPanel; public GameObject spyPanel;
public GameObject spyContent; public GameObject spyContent;
...@@ -44,10 +50,25 @@ public class UIManager : MonoBehaviour ...@@ -44,10 +50,25 @@ public class UIManager : MonoBehaviour
public GameObject healthPoint; public GameObject healthPoint;
public GameObject cityBuildingInfo; public GameObject cityBuildingInfo;
public GameObject MainTutorial;
public GameObject ProductionTutorial;
public GameObject QuestTutorial;
public GameObject UltimateView;
public GameObject UltimateText;
public GameObject HwanMenuButton, FinnoMenuButton;
public GameObject MenuButton;
private bool isFirstProduction = true;
private bool isFirstQuest = true;
public bool isTutorialActivated = true;
public Image UnitPortrait; public Image UnitPortrait;
public GameObject QuestComplete; public GameObject QuestComplete;
public GameObject BGMs;
// RayCast For Selection // RayCast For Selection
public Ray ray; public Ray ray;
public RaycastHit hit; public RaycastHit hit;
...@@ -86,6 +107,22 @@ public class UIManager : MonoBehaviour ...@@ -86,6 +107,22 @@ public class UIManager : MonoBehaviour
QuestComplete.SetActive(false); QuestComplete.SetActive(false);
spyPanel.SetActive(false); spyPanel.SetActive(false);
skillSet_x = skillSet.GetComponent<RectTransform>().sizeDelta.x; skillSet_x = skillSet.GetComponent<RectTransform>().sizeDelta.x;
ActivatedUI = mapUI;
TutorialManagement(ActivatedUI);
UltimateView.SetActive(false);
HwanMenuButton.SetActive(false);
FinnoMenuButton.SetActive(false);
if (GameInfo.UserPlayer == 0)
{
HwanMenuButton.SetActive(true);
MenuButton = HwanMenuButton;
}
else
{
FinnoMenuButton.SetActive(true);
MenuButton = FinnoMenuButton;
}
} }
// Update is called once per frame // Update is called once per frame
...@@ -94,12 +131,16 @@ public class UIManager : MonoBehaviour ...@@ -94,12 +131,16 @@ public class UIManager : MonoBehaviour
ray = Camera.main.ScreenPointToRay(Input.mousePosition); ray = Camera.main.ScreenPointToRay(Input.mousePosition);
// Selecting Actor(Tile, Unit) of the Game // Selecting Actor(Tile, Unit) of the Game
if (!EventSystem.current.IsPointerOverGameObject() && Input.GetMouseButtonUp(0)) if (!EventSystem.current.IsPointerOverGameObject() && Input.GetMouseButtonDown(0) && !isTutorialActivated)
{ {
if (Physics.Raycast(ray, out hit)) // layer mask to index-11~14 layers
int layermask = (1 << 11) + (1 << 12) + (1 << 13) + (1 << 14);
layermask = ~layermask;
if (Physics.Raycast(ray, out hit, Mathf.Infinity, layermask))
{ {
selectedActor = hit.transform.gameObject; selectedActor = hit.transform.gameObject;
HexTile tile = selectedActor.GetComponent<HexTile>(); HexTile tile = selectedActor.GetComponent<HexTile>();
if (tile == null) return;
// Update selectedTile // Update selectedTile
GameManager.Instance.selectedTile = tile; GameManager.Instance.selectedTile = tile;
// Update selectedPoint using tile information // Update selectedPoint using tile information
...@@ -168,6 +209,15 @@ public class UIManager : MonoBehaviour ...@@ -168,6 +209,15 @@ public class UIManager : MonoBehaviour
mapUI.SetActive(true); mapUI.SetActive(true);
} }
skillDescription.transform.position = Input.mousePosition; skillDescription.transform.position = Input.mousePosition;
if (isTutorialActivated)
if (Input.GetMouseButtonDown(0))
{
MainTutorial.SetActive(false);
ProductionTutorial.SetActive(false);
QuestTutorial.SetActive(false);
isTutorialActivated = false;
}
} }
// Set Unit Information // Set Unit Information
public void UpdateUnitInfo() public void UpdateUnitInfo()
...@@ -203,24 +253,35 @@ public class UIManager : MonoBehaviour ...@@ -203,24 +253,35 @@ public class UIManager : MonoBehaviour
string _passive = ""; string _passive = "";
for (int i = 0; i < GameManager.Instance.selectedActor.PassiveSkills.Count; i++) for (int i = 0; i < GameManager.Instance.selectedActor.PassiveSkills.Count; i++)
{ {
_passive = _passive + GameManager.Instance.selectedActor.PassiveSkills[i].SkillName + "\n"; _passive += GameManager.Instance.selectedActor.PassiveSkills[i].SkillName + "\n";
} }
unitEffect.GetComponent<Text>().text = _passive; unitEffect.GetComponent<Text>().text = _passive;
} }
// CityBase 한정
if(GameManager.Instance.selectedActor is CivModel.CityBase) if(GameManager.Instance.selectedActor is CivModel.TileBuilding)
{
unitName.GetComponent<Text>().text = ((CityBase)GameManager.Instance.selectedActor).CityName;
UnitPortrait.sprite = CityBuilding.GetPortraiteImage((CivModel.CityBase)GameManager.Instance.selectedActor);
cityBuildingInfo.SetActive(true);
cityBuildingInfo.GetComponentInChildren<Text>().text = CityBuilding.ListCityBuildings(((CityBase)GameManager.Instance.selectedActor).InteriorBuildings);
actionPoint.SetActive(false);
skillSet.GetComponent<RectTransform>().anchoredPosition = new Vector2(1, 192.5f);
}
else
{ {
cityBuildingInfo.SetActive(false); // CityBase 한정
if (GameManager.Instance.selectedActor is CivModel.CityBase)
{
unitName.GetComponent<Text>().text = ((CityBase)GameManager.Instance.selectedActor).CityName;
UnitPortrait.sprite = CityBuilding.GetPortraiteImage((CivModel.CityBase)GameManager.Instance.selectedActor);
cityBuildingInfo.SetActive(true);
cityBuildingInfo.GetComponentInChildren<Text>().text = CityBuilding.ListCityBuildings(((CityBase)GameManager.Instance.selectedActor).InteriorBuildings);
actionPoint.SetActive(false);
skillSet.GetComponent<RectTransform>().anchoredPosition = new Vector2(1, 192.5f);
string _providing = "";
if (((CityBase)GameManager.Instance.selectedActor).ProvidedGold != 0) _providing += "골드 생산량: " + ((CityBase)GameManager.Instance.selectedActor).ProvidedGold + "\n";
if (((CityBase)GameManager.Instance.selectedActor).ProvidedHappiness != 0) _providing += "행복도 생산량: " + ((CityBase)GameManager.Instance.selectedActor).ProvidedHappiness + "\n";
if (((CityBase)GameManager.Instance.selectedActor).ProvidedLabor != 0) _providing += "노동력 생산량: " + ((CityBase)GameManager.Instance.selectedActor).ProvidedLabor;
unitEffect.GetComponent<Text>().text += _providing;
}
else
{
cityBuildingInfo.SetActive(false);
UnitPortrait.sprite = Resources.Load(("Portraits/" + (ProductionFactoryTraits.GetPortName(GameManager.Instance.selectedActor)).ToLower()), typeof(Sprite)) as Sprite;
unitName.GetComponent<Text>().text = GameManager.Instance.selectedActor.TextName; //ProductionFactoryTraits.GetName(GameManager.Instance.selectedActor);
}
} }
} }
...@@ -274,16 +335,54 @@ public class UIManager : MonoBehaviour ...@@ -274,16 +335,54 @@ public class UIManager : MonoBehaviour
if (go != managementUI) managementUI.SetActive(false); if (go != managementUI) managementUI.SetActive(false);
if (go != diplomacyUI) diplomacyUI.SetActive(false); if (go != diplomacyUI) diplomacyUI.SetActive(false);
if (go != questUI) questUI.SetActive(false); if (go != questUI) questUI.SetActive(false);
ActivatedUI = go;
if (go == questUI && isFirstQuest)
{
TutorialManagement(ActivatedUI);
isFirstQuest = false;
}
if (go == managementUI && isFirstProduction)
{
TutorialManagement(ActivatedUI);
isFirstProduction = false;
}
} }
else else
if (go != mapUI) if (go != mapUI)
{ {
go.SetActive(false); go.SetActive(false);
mapUI.SetActive(true); mapUI.SetActive(true);
ActivatedUI = mapUI;
} }
} }
public void onClickMenu()
{
if (Menu.activeSelf)
Menu.SetActive(false);
else
Menu.SetActive(true);
}
//only exclusive to game quit button
public void onClickYesNo(GameObject but)
{
if (but.name == "Yes")
{
Application.Quit();
}
else if (but.name == "No")
AskToQuit.SetActive(false);
}
public void onClickMenuButton(GameObject but)
{
if (but.name == "QuitGame")
{
AskToQuit.SetActive(true);
}
}
// On Click Move Button // On Click Move Button
public void onClickMove() public void onClickMove()
{ {
...@@ -333,6 +432,11 @@ public class UIManager : MonoBehaviour ...@@ -333,6 +432,11 @@ public class UIManager : MonoBehaviour
ButtonInteractChange(); ButtonInteractChange();
GameManager.Instance.CheckToDo(); GameManager.Instance.CheckToDo();
GameManager.Instance.FocusOnNextActableUnit(); GameManager.Instance.FocusOnNextActableUnit();
if(GameManager.Instance.selectedActor == null)
{
unitInfo.SetActive(false);
Actions.SetActive(false);
}
} }
public void SpecialMouseOver() public void SpecialMouseOver()
...@@ -344,6 +448,93 @@ public class UIManager : MonoBehaviour ...@@ -344,6 +448,93 @@ public class UIManager : MonoBehaviour
SpecialSpec.SetActive(false); SpecialSpec.SetActive(false);
} }
public void MyUltimateMouseOver()
{
UltimateView.SetActive(true);
var component = UltimateText.GetComponent<Text>();
var player = GameManager.Instance.Game.PlayerInTurn;
CivModel.Quest quest = null;
// Player가 환인경우
if (player == GameManager.Instance.Game.GetPlayerHwan())
{
quest = player.Quests.OfType<CivModel.Quests.QuestHwanVictory>().FirstOrDefault();
}
// Player가 피노인경우
else
{
quest = player.Quests.OfType<CivModel.Quests.QuestFinnoVictory>().FirstOrDefault();
}
if (quest != null)
{
var str = quest.Progresses
.Where(p => p.Enabled)
.Aggregate("", (s, p) => s + p.Description + " [" + p.Value + "/" + p.MaxValue + "]\n")
.TrimEnd();
component.text = str;
}
}
public void OppositeUltimateMouseOver()
{
UltimateView.SetActive(true);
var component = UltimateText.GetComponent<Text>();
var player = GameManager.Instance.Game.PlayerInTurn;
CivModel.Quest quest = null;
// Player가 환인경우
if (player == GameManager.Instance.Game.GetPlayerHwan())
{
player = GameManager.Instance.Game.GetPlayerFinno();
quest = player.Quests.OfType<CivModel.Quests.QuestFinnoVictory>().FirstOrDefault();
}
// Player가 피노인경우
else
{
player = GameManager.Instance.Game.GetPlayerHwan();
quest = player.Quests.OfType<CivModel.Quests.QuestHwanVictory>().FirstOrDefault();
}
if (quest != null)
{
var str = quest.Progresses
.Where(p => p.Enabled)
.Aggregate("", (s, p) => s + p.Description + " [" + p.Value + "/" + p.MaxValue + "]\n")
.TrimEnd();
component.text = str;
}
}
public void UltimateMouseOver()
{
UltimateView.SetActive(true);
var component = UltimateText.GetComponent<Text>();
var player = GameManager.Instance.Game.GetPlayerHwan();
var quest = player.Quests.OfType<CivModel.Quests.QuestHwanVictory>().FirstOrDefault();
if (quest != null)
{
var str = quest.Progresses
.Where(p => p.Enabled)
.Aggregate("", (s, p) => s + p.Description + " [" + p.Value + "/" + p.MaxValue + "]\n")
.TrimEnd();
component.text = str;
}
}
public void UltimateMouseExit()
{
UltimateView.SetActive(false);
}
//// Management UI (Production Selection) //// //// Management UI (Production Selection) ////
public void UnitSelTabActive() public void UnitSelTabActive()
{ {
...@@ -469,8 +660,9 @@ public class UIManager : MonoBehaviour ...@@ -469,8 +660,9 @@ public class UIManager : MonoBehaviour
SkillInfo si; SkillInfo si;
if (skillIdx < GameManager.Instance.selectedActor.ActiveSkills.Count) if (skillIdx < GameManager.Instance.selectedActor.ActiveSkills.Count)
si = GameManager.Instance.selectedActor.ActiveSkills[skillIdx]; si = GameManager.Instance.selectedActor.ActiveSkills[skillIdx];
else si = new SkillInfo { SkillName = "null", SkillDescription = "" }; else si = new SkillInfo { SkillName = "null", SkillDescription = "" };
skillsBtn[skillIdx].GetComponentInChildren<Text>().text = si.SkillName; skillsBtn[skillIdx].GetComponentsInChildren<Image>().Last().sprite = SkillButton.GetSkillIcon(GameManager.Instance.selectedActor, skillIdx);
} }
foreach (var skill in skillsBtn.Skip(skillIdx)) foreach (var skill in skillsBtn.Skip(skillIdx))
...@@ -478,22 +670,67 @@ public class UIManager : MonoBehaviour ...@@ -478,22 +670,67 @@ public class UIManager : MonoBehaviour
skill.gameObject.SetActive(false); skill.gameObject.SetActive(false);
} }
if (GameManager.Instance.selectedActor is CivModel.Unit && GameManager.Instance.selectedActor.RemainAP.CompareTo(0) == 0) if (GameManager.Instance.selectedActor is CivModel.Unit)
{ {
Button[] skillsBtnNoAP = skillSet.GetComponentsInChildren<Button>(); if(GameManager.Instance.selectedActor.RemainAP.CompareTo(0) == 0)
foreach (var skill in skillsBtnNoAP) {
Button[] skillsBtnNoAP = skillSet.GetComponentsInChildren<Button>();
foreach (var skill in skillsBtnNoAP)
{
skill.interactable = false;
}
}
GameObject unitGameObject = GameManager.GetUnitGameObject(GameManager.Instance.selectedPoint);
if (unitGameObject != null)
{ {
skill.interactable = false; Unit unit = unitGameObject.GetComponent<Unit>();
if (unit.skillCooldown > 0)
{
Button[] skillsBtnNoAP = skillSet.GetComponentsInChildren<Button>();
foreach (var skill in skillsBtnNoAP)
{
skill.interactable = false;
}
}
} }
} }
} }
} }
if (GameManager.Instance.selectedActor is CivModel.CityBase && GameManager.Instance.selectedActor.Owner == GameManager.Instance.Game.PlayerInTurn)
{
skillSet.SetActive(true);
skillSet.GetComponent<RectTransform>().sizeDelta = new Vector2(skillSet_x * GameManager.Instance.selectedActor.SpecialActs.Count / 3
, skillSet.GetComponent<RectTransform>().sizeDelta.y);
Button[] skillsBtn = skillSet.GetComponentsInChildren<Button>();
foreach (var skill in skillsBtn)
{
skill.gameObject.SetActive(true);
skill.interactable = true;
}
int skillIdx;
for (skillIdx = 0; skillIdx < GameManager.Instance.selectedActor.SpecialActs.Count; ++skillIdx)
{
SkillInfo si;
if (skillIdx < GameManager.Instance.selectedActor.ActiveSkills.Count)
si = GameManager.Instance.selectedActor.ActiveSkills[skillIdx];
else si = new SkillInfo { SkillName = "null", SkillDescription = "" };
skillsBtn[skillIdx].GetComponentsInChildren<Image>().Last().sprite = SkillButton.GetSkillIcon(GameManager.Instance.selectedActor, skillIdx);
}
foreach (var skill in skillsBtn.Skip(skillIdx))
{
skill.gameObject.SetActive(false);
}
}
} }
// Update Unit Info & selectedActor information according to the given actor // Update Unit Info & selectedActor information according to the given actor
public void updateSelectedInfo(CivModel.Actor actor) public void updateSelectedInfo(CivModel.Actor actor)
{ {
GameManager.Instance.selectedActor = actor; GameManager.Instance.SelectActor(actor);
var pt = actor.PlacedPoint.Value; var pt = actor.PlacedPoint.Value;
GameManager.Instance.selectedPoint = pt; GameManager.Instance.selectedPoint = pt;
foreach (GameObject unit in GameManager.Instance.Units) foreach (GameObject unit in GameManager.Instance.Units)
...@@ -517,11 +754,20 @@ public class UIManager : MonoBehaviour ...@@ -517,11 +754,20 @@ public class UIManager : MonoBehaviour
Text text = QuestComplete.GetComponentInChildren<Text>(); Text text = QuestComplete.GetComponentInChildren<Text>();
Qstimage.sprite = QuestInfo.GetPortraitImage(qst); Qstimage.sprite = QuestInfo.GetPortraitImage(qst);
text.text = qst.CompleteNotice; text.text = qst.CompleteNotice;
MenuButton.SetActive(false);
} }
public void QuestCompleteExit() public void QuestCompleteExit()
{ {
QuestComplete.SetActive(false); QuestComplete.SetActive(false);
MenuButton.SetActive(true);
GameManager.Instance.StopQuestVoice();
if (GameManager.Instance.HolySound.GetComponent<AudioSource>().isPlaying)
GameManager.Instance.HolySound.GetComponent<AudioSource>().Stop();
if (GameInfo.UserPlayer == 0)
BGMs.transform.GetChild(0).GetComponent<AudioSource>().UnPause();
if (GameInfo.UserPlayer == 1)
BGMs.transform.GetChild(1).GetComponent<AudioSource>().UnPause();
} }
public void OnClickBack() public void OnClickBack()
...@@ -529,5 +775,38 @@ public class UIManager : MonoBehaviour ...@@ -529,5 +775,38 @@ public class UIManager : MonoBehaviour
spyPanel.SetActive(false); spyPanel.SetActive(false);
} }
//activate tutorial based on input tab
public void TutorialManagement(GameObject ActivatedUI)
{
if(ActivatedUI == mapUI)
{
MainTutorial.SetActive(true);
ProductionTutorial.SetActive(false);
questUI.SetActive(false);
}
else if (ActivatedUI == managementUI)
{
MainTutorial.SetActive(false);
ProductionTutorial.SetActive(true);
QuestTutorial.SetActive(false);
}
else
{
MainTutorial.SetActive(false);
ProductionTutorial.SetActive(false);
QuestTutorial.SetActive(true);
}
isTutorialActivated = true;
}
public void onTutotialButtonClicked()
{
if(!isTutorialActivated)
TutorialManagement(ActivatedUI);
else
{
MainTutorial.SetActive(false);
ProductionTutorial.SetActive(false);
QuestTutorial.SetActive(false);
}
}
} }
\ No newline at end of file
...@@ -18,7 +18,7 @@ public class ViewFieldSquareControl : MonoBehaviour ...@@ -18,7 +18,7 @@ public class ViewFieldSquareControl : MonoBehaviour
// Use this for initialization // Use this for initialization
void Start() void Start()
{ {
Scaler = new Vector3(0.22f, 0.22f, 0.22f); Scaler = new Vector3(0.32f, 0.32f, 0.32f);
_zoom_counter = 2; _zoom_counter = 2;
} }
......
...@@ -20,6 +20,9 @@ public class Unit : MonoBehaviour ...@@ -20,6 +20,9 @@ public class Unit : MonoBehaviour
// Associated With the Model, But as it's a pointer, Access is Required. // Associated With the Model, But as it's a pointer, Access is Required.
public CivModel.Unit unitModel; public CivModel.Unit unitModel;
// additional unit of this unit
public Unit pairUnit;
public int unitOwnerNumber; public int unitOwnerNumber;
// Unit States. Move, Attack and Skill // Unit States. Move, Attack and Skill
...@@ -37,6 +40,8 @@ public class Unit : MonoBehaviour ...@@ -37,6 +40,8 @@ public class Unit : MonoBehaviour
private CivModel.Terrain.Point?[] _parameterPoints; private CivModel.Terrain.Point?[] _parameterPoints;
private List<CivModel.Terrain.Point> _skillParameterPoints = new List<CivModel.Terrain.Point>(); private List<CivModel.Terrain.Point> _skillParameterPoints = new List<CivModel.Terrain.Point>();
public int skillCooldown = 0;
// Change Unit position to given CivModel.Terrain.Point value // Change Unit position to given CivModel.Terrain.Point value
// Default y position is 1.25f // Default y position is 1.25f
public void SetPoints(CivModel.Terrain.Point p1) public void SetPoints(CivModel.Terrain.Point p1)
...@@ -45,7 +50,6 @@ public class Unit : MonoBehaviour ...@@ -45,7 +50,6 @@ public class Unit : MonoBehaviour
this.unityPoint = GameManager.ModelPntToUnityPnt(p1, 0); this.unityPoint = GameManager.ModelPntToUnityPnt(p1, 0);
this.transform.position = this.unityPoint; this.transform.position = this.unityPoint;
this.unitOwnerNumber = this.unitModel.Owner.PlayerNumber; this.unitOwnerNumber = this.unitModel.Owner.PlayerNumber;
// SetMaterial();
} }
// Change Unit position to given CivModel.Terrain.Point value // Change Unit position to given CivModel.Terrain.Point value
public void SetPoints(CivModel.Terrain.Point p1, Vector3 p2) public void SetPoints(CivModel.Terrain.Point p1, Vector3 p2)
...@@ -53,19 +57,6 @@ public class Unit : MonoBehaviour ...@@ -53,19 +57,6 @@ public class Unit : MonoBehaviour
this.point = p1; this.point = p1;
this.unityPoint = new Vector3(p2.x, p2.y, p2.z); this.unityPoint = new Vector3(p2.x, p2.y, p2.z);
this.transform.position = this.unityPoint; this.transform.position = this.unityPoint;
// SetMaterial();
}
// Set Material of the Unit
// Materials are stored in the GameManager Class of the Unity Editor
private void SetMaterial()
{
foreach (Material m in GameManager.Instance.materials)
{
if (m == GameManager.Instance.materials[(int)UnitEnum.UnitToEnum(point.Unit)])
{
GetComponent<Renderer>().material = m;
}
}
} }
// There are enter, exit methods for move and attack states. Enter methods are public, exit methods are default. // There are enter, exit methods for move and attack states. Enter methods are public, exit methods are default.
...@@ -153,12 +144,12 @@ public class Unit : MonoBehaviour ...@@ -153,12 +144,12 @@ public class Unit : MonoBehaviour
if (unitToMove.MovingAttackAct != null && IsEnemyActor(player,destPoint)) if (unitToMove.MovingAttackAct != null && IsEnemyActor(player,destPoint))
{ {
MovePath = MoveOrMoveAttack(unitToMove, destPoint, unitToMove.MovingAttackAct); MovePath = MoveOrMoveAttack(unitToMove, destPoint, unitToMove.MovingAttackAct);
//unitToMove.MovingAttackAct.Act(destPoint);
MoveStateExit(); MoveStateExit();
if (MovePath != null && !MovePath.IsInvalid) if (MovePath != null && !MovePath.IsInvalid)
{ {
yield return MoveorMovingAttackAnimation(MovePath, 0.2f, unitToMove.MovingAttackAct);
yield return AttackAnimation(unitToMove, destPoint); yield return UnitAnimation.MoveorMovingAttackAnimation(this, MovePath, 0.2f, unitToMove.MovingAttackAct);
yield return UnitAnimation.AttackAnimation(this, destPoint);
unitToMove.MovePath = MovePath; unitToMove.MovePath = MovePath;
MovePath.ActFullWalkForRemainAP(); MovePath.ActFullWalkForRemainAP();
} }
...@@ -169,11 +160,10 @@ public class Unit : MonoBehaviour ...@@ -169,11 +160,10 @@ public class Unit : MonoBehaviour
else if (unitToMove.MoveAct != null) else if (unitToMove.MoveAct != null)
{ {
MovePath = MoveOrMoveAttack(unitToMove, destPoint, unitToMove.MoveAct); MovePath = MoveOrMoveAttack(unitToMove, destPoint, unitToMove.MoveAct);
//unitToMove.MoveAct.Act(destPoint);
MoveStateExit(); MoveStateExit();
if (MovePath != null && !MovePath.IsInvalid) if (MovePath != null && !MovePath.IsInvalid)
{ {
yield return MoveorMovingAttackAnimation(MovePath, 0.2f, unitToMove.MoveAct); yield return UnitAnimation.MoveorMovingAttackAnimation(this, MovePath, 0.2f, unitToMove.MoveAct);
unitToMove.MovePath = MovePath; unitToMove.MovePath = MovePath;
MovePath.ActFullWalkForRemainAP(); MovePath.ActFullWalkForRemainAP();
} }
...@@ -214,78 +204,9 @@ public class Unit : MonoBehaviour ...@@ -214,78 +204,9 @@ public class Unit : MonoBehaviour
{ {
MovePath = null; MovePath = null;
} }
/*
if (MovePath != null && !MovePath.IsInvalid)
{
unitToMove.MovePath = MovePath;
MovePath.ActFullWalkForRemainAP();
}*/
return MovePath; return MovePath;
} }
IEnumerator MoveorMovingAttackAnimation(IMovePath path, float secondsPerMove, CivModel.IActorAction finalAction)
{
float timer = 0;
for (int i = 1; i < path.Path.Count() - 1; i++)
{
Vector3 destPointsPos = GameManager.ModelPntToUnityPnt(path.Path.ElementAt(i), 0);
float distance = (transform.position - destPointsPos).magnitude;
Quaternion lookDir = Quaternion.LookRotation(destPointsPos - transform.position, transform.up);
/*
// hard coding for not-uniform-basis models
if(path.Actor is CivModel.Unit && (CivModel.Unit)path.Actor is CivModel.Hwan.LEOSpaceArmada)
{
lookDir = lookDir * Quaternion.Euler(0, -43, 0);
}*/
Quaternion initDir = transform.rotation;
while(true)
{
transform.rotation = Quaternion.Lerp(initDir, lookDir, timer);
timer += Time.deltaTime * 3;
if(timer > 1) break;
yield return null;
}
timer = 0;
while (timer < secondsPerMove)
{
transform.position = Vector3.MoveTowards(transform.position, destPointsPos, distance * Time.deltaTime / secondsPerMove);
timer += Time.deltaTime;
yield return null;
}
timer = 0;
}
if(finalAction == finalAction.Owner.MovingAttackAct)
yield return null;
else
{
Vector3 destPointsPos = GameManager.ModelPntToUnityPnt(path.Path.ElementAt(path.Path.Count()-1), 0);
float distance = (transform.position - destPointsPos).magnitude;
Quaternion lookDir = Quaternion.LookRotation(destPointsPos - transform.position, transform.up);
/*
// hard coding for not-uniform-basis models
if (path.Actor is CivModel.Unit && (CivModel.Unit)path.Actor is CivModel.Hwan.LEOSpaceArmada)
{
lookDir = lookDir * Quaternion.Euler(0, -43, 0);
}*/
Quaternion initDir = transform.rotation;
while (true)
{
transform.rotation = Quaternion.Lerp(initDir, lookDir, timer);
timer += Time.deltaTime * 3;
if (timer > 1) break;
yield return null;
}
timer = 0;
while (timer < secondsPerMove)
{
transform.position = Vector3.MoveTowards(transform.position, destPointsPos, distance * Time.deltaTime / secondsPerMove);
timer += Time.deltaTime;
yield return null;
}
timer = 0;
}
}
public void MoveStateExit() public void MoveStateExit()
{ {
if (_inMoveState) _inMoveState = false; if (_inMoveState) _inMoveState = false;
...@@ -366,7 +287,7 @@ public class Unit : MonoBehaviour ...@@ -366,7 +287,7 @@ public class Unit : MonoBehaviour
UIManager.Instance.updateSelectedInfo(unitToAttack); UIManager.Instance.updateSelectedInfo(unitToAttack);
if (unitToAttack.HoldingAttackAct != null && unitToAttack.HoldingAttackAct.IsActable(destPoint)) if (unitToAttack.HoldingAttackAct != null && unitToAttack.HoldingAttackAct.IsActable(destPoint))
{ {
yield return AttackAnimation(unitToAttack, destPoint); yield return UnitAnimation.AttackAnimation(this, destPoint);
unitToAttack.HoldingAttackAct.Act(destPoint); unitToAttack.HoldingAttackAct.Act(destPoint);
MoveStateExit(); MoveStateExit();
GameManager.Instance.UpdateUnit(); GameManager.Instance.UpdateUnit();
...@@ -385,44 +306,6 @@ public class Unit : MonoBehaviour ...@@ -385,44 +306,6 @@ public class Unit : MonoBehaviour
} }
} }
IEnumerator AttackAnimation(CivModel.Actor unitToAttack, CivModel.Terrain.Point unitTarget)
{
float timer = 0;
Vector3 attackUnitPos = transform.position;
Vector3 targetUnitPos = GameManager.ModelPntToUnityPnt(unitTarget, 0);
float distance = (attackUnitPos + new Vector3(0, 2, 0) - targetUnitPos).magnitude;
/*
// move up
while (timer < 0.4f)
{
transform.position = Vector3.MoveTowards(transform.position, attackUnitPos + new Vector3(0, 2, 0), 2 * Time.deltaTime / 0.4f);
timer += Time.deltaTime;
yield return null;
}
// hit
while (timer < 0.5f)
{
transform.position = Vector3.MoveTowards(transform.position, targetUnitPos, distance * Time.deltaTime / 0.1f);
timer += Time.deltaTime;
yield return null;
}
// hit back
while (timer < 0.7f)
{
transform.position = Vector3.MoveTowards(transform.position, attackUnitPos + new Vector3(0, 2, 0), distance * Time.deltaTime / 0.2f);
timer += Time.deltaTime;
yield return null;
}
// move down
while (timer < 1.1f)
{
transform.position = Vector3.MoveTowards(transform.position, attackUnitPos, distance * Time.deltaTime / 0.4f);
timer += Time.deltaTime;
yield return null;
}*/
yield return null;
}
public void SkillStateEnter(int index) public void SkillStateEnter(int index)
{ {
// State change // State change
...@@ -432,7 +315,6 @@ public class Unit : MonoBehaviour ...@@ -432,7 +315,6 @@ public class Unit : MonoBehaviour
_inSkillState = true; _inSkillState = true;
_currentSkill = index; _currentSkill = index;
// If SpecialActs[_currentSkill] is not parametered skill, this skill is immediately activated. // If SpecialActs[_currentSkill] is not parametered skill, this skill is immediately activated.
if (!GameManager.Instance.selectedActor.SpecialActs[_currentSkill].IsParametered) if (!GameManager.Instance.selectedActor.SpecialActs[_currentSkill].IsParametered)
{ {
...@@ -465,9 +347,11 @@ public class Unit : MonoBehaviour ...@@ -465,9 +347,11 @@ public class Unit : MonoBehaviour
UIManager.Instance.spyContent.GetComponent<Text>().text = text; UIManager.Instance.spyContent.GetComponent<Text>().text = text;
} }
// 공통적인 부분 // 공통적인 부분
StartCoroutine(UnitAnimation.SkillAnimation(this, GameManager.Instance.selectedPoint));
AddSkillCooldown();
GameManager.Instance.selectedActor.SpecialActs[_currentSkill].Act(null); GameManager.Instance.selectedActor.SpecialActs[_currentSkill].Act(null);
GameManager.Instance.UpdateUnit(); GameManager.Instance.UpdateUnit();
// UIManager.Instance.UpdateUnitInfo(); Done in UpdateUnit UIManager.Instance.UpdateUnitInfo();
} }
else else
{ {
...@@ -517,7 +401,7 @@ public class Unit : MonoBehaviour ...@@ -517,7 +401,7 @@ public class Unit : MonoBehaviour
while (true) while (true)
{ {
// 새로운 Point 을 선택했을 때 // 새로운 Point 을 선택했을 때
if (Input.GetMouseButtonUp(0) && !EventSystem.current.IsPointerOverGameObject()) if (Input.GetMouseButtonDown(0) && !EventSystem.current.IsPointerOverGameObject())
{ {
// Flicker하고 있는 Tile을 선택했을 때 // Flicker하고 있는 Tile을 선택했을 때
if (GameManager.Instance.selectedTile.isFlickering) if (GameManager.Instance.selectedTile.isFlickering)
...@@ -526,17 +410,18 @@ public class Unit : MonoBehaviour ...@@ -526,17 +410,18 @@ public class Unit : MonoBehaviour
UIManager.Instance.updateSelectedInfo(unitToSkill); UIManager.Instance.updateSelectedInfo(unitToSkill);
if (unitToSkill.SpecialActs[_currentSkill].IsActable(destPoint)) if (unitToSkill.SpecialActs[_currentSkill].IsActable(destPoint))
{ {
bool canAct = false;
try try
{ {
unitToSkill.SpecialActs[_currentSkill].Act(destPoint); unitToSkill.SpecialActs[_currentSkill].Act(destPoint);
canAct = true;
} }
catch (System.Exception e) { Debug.Log(e); } catch (System.Exception e) { Debug.Log(e); }
finally if (canAct)
{ yield return UnitAnimation.SkillAnimation(this, destPoint);
SkillStateExit(); AddSkillCooldown();
GameManager.Instance.UpdateUnit(); SkillStateExit();
} GameManager.Instance.UpdateUnit();
break; break;
} }
else else
...@@ -571,5 +456,45 @@ public class Unit : MonoBehaviour ...@@ -571,5 +456,45 @@ public class Unit : MonoBehaviour
} }
_skillParameterPoints.Clear(); _skillParameterPoints.Clear();
UIManager.Instance.ButtonInteractChange(); UIManager.Instance.ButtonInteractChange();
UIManager.Instance.UpdateUnitInfo();
}
// invoke every turn for skill cooldown check
public void UpdateSkillCooldown()
{
if (skillCooldown > 0) skillCooldown--;
}
private void AddSkillCooldown()
{
if (unitModel is CivModel.Hwan.LEOSpaceArmada)
skillCooldown += 2;
else if (unitModel is CivModel.Finno.ElephantCavalry)
skillCooldown += 1;
else if (unitModel is CivModel.Hwan.UnicornOrder)
skillCooldown += 1;
else if (unitModel is CivModel.Hwan.ProtoNinja)
skillCooldown += 2;
else if (unitModel is CivModel.Finno.AutismBeamDrone)
skillCooldown += 2;
else if (unitModel is CivModel.Hwan.JediKnight || unitModel is CivModel.Finno.JediKnight)
skillCooldown += 2;
else if (unitModel is CivModel.Hwan.JackieChan)
skillCooldown += 4;
skillCooldown++;
// 땜빵
if (pairUnit == null)
return;
pairUnit.skillCooldown = skillCooldown;
} }
} }
...@@ -21,7 +21,14 @@ public enum Units { ...@@ -21,7 +21,14 @@ public enum Units {
FinnoAncientSorcerer, FinnoAncientSorcerer,
FinnoJediKnight, FinnoJediKnight,
FinnoAutismBeamDrone, FinnoAutismBeamDrone,
FinnoGenghisKhan FinnoGenghisKhan,
ZapPioneer,
ZapArmoredDivision,
ZapPseudoNinja,
ZapPadawan,
ZapInfantry,
ZapDecentralizedMilitary,
ZapSpaceShip
} }
public class UnitEnum { public class UnitEnum {
...@@ -77,10 +84,39 @@ public class UnitEnum { ...@@ -77,10 +84,39 @@ public class UnitEnum {
else if (unit is CivModel.Finno.AutismBeamDrone) { else if (unit is CivModel.Finno.AutismBeamDrone) {
return Units.FinnoAutismBeamDrone; return Units.FinnoAutismBeamDrone;
} }
else { else if (unit is CivModel.Zap.Pioneer)
return Units.HwanBrainwashedEmuKnight; {
} return Units.ZapPioneer;
} }
else if (unit is CivModel.Zap.ArmedDivision)
{
return Units.ZapArmoredDivision;
}
else if (unit is CivModel.Zap.InfantryDivision)
{
return Units.ZapInfantry;
}
else if (unit is CivModel.Zap.LEOSpaceArmada)
{
return Units.ZapSpaceShip;
}
else if (unit is CivModel.Zap.Padawan)
{
return Units.ZapPadawan;
}
else if (unit is CivModel.Zap.DecentralizedMilitary)
{
return Units.ZapDecentralizedMilitary;
}
else if (unit is CivModel.Zap.ZapNinja)
{
return Units.ZapPseudoNinja;
}
else
{
return Units.HwanLEO;
}
}
public static GameObject GetUnitGameObject(CivModel.Unit unit) { public static GameObject GetUnitGameObject(CivModel.Unit unit) {
...@@ -88,7 +124,7 @@ public class UnitEnum { ...@@ -88,7 +124,7 @@ public class UnitEnum {
if (unit is CivModel.Hwan.Pioneer) if (unit is CivModel.Hwan.Pioneer)
{ {
unitResourcePath = "hwan_burrow"; unitResourcePath = "hwan_pioneer";
} }
else if (unit is CivModel.Hwan.BrainwashedEMUKnight) else if (unit is CivModel.Hwan.BrainwashedEMUKnight)
{ {
...@@ -124,7 +160,7 @@ public class UnitEnum { ...@@ -124,7 +160,7 @@ public class UnitEnum {
} }
else if (unit is CivModel.Finno.Pioneer) else if (unit is CivModel.Finno.Pioneer)
{ {
unitResourcePath = "finno_burrow"; unitResourcePath = "finno_pioneer";
} }
else if (unit is CivModel.Finno.EMUHorseArcher) else if (unit is CivModel.Finno.EMUHorseArcher)
{ {
...@@ -158,9 +194,37 @@ public class UnitEnum { ...@@ -158,9 +194,37 @@ public class UnitEnum {
{ {
unitResourcePath = "finno_genghis_khan"; unitResourcePath = "finno_genghis_khan";
} }
else if(unit is CivModel.Zap.Pioneer)
{
unitResourcePath = "jap_pioneer";
}
else if (unit is CivModel.Zap.ArmedDivision)
{
unitResourcePath = "jap_armored_division";
}
else if(unit is CivModel.Zap.InfantryDivision)
{
unitResourcePath = "jap_infantry_division";
}
else if(unit is CivModel.Zap.LEOSpaceArmada)
{
unitResourcePath = "jap_spaceship";
}
else if(unit is CivModel.Zap.Padawan)
{
unitResourcePath = "jap_padawan";
}
else if(unit is CivModel.Zap.DecentralizedMilitary)
{
unitResourcePath = "jap_decentralized_division";
}
else if(unit is CivModel.Zap.ZapNinja)
{
unitResourcePath = "jap_pseudo_ninja";
}
else else
{ {
unitResourcePath = "hwan_spaceship"; unitResourcePath = "jap_infantry_division";
} }
return Resources.Load<GameObject>("UnitModels/" + unitResourcePath); return Resources.Load<GameObject>("UnitModels/" + unitResourcePath);
......
fileFormatVersion: 2 fileFormatVersion: 2
guid: 44bcbd998f58292419e665afa8111b65 guid: 4ff715dfde472a54e913fa6fd542c12a
NativeFormatImporter: folderAsset: yes
DefaultImporter:
externalObjects: {} externalObjects: {}
mainObjectFileID: 2100000
userData: userData:
assetBundleName: assetBundleName:
assetBundleVariant: assetBundleVariant:
%YAML 1.1 %YAML 1.1
%TAG !u! tag:unity3d.com,2011: %TAG !u! tag:unity3d.com,2011:
--- !u!55 &1 --- !u!55 &1
PhysicsManager: PhysicsManager:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 7 serializedVersion: 7
m_Gravity: {x: 0, y: -9.81, z: 0} m_Gravity: {x: 0, y: -9.81, z: 0}
m_DefaultMaterial: {fileID: 0} m_DefaultMaterial: {fileID: 0}
m_BounceThreshold: 2 m_BounceThreshold: 2
m_SleepThreshold: 0.005 m_SleepThreshold: 0.005
m_DefaultContactOffset: 0.01 m_DefaultContactOffset: 0.01
m_DefaultSolverIterations: 6 m_DefaultSolverIterations: 6
m_DefaultSolverVelocityIterations: 1 m_DefaultSolverVelocityIterations: 1
m_QueriesHitBackfaces: 0 m_QueriesHitBackfaces: 0
m_QueriesHitTriggers: 1 m_QueriesHitTriggers: 1
m_EnableAdaptiveForce: 0 m_EnableAdaptiveForce: 0
m_ClothInterCollisionDistance: 0 m_ClothInterCollisionDistance: 0
m_ClothInterCollisionStiffness: 0 m_ClothInterCollisionStiffness: 0
m_ContactsGeneration: 1 m_ContactsGeneration: 1
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc7ffffffa7ffffff97ffffff8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
m_AutoSimulation: 1 m_AutoSimulation: 1
m_AutoSyncTransforms: 1 m_AutoSyncTransforms: 1
m_ClothInterCollisionSettingsToggle: 0 m_ClothInterCollisionSettingsToggle: 0
m_ContactPairsMode: 0 m_ContactPairsMode: 0
m_BroadphaseType: 0 m_BroadphaseType: 0
m_WorldBounds: m_WorldBounds:
m_Center: {x: 0, y: 0, z: 0} m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 250, y: 250, z: 250} m_Extent: {x: 250, y: 250, z: 250}
m_WorldSubdivisions: 8 m_WorldSubdivisions: 8
...@@ -663,6 +663,8 @@ PlayerSettings: ...@@ -663,6 +663,8 @@ PlayerSettings:
cloudServicesEnabled: cloudServicesEnabled:
Build: 1 Build: 1
Collab: 1 Collab: 1
ErrorHub: 0
Hub: 0
UNet: 1 UNet: 1
facebookSdkVersion: 7.9.4 facebookSdkVersion: 7.9.4
apiCompatibilityLevel: 3 apiCompatibilityLevel: 3
......
...@@ -17,11 +17,11 @@ TagManager: ...@@ -17,11 +17,11 @@ TagManager:
- PostProcessing - PostProcessing
- MiniMap - MiniMap
- ViewField - ViewField
- - HwanUnit
- - FinnoUnit
- - HwanAttackParticle
- - FinnoAttackParticle
- - ZapUnit
- -
- -
- -
......
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