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

Non-resource assets for final revision

parent f0ed7cfd
......@@ -382,6 +382,117 @@
</summary>
<param name="playerInTurn">The player which the sub turn is dedicated to.</param>
</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">
<summary>
The base class represents a prototype.
......@@ -417,6 +528,20 @@
The name of an object of the kind of this prototype.
</summary>
</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">
<summary>
The factory interface of <see cref="T:CivModel.Production"/> which products <see cref="T:CivModel.Actor"/> objects.
......@@ -518,8 +643,8 @@
<summary>
The population income of this city.
</summary>
<seealso cref="P:CivModel.IGameConstantScheme.PopulationConstant"/>
<seealso cref="P:CivModel.IGameConstantScheme.PopulationHappinessCoefficient"/>
<seealso cref="P:CivModel.IGameConstants.PopulationConstant"/>
<seealso cref="P:CivModel.IGameConstants.PopulationHappinessCoefficient"/>
</member>
<member name="P:CivModel.CityBase.ProvidedGold">
<summary>
......@@ -626,11 +751,14 @@
See remark section of <see cref="M:System.Guid.ParseExact(System.String,System.String)"/>.
</summary>
</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>
Re-initializes the <see cref="T:CivModel.Game"/> object, by loading a existing save file from stream.
</summary>
<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">
the known factories of <see cref="T:CivModel.IGameScheme"/> for the game.
If <c>null</c>, use previous scheme.
......@@ -659,10 +787,10 @@
The constants of this game.
</summary>
<remarks>
For performance purpose, constant values are copied from <see cref="T:CivModel.IGameConstantScheme"/> into this property when game starts.
For performance purpose, constant values are copied from <see cref="T:CivModel.IGameConstantsScheme"/> into this property when game starts.
</remarks>
<seealso cref="T:CivModel.GameConstants"/>
<seealso cref="T:CivModel.IGameConstantScheme"/>
<seealso cref="T:CivModel.IGameConstantsScheme"/>
</member>
<member name="P:CivModel.Game.Random">
<summary>
......@@ -715,7 +843,7 @@
The count of teams of this game.
</summary>
</member>
<member name="M:CivModel.Game.#ctor(System.Int32,System.Int32,System.Int32,CivModel.IGameSchemeFactory,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})">
<member name="M:CivModel.Game.#ctor(System.Int32,System.Int32,System.Int32,System.IO.TextReader[],CivModel.IGameSchemeFactory,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})">
<summary>
Initializes a new instance of the <see cref="T:CivModel.Game"/> class, by creating a new game.
</summary>
......@@ -731,6 +859,9 @@
The number of players. It must be positive.
if the value is <c>-1</c>, uses <see cref="P:CivModel.IGameStartupScheme.DefaultNumberOfPlayers"/> of the scheme.
</param>
<param name="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="knownSchemes">
the known factories of <see cref="T:CivModel.IGameScheme"/> for the game.
......@@ -747,11 +878,14 @@
parameter is not equal to default value of scheme, while scheme forces to be.
</exception>
</member>
<member name="M:CivModel.Game.#ctor(System.String,System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})">
<member name="M:CivModel.Game.#ctor(System.String,System.IO.TextReader[],System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})">
<summary>
Initializes a new instance of the <see cref="T:CivModel.Game"/> class, by loading a existing save file.
</summary>
<param name="saveFile">The path of the save file.</param>
<param name="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>
<exception cref="T:System.ArgumentNullException"><paramref name="schemeFactories"/> is <c>null</c>.</exception>
<exception cref="T:System.IO.InvalidDataException">
......@@ -765,17 +899,20 @@
See the list of the exceptions <see cref="M:System.IO.File.OpenText(System.String)"/> may throw.
</para>
<para>
This constructor is wrapper of <see cref="M:CivModel.Game.Load(System.IO.StreamReader,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.
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.IO.TextReader[],System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"/> for more information.
</para>
</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 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>
Initializes a new instance of the <see cref="T:CivModel.Game"/> class, by loading a existing save file from stream.
</summary>
<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>
<exception cref="T:System.ArgumentNullException"><paramref name="schemeFactories"/> is <c>null</c>.</exception>
<exception cref="T:System.IO.InvalidDataException">
......@@ -784,10 +921,10 @@
there is no <see cref="T:CivModel.IGameSchemeFactory"/> for this save file.
</exception>
<remarks>
This constructor is wrapper of <see cref="M:CivModel.Game.Load(System.IO.StreamReader,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.
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.IO.TextReader[],System.Collections.Generic.IEnumerable{CivModel.IGameSchemeFactory})"/> for more information.
</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 name="M:CivModel.Game.GetPrototype``1(System.Type)">
<summary>
......@@ -842,16 +979,21 @@
An <see cref="T:CivObservable.IObservable`2"/> object which can be observed by <see cref="T:CivModel.IQuestObserver"/>.
</summary>
</member>
<member name="P:CivModel.Game.VictoryObservable">
<member name="P:CivModel.Game.EndingObservable">
<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>
</member>
<member name="T:CivModel.GameConstants">
<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>
<seealso cref="T:CivModel.IGameConstantScheme"/>
<seealso cref="T:CivModel.IGameConstants"/>
<seealso cref="F:CivModel.Game.Constants"/>
</member>
<member name="P:CivModel.GameConstants.GoldCoefficient">
......@@ -899,11 +1041,11 @@
Coefficient for <see cref="P:CivModel.Player.BasicResearchRequire" />.
</summary>
</member>
<member name="M:CivModel.GameConstants.#ctor(CivModel.IGameConstantScheme)">
<member name="M:CivModel.GameConstants.#ctor(CivModel.IGameConstants)">
<summary>
Initializes a new instance of the <see cref="T:CivModel.GameConstants"/> class.
</summary>
<param name="scheme">The <see cref="T:CivModel.IGameConstantScheme"/> object holding constant values.</param>
<param name="constants">The <see cref="T:CivModel.IGameConstants"/> object holding constant values.</param>
</member>
<member name="T:CivModel.IBattleObserver">
<summary>
......@@ -933,6 +1075,57 @@
In this case, <paramref name="atkOwner"/> and <paramref name="defOwner"/> parameters can be used to get their previous value.
</remarks>
</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">
<summary>
The factory interface of <see cref="T:CivModel.Production"/>
......@@ -966,31 +1159,17 @@
If this method is called by initialization purpose, <c>null</c>.
</param>
</member>
<member name="T:CivModel.IVictoryObserver">
<member name="T:CivModel.IEndingObserver">
<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>
</member>
<member name="M:CivModel.IVictoryObserver.OnVictory(CivModel.Player,CivModel.IVictoryCondition)">
<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)">
<member name="M:CivModel.IEndingObserver.OnEnding(CivModel.Player,CivModel.Ending)">
<summary>
Called when a player achieves defeat.
Called when a player achieves ending.
</summary>
<param name="player">The player.</param>
<param name="defeat">The defeat 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>
<param name="victory">The ending that player achieves.</param>
</member>
<member name="T:CivModel.IGameSchemeFactory">
<summary>
......@@ -1033,15 +1212,6 @@
The factory object of this instance.
</summary>
</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)">
<summary>
Called after the game is initialized.
......@@ -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>
<exception cref="T:System.ArgumentNullException"><paramref name="game"/> is <c>null</c>.</exception>
</member>
<member name="T:CivModel.IGameConstantScheme">
<member name="T:CivModel.IGameConstantsScheme">
<summary>
The interface represents <see cref="T:CivModel.IGameScheme"/> for game constants.
This type of scheme is exclusive, that is, can be applied only once per a game.
</summary>
<remarks>
For performance purpose, constant values are copied into <see cref="F:CivModel.Game.Constants"/> when game starts.
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>
<seealso cref="F:CivModel.Game.Constants"/>
<seealso cref="T:CivModel.GameConstants"/>
</member>
<member name="P:CivModel.IGameConstantScheme.GoldCoefficient">
<summary>
Coefficient for <see cref="P:CivModel.Player.GoldIncome"/>.
</summary>
</member>
<member name="P:CivModel.IGameConstantScheme.PopulationConstant">
<summary>
Constant amount of <see cref="P:CivModel.CityBase.Population"/>.
</summary>
<seealso cref="T:CivModel.IGameConstants"/>
</member>
<member name="P:CivModel.IGameConstantScheme.PopulationHappinessCoefficient">
<member name="P:CivModel.IGameConstantsScheme.Constants">
<summary>
Coefficient of <see cref="P:CivModel.Player.Happiness"/> for <see cref="P:CivModel.Player.Population"/>.
</summary>
</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"/>.
The <see cref="T:CivModel.IGameConstants"/> object manually provided.
If this value is <c>null</c>, the <see cref="T:CivModel.IGameConstants"/> object is retrieved from xml data.
</summary>
</member>
<member name="T:CivModel.IGameAIScheme">
......@@ -1608,6 +1741,18 @@
<seealso cref="T:CivModel.Game"/>
<seealso cref="T:CivModel.Production"/>
</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)">
<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.
......@@ -1776,7 +1921,7 @@
</member>
<member name="P:CivModel.Quest.Game">
<summary>
The <see cref="P:CivModel.Quest.Game"/> object.
The <see cref="T:CivModel.Game"/> object.
</summary>
</member>
<member name="P:CivModel.Quest.Guid">
......@@ -1789,6 +1934,11 @@
[퀘스트 이름].
</summary>
</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">
<summary>
[퀘스트 게시 기간]. <c>-1</c> if forever.
......@@ -1819,6 +1969,28 @@
[교육용 알림].
</summary>
</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">
<summary>
The left turn. <c>-1</c> if this value is invalid.
......@@ -2466,6 +2638,210 @@
<exception cref="T:System.ArgumentException">point is invalid</exception>
<seealso cref="M:CivModel.Production.Place(CivModel.Terrain.Point)"/>
</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">
<summary>
Represents a prototype of <see cref="T:CivModel.Quest"/>.
......@@ -2473,6 +2849,11 @@
<seealso cref="T:CivModel.GuidObjectPrototype"/>
<seealso cref="T:CivModel.Quest"/>
</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">
<summary>
[퀘스트 게시 기간]. <c>-1</c> if forever.
......@@ -2503,6 +2884,11 @@
[교육용 알림].
</summary>
</member>
<member name="F:CivModel.QuestPrototype.Progresses">
<summary>
The list of progress of this quest.
</summary>
</member>
<member name="T:CivModel.SchemeLoader">
<summary>
Provides <see cref="T:CivModel.IGameScheme"/> management.
......@@ -3618,7 +4004,7 @@
</member>
<member name="P:CivModel.TileObject.Game">
<summary>
The <see cref="P:CivModel.TileObject.Game"/> object
The <see cref="T:CivModel.Game"/> object
</summary>
</member>
<member name="P:CivModel.TileObject.TileTag">
......@@ -3689,7 +4075,7 @@
<summary>
The happiness income of this player.
</summary>
<seealso cref="P:CivModel.IGameConstantScheme.HappinessCoefficient"/>
<seealso cref="P:CivModel.IGameConstants.HappinessCoefficient"/>
</member>
<member name="P:CivModel.Player.Gold">
<summary>
......@@ -3704,7 +4090,7 @@
<seealso cref="P:CivModel.Player.GoldNetIncomeWithoutConsumption"/>
<seealso cref="P:CivModel.Player.GoldNetIncome"/>
<seealso cref="P:CivModel.Player.TaxRate"/>
<seealso cref="P:CivModel.IGameConstantScheme.GoldCoefficient"/>
<seealso cref="P:CivModel.IGameConstants.GoldCoefficient"/>
</member>
<member name="P:CivModel.Player.GoldNetIncomeWithoutConsumption">
<summary>
......@@ -3913,63 +4299,38 @@
Whether this player is eliminated.
</summary>
</member>
<member name="P:CivModel.Player.HasEnding">
<member name="P:CivModel.Player.AchievedEnding">
<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>
<seealso cref="P:CivModel.Player.IsVictoried"/>
<seealso cref="P:CivModel.Player.IsDefeated"/>
<seealso cref="P:CivModel.Player.IsDrawed"/>
</member>
<member name="P:CivModel.Player.IsVictoried">
<member name="P:CivModel.Player.HasEnding">
<summary>
Whether this player is victoried.
Whether this player has achieved ending.
</summary>
<seealso cref="P:CivModel.Player.VictoryCondition"/>
<seealso cref="P:CivModel.Player.AchievedEnding"/>
</member>
<member name="P:CivModel.Player.VictoryCondition">
<member name="P:CivModel.Player.IsVictoried">
<summary>
The victory condition this player has achieved. If this player is not victoried yet, <c>null</c>.
Whether this player is victoried.
</summary>
<seealso cref="P:CivModel.Player.IsVictoried"/>
<seealso cref="P:CivModel.Player.AchievedEnding"/>
</member>
<member name="P:CivModel.Player.IsDefeated">
<summary>
Whether this player is defeated.
</summary>
<seealso cref="P:CivModel.Player.DefeatCondition"/>
</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"/>
<seealso cref="P:CivModel.Player.AchievedEnding"/>
</member>
<member name="P:CivModel.Player.IsDrawed">
<summary>
Whether this player is drawed.
</summary>
<seealso cref="P:CivModel.Player.DrawCondition"/>
<seealso cref="P:CivModel.Player.AchievedEnding"/>
</member>
<member name="P:CivModel.Player.DrawCondition">
<member name="P:CivModel.Player.AvailableEndings">
<summary>
The draw condition this player has achieved. If this player is not drawed yet, <c>null</c>.
</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.
The list of available endings that this player can achieve.
</summary>
</member>
<member name="P:CivModel.Player.IsAIControlled">
......@@ -4017,29 +4378,12 @@
</member>
<member name="P:CivModel.Player.SpecialResource">
<summary>
The indexer proxy for special resources of this player.
The dictionary for special resources of this player.
</summary>
<remarks>
Usage: <code>player.SpecialResource[res]</code>
</remarks>
</member>
<member name="T:CivModel.Player.SpecialResourceProxy">
<summary>
The proxy class for <see cref="P:CivModel.Player.SpecialResource"/>
</summary>
<seealso cref="P:CivModel.Player.SpecialResource"/>
</member>
<member name="P:CivModel.Player.SpecialResourceProxy.Item(CivModel.ISpecialResource)">
<summary>
Gets or sets the amount of the specified special resource.
</summary>
<value>
The amount of the specified special resource.
</value>
<param name="resource">The resource.</param>
<returns>The amount of the specified special resource.</returns>
<exception cref="T:System.ArgumentOutOfRangeException">value - the amount of resource is out of range</exception>
</member>
<member name="M:CivModel.Player.GetSpecialResourceData(CivModel.ISpecialResource)">
<summary>
Gets the additional data of the specified special resource.
......@@ -4095,96 +4439,32 @@
<seealso cref="M:CivModel.Player.AddTerritory(CivModel.Terrain.Point)"/>
<seealso cref="M:CivModel.Player.TryRemoveTerritory(CivModel.Terrain.Point)"/>
</member>
<member name="M:CivModel.Player.AddVictoryCondition(CivModel.IVictoryCondition)">
<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)">
<member name="M:CivModel.Player.AddAvailableEnding(CivModel.Ending)">
<summary>
Make this player achieve the specified victory.
Adds an available ending this player can achieve.
</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.ArgumentException">specified <paramref name="victory"/> is not available to the player</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)"/>
<exception cref="T:System.ArgumentException">specified <paramref name="ending"/> is already added</exception>
</member>
<member name="M:CivModel.Player.Defeat(CivModel.IDefeatCondition)">
<member name="M:CivModel.Player.RemoveAvailableEnding(CivModel.Ending)">
<summary>
Make this player achieve the specified defeat.
Removes an available ending this player can achieve.
</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.ArgumentException">specified <paramref name="defeat"/> is not available to the player</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)"/>
<exception cref="T:System.ArgumentException">specific <paramref name="ending"/> has not added</exception>
</member>
<member name="M:CivModel.Player.Draw(CivModel.IDrawCondition)">
<member name="M:CivModel.Player.AchieveEnding(CivModel.Ending)">
<summary>
Make this player achieve the specified draw.
Make this player achieve the specified ending.
</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.ArgumentException">specified <paramref name="draw"/> 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>
<exception cref="T:System.ArgumentException">specified <paramref name="ending"/> is not available to the player</exception>
</member>
<member name="M:CivModel.Player.IsAlliedWith(CivModel.Player)">
<summary>
......@@ -4326,85 +4606,6 @@
<exception cref="T:System.ArgumentException">point is invalid</exception>
<returns>The production result.</returns>
</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">
<summary>
Represents a prototype of <see cref="T:CivModel.Unit"/>.
......
......@@ -157,6 +157,167 @@
provides the feature about fixed/observable event
</summary>
</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">
<summary>
Represents an object observable by observer interface.
......
......@@ -73,7 +73,6 @@ GameObject:
- component: {fileID: 114166279479683586}
- component: {fileID: 114629431975265818}
- component: {fileID: 114099225236326680}
- component: {fileID: 82050683054055120}
m_Layer: 5
m_Name: AlarmContent
m_TagString: AlarmContent
......@@ -81,101 +80,6 @@ GameObject:
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
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
MonoBehaviour:
m_ObjectHideFlags: 1
......
This source diff could not be displayed because it is too large. You can view the blob instead.
fileFormatVersion: 2
guid: f04e803f8819b574d8fe6e3d96466079
guid: da51c17b826f7604987e6f1e2cb81dc4
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:
This source diff could not be displayed because it is too large. You can view the blob instead.
fileFormatVersion: 2
guid: 67bd9f3dcec70a040b5c1d82951d50b2
guid: 535e51a65748023489d6fd7c4bff5f1c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:
......@@ -484,9 +484,9 @@ MonoBehaviour:
m_Font: {fileID: 12800000, guid: d716ac8e5646a55448ac141489d12c16, type: 3}
m_FontSize: 24
m_FontStyle: 0
m_BestFit: 0
m_BestFit: 1
m_MinSize: 2
m_MaxSize: 40
m_MaxSize: 24
m_Alignment: 3
m_AlignByGeometry: 0
m_RichText: 1
......@@ -979,7 +979,7 @@ MonoBehaviour:
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
m_Font: {fileID: 12800000, guid: d716ac8e5646a55448ac141489d12c16, type: 3}
m_FontSize: 30
m_FontSize: 20
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 0
......@@ -1387,6 +1387,6 @@ RectTransform:
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_AnchoredPosition: {x: -148.64505, y: 154.51868}
m_SizeDelta: {x: 890, y: 90}
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
guid: 41fdaa9191fe9ed4f82449ff701f76ed
guid: 51e183b1a606d4cedaa5cf90b8e2d8ee
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:
......@@ -283,7 +283,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 57eef24760736f94c81b892da8fa4718, type: 3}
m_Name:
m_EditorClassIdentifier:
unitInfoText: {fileID: 0}
--- !u!114 &114305620023846986
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -757,7 +756,7 @@ RectTransform:
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_AnchoredPosition: {x: -162.06384, y: 482.05267}
m_SizeDelta: {x: 640, y: 90}
m_Pivot: {x: 0, y: 1}
--- !u!224 &224411969505313536
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -2,7 +2,7 @@ fileFormatVersion: 2
guid: ef12b8f6d512e104b979d4a75f3e60c0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
......@@ -11,37 +11,53 @@ Prefab:
m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 1769877253499246}
m_IsPrefabParent: 1
--- !u!1 &1049932579251446
--- !u!1 &1000363758783094
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}
- component: {fileID: 4140740641558078}
- component: {fileID: 33701204314710106}
- component: {fileID: 23752647496407976}
m_Layer: 9
m_Name: CityCenter
m_Name: ROF
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295
m_StaticEditorFlags: 1
m_IsActive: 0
--- !u!1 &1068150770459476
--- !u!1 &1018854988809870
GameObject:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4119006118808578}
- component: {fileID: 64426101437399500}
- component: {fileID: 23145182553768302}
- component: {fileID: 33867560220810886}
- component: {fileID: 4435259817948360}
- component: {fileID: 33178054887759484}
- component: {fileID: 23157419643824784}
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_Icon: {fileID: 0}
m_NavMeshLayer: 0
......@@ -62,59 +78,56 @@ GameObject:
m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295
m_IsActive: 1
--- !u!1 &1077092770262174
--- !u!1 &1282129293925294
GameObject:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4351165595833348}
- component: {fileID: 64698094558186128}
- component: {fileID: 23299259653360652}
- component: {fileID: 33959011275245366}
- component: {fileID: 4374158917902284}
- component: {fileID: 33155332942635734}
- component: {fileID: 23638021064979388}
m_Layer: 9
m_Name: Lemuria
m_Name: EC
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295
m_StaticEditorFlags: 1
m_IsActive: 0
--- !u!1 &1333046483476470
--- !u!1 &1323504025322370
GameObject:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4402582016939778}
- component: {fileID: 64658301789179566}
- component: {fileID: 23045501965462446}
- component: {fileID: 33102151740873682}
- component: {fileID: 4080111155726924}
- component: {fileID: 33173242086466862}
- component: {fileID: 23795567161434438}
m_Layer: 9
m_Name: Atlantis
m_Name: Lemuria
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295
m_StaticEditorFlags: 1
m_IsActive: 0
--- !u!1 &1412447782214352
--- !u!1 &1395464057428746
GameObject:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4267544703387016}
- component: {fileID: 64693614437753418}
- component: {fileID: 23826742370778630}
- component: {fileID: 33264027351815174}
- component: {fileID: 4234997159749210}
- component: {fileID: 33104675857359236}
- component: {fileID: 23926750149507194}
m_Layer: 9
m_Name: Finno
m_Name: Egypt
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295
m_StaticEditorFlags: 1
m_IsActive: 0
--- !u!1 &1420250530906088
GameObject:
......@@ -131,188 +144,164 @@ GameObject:
m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295
m_IsActive: 1
--- !u!1 &1542602466595496
--- !u!1 &1440010725298516
GameObject:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4317089670513964}
- component: {fileID: 64651154849233870}
- component: {fileID: 23459222307007520}
- component: {fileID: 33935090738769108}
- component: {fileID: 4698109827938742}
- component: {fileID: 33500140652430354}
- component: {fileID: 23755189029153234}
m_Layer: 9
m_Name: Ocean
m_Name: Atlantis
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295
m_StaticEditorFlags: 1
m_IsActive: 0
--- !u!1 &1551046316466834
--- !u!1 &1627155355426796
GameObject:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4127794111841646}
- component: {fileID: 64556048689147166}
- component: {fileID: 23326409063657358}
- component: {fileID: 33740067255103548}
- component: {fileID: 4273249843974854}
- component: {fileID: 33182387726908012}
- component: {fileID: 23908401365852038}
m_Layer: 9
m_Name: SheidKangdom
m_Name: Null
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295
m_StaticEditorFlags: 1
m_IsActive: 0
--- !u!1 &1769877253499246
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
--- !u!1 &1755395281021088
GameObject:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4925649242266350}
- component: {fileID: 33977825163726542}
- component: {fileID: 23889594030395902}
- component: {fileID: 64850002460147078}
- component: {fileID: 4389761339825550}
- component: {fileID: 33222030283090640}
- component: {fileID: 23179418442598470}
m_Layer: 9
m_Name: NULL
m_Name: Hwan
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295
m_IsActive: 1
--- !u!1 &1847308958288918
m_StaticEditorFlags: 1
m_IsActive: 0
--- !u!1 &1765927084013258
GameObject:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4472345846560388}
- component: {fileID: 64900931245494340}
- component: {fileID: 23679670220506830}
- component: {fileID: 33259114071790496}
- component: {fileID: 4845744993571970}
- component: {fileID: 33543789428561092}
- component: {fileID: 23227726084733678}
m_Layer: 9
m_Name: EmuConfederation
m_Name: EK
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295
m_StaticEditorFlags: 1
m_IsActive: 0
--- !u!1 &1927290837748992
--- !u!1 &1769877253499246
GameObject:
m_ObjectHideFlags: 1
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4778181885146006}
- component: {fileID: 64351465270499386}
- component: {fileID: 23213586999803302}
- component: {fileID: 33220603777180174}
- component: {fileID: 4780838353057842}
- component: {fileID: 33823903887123472}
- component: {fileID: 114931742162027262}
- component: {fileID: 64500296840194154}
m_Layer: 9
m_Name: Egypt
m_Name: minimaptile
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295
m_IsActive: 0
--- !u!1 &1933866160088734
m_IsActive: 1
--- !u!1 &1785101792986888
GameObject:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4139111654652450}
- component: {fileID: 64508688011746560}
- component: {fileID: 23121715103291918}
- component: {fileID: 33766587949940938}
- component: {fileID: 4189153276782586}
- component: {fileID: 33255540487333522}
- component: {fileID: 23071727151115744}
m_Layer: 9
m_Name: Hwan
m_Name: SK
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295
m_StaticEditorFlags: 1
m_IsActive: 0
--- !u!1 &1957152527922782
--- !u!1 &1913891644086886
GameObject:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4965343918653650}
- component: {fileID: 64134196901494074}
- component: {fileID: 23460536930412524}
- component: {fileID: 33406567516297316}
- component: {fileID: 4515314444798372}
- component: {fileID: 33121091771270114}
- component: {fileID: 23892187286997194}
m_Layer: 9
m_Name: EasterKingdom
m_Name: Ocean
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295
m_StaticEditorFlags: 1
m_IsActive: 0
--- !u!4 &4119006118808578
--- !u!4 &4080111155726924
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1068150770459476}
m_GameObject: {fileID: 1323504025322370}
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: 4
m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4127794111841646
--- !u!4 &4140740641558078
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1551046316466834}
m_GameObject: {fileID: 1000363758783094}
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: 6
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4139111654652450
--- !u!4 &4189153276782586
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1933866160088734}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_GameObject: {fileID: 1785101792986888}
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: 0
m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4221280926982418
Transform:
......@@ -328,57 +317,70 @@ Transform:
m_Father: {fileID: 4780838353057842}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4267544703387016
--- !u!4 &4234997159749210
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1412447782214352}
m_GameObject: {fileID: 1395464057428746}
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_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4317089670513964
--- !u!4 &4273249843974854
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1542602466595496}
m_GameObject: {fileID: 1627155355426796}
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: 10
m_RootOrder: 9
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4351165595833348
--- !u!4 &4374158917902284
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1077092770262174}
m_GameObject: {fileID: 1282129293925294}
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: 7
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4402582016939778
--- !u!4 &4389761339825550
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1333046483476470}
m_GameObject: {fileID: 1755395281021088}
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: 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}
--- !u!4 &4461497901477466
Transform:
......@@ -390,45 +392,45 @@ Transform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 4139111654652450}
- {fileID: 4267544703387016}
- {fileID: 4778181885146006}
- {fileID: 4402582016939778}
- {fileID: 4119006118808578}
- {fileID: 4472345846560388}
- {fileID: 4127794111841646}
- {fileID: 4351165595833348}
- {fileID: 4965343918653650}
- {fileID: 4925649242266350}
- {fileID: 4317089670513964}
- {fileID: 4389761339825550}
- {fileID: 4435259817948360}
- {fileID: 4234997159749210}
- {fileID: 4698109827938742}
- {fileID: 4140740641558078}
- {fileID: 4374158917902284}
- {fileID: 4189153276782586}
- {fileID: 4080111155726924}
- {fileID: 4845744993571970}
- {fileID: 4273249843974854}
- {fileID: 4515314444798372}
m_Father: {fileID: 4780838353057842}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4472345846560388
--- !u!4 &4515314444798372
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1847308958288918}
m_GameObject: {fileID: 1913891644086886}
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: 5
m_RootOrder: 10
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4778181885146006
--- !u!4 &4698109827938742
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1927290837748992}
m_GameObject: {fileID: 1440010725298516}
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: 2
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4780838353057842
Transform:
......@@ -445,18 +447,18 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4925649242266350
--- !u!4 &4845744993571970
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1778689071446150}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_GameObject: {fileID: 1765927084013258}
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: 9
m_RootOrder: 8
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4945201479771094
Transform:
......@@ -471,25 +473,12 @@ Transform:
m_Father: {fileID: 4221280926982418}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 180, z: 0}
--- !u!4 &4965343918653650
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
--- !u!23 &23071727151115744
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1333046483476470}
m_GameObject: {fileID: 1785101792986888}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
......@@ -499,7 +488,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295
m_Materials:
- {fileID: 2100000, guid: a488828751be43049978c6a2c4f914ab, type: 2}
- {fileID: 2100000, guid: 9c6ffccf4f8712a47a54b30a0bde61cc, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
......@@ -519,12 +508,12 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23121715103291918
--- !u!23 &23157419643824784
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1933866160088734}
m_GameObject: {fileID: 1018854988809870}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
......@@ -534,7 +523,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295
m_Materials:
- {fileID: 2100000, guid: 4258a5de902f4e342b7f3fe37c993d94, type: 2}
- {fileID: 2100000, guid: b91b030bdd9519d4595880b42097209e, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
......@@ -554,12 +543,12 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23145182553768302
--- !u!23 &23179418442598470
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1068150770459476}
m_GameObject: {fileID: 1755395281021088}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
......@@ -569,7 +558,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295
m_Materials:
- {fileID: 2100000, guid: df5a5abf275ea374084f6cb002b9d748, type: 2}
- {fileID: 2100000, guid: 4258a5de902f4e342b7f3fe37c993d94, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
......@@ -589,12 +578,12 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23213586999803302
--- !u!23 &23227726084733678
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1927290837748992}
m_GameObject: {fileID: 1765927084013258}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
......@@ -604,7 +593,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295
m_Materials:
- {fileID: 2100000, guid: 5923786953c2e4440b9fc568c4cbd154, type: 2}
- {fileID: 2100000, guid: 81c42f8467ac78d4580d3e54bbd48c4e, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
......@@ -624,12 +613,12 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23299259653360652
--- !u!23 &23638021064979388
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1077092770262174}
m_GameObject: {fileID: 1282129293925294}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
......@@ -639,7 +628,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295
m_Materials:
- {fileID: 2100000, guid: 9e239a8f3d75fd245b5beb18179e33c1, type: 2}
- {fileID: 2100000, guid: 686ad6af22cfb4b41b5e78256067d561, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
......@@ -659,12 +648,12 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23326409063657358
--- !u!23 &23752647496407976
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1551046316466834}
m_GameObject: {fileID: 1000363758783094}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
......@@ -674,7 +663,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295
m_Materials:
- {fileID: 2100000, guid: 9c6ffccf4f8712a47a54b30a0bde61cc, type: 2}
- {fileID: 2100000, guid: df5a5abf275ea374084f6cb002b9d748, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
......@@ -694,12 +683,12 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23459222307007520
--- !u!23 &23755189029153234
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1542602466595496}
m_GameObject: {fileID: 1440010725298516}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
......@@ -709,7 +698,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295
m_Materials:
- {fileID: 2100000, guid: 93a6d77aba0fd894a84f5e8477b36266, type: 2}
- {fileID: 2100000, guid: a488828751be43049978c6a2c4f914ab, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
......@@ -729,12 +718,12 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23460536930412524
--- !u!23 &23766667989738562
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1957152527922782}
m_GameObject: {fileID: 1049932579251446}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
......@@ -744,7 +733,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295
m_Materials:
- {fileID: 2100000, guid: 81c42f8467ac78d4580d3e54bbd48c4e, type: 2}
- {fileID: 2100000, guid: 15b7a205fe87c4149a45db5b7613f512, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
......@@ -764,12 +753,12 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23679670220506830
--- !u!23 &23795567161434438
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1847308958288918}
m_GameObject: {fileID: 1323504025322370}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
......@@ -779,7 +768,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295
m_Materials:
- {fileID: 2100000, guid: 686ad6af22cfb4b41b5e78256067d561, type: 2}
- {fileID: 2100000, guid: 9e239a8f3d75fd245b5beb18179e33c1, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
......@@ -799,12 +788,12 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23766667989738562
--- !u!23 &23892187286997194
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1049932579251446}
m_GameObject: {fileID: 1913891644086886}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
......@@ -814,7 +803,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295
m_Materials:
- {fileID: 2100000, guid: 15b7a205fe87c4149a45db5b7613f512, type: 2}
- {fileID: 2100000, guid: 2db4c332bc784a9488fef182a8efd22c, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
......@@ -834,12 +823,12 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23826742370778630
--- !u!23 &23908401365852038
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1412447782214352}
m_GameObject: {fileID: 1627155355426796}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
......@@ -849,7 +838,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295
m_Materials:
- {fileID: 2100000, guid: b91b030bdd9519d4595880b42097209e, type: 2}
- {fileID: 2100000, guid: efa55ae9524562344820c7a5318ebe33, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
......@@ -869,12 +858,12 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!23 &23889594030395902
--- !u!23 &23926750149507194
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1778689071446150}
m_GameObject: {fileID: 1395464057428746}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
......@@ -884,7 +873,7 @@ MeshRenderer:
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295
m_Materials:
- {fileID: 2100000, guid: efa55ae9524562344820c7a5318ebe33, type: 2}
- {fileID: 2100000, guid: 5923786953c2e4440b9fc568c4cbd154, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
......@@ -904,139 +893,97 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!33 &33102151740873682
--- !u!33 &33104675857359236
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1333046483476470}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!33 &33220603777180174
m_GameObject: {fileID: 1395464057428746}
m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33121091771270114
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1927290837748992}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!33 &33259114071790496
m_GameObject: {fileID: 1913891644086886}
m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33155332942635734
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1847308958288918}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!33 &33264027351815174
m_GameObject: {fileID: 1282129293925294}
m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33173242086466862
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1412447782214352}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!33 &33406567516297316
m_GameObject: {fileID: 1323504025322370}
m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33178054887759484
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1957152527922782}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!33 &33737213269375472
m_GameObject: {fileID: 1018854988809870}
m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33182387726908012
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1049932579251446}
m_Mesh: {fileID: 4300000, guid: 2f3720c9fd009724f914cb5ae6241f23, type: 3}
--- !u!33 &33740067255103548
m_GameObject: {fileID: 1627155355426796}
m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33222030283090640
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1551046316466834}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!33 &33766587949940938
m_GameObject: {fileID: 1755395281021088}
m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33255540487333522
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1933866160088734}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!33 &33823903887123472
m_GameObject: {fileID: 1785101792986888}
m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33500140652430354
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1769877253499246}
m_Mesh: {fileID: 4300000, guid: 93b23d960c7fd2645bed567627e2e6db, type: 3}
--- !u!33 &33867560220810886
m_GameObject: {fileID: 1440010725298516}
m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33543789428561092
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1068150770459476}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!33 &33935090738769108
m_GameObject: {fileID: 1765927084013258}
m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33701204314710106
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1542602466595496}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!33 &33959011275245366
m_GameObject: {fileID: 1000363758783094}
m_Mesh: {fileID: 4300000, guid: 00d252ea031487849919bd6261ad1c9b, type: 3}
--- !u!33 &33737213269375472
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1077092770262174}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, type: 3}
--- !u!33 &33977825163726542
m_GameObject: {fileID: 1049932579251446}
m_Mesh: {fileID: 4300000, guid: 2f3720c9fd009724f914cb5ae6241f23, type: 3}
--- !u!33 &33823903887123472
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1778689071446150}
m_Mesh: {fileID: 4300000, guid: 8f0e54ddf958514469ad01cd6c463bfa, 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}
m_GameObject: {fileID: 1769877253499246}
m_Mesh: {fileID: 4300000, guid: 93b23d960c7fd2645bed567627e2e6db, type: 3}
--- !u!64 &64500296840194154
MeshCollider:
m_ObjectHideFlags: 1
......@@ -1051,90 +998,6 @@ MeshCollider:
m_CookingOptions: 14
m_SkinWidth: 0.01
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
MeshCollider:
m_ObjectHideFlags: 1
......@@ -1149,34 +1012,6 @@ MeshCollider:
m_CookingOptions: 14
m_SkinWidth: 0.01
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
MonoBehaviour:
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:
m_ReflectionIntensity: 1
m_CustomReflection: {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
--- !u!157 &3
LightmapSettings:
......@@ -356,6 +356,130 @@ CanvasRenderer:
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
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
GameObject:
m_ObjectHideFlags: 0
......
......@@ -140,7 +140,9 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 17a69fe1b2d304c64aaa0d2f7824b1dc, type: 3}
m_Name:
m_EditorClassIdentifier:
progressBar: {fileID: 1155206179}
HwanprogressBar: {fileID: 1155206179}
FinnoprogressBar: {fileID: 1920196082}
progressBar: {fileID: 0}
--- !u!4 &120043004
Transform:
m_ObjectHideFlags: 0
......@@ -338,6 +340,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1155206178}
- {fileID: 1920196081}
m_Father: {fileID: 954953868}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
......@@ -390,7 +393,7 @@ GameObject:
- component: {fileID: 1155206180}
- component: {fileID: 1155206179}
m_Layer: 5
m_Name: Image
m_Name: HwanImage
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
......@@ -512,6 +515,74 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 1
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
GameObject:
m_ObjectHideFlags: 0
......
......@@ -28,14 +28,15 @@ public class CameraControl : MonoBehaviour {
// Update is called once per frame
void Update()
{
//The earth is round
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);
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);
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 (!EventSystem.current.IsPointerOverGameObject())
......@@ -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))
Camera.main.transform.Translate(5 * speed * Time.deltaTime, 0, 0);
if (Input.mousePosition.x < 0 + boundary && !Input.GetMouseButton(0))
Camera.main.transform.Translate(-5 * speed * Time.deltaTime, 0, 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))
......@@ -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))
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 (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));
}
else if (Camera.main.transform.position.z < -130)
Camera.main.transform.position = new Vector3(Camera.main.transform.position.x, Camera.main.transform.position.y, -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, -95);
//Camera movement by mouse dragging
if (Input.GetMouseButton(1) && !EventSystem.current.IsPointerOverGameObject())
{
mouse_position = new Vector3(Input.GetAxis("Mouse X"), 0, Input.GetAxis("Mouse Y"));
Camera.main.transform.position -= mouse_position;
}
//Camera movement by clicking minimap
if (is_mouse_on_minimap() && MapUI.activeSelf)
{
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))
{
......
......@@ -17,7 +17,7 @@ public class EndingMgr : MonoBehaviour {
else if (instance != this)
Destroy(gameObject);
DontDestroyOnLoad(gameObject);
//DontDestroyOnLoad(gameObject);
}
// Use this for initialization
void Start () {
......
......@@ -9,7 +9,8 @@ using UnityEngine.EventSystems;
using System.Linq;
public class GameManager : MonoBehaviour {
public class GameManager : MonoBehaviour
{
// Game Model Instance Singleton
private CivModel.Game _game;
......@@ -38,8 +39,11 @@ public class GameManager : MonoBehaviour {
public List<GameObject> Units { get { return _units; } }
private List<GameObject> _additional_units = new List<GameObject>();
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
public GameObject DeployRay;
private bool _inDepState = false;
public bool DepState { get { return _inDepState; } }
......@@ -47,9 +51,6 @@ public class GameManager : MonoBehaviour {
private Production _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
public CivModel.Terrain.Point selectedPoint;
// Class Variable which stores HexTile Component of Selected Tile
......@@ -81,6 +82,14 @@ public class GameManager : MonoBehaviour {
private ManagementController managementcontroller;
public GameObject QuestVoice;
public GameObject DoYouKnows;
public GameObject BGMs;
public GameObject HolySound;
void EstimateResource() {
}
void Awake() {
// Singleton
if (_manager != null) {
......@@ -93,16 +102,26 @@ public class GameManager : MonoBehaviour {
var factories = new IGameSchemeFactory[]
{
new CivModel.Common.GameSchemeFactory(),
new CivModel.Hwan.GameSchemeFactory(),
new CivModel.Finno.GameSchemeFactory(),
new CivModel.Quests.GameSchemeFactory(),
new CivModel.Zap.GameSchemeFactory(),
new CivModel.AI.GameSchemeFactory()
};
string[] pathStr = { "Assets", "map.txt" };
string path = Path.Combine(pathStr);
_game = new CivModel.Game(path, factories);
string mapFile = Application.streamingAssetsPath + "/mapx.75.txt";
Debug.Log(mapFile);
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();
......@@ -111,13 +130,15 @@ public class GameManager : MonoBehaviour {
InitiateMap();
InitiateUnit();
InitiateMinimapCamera();
UnitAnimation.AnimationParticleObjectPool();
}
// Use this for initialization
void Start() {
CheckToDo();
managementcontroller = ManagementController.GetManagementController();
GameUI.Instance.updatePanel();
Focus(_game.PlayerInTurn.Cities.First());
}
void Update()
{
......@@ -152,7 +173,6 @@ public class GameManager : MonoBehaviour {
tile.SetPoints(point);
tile.SetTerrain();
tile.SetBuilding();
tile.UpdateColor();
// The earth is round.
HexTile additional_tile = _additional_tiles[i, j].GetComponent<HexTile>();
Vector3 pos = ModelPntToUnityPnt(point, -0.05f);
......@@ -164,11 +184,13 @@ public class GameManager : MonoBehaviour {
additional_tile.SetPoints(point, ad_pos);
additional_tile.SetTerrain();
additional_tile.SetBuilding();
additional_tile.UpdateColor();
}
// Check if there exists quest that has completed.
CheckCompletedQuest();
}
GameUI.Instance.updatePanel();
}
// Unit Postion Fix, Deletion and Insertion
......@@ -209,7 +231,7 @@ public class GameManager : MonoBehaviour {
0,
true);
}
UnitDic.Remove(unit.GetComponent<Unit>().unitModel);
_units.Remove(unit);
Destroy(unit);
GameObject additionalUnitToDelete = _additional_units.Find(x => x.name.Equals("Additional" + unit.name));
......@@ -262,6 +284,10 @@ public class GameManager : MonoBehaviour {
ad_unit.GetComponent<Unit>().unitOwnerNumber = unt.Owner.PlayerNumber;
_additional_units.Add(ad_unit);
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 {
UIManager.Instance.UpdateUnitInfo();
// Update Quest Queue
UIController.GetUIController().MakeQuestQueue();
GameUI.Instance.updatePanel();
}
// Initialize Tile Map
......@@ -369,6 +397,7 @@ public class GameManager : MonoBehaviour {
// Initialize Units of Model
private void InitiateUnit() {
int plyrIdx = 0;
UnitDic = new Dictionary<CivModel.Unit, KeyValuePair<Unit, Unit>>();
foreach (CivModel.Player plyr in Game.Players) {
int untIdx = 0;
foreach (CivModel.Unit unt in plyr.Units) {
......@@ -400,6 +429,10 @@ public class GameManager : MonoBehaviour {
additional_unit.GetComponent<Unit>().unitOwnerNumber = unt.Owner.PlayerNumber;
_units.Add(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++;
}
......@@ -581,7 +614,7 @@ public class GameManager : MonoBehaviour {
// State change
if (depList.First() == null || _inDepState) return;
_inDepState = true;
List<GameObject> PlaceablePoints = new List<GameObject>();
// Represent Tiles which are available to place Actor
CivModel.Terrain terrain = Instance.Game.Terrain;
for (int i = 0; i < terrain.Width; i++)
......@@ -591,22 +624,30 @@ public class GameManager : MonoBehaviour {
CivModel.Terrain.Point point = terrain.GetPoint(i, j);
if (depList.First().IsPlacable(point))
{
Instance.Tiles[point.Position.X, point.Position.Y].GetComponent<HexTile>().FlickerBlue();
Instance.AdditionalTiles[point.Position.X, point.Position.Y].GetComponent<HexTile>().FlickerBlue();
GameObject tile = Instance.Tiles[point.Position.X, point.Position.Y];
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;
IEnumerator _coroutine = DeployUnit(StartPoint, depList);
IEnumerator _coroutine = DeployUnit(StartPoint, depList, PlaceablePoints);
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)
{
if (!EventSystem.current.IsPointerOverGameObject() && Input.GetMouseButtonUp(0))
if (!EventSystem.current.IsPointerOverGameObject() && Input.GetMouseButtonDown(0))
{
if (Instance.selectedTile == null)
yield return new WaitUntil(() => Instance.selectedTile != null);
......@@ -614,27 +655,30 @@ public class GameManager : MonoBehaviour {
CivModel.Terrain.Point destPoint = Instance.selectedPoint;
// Flicker하고 있는 Tile을 선택했을 때
if (Instance.selectedTile.isFlickering)
if (Instance.selectedTile.isFlickerForSelect)
{
Debug.Log("flicker");
if (depList.First().IsPlacable(destPoint))
{
foreach(Production dep in depList)
Debug.Log("deploy");
foreach (Production dep in depList)
{
Game.PlayerInTurn.Deployment.Remove(dep);
dep.Place(destPoint);
}
DepStateExit();
DepStateExit(PlaceablePoints);
GameManager.Instance.UpdateUnit();
GameManager.Instance.UpdateMap();
break;
}
else
{
DepStateExit();
Debug.Log("no");
DepStateExit(PlaceablePoints);
break;
}
}
DepStateExit();
DepStateExit(PlaceablePoints);
break;
}
yield return null;
......@@ -642,20 +686,32 @@ public class GameManager : MonoBehaviour {
}
// Exiting Deploy State
void DepStateExit()
void DepStateExit(List<GameObject> PlaceablePoints)
{
_inDepState = false;
_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 j = 0; j < terrain.Height; j++)
{
CivModel.Terrain.Point point = terrain.GetPoint(i, j);
Instance.Tiles[point.Position.X, point.Position.Y].GetComponent<HexTile>().StopFlickering();
Instance.AdditionalTiles[point.Position.X, point.Position.Y].GetComponent<HexTile>().StopFlickering();
}
}
}*/
managementcontroller.MakeProductionQ();
managementcontroller.MakeDeploymentQ();
......@@ -673,7 +729,7 @@ public class GameManager : MonoBehaviour {
case QuestStatus.Deployed:
if (!NewQuestQueue.Contains(qst))
{
Sprite questPortrait = QuestInfo.GetPortraitImage(qst);
Sprite questPortrait = QuestInfo.GetRequesterPortraitImage(qst);
AlarmManager.Instance.AddAlarm(questPortrait,
qst.TextName + " 시작가능",
delegate {
......@@ -691,7 +747,7 @@ public class GameManager : MonoBehaviour {
// Check if there exist quests that have finished.
public void CheckCompletedQuest()
{
foreach (Quest qst in GameManager.Instance.Game.PlayerInTurn.Quests)
foreach (Quest qst in Instance.Game.PlayerInTurn.Quests)
{
switch (qst.Status)
{
......@@ -701,6 +757,8 @@ public class GameManager : MonoBehaviour {
Sprite questPortrait = QuestInfo.GetPortraitImage(qst);
UIManager.Instance.SetQuestComplete(qst);
UIManager.Instance.QuestComplete.SetActive(true);
StartCoroutine(PlayQuestSound(qst, HolySound.GetComponent<AudioSource>().clip.length));
//PlayQuestSoundVoice(qst);
AlarmManager.Instance.AddAlarm(questPortrait,
qst.TextName + " 완료됨",
delegate {
......@@ -717,10 +775,38 @@ public class GameManager : MonoBehaviour {
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.
public void CheckCompletedProduction()
{
foreach (Production prod in GameManager.Instance.Game.PlayerInTurn.Deployment)
{
if (!AlarmedProduction.Contains(ProductionFactoryTraits.GetFacPortName(prod.Factory)))
......@@ -736,9 +822,6 @@ public class GameManager : MonoBehaviour {
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)
......@@ -859,4 +942,134 @@ public class GameManager : MonoBehaviour {
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
GameInfo.SetPlayer(CivModel.Hwan.HwanPlayerNumber.Number);
}
// Update is called once per frame
void Update()
{
}
public void StartHwan()
{
GameInfo.SetPlayer(CivModel.Hwan.HwanPlayerNumber.Number);
......
......@@ -10,10 +10,14 @@ public class LoadingSceneMgr : MonoBehaviour
public static string nextScene;
[SerializeField]
Image progressBar;
Image HwanprogressBar, FinnoprogressBar, progressBar;
private void Start()
{
if (GameInfo.UserPlayer == 0)
progressBar = HwanprogressBar;
else
progressBar = FinnoprogressBar;
StartCoroutine(LoadScene());
}
......
......@@ -17,7 +17,7 @@ public class QuestInfo : MonoBehaviour {
}
static public string GetRequesterCountry(Quest qst) {
return qst.Requester.PlayerName;
return qst.Requester?.PlayerName ?? "(없음)";
}
static public string GetQuestName(Quest qst)
......@@ -64,9 +64,49 @@ public class QuestInfo : MonoBehaviour {
{
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
{
questName = "hwan_main1";
questName = "invisible";
Debug.Log("Unknown Quest: " + qst.TextName);
}
......@@ -78,6 +118,42 @@ public class QuestInfo : MonoBehaviour {
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)
{
string questName = GetQuestName(qst);
......@@ -88,4 +164,6 @@ public class QuestInfo : MonoBehaviour {
return "";
}
}
......@@ -108,8 +108,8 @@ public class ResourceInfo : MonoBehaviour {
}
else
{
resourceSpriteName = "finno_crystal";
Debug.Log("Unknown Quest: " + qst.TextName);
resourceSpriteName = "questionmark";
//Debug.Log("Unknown Quest: " + qst.TextName);
}
return Resources.Load<Sprite>("SpecialResource/" + resourceSpriteName);
}
......
......@@ -31,42 +31,8 @@ public class HexTile : MonoBehaviour
void Start() {
SetTerrain();
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
// Default y position is -.0.05f
public void SetPoints(CivModel.Terrain.Point p1) {
......@@ -81,14 +47,12 @@ public class HexTile : MonoBehaviour
// Render Tile Terrain
public void SetTerrain() {
terrains = transform.GetChild(0).transform;
if (terrains != null) {
foreach (Transform child in terrains) {
child.gameObject.SetActive(false);
}
terrains.GetChild((int)point.Type).gameObject.SetActive(true);
}
int type = (int)point.Type;
int owner = GetPlayerNumber();
for(int i = 0; i < 8; i++)
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);
}
// Render Tile Building
......@@ -134,13 +98,33 @@ public class HexTile : MonoBehaviour
side = buildings.GetChild(1);
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
public void FlickerWhite()
{
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;
_coroutine = Flicker(Color.white);
StartCoroutine(_coroutine);
......@@ -149,7 +133,7 @@ public class HexTile : MonoBehaviour
public void FlickerCyan() {
isFlickerForSelect = true;
//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;
_coroutine = Flicker(Color.cyan);
StartCoroutine(_coroutine);
......@@ -159,7 +143,7 @@ public class HexTile : MonoBehaviour
{
isFlickering = true;
//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;
_coroutine = Flicker(Color.blue);
StartCoroutine(_coroutine);
......@@ -170,7 +154,7 @@ public class HexTile : MonoBehaviour
{
isFlickering = true;
//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;
_coroutine = Flicker(Color.red);
StartCoroutine(_coroutine);
......@@ -182,20 +166,18 @@ public class HexTile : MonoBehaviour
isFlickering = false;
isFlickerForSelect = false;
//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;
if (_coroutine == null)
return;
StopCoroutine(_coroutine);
Material mat = terrains.GetChild((int)point.Type).GetComponent<Renderer>().material;
mat.SetColor("_Color", Color.white);
terrains.GetChild((int)point.Type).GetComponent<Renderer>().material.color += color;
transform.GetChild(0).GetChild((int)point.Type).GetChild(GetPlayerNumber()).GetComponent<Renderer>().material.SetColor("_Color", Color.white);
}
// Make tile flicker with 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;
while (true)
......
......@@ -3,7 +3,6 @@ using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using CivModel;
using CivModel.Common;
using System;
using System.Linq;
......@@ -22,8 +21,6 @@ public class AlarmManager : MonoBehaviour
public AudioClip alarmSound;
AudioSource alarmAudio;
int rowCount = 0;
void Awake()
{
// Singleton
......@@ -48,10 +45,13 @@ public class AlarmManager : MonoBehaviour
void ActiveAlarm()
{
if (alarmViewPort.transform.childCount <= 0)
{
alarmTab.SetActive(false);
}
else
{
alarmTab.SetActive(true);
PlayAlarmSound();
}
}
......@@ -83,13 +83,9 @@ public class AlarmManager : MonoBehaviour
// Called After a Turn Starts.
public void updateAlarmQueue()
{
rowCount = 0;
alarmViewPort.GetComponent<RectTransform>().sizeDelta = Vector2.zero;
foreach(Transform alarm in alarmViewPort.GetComponentsInChildren<Transform>().Skip(1))
for (int x = alarmViewPort.transform.childCount - 1; x >= 0; x--)
{
Destroy(alarm.gameObject);
DeleteAlarm(alarmViewPort.transform.GetChild(x).gameObject);
}
List<GameObject> alarmToRemove = new List<GameObject>();
......@@ -130,13 +126,14 @@ public class AlarmManager : MonoBehaviour
alarm.transform.SetParent(alarmViewPort.transform, false);
alarm.GetComponent<AlarmModel>().DispAlarmData(isDied);
alarmViewPort.GetComponent<GridLayoutGroup>().constraintCount = ++rowCount;
alarmViewPort.GetComponent<RectTransform>().sizeDelta += new Vector2(0, 20);
//alarmViewPort.GetComponent<GridLayoutGroup>().constraintCount = ++rowCount;
//alarmViewPort.GetComponent<RectTransform>().sizeDelta += new Vector2(0, 20);
ActiveAlarm();
}
public void PlayAlarmSound()
{
if (alarmAudio.isPlaying) return;
alarmAudio.PlayOneShot(alarmSound);
}
......
......@@ -4,7 +4,6 @@ using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using CivModel;
using CivModel.Common;
using System;
public class CityBuilding : MonoBehaviour
......
......@@ -6,6 +6,12 @@ using CivModel;
using System.Threading.Tasks;
using System;
using UnityEngine.SceneManagement;
using System.Linq;
using CivModel.Quests;
using static CivModel.Finno.FinnoPlayerNumber;
using static CivModel.Hwan.HwanPlayerNumber;
public class GameUI : MonoBehaviour {
......@@ -15,11 +21,16 @@ public class GameUI : MonoBehaviour {
public GameObject EndTurn;
public Text goldText, populationText, happinessText, researchText, laborText;
public GameObject endingScene;
public GameObject Music;
private UIController uicontroller;
private ManagementController managementcontroller;
private SpecialResourceView specialResourceView;
//public GameObject ultimateProgress = null;
public GameObject myUltimateProgress;
public GameObject oppositeUltimateProgress;
public GameObject UltAlert;
bool checkButtonText = true;
void Awake()
{
......@@ -28,20 +39,22 @@ public class GameUI : MonoBehaviour {
else if (Instance != this)
Destroy(gameObject);
DontDestroyOnLoad(gameObject);
//DontDestroyOnLoad(gameObject);
}
// Use this for initialization
void Start () {
void Start()
{
endingScene.SetActive(false);
//mapUI = GameObject.Find("MapUI");
uicontroller = UIController.GetUIController();
managementcontroller = ManagementController.GetManagementController();
specialResourceView = SpecialResourceView.GetSpecialResourceView();
StartCoroutine(updatePanelCoroutine());
}
// Update is called once per frame
void Update () {
void Update() {
if (!GameManager.Instance.Game.PlayerInTurn.IsAIControlled)
{
EndTurn.GetComponentInChildren<Button>().enabled = true;
......@@ -51,37 +64,86 @@ public class GameUI : MonoBehaviour {
EndTurn.GetComponentInChildren<Text>().text = "유닛이 명령을 기다리고 있습니다";
EndTurn.GetComponentInChildren<Text>().fontSize = 30;
}
else if(checkButtonText)
else if (checkButtonText)
{
EndTurn.GetComponentInChildren<Text>().text = "다음 턴";
EndTurn.GetComponentInChildren<Text>().fontSize = 40;
}
}
}
IEnumerator updatePanelCoroutine()
{
while (true)
{
updatePanel();
yield return new WaitForSeconds(1f);
}
}
public void updatePanel()
{
GameManager.Instance.Game.PlayerInTurn.EstimateResourceInputs();
double gold = GameManager.Instance.Game.PlayerInTurn.Gold;
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;
populationText.text = Math.Round(population, 1).ToString();
double happiness = GameManager.Instance.Game.PlayerInTurn.Happiness;
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 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;
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()
......@@ -114,8 +176,13 @@ public class GameUI : MonoBehaviour {
else
{
endingScene.GetComponentInChildren<Image>().sprite = Resources.Load<Sprite>("Endings/Finno_ending");
}
endingScene.GetComponentInChildren<Text>().text = "승리하셨습니다!";
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)
{
......@@ -127,31 +194,78 @@ public class GameUI : MonoBehaviour {
{
endingScene.GetComponentInChildren<Image>().sprite = Resources.Load<Sprite>("Endings/Hwan_ending");
}
endingScene.GetComponentInChildren<Text>().text = "패배하셨습니다...";
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)
{
endingScene.GetComponentInChildren<Image>().sprite = Resources.Load<Sprite>("Endings/Draw_ending");
endingScene.GetComponentInChildren<Text>().text = "공멸하셨습니다...";
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()
{
GameManager.Instance.Game.EndTurn();
GameManager.Instance.Game.StartTurn();
Game game = GameManager.Instance.Game;
game.EndTurn();
game.StartTurn();
//Proceeds AI's Turns
while (GameManager.Instance.Game.PlayerInTurn.IsAIControlled)
while (game.PlayerInTurn.IsAIControlled)
{
GameManager.Instance.Game.PlayerInTurn.DoAITurnAction().GetAwaiter().GetResult();
GameManager.Instance.Game.EndTurn();
GameManager.Instance.Game.StartTurn();
game.PlayerInTurn.DoAITurnAction().GetAwaiter().GetResult();
game.EndTurn();
game.StartTurn();
}
checkButtonText = 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();
GameManager.Instance.UpdateMap();
......@@ -159,17 +273,30 @@ public class GameUI : MonoBehaviour {
GameManager.Instance.UpdateMinimap();
UIManager.Instance.ButtonInteractChange();
GameManager.Instance.CheckCompletedProduction();
managementcontroller.MakeProductionQ();
managementcontroller.MakeDeploymentQ();
uicontroller.MakeQuestQueue();
GameManager.Instance.CheckNewQuest();
GameManager.Instance.CheckCompletedProduction();
GameManager.Instance.CheckToDo();
if (GameManager.Instance.isThereTodos)
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()
......@@ -180,11 +307,6 @@ public class GameUI : MonoBehaviour {
}
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])
{
/*
......@@ -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
......
......@@ -3,7 +3,6 @@ using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using CivModel;
using CivModel.Common;
public class InvestmentController : MonoBehaviour {
......@@ -13,10 +12,10 @@ public class InvestmentController : MonoBehaviour {
public GameObject TechInv;
public GameObject Logistics;
private Slider taxSlider;
private Slider eiSlider;
private Slider tiSlider;
private Slider logiSlider;
public Slider taxSlider;
public Slider eiSlider;
public Slider tiSlider;
public Slider logiSlider;
private Text taxRateText;
private Text eiRateText;
......@@ -116,62 +115,79 @@ public class InvestmentController : MonoBehaviour {
}
}
public void OnValueChanged()
{
GameUI.Instance.updatePanel();
}
public void ChangeTaxValue(float adden)
{
taxSlider.value += adden;
GameUI.Instance.updatePanel();
}
public void ChangeEIValue(float adden)
{
eiSlider.value += adden;
GameUI.Instance.updatePanel();
}
public void ChangeTIValue(float adden)
{
tiSlider.value += adden;
GameUI.Instance.updatePanel();
}
public void ChangeLogiValue(float adden)
{
logiSlider.value += adden;
GameUI.Instance.updatePanel();
}
public void ChangeTaxPlus(float adden)
{
taxSlider.value += 0.01f;
if (taxSlider.value > 1) taxSlider.value = 1;
GameUI.Instance.updatePanel();
}
public void ChangeEIPlus(float adden)
{
eiSlider.value += 0.01f;
if (taxSlider.value > 2) taxSlider.value = 2;
GameUI.Instance.updatePanel();
}
public void ChangeTIPlus(float adden)
{
tiSlider.value += 0.01f;
if (taxSlider.value > 2) taxSlider.value = 2;
GameUI.Instance.updatePanel();
}
public void ChangeLogiPlus(float adden)
{
logiSlider.value += 0.01f;
if (taxSlider.value > 1) taxSlider.value = 1;
GameUI.Instance.updatePanel();
}
public void ChangeTaxMinus(float adden)
{
taxSlider.value -= 0.01f;
if (taxSlider.value < 0) taxSlider.value = 0;
GameUI.Instance.updatePanel();
}
public void ChangeEIMinus(float adden)
{
eiSlider.value -= 0.01f;
if (eiSlider.value < 0) eiSlider.value = 0;
GameUI.Instance.updatePanel();
}
public void ChangeTIMinus(float adden)
{
tiSlider.value -= 0.01f;
if (taxSlider.value < 0) taxSlider.value = 0;
GameUI.Instance.updatePanel();
}
public void ChangeLogiMinus(float adden)
{
logiSlider.value -= 0.01f;
if (taxSlider.value < 0) taxSlider.value = 0;
GameUI.Instance.updatePanel();
}
}
\ No newline at end of file
......@@ -3,7 +3,6 @@ using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using CivModel;
using CivModel.Common;
using System.Linq;
// 운영/내정 관련 큐 만들어서 프리팹 생성하는 컨트롤러
......@@ -14,8 +13,8 @@ public class ManagementController : MonoBehaviour {
public Canvas managementUI;
private LinkedList<Production> mProduction;
private LinkedList<Production> mDeployment;
private CivObservable.NotifyingLinkedList<Production> mProduction;
private CivObservable.NotifyingLinkedList<Production> mDeployment;
private IReadOnlyList<IProductionFactory> facList;
private GameObject gameManagerObject;
......@@ -45,14 +44,14 @@ public class ManagementController : MonoBehaviour {
MakeDeploymentQ();
foreach (GameObject dq in DQlist)
{
dq.GetComponent<DeployPrefab>().SetButton(DQlist.IndexOf(dq));
dq.GetComponent<DeployPrefab>().SetButton();
}
}
void Awake()
{
DontDestroyOnLoad(this);
// DontDestroyOnLoad(this);
if (managementcontroller == null)
{
managementcontroller = this;
......@@ -199,7 +198,7 @@ public class ManagementController : MonoBehaviour {
throw new MissingComponentException();
}
//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.localScale = new Vector3(1f, 1f, 1f);
SPrefab.transform.localPosition = new Vector3(0f, 0f, 0f);
......@@ -216,7 +215,7 @@ public class ManagementController : MonoBehaviour {
{
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.localScale = new Vector3(1f, 1f, 1f);
SPrefab.transform.localPosition = new Vector3(0f, 0f, 0f);
......@@ -291,7 +290,7 @@ public class ManagementController : MonoBehaviour {
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.localScale = new Vector3(1f, 1f, 1f);
PPrefab.transform.localPosition = new Vector3(0f, 0f, 0f);
......@@ -300,7 +299,7 @@ public class ManagementController : MonoBehaviour {
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.localScale = new Vector3(1f, 1f, 1f);
PPrefab.transform.localPosition = new Vector3(0f, 0f, 0f);
......@@ -350,7 +349,7 @@ public class ManagementController : MonoBehaviour {
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.localScale = new Vector3(1f, 1f, 1f);
DPrefab.transform.localPosition = new Vector3(0f, 0f, 0f);
......@@ -360,7 +359,7 @@ public class ManagementController : MonoBehaviour {
if (mDeployment.Count == 0)
{
//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.localScale = new Vector3(1f, 1f, 1f);
DPrefab.transform.localPosition = new Vector3(0f, 0f, 0f);
......@@ -369,9 +368,10 @@ public class ManagementController : MonoBehaviour {
}
DQlist = tempList;
foreach (GameObject dq in DQlist)
{
dq.GetComponent<DeployPrefab>().SetButton(DQlist.IndexOf(dq));
dq.GetComponent<DeployPrefab>().SetButton();
}
}
......@@ -384,4 +384,20 @@ public class ManagementController : MonoBehaviour {
}
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;
using UnityEngine;
using UnityEngine.UI;
using CivModel;
using CivModel.Common;
public class DeployPrefab : MonoBehaviour
{
private Text[] textarguments;
private Image unitPrt;
private Button[] buttons;
......@@ -47,6 +45,7 @@ public class DeployPrefab : MonoBehaviour
public GameObject MakeItem(Production prod, int numOfUnit)
{
_deployment = prod;
string nameofProduction = ProductionFactoryTraits.GetFactoryName(prod.Factory);
unitPrt.sprite = Resources.Load(("Portraits/" + (ProductionFactoryTraits.GetFacPortName(prod.Factory)).ToLower()), typeof(Sprite)) as Sprite;
this.numOfUnit = numOfUnit;
......@@ -68,6 +67,7 @@ public class DeployPrefab : MonoBehaviour
public GameObject MakeItem()
{
_deployment = null;
unitPrt.enabled = false;
foreach (Text txt in textarguments)
{
......@@ -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)
{
......@@ -104,19 +104,14 @@ public class DeployPrefab : MonoBehaviour
}
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)
{
switch (but.name)
{
case "Deploy":
if (dep != null)
if (_deployment != null)
{
if (ProductionFactoryTraits.isCityBuilding(dep.Value.Factory))
if (ProductionFactoryTraits.isCityBuilding(_deployment.Factory))
{
but.onClick.AddListener(delegate ()
{
......@@ -126,7 +121,7 @@ public class DeployPrefab : MonoBehaviour
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);
}
......@@ -147,7 +142,7 @@ public class DeployPrefab : MonoBehaviour
case "IndividualDeploy":
but.onClick.AddListener(delegate () {
List<Production> prodToDepList = new List<Production>();
prodToDepList.Add(dep.Value);
prodToDepList.Add(_deployment);
DeployItem(prodToDepList);
});
break;
......
......@@ -4,7 +4,6 @@ using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using CivModel;
using CivModel.Common;
using System.Linq;
using UnityEngine.EventSystems;
......@@ -96,7 +95,7 @@ public class ProductablePrefab : MonoBehaviour, IPointerClickHandler {
switch (but.name)
{
case "Deploy":
but.onClick.AddListener(delegate () { ProduceItem(fac); });
but.onClick.AddListener(delegate () { ProduceItem(fac); GameManager.Instance.CheckCompletedQuest(); });
break;
case "Up":
but.onClick.AddListener(delegate () { IncreseProduction(); });
......
......@@ -4,7 +4,6 @@ using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using CivModel;
using CivModel.Common;
public class ProductionPrefab : MonoBehaviour {
......
......@@ -3,7 +3,6 @@ using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using CivModel;
using CivModel.Common;
public class Quests : MonoBehaviour {
......@@ -51,7 +50,7 @@ public class Quests : MonoBehaviour {
foreach (Image img in images) {
switch (img.name) {
case "Portrait":
img.sprite = QuestInfo.GetPortraitImage(quest);
img.sprite = QuestInfo.GetRequesterPortraitImage(quest);
img.enabled = true;
break;
case "ResourceImage":
......@@ -156,7 +155,7 @@ public class Quests : MonoBehaviour {
foreach (Image img in images) {
switch (img.name) {
case "Portrait":
img.sprite = QuestInfo.GetPortraitImage(quest);
img.sprite = QuestInfo.GetRequesterPortraitImage(quest);
img.enabled = true;
break;
case "ResourceImage":
......@@ -250,7 +249,7 @@ public class Quests : MonoBehaviour {
foreach (Image img in images) {
switch (img.name) {
case "Portrait":
img.sprite = QuestInfo.GetPortraitImage(quest);
img.sprite = QuestInfo.GetRequesterPortraitImage(quest);
img.enabled = true;
break;
case "ResourceImage":
......
......@@ -4,7 +4,6 @@ using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using CivModel;
using CivModel.Common;
public class SpecialResourcePrefab : MonoBehaviour {
private Text[] textarguments;
......
......@@ -580,14 +580,18 @@ public class ProductionFactoryTraits : MonoBehaviour
result = "hwan_decentralized_soldier";
else if (unit.Owner == GameManager.Instance.Game.GetPlayerFinno())
result = "finno_decentralized_soldier";
else result = name;
else result = "jap_decentralized_soldier";
}
break;
case "JackieChan":
result = "hwan_jackie";
break;
case "LEOSpaceArmada":
{
if (unit.Owner == GameManager.Instance.Game.GetPlayerHwan())
result = "hwan_spaceship";
else result = "jap_spaceship";
}
break;
case "ProtoNinja":
{
......@@ -626,17 +630,57 @@ public class ProductionFactoryTraits : MonoBehaviour
result = "finno_genghis";
break;
case "ArmedDivision":
result = "기갑사단";
result = "jap_armored_division";
break;
case "InfantryDivision":
result = "보병사단";
result = "jap_infantry_division";
break;
case "Padawan":
result = "파다완";
result = "jap_padawan";
break;
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;
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:
result = name;
break;
......
......@@ -3,17 +3,89 @@ using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System;
using static CivModel.Finno.FinnoPlayerNumber;
using static CivModel.Hwan.HwanPlayerNumber;
public class SkillButton : MonoBehaviour , IPointerEnterHandler, IPointerExitHandler
{
public void OnPointerEnter(PointerEventData pointerEventData)
{
if(GameManager.Instance.selectedActor != null)
{
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);
UIManager.Instance.skillDescription.transform.GetChild(0).GetComponent<Text>().text = GameManager.Instance.selectedActor.ActiveSkills[(int)(gameObject.name[5]) - 49].SkillDescription;
}
}
public void OnPointerExit(PointerEventData pointerEventData)
{
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;
using UnityEngine;
using UnityEngine.UI;
using CivModel;
using CivModel.Common;
using System.Linq;
public class SpecialResourceView : MonoBehaviour
......@@ -17,7 +16,7 @@ public class SpecialResourceView : MonoBehaviour
private List<GameObject> SRQlist;
public GameObject SRQueue;
public CivModel.Player.SpecialResourceProxy mSRlist;
public IDictionary<ISpecialResource, int> mSRlist;
public void begin()
{
......@@ -26,7 +25,7 @@ public class SpecialResourceView : MonoBehaviour
void Awake()
{
DontDestroyOnLoad(this);
// DontDestroyOnLoad(this);
if (specialResourceView == null)
{
specialResourceView = this;
......
......@@ -24,10 +24,12 @@ public class UIController : MonoBehaviour {
public GameObject QstExplain;
public GameObject QstExplainBtn;
public GameObject _tutorialbutton;
private Text[] questInfotexts;
void Awake() {
DontDestroyOnLoad(this);
// DontDestroyOnLoad(this);
if (uicontroller == null) {
uicontroller = this;
}
......@@ -79,28 +81,31 @@ public class UIController : MonoBehaviour {
questList = GameManager.Instance.Game.PlayerInTurn.Quests;
// Debug.Log("Quest: " + questList.Count);
foreach (Quest qst in questList) {
switch (qst.Status) {
if (qst.IsVisible)
{
switch (qst.Status)
{
case QuestStatus.Deployed:
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.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";
tempDList.Add(dqPrefab.GetComponent<Quests>().MakeDItem(qst));
break;
case QuestStatus.Accepted:
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.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";
tempAList.Add(aqPrefab.GetComponent<Quests>().MakeAItem(qst));
break;
case QuestStatus.Completed:
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.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";
tempCList.Add(cqPrefab.GetComponent<Quests>().MakeCItem(qst));
break;
......@@ -111,31 +116,32 @@ public class UIController : MonoBehaviour {
Debug.Log("Undefined Status");
throw new System.Exception("Undefined Status");
}
}
}
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.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";
tempDList.Add(dqPrefab.GetComponent<Quests>().MakeDItem());
}
DQQlist = tempDList;
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.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";
tempAList.Add(aqPrefab.GetComponent<Quests>().MakeAItem());
}
AQQlist = tempAList;
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.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";
tempCList.Add(cqPrefab.GetComponent<Quests>().MakeCItem());
}
......@@ -214,11 +220,15 @@ public class UIController : MonoBehaviour {
public void onClickExplain()
{
QstExplain.SetActive(true);
_tutorialbutton.SetActive(false);
UIManager.Instance.MenuButton.SetActive(false);
}
public void onClickExplainExit()
{
QstExplain.SetActive(false);
_tutorialbutton.SetActive(true);
UIManager.Instance.MenuButton.SetActive(true);
}
public void SetQstExplain(Quest qst)
......
......@@ -3,10 +3,13 @@ using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using UnityEngine.SceneManagement;
using CivModel;
using CivModel.Common;
using System.Linq;
using static CivModel.Hwan.HwanPlayerNumber;
using static CivModel.Finno.FinnoPlayerNumber;
public class UIManager : MonoBehaviour
{
......@@ -17,6 +20,9 @@ public class UIManager : MonoBehaviour
public GameObject questUI;
public GameObject selectedActor;
public GameObject SpecialSpec;
public GameObject Menu;
public GameObject AskToQuit;
public GameObject ActivatedUI;
public GameObject spyPanel;
public GameObject spyContent;
......@@ -44,10 +50,25 @@ public class UIManager : MonoBehaviour
public GameObject healthPoint;
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 GameObject QuestComplete;
public GameObject BGMs;
// RayCast For Selection
public Ray ray;
public RaycastHit hit;
......@@ -86,6 +107,22 @@ public class UIManager : MonoBehaviour
QuestComplete.SetActive(false);
spyPanel.SetActive(false);
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
......@@ -94,12 +131,16 @@ public class UIManager : MonoBehaviour
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
// 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;
HexTile tile = selectedActor.GetComponent<HexTile>();
if (tile == null) return;
// Update selectedTile
GameManager.Instance.selectedTile = tile;
// Update selectedPoint using tile information
......@@ -168,6 +209,15 @@ public class UIManager : MonoBehaviour
mapUI.SetActive(true);
}
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
public void UpdateUnitInfo()
......@@ -203,13 +253,16 @@ public class UIManager : MonoBehaviour
string _passive = "";
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;
}
if(GameManager.Instance.selectedActor is CivModel.TileBuilding)
{
// CityBase 한정
if(GameManager.Instance.selectedActor is CivModel.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);
......@@ -217,10 +270,18 @@ public class UIManager : MonoBehaviour
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,14 +335,52 @@ public class UIManager : MonoBehaviour
if (go != managementUI) managementUI.SetActive(false);
if (go != diplomacyUI) diplomacyUI.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
if (go != mapUI)
{
go.SetActive(false);
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
......@@ -333,6 +432,11 @@ public class UIManager : MonoBehaviour
ButtonInteractChange();
GameManager.Instance.CheckToDo();
GameManager.Instance.FocusOnNextActableUnit();
if(GameManager.Instance.selectedActor == null)
{
unitInfo.SetActive(false);
Actions.SetActive(false);
}
}
public void SpecialMouseOver()
......@@ -344,6 +448,93 @@ public class UIManager : MonoBehaviour
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) ////
public void UnitSelTabActive()
{
......@@ -469,8 +660,9 @@ public class UIManager : MonoBehaviour
SkillInfo si;
if (skillIdx < GameManager.Instance.selectedActor.ActiveSkills.Count)
si = GameManager.Instance.selectedActor.ActiveSkills[skillIdx];
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))
......@@ -478,7 +670,9 @@ public class UIManager : MonoBehaviour
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)
{
if(GameManager.Instance.selectedActor.RemainAP.CompareTo(0) == 0)
{
Button[] skillsBtnNoAP = skillSet.GetComponentsInChildren<Button>();
foreach (var skill in skillsBtnNoAP)
......@@ -486,6 +680,49 @@ public class UIManager : MonoBehaviour
skill.interactable = false;
}
}
GameObject unitGameObject = GameManager.GetUnitGameObject(GameManager.Instance.selectedPoint);
if (unitGameObject != null)
{
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);
}
}
}
......@@ -493,7 +730,7 @@ public class UIManager : MonoBehaviour
// Update Unit Info & selectedActor information according to the given actor
public void updateSelectedInfo(CivModel.Actor actor)
{
GameManager.Instance.selectedActor = actor;
GameManager.Instance.SelectActor(actor);
var pt = actor.PlacedPoint.Value;
GameManager.Instance.selectedPoint = pt;
foreach (GameObject unit in GameManager.Instance.Units)
......@@ -517,11 +754,20 @@ public class UIManager : MonoBehaviour
Text text = QuestComplete.GetComponentInChildren<Text>();
Qstimage.sprite = QuestInfo.GetPortraitImage(qst);
text.text = qst.CompleteNotice;
MenuButton.SetActive(false);
}
public void QuestCompleteExit()
{
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()
......@@ -529,5 +775,38 @@ public class UIManager : MonoBehaviour
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
// Use this for initialization
void Start()
{
Scaler = new Vector3(0.22f, 0.22f, 0.22f);
Scaler = new Vector3(0.32f, 0.32f, 0.32f);
_zoom_counter = 2;
}
......
......@@ -20,6 +20,9 @@ public class Unit : MonoBehaviour
// Associated With the Model, But as it's a pointer, Access is Required.
public CivModel.Unit unitModel;
// additional unit of this unit
public Unit pairUnit;
public int unitOwnerNumber;
// Unit States. Move, Attack and Skill
......@@ -37,6 +40,8 @@ public class Unit : MonoBehaviour
private CivModel.Terrain.Point?[] _parameterPoints;
private List<CivModel.Terrain.Point> _skillParameterPoints = new List<CivModel.Terrain.Point>();
public int skillCooldown = 0;
// Change Unit position to given CivModel.Terrain.Point value
// Default y position is 1.25f
public void SetPoints(CivModel.Terrain.Point p1)
......@@ -45,7 +50,6 @@ public class Unit : MonoBehaviour
this.unityPoint = GameManager.ModelPntToUnityPnt(p1, 0);
this.transform.position = this.unityPoint;
this.unitOwnerNumber = this.unitModel.Owner.PlayerNumber;
// SetMaterial();
}
// Change Unit position to given CivModel.Terrain.Point value
public void SetPoints(CivModel.Terrain.Point p1, Vector3 p2)
......@@ -53,19 +57,6 @@ public class Unit : MonoBehaviour
this.point = p1;
this.unityPoint = new Vector3(p2.x, p2.y, p2.z);
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.
......@@ -153,12 +144,12 @@ public class Unit : MonoBehaviour
if (unitToMove.MovingAttackAct != null && IsEnemyActor(player,destPoint))
{
MovePath = MoveOrMoveAttack(unitToMove, destPoint, unitToMove.MovingAttackAct);
//unitToMove.MovingAttackAct.Act(destPoint);
MoveStateExit();
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;
MovePath.ActFullWalkForRemainAP();
}
......@@ -169,11 +160,10 @@ public class Unit : MonoBehaviour
else if (unitToMove.MoveAct != null)
{
MovePath = MoveOrMoveAttack(unitToMove, destPoint, unitToMove.MoveAct);
//unitToMove.MoveAct.Act(destPoint);
MoveStateExit();
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;
MovePath.ActFullWalkForRemainAP();
}
......@@ -214,78 +204,9 @@ public class Unit : MonoBehaviour
{
MovePath = null;
}
/*
if (MovePath != null && !MovePath.IsInvalid)
{
unitToMove.MovePath = MovePath;
MovePath.ActFullWalkForRemainAP();
}*/
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()
{
if (_inMoveState) _inMoveState = false;
......@@ -366,7 +287,7 @@ public class Unit : MonoBehaviour
UIManager.Instance.updateSelectedInfo(unitToAttack);
if (unitToAttack.HoldingAttackAct != null && unitToAttack.HoldingAttackAct.IsActable(destPoint))
{
yield return AttackAnimation(unitToAttack, destPoint);
yield return UnitAnimation.AttackAnimation(this, destPoint);
unitToAttack.HoldingAttackAct.Act(destPoint);
MoveStateExit();
GameManager.Instance.UpdateUnit();
......@@ -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)
{
// State change
......@@ -432,7 +315,6 @@ public class Unit : MonoBehaviour
_inSkillState = true;
_currentSkill = index;
// If SpecialActs[_currentSkill] is not parametered skill, this skill is immediately activated.
if (!GameManager.Instance.selectedActor.SpecialActs[_currentSkill].IsParametered)
{
......@@ -465,9 +347,11 @@ public class Unit : MonoBehaviour
UIManager.Instance.spyContent.GetComponent<Text>().text = text;
}
// 공통적인 부분
StartCoroutine(UnitAnimation.SkillAnimation(this, GameManager.Instance.selectedPoint));
AddSkillCooldown();
GameManager.Instance.selectedActor.SpecialActs[_currentSkill].Act(null);
GameManager.Instance.UpdateUnit();
// UIManager.Instance.UpdateUnitInfo(); Done in UpdateUnit
UIManager.Instance.UpdateUnitInfo();
}
else
{
......@@ -517,7 +401,7 @@ public class Unit : MonoBehaviour
while (true)
{
// 새로운 Point 을 선택했을 때
if (Input.GetMouseButtonUp(0) && !EventSystem.current.IsPointerOverGameObject())
if (Input.GetMouseButtonDown(0) && !EventSystem.current.IsPointerOverGameObject())
{
// Flicker하고 있는 Tile을 선택했을 때
if (GameManager.Instance.selectedTile.isFlickering)
......@@ -526,17 +410,18 @@ public class Unit : MonoBehaviour
UIManager.Instance.updateSelectedInfo(unitToSkill);
if (unitToSkill.SpecialActs[_currentSkill].IsActable(destPoint))
{
bool canAct = false;
try
{
unitToSkill.SpecialActs[_currentSkill].Act(destPoint);
canAct = true;
}
catch (System.Exception e) { Debug.Log(e); }
finally
{
if (canAct)
yield return UnitAnimation.SkillAnimation(this, destPoint);
AddSkillCooldown();
SkillStateExit();
GameManager.Instance.UpdateUnit();
}
break;
}
else
......@@ -571,5 +456,45 @@ public class Unit : MonoBehaviour
}
_skillParameterPoints.Clear();
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 {
FinnoAncientSorcerer,
FinnoJediKnight,
FinnoAutismBeamDrone,
FinnoGenghisKhan
FinnoGenghisKhan,
ZapPioneer,
ZapArmoredDivision,
ZapPseudoNinja,
ZapPadawan,
ZapInfantry,
ZapDecentralizedMilitary,
ZapSpaceShip
}
public class UnitEnum {
......@@ -77,8 +84,37 @@ public class UnitEnum {
else if (unit is CivModel.Finno.AutismBeamDrone) {
return Units.FinnoAutismBeamDrone;
}
else {
return Units.HwanBrainwashedEmuKnight;
else if (unit is CivModel.Zap.Pioneer)
{
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;
}
}
......@@ -88,7 +124,7 @@ public class UnitEnum {
if (unit is CivModel.Hwan.Pioneer)
{
unitResourcePath = "hwan_burrow";
unitResourcePath = "hwan_pioneer";
}
else if (unit is CivModel.Hwan.BrainwashedEMUKnight)
{
......@@ -124,7 +160,7 @@ public class UnitEnum {
}
else if (unit is CivModel.Finno.Pioneer)
{
unitResourcePath = "finno_burrow";
unitResourcePath = "finno_pioneer";
}
else if (unit is CivModel.Finno.EMUHorseArcher)
{
......@@ -158,9 +194,37 @@ public class UnitEnum {
{
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
{
unitResourcePath = "hwan_spaceship";
unitResourcePath = "jap_infantry_division";
}
return Resources.Load<GameObject>("UnitModels/" + unitResourcePath);
......
fileFormatVersion: 2
guid: 44bcbd998f58292419e665afa8111b65
NativeFormatImporter:
guid: 4ff715dfde472a54e913fa6fd542c12a
folderAsset: yes
DefaultImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
......@@ -17,7 +17,7 @@ PhysicsManager:
m_ClothInterCollisionDistance: 0
m_ClothInterCollisionStiffness: 0
m_ContactsGeneration: 1
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc7ffffffa7ffffff97ffffff8fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
m_AutoSimulation: 1
m_AutoSyncTransforms: 1
m_ClothInterCollisionSettingsToggle: 0
......
......@@ -663,6 +663,8 @@ PlayerSettings:
cloudServicesEnabled:
Build: 1
Collab: 1
ErrorHub: 0
Hub: 0
UNet: 1
facebookSdkVersion: 7.9.4
apiCompatibilityLevel: 3
......
......@@ -17,11 +17,11 @@ TagManager:
- PostProcessing
- MiniMap
- 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