From a6778d8b72212bc95a33b569ab339a2d96ca667e Mon Sep 17 00:00:00 2001 From: MaximilienBlanchardBizien1 Date: Thu, 13 Feb 2025 21:30:36 +0000 Subject: [PATCH 1/6] Fixed an issue where the player couldn't consistently bring up the upgrade option when trying to click on units that were specifically in the castle's shooting range. (#1) Reviewed-on: https://gitea.clubconjure.com/Conjure/gather-and-defend/pulls/1 Co-authored-by: MaximilienBlanchardBizien1 Co-committed-by: MaximilienBlanchardBizien1 --- Assets/Prefabs/Buildings/Castle.prefab | 40 ++++++++++++++++++++------ Assets/Scenes/Game.unity | 4 +-- Assets/Scripts/Ally/AllyUpgrade.cs | 1 - Assets/Scripts/Ally/Castle.cs | 3 +- ProjectSettings/TagManager.asset | 2 +- 5 files changed, 37 insertions(+), 13 deletions(-) diff --git a/Assets/Prefabs/Buildings/Castle.prefab b/Assets/Prefabs/Buildings/Castle.prefab index f0d6b5f..ecffe6a 100644 --- a/Assets/Prefabs/Buildings/Castle.prefab +++ b/Assets/Prefabs/Buildings/Castle.prefab @@ -269,8 +269,8 @@ GameObject: m_Component: - component: {fileID: 4738724134341998529} - component: {fileID: 3129090374542533064} - - component: {fileID: 3389094527817988571} - m_Layer: 0 + - component: {fileID: 7107627688917009505} + m_Layer: 3 m_Name: Detection m_TagString: Untagged m_Icon: {fileID: 0} @@ -305,7 +305,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _entityLinked: {fileID: 498655111277194201} ---- !u!61 &3389094527817988571 +--- !u!61 &7107627688917009505 BoxCollider2D: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -321,10 +321,10 @@ BoxCollider2D: m_Offset: {x: 0, y: 0} m_SpriteTilingProperty: border: {x: 0, y: 0, z: 0, w: 0} - pivot: {x: 0.5, y: 0.5} - oldSize: {x: 1, y: 1} - newSize: {x: 11.65, y: 5.55} - adaptiveTilingThreshold: 0.5 + pivot: {x: 0, y: 0} + oldSize: {x: 0, y: 0} + newSize: {x: 0, y: 0} + adaptiveTilingThreshold: 0 drawMode: 0 adaptiveTiling: 0 m_AutoTiling: 0 @@ -341,6 +341,7 @@ GameObject: m_Component: - component: {fileID: 8169559242600365314} - component: {fileID: 3828680565076245792} + - component: {fileID: 1718320054306818987} m_Layer: 0 m_Name: root m_TagString: Untagged @@ -380,6 +381,17 @@ MonoBehaviour: _entity: {fileID: 498655111277194201} _projectile: {fileID: 6962989255644195630, guid: 8c97d676f9e78de408a30be69193ca5e, type: 3} _projectileSpawn: {fileID: 7055490709728624221} +--- !u!210 &1718320054306818987 +SortingGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7593581371702012092} + m_Enabled: 1 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 5 --- !u!1 &7803635882566565305 GameObject: m_ObjectHideFlags: 0 @@ -481,7 +493,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!4 &7939484193916151742 Transform: m_ObjectHideFlags: 0 @@ -587,10 +599,22 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 4760673158665372231, guid: 19b269ca2b00e9b4dbff3fa28761992a, type: 3} + propertyPath: m_Layer + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8104010403964510583, guid: 19b269ca2b00e9b4dbff3fa28761992a, type: 3} + propertyPath: m_Layer + value: 0 + objectReference: {fileID: 0} - target: {fileID: 8131035023550608747, guid: 19b269ca2b00e9b4dbff3fa28761992a, type: 3} propertyPath: m_Name value: HPSlider objectReference: {fileID: 0} + - target: {fileID: 8131035023550608747, guid: 19b269ca2b00e9b4dbff3fa28761992a, type: 3} + propertyPath: m_Layer + value: 0 + objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 19b269ca2b00e9b4dbff3fa28761992a, type: 3} --- !u!114 &981581452810264329 stripped diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity index 8afb3b3..186c2cf 100644 --- a/Assets/Scenes/Game.unity +++ b/Assets/Scenes/Game.unity @@ -2491,10 +2491,10 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_IgnoreReversedGraphics: 1 - m_BlockingObjects: 0 + m_BlockingObjects: 1 m_BlockingMask: serializedVersion: 2 - m_Bits: 4294967295 + m_Bits: 119 --- !u!114 &1092900230 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Ally/AllyUpgrade.cs b/Assets/Scripts/Ally/AllyUpgrade.cs index dfdd8b9..82616bf 100644 --- a/Assets/Scripts/Ally/AllyUpgrade.cs +++ b/Assets/Scripts/Ally/AllyUpgrade.cs @@ -36,7 +36,6 @@ public class AllyUpgrade : MonoBehaviour, IPointerClickHandler { Destroy(_instance); } - } } diff --git a/Assets/Scripts/Ally/Castle.cs b/Assets/Scripts/Ally/Castle.cs index 20094ec..d3207e4 100644 --- a/Assets/Scripts/Ally/Castle.cs +++ b/Assets/Scripts/Ally/Castle.cs @@ -44,7 +44,8 @@ public class Castle : Building for(int i = 0; i < 4 && IsEnemyDetected; i++) { Invoke("ShootInterval", 0.1f * i); - if(Enemy.Hp <= 0) IsEnemyDetected = false; + + if (Enemy.Hp <= 0) IsEnemyDetected = false; } AttackSpeedWait = 0f; diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index abc216a..73d5eb4 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -15,7 +15,7 @@ TagManager: - Default - TransparentFX - Ignore Raycast - - + - objWithCollider - Water - UI - InvisibleToCamera From 05a9fa21125ea3b6237fe1e61d629058e2bbf05a Mon Sep 17 00:00:00 2001 From: craftwill Date: Sun, 2 Mar 2025 18:06:54 +0000 Subject: [PATCH 2/6] Add castle sprite and change its dmg 2->3 (#3) Reviewed-on: https://gitea.clubconjure.com/Conjure/gather-and-defend/pulls/3 Reviewed-by: Ader_Alisma Co-authored-by: craftwill Co-committed-by: craftwill --- Assets/Art/Sprites/Castle.png | Bin 0 -> 2896 bytes ...xemple_castle.png.meta => Castle.png.meta} | 18 +++--------------- Assets/Art/Sprites/exemple_castle.png | Bin 8888 -> 0 bytes Assets/Prefabs/Buildings/Castle.prefab | 10 +++++----- 4 files changed, 8 insertions(+), 20 deletions(-) create mode 100644 Assets/Art/Sprites/Castle.png rename Assets/Art/Sprites/{exemple_castle.png.meta => Castle.png.meta} (89%) delete mode 100644 Assets/Art/Sprites/exemple_castle.png diff --git a/Assets/Art/Sprites/Castle.png b/Assets/Art/Sprites/Castle.png new file mode 100644 index 0000000000000000000000000000000000000000..bdcfd8e10c83d9d7fb91278c9e479fcb8fbde59a GIT binary patch literal 2896 zcmV-W3$OHvP)c)=K5+`Z|G-;$3At9?m0tu;q1C&7(rcx_A@D3AIJ2QHsszIuiYB>Sz-JQ+{1nS2q-?G^JH|XMD`frH_sS=!$YQf$Q`~ zC^N7T1F9zuy}Hm!2l|9XGdPio zQJZaRL{sSow46VPK0DfkutE5BFy&f=8tJY(;&X0-eB=u-pKH*h2Vn$y!lWtfqK!x8 z(Z>4c(#NAv{~(%7??or5xr<*iWMv^ir3i@`yJZ4Jo-v^06$yepcgp06GX2=ws01 zj5g~)g?pqnQT3}IC7w*Vj+rNJkwk&<8jc}u_=SGMsy<4h(4KaF4K6bNqZe@w~aS<%@lv*Sl)jjxq0EE;ckUT z7J(}6(Bb)8W1WZ5>7L{Gy|;HS!h5iC@m4hc=)JdO0%8@nxq0HF*^b4I41zpH8-hE1 zruR{&6N$uW(7Sz4wjlaFFN@pUJo6ErG&&s>x~Rs>Zt`|J{akN*>o4?9cOGv=@p!zX zOj|Re-^1sCk}@HQ%uTkBWT3r_icWNhGUHw7++T19aYyYKqMITSlF(}E zSaxBJ_9jrF>oDqT$6Mq>njxE~Iy5sb4aZRWSX1e}$?hX);e>avWaK8=NA4hc!=%jW zu?*?yjH9PuS((qp&`Lgr)(aiz**u&(6hkjeBw-1F_XcBV4z!$4qTzJRGgvZm6YXQE z@Sbe99%+cKG#HalC(uADhWfkWs1Gy@&$IA)x+9LdK`Br&5%&z1sN7`w7;$>C6Ik=} z^O{CRMhrDGGlQ;Qzh078u-xY6g^%1p-uQGDZBBNTgrD;!LmRTXx@xGaSFidC%V}<2 z_*fAHH^4fX4q#R@kJ4 zva(`o$il(`T3cH~TU%RbXlSTp$occFVtzDmV!ST1+|_RK6)~&sx_I$o;Pv3agEED%6jlf; zKnh_6NJ_#Y@2G1D*3FwY%j6c82pr2|xb!)_4UhS-`Av!ABObnt=7<;zUKqNn=RKUJ6+dcyp;q zSh_h6Zx3ll{V{(1&5cv8fLZMfjX?3_@{N0I>cO)5h(r{upHDZT_g?PTM2>7fVDaQ) z7nTSgm6%z&G1w$*4u0&#QpkeEn~Rb&%L`bfNu)tuU$bybyt(1YrRJ_#`c3gWcM51R z-;Oq>W15U+mDPu<JZ0BUM#s-#>lXL-cmuMz<)gk=*H z4;-Uo2+KoQc!pr(-5f($0${N=8lq+td2}UBausC4Z`EXS?^!DxB zLY6=Bh}#TdNq{AKX1UpDC=bi%+k3J%7^1ILe#3I=qwSgHH7pq$3-XBb@ndFr0?UgH z1`8Jc8-+4pk-NgGS_b`sC1YcOk4CU~KBEj_nanI1Gb)575SGkcV7Ls1utHd}Ace3( zShWia?*v8f0_h_Si|5l7HSoB}{50^nXK8DvUg?aFWSRE6fi$7F;o@WQajKzn5Fv2SE#)g}KejB8!T=@7qP#Y80 zF0hyU?p!EM{{Rgbf+B$3Qy|$|)<>XGOHc%`8PMMqNW9kcQ&2lMC<0gl^i>5qPz(Am z=vCX07|>ckMbNht=u|c8N1%S!pcvqu2K`up4pxKy4Z0y55(8R8W@oGaTLn5DM12=D zCLI(5+%o8Epx-NCg39_B^t}wvmfVX1iA;fB%Y;j%t`9-q0e!}AHkJjFoCCe5fN5Uo zKcF9gRzY#U{dZg-`3}$)=ppEr3K%O&|IF+xZ!4gqe)}w~K<84Rv!MH+H$XpAzAD u4|I;Z*{lZ+qCWR(%#1n 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 Date: Sun, 6 Apr 2025 22:23:14 +0000 Subject: [PATCH 3/6] Added an exemple challenge in the UI (#4) Reviewed-on: https://gitea.clubconjure.com/Conjure/gather-and-defend/pulls/4 Reviewed-by: Ader_Alisma Co-authored-by: craftwill Co-committed-by: craftwill --- Assets/Art/Sprites/UI/challenges.meta | 8 + .../Art/Sprites/UI/challenges/emptyCircle.png | Bin 0 -> 642 bytes .../UI/challenges/emptyCircle.png.meta | 135 +++++++ .../Sprites/UI/challenges/nav_dot_empty.png | Bin 0 -> 426 bytes .../UI/challenges/nav_dot_empty.png.meta | 135 +++++++ .../Sprites/UI/challenges/nav_dot_full.png | Bin 0 -> 390 bytes .../UI/challenges/nav_dot_full.png.meta | 135 +++++++ .../challenges/questStepCompletedCircle.png | Bin 0 -> 1304 bytes .../questStepCompletedCircle.png.meta | 135 +++++++ Assets/Scenes/Game.unity | 366 +++++++++++++++++- 10 files changed, 913 insertions(+), 1 deletion(-) create mode 100644 Assets/Art/Sprites/UI/challenges.meta create mode 100644 Assets/Art/Sprites/UI/challenges/emptyCircle.png create mode 100644 Assets/Art/Sprites/UI/challenges/emptyCircle.png.meta create mode 100644 Assets/Art/Sprites/UI/challenges/nav_dot_empty.png create mode 100644 Assets/Art/Sprites/UI/challenges/nav_dot_empty.png.meta create mode 100644 Assets/Art/Sprites/UI/challenges/nav_dot_full.png create mode 100644 Assets/Art/Sprites/UI/challenges/nav_dot_full.png.meta create mode 100644 Assets/Art/Sprites/UI/challenges/questStepCompletedCircle.png create mode 100644 Assets/Art/Sprites/UI/challenges/questStepCompletedCircle.png.meta diff --git a/Assets/Art/Sprites/UI/challenges.meta b/Assets/Art/Sprites/UI/challenges.meta new file mode 100644 index 0000000..c900cea --- /dev/null +++ b/Assets/Art/Sprites/UI/challenges.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 11653f5349af9334ea58c48470649d56 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Art/Sprites/UI/challenges/emptyCircle.png b/Assets/Art/Sprites/UI/challenges/emptyCircle.png new file mode 100644 index 0000000000000000000000000000000000000000..59b013821d274a522cbf965947c7908733b2e975 GIT binary patch literal 642 zcmV-|0)737P)NklA6PF7Rz5Gv-6Mf)i~RuEsmu$Cq}^gE-Rb*wyrG5uY%F z@A!!w*p0n7EPjfTAGjmV#Gkdy11{hiwiWStJjHAA+b*;i$bh&OPGb~1i)X)Z7f;F# zG@GBp4e?uNUf?07S{SazATEhBm|4PYJa1(_gqx_P`+72cjNcnD&Qx(Rb)u4DbGRj~ zfxLSA#Hp?ojUVB`CXJ6)AZ`qqX>07oTVyHeXZ8g#J7wm&WZX)BPtdp*ubT$9NU7f+ngd-n zZy0D03xP~ccPaH}gQi8GF{yNt?V1*Mz+@3PC}yN?Fqrf+lK~S}lE(nfbjkco(wF=u z0zRe=WJblRq?7DTx|s=l3}WVaW@Yp{aaBrt9iT7i<;v!F@~h{R`Uc}ggAt8Iz-Fl= zosl9op8Wph^JTHdDtDkUT(**QHcBB=efFXv#w3+k^l)c^nh07*qoM6N<$g8p_fYybcN literal 0 HcmV?d00001 diff --git a/Assets/Art/Sprites/UI/challenges/emptyCircle.png.meta b/Assets/Art/Sprites/UI/challenges/emptyCircle.png.meta new file mode 100644 index 0000000..06ef5b0 --- /dev/null +++ b/Assets/Art/Sprites/UI/challenges/emptyCircle.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: 920f0ff7518d3164baa4e6a50bc00bc8 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Art/Sprites/UI/challenges/nav_dot_empty.png b/Assets/Art/Sprites/UI/challenges/nav_dot_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..c06673cc732345be5a73a89fe97eb3da14add5c9 GIT binary patch literal 426 zcmV;b0agBqP)FFffKlfS=_<}Y~dr` zVIE(K=nhHRsFPeu@-)dplJz9xiC9VUD#`sMr#rdZ6;+tVV?4w~)O|f;jPs@K7g+9A zbUewEB=5`4{uARQZ<5?iGEAZ_J72{;T>eKTU25FM9h_}{9L5dIXl`h)OqIN84C<16 z1t<3*(lUc{tGny+`=k04Ozs%~~_^i}+gBdu4=$ zBDU4G_5m-kq{l}+L}Qn?_=)WStBO6IC;6U+zYSxGg&rk2RdRQEZBWFXC0R_ekv|zF zd7b1zk~6JH64k^rQfu6Q9do#8$Nir)&Yv$wFzOz|q)=CIsF|Hq)$ literal 0 HcmV?d00001 diff --git a/Assets/Art/Sprites/UI/challenges/nav_dot_empty.png.meta b/Assets/Art/Sprites/UI/challenges/nav_dot_empty.png.meta new file mode 100644 index 0000000..51f1038 --- /dev/null +++ b/Assets/Art/Sprites/UI/challenges/nav_dot_empty.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: 072393d321642c348a0739868a94d72f +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Art/Sprites/UI/challenges/nav_dot_full.png b/Assets/Art/Sprites/UI/challenges/nav_dot_full.png new file mode 100644 index 0000000000000000000000000000000000000000..113ecd9e27c002156bd1bd5fbeaa9bfebd80d921 GIT binary patch literal 390 zcmV;10eSw3P)R| zsN?)xobyb+OgiHi&f>eUs_2Fpuz);<1TvmiyiDY=W}!h2&V7~Z!wGeP4G89 z;{(26`&=?f`8r8nCi#@)IR9ra$@?VJXR>`!mE=W|uSt4WNDAE~i%BLgiXJ9eX?_@% zgCy^g+$o|e$?GILBS;EcNuDH8;TGm_Z&3NJ;W3_}UEww+n~IIf7@ikV+kn0pk`^Y4 zsE559%7O!=!XbX3djruCzN1^=7#q#4M&%d2;iNom6RS8GLDIz{exl#vtt4|v)-zmZ z_mX@}GSy@+&DwmD)m%MmM@g2GJS~zWYTG~Bc!UMK!HjyHz%JIYgf;c__rn)Og-#=w kQ17Ft_t78qKDt!lQw%Y|-{KH^LI3~&07*qoM6N<$f-7vVkN^Mx literal 0 HcmV?d00001 diff --git a/Assets/Art/Sprites/UI/challenges/nav_dot_full.png.meta b/Assets/Art/Sprites/UI/challenges/nav_dot_full.png.meta new file mode 100644 index 0000000..7e7ffd5 --- /dev/null +++ b/Assets/Art/Sprites/UI/challenges/nav_dot_full.png.meta @@ -0,0 +1,135 @@ +fileFormatVersion: 2 +guid: b85d4386d78389d459b39fb405298ce5 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMasterTextureLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Art/Sprites/UI/challenges/questStepCompletedCircle.png b/Assets/Art/Sprites/UI/challenges/questStepCompletedCircle.png new file mode 100644 index 0000000000000000000000000000000000000000..11c7ec483bdeed2bbac65ce51017940939cebeb2 GIT binary patch literal 1304 zcmV+z1?T#SP)i>3tQ0}s9sAm~F~3=%{W z$+=2_az zQ##%Qi>Zi}u;S}RK56?`<{rE=B3$0o#`n$vt{W!5%Vj2yvGA4!Sv4UJWs@^9&RA|7 z)iOj>yhu;p2siK2%V$oqf>&B>Ji6aU?d^M-d+^S$|YS-in}v&R@&c#YmQ0b1=bZs>vMkV_>SPR(QfXOjcC%lu_Fz1_@r&Qanz zw~QAfPw>pX7Ugg!um*4f%K-;a0Q3Vv;3UujG&!YpOa9>Z&A;)pP17-A!o|jxpVEed@CfB^%QYzP*y=p(<YXo)oo$Ax3_Y@ktAgz zQJ8p%nmVlpvWngZ4_@PGns;8JCs$LcWJ9o+k`Me!g9rE!Z~=yNw=@`lr-2or_?h7{ zlj~Cpa><``%K&kP4G9uYuH~&G0a_;nfGAh1LIgxjVJWU?F(rHaO2cMgH?Uv|({wBV zcKelv&Bc`LS&A#Fy$BHyqg<^55IlIZF3`DZoKXPGNJ$6fb$+E`C9n;Ur)jJ~2DbT? zhLsM=>&!?=fN@5-K<6qC-Yh|7V0DPVEbSYmI77|Kp&+UMc)A&`K2~gFf)$%y1Vcnc4_=YfkjNxXdhm)vMD^mfVp9bR@^y{4 zLdbLrbup>wl*o{A0%*B~y7&qqlSW#QuL}}|9oZNGxJk^=N7xNCk(y4KKt0gZN7#Ln zm;oRgBNBxjf=K>RJEi)b6`;lLlGZx_A8`Hwjn4xVL0^&zxxXZ^=>Iqn5bawSM}@;>*fGm zv|n=ax_pVAq6tzvUYKq Date: Sun, 6 Apr 2025 22:31:07 +0000 Subject: [PATCH 4/6] Fix placing multiple units on the same tile (#2) Reviewed-on: https://gitea.clubconjure.com/Conjure/gather-and-defend/pulls/2 Reviewed-by: Ader_Alisma --- Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs | 18 ++++++++++++++---- Assets/Scripts/Drag&Drop/UnitPlaceholder.cs | 1 + .../Scripts/LevelManager/LevelManagerScript.cs | 1 + 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs b/Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs index 781c2fe..bf95cb7 100644 --- a/Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs +++ b/Assets/Scripts/Drag&Drop/ObjectPlaceholder.cs @@ -3,34 +3,44 @@ public class ObjectPlaceholder : UnitPlaceholder { public GameObject Prefab { get; set; } + public override void Place() { base.Place(); Prefab.Create(transform.position, parent : LevelManager.Instance.LevelTransform); } + public override bool CanBePlacedHere() { var objsOnPosition = LevelManager.Instance.GetAll(obj => obj.Position.IsContainedIn(transform.position)); var positionIsCollidable = objsOnPosition.Exists(obj => obj.IsCollidable); + // If an ally is on the tile, we can't place anything here + foreach (var item in objsOnPosition) + { + if (item is Ally) + { + return false; + } + } + var defaultUnitCost = GlobalConfig.Instance.Current.populationCostPerUnit; return !positionIsCollidable && LevelBoundCache.Contains(transform.position) && ResourceManager.Instance.EnoughFor(Rock, Wood, Food) && (Prefab.GetComponent() || ResourceManager.Instance.EnoughPopulationFor(defaultUnitCost)) - && IsFarmerAndAllowed(); + && IsHarvesterAndAllowed(); } - private bool IsFarmerAndAllowed() + private bool IsHarvesterAndAllowed() { Ally unit = Prefab.GetComponent(); - //Obtiens info correctement. + // Get info LevelTile pointedTile = LevelManager.Instance.Get(obj => obj.Position.IsContainedIn(transform.position)); return unit is not Harvester || (unit is Harvester && IsAllowedTile(pointedTile)); - //return true; } private bool IsAllowedTile(LevelTile pointedTile) diff --git a/Assets/Scripts/Drag&Drop/UnitPlaceholder.cs b/Assets/Scripts/Drag&Drop/UnitPlaceholder.cs index b553a1f..fbe2f12 100644 --- a/Assets/Scripts/Drag&Drop/UnitPlaceholder.cs +++ b/Assets/Scripts/Drag&Drop/UnitPlaceholder.cs @@ -16,5 +16,6 @@ public abstract class UnitPlaceholder : DraggablePlaceholder return base.CanBePlacedHere() && ResourceManager.Instance.EnoughFor(Rock, Wood, Food) && !LevelManager.Instance.Has(obj => obj.Position.IsContainedIn(transform.position)); } + public event System.Action WasPlaced; } \ No newline at end of file diff --git a/Assets/Scripts/LevelManager/LevelManagerScript.cs b/Assets/Scripts/LevelManager/LevelManagerScript.cs index e3f1139..e022c45 100644 --- a/Assets/Scripts/LevelManager/LevelManagerScript.cs +++ b/Assets/Scripts/LevelManager/LevelManagerScript.cs @@ -59,6 +59,7 @@ public class LevelManagerScript : SingletonBehaviour { //only when the level is loaded do we start updating updateAction = LevelManager.Instance.UpdateLevel; + LevelManager.Instance.LevelTransform = transform; } /// From cf1df05d6da9543c81cc76154bf65d9df1ad0164 Mon Sep 17 00:00:00 2001 From: craftwill Date: Tue, 29 Apr 2025 18:59:31 +0000 Subject: [PATCH 5/6] Added warning on house card to let player know to build one (#5) Reviewed-on: https://gitea.clubconjure.com/Conjure/gather-and-defend/pulls/5 Reviewed-by: Ader_Alisma Co-authored-by: craftwill Co-committed-by: craftwill --- .../UI/maximumPopReachedCardWarning.meta | 8 + ...mPopReachedCardWarning_animator.controller | 159 +++ ...eachedCardWarning_animator.controller.meta | 8 + .../maximumPopReachedCardWarning_warning.anim | 909 ++++++++++++++++++ ...mumPopReachedCardWarning_warning.anim.meta | 8 + .../Buildings/Upgrade_Castle.asset | 2 +- .../UnitPlacementButtons.prefab | 41 +- .../MaximumPopulationReachedCardAlert.cs | 28 + .../MaximumPopulationReachedCardAlert.cs.meta | 11 + .../Scripts/Events/PopulationChangedEvent.cs | 8 +- Assets/Scripts/Resource/ResourceManager.cs | 13 +- 11 files changed, 1190 insertions(+), 5 deletions(-) create mode 100644 Assets/Animations/UI/maximumPopReachedCardWarning.meta create mode 100644 Assets/Animations/UI/maximumPopReachedCardWarning/maximumPopReachedCardWarning_animator.controller create mode 100644 Assets/Animations/UI/maximumPopReachedCardWarning/maximumPopReachedCardWarning_animator.controller.meta create mode 100644 Assets/Animations/UI/maximumPopReachedCardWarning/maximumPopReachedCardWarning_warning.anim create mode 100644 Assets/Animations/UI/maximumPopReachedCardWarning/maximumPopReachedCardWarning_warning.anim.meta create mode 100644 Assets/Scripts/Drag&Drop/MaximumPopulationReachedCardAlert.cs create mode 100644 Assets/Scripts/Drag&Drop/MaximumPopulationReachedCardAlert.cs.meta diff --git a/Assets/Animations/UI/maximumPopReachedCardWarning.meta b/Assets/Animations/UI/maximumPopReachedCardWarning.meta new file mode 100644 index 0000000..e5fe3dd --- /dev/null +++ b/Assets/Animations/UI/maximumPopReachedCardWarning.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 50b2c9b673d41ec4d93453fd1e722f92 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Animations/UI/maximumPopReachedCardWarning/maximumPopReachedCardWarning_animator.controller b/Assets/Animations/UI/maximumPopReachedCardWarning/maximumPopReachedCardWarning_animator.controller new file mode 100644 index 0000000..c3c29e2 --- /dev/null +++ b/Assets/Animations/UI/maximumPopReachedCardWarning/maximumPopReachedCardWarning_animator.controller @@ -0,0 +1,159 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1101 &-9045132892093704427 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: isWarning + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 6015367637702610325} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &-2592393714214719373 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: empty + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -9045132892093704427} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 0} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: maximumPopReachedCardWarning_animator + serializedVersion: 5 + m_AnimatorParameters: + - m_Name: isWarning + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: 3337662678212387241} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1101 &2387495236854464565 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: isWarning + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -2592393714214719373} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1107 &3337662678212387241 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -2592393714214719373} + m_Position: {x: 250, y: 180, z: 0} + - serializedVersion: 1 + m_State: {fileID: 6015367637702610325} + m_Position: {x: 250, y: 110, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -2592393714214719373} +--- !u!1102 &6015367637702610325 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: warning + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 2387495236854464565} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: f7bd10c9ea644c740ad9b02ed357b64c, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: diff --git a/Assets/Animations/UI/maximumPopReachedCardWarning/maximumPopReachedCardWarning_animator.controller.meta b/Assets/Animations/UI/maximumPopReachedCardWarning/maximumPopReachedCardWarning_animator.controller.meta new file mode 100644 index 0000000..81c0170 --- /dev/null +++ b/Assets/Animations/UI/maximumPopReachedCardWarning/maximumPopReachedCardWarning_animator.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5377b0ef23c777049a02fe97ad950bb5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Animations/UI/maximumPopReachedCardWarning/maximumPopReachedCardWarning_warning.anim b/Assets/Animations/UI/maximumPopReachedCardWarning/maximumPopReachedCardWarning_warning.anim new file mode 100644 index 0000000..19700eb --- /dev/null +++ b/Assets/Animations/UI/maximumPopReachedCardWarning/maximumPopReachedCardWarning_warning.anim @@ -0,0 +1,909 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: maximumPopReachedCardWarning_warning + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: 0, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.16666667 + value: {x: 0, y: 0, z: 1.767} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.25 + value: {x: 0, y: 0, z: -3.505} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.41666666 + value: {x: 0, y: 0, z: -0.273} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: + m_PositionCurves: [] + m_ScaleCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 1, y: 1, z: 1} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.16666667 + value: {x: 1.155772, y: 1.155772, z: 1.155772} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 1 + value: {x: 1, y: 1, z: 1} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_AnchorMin.y + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_AnchorMax.y + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -5 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: -5 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: -5 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_AnchoredPosition.y + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 0.9339623 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.41666666 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.r + path: img_card_back + classID: 114 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 0.54316264 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.41666666 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.g + path: img_card_back + classID: 114 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 0.47138664 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.41666666 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.b + path: img_card_back + classID: 114 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 4 + script: {fileID: 0} + typeID: 4 + customType: 4 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 0 + attribute: 3 + script: {fileID: 0} + typeID: 4 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 1726706327 + attribute: 2526845255 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 1726706327 + attribute: 4215373228 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 1726706327 + attribute: 2334886179 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + typeID: 114 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 0 + attribute: 193093493 + script: {fileID: 0} + typeID: 224 + customType: 28 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 0 + attribute: 3600656472 + script: {fileID: 0} + typeID: 224 + customType: 28 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 0 + attribute: 538195251 + script: {fileID: 0} + typeID: 224 + customType: 28 + isPPtrCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 1 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 1.155772 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.x + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 1.155772 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.y + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 1.155772 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.z + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_AnchorMin.y + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_AnchorMax.y + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -5 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: -5 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: -5 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_AnchoredPosition.y + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.25 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.41666666 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.x + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.25 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.41666666 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.y + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 1.767 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.25 + value: -3.505 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.41666666 + value: -0.273 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: localEulerAnglesRaw.z + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 0.9339623 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.41666666 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.r + path: img_card_back + classID: 114 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 0.54316264 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.41666666 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.g + path: img_card_back + classID: 114 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.16666667 + value: 0.47138664 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.41666666 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_Color.b + path: img_card_back + classID: 114 + script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_EulerEditorCurves: + - curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.x + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.y + path: + classID: 224 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalEulerAngles.z + path: + classID: 224 + script: {fileID: 0} + m_HasGenericRootTransform: 1 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Animations/UI/maximumPopReachedCardWarning/maximumPopReachedCardWarning_warning.anim.meta b/Assets/Animations/UI/maximumPopReachedCardWarning/maximumPopReachedCardWarning_warning.anim.meta new file mode 100644 index 0000000..a6a441e --- /dev/null +++ b/Assets/Animations/UI/maximumPopReachedCardWarning/maximumPopReachedCardWarning_warning.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f7bd10c9ea644c740ad9b02ed357b64c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Design/UnitUpgrades/Buildings/Upgrade_Castle.asset b/Assets/Design/UnitUpgrades/Buildings/Upgrade_Castle.asset index aa16817..6189ed1 100644 --- a/Assets/Design/UnitUpgrades/Buildings/Upgrade_Castle.asset +++ b/Assets/Design/UnitUpgrades/Buildings/Upgrade_Castle.asset @@ -14,4 +14,4 @@ MonoBehaviour: m_EditorClassIdentifier: _upgradeUnitCard: {fileID: 11400000, guid: 4728bef0a18b70945bedf5b1190c491e, type: 2} _upgradePrefab: {fileID: 1436362432952518814, guid: 8d56b160dedb7f84d830d749372fe8e8, type: 3} - _upgradeCardArt: {fileID: 21300000, guid: bc54d5d5ac69f334daf7b36882bd5199, type: 3} + _upgradeCardArt: {fileID: 21300000, guid: bf13763ff43b8114b8bdca864dfdf62f, type: 3} diff --git a/Assets/Prefabs/UI/BuyableUnitsView/UnitPlacementButtons.prefab b/Assets/Prefabs/UI/BuyableUnitsView/UnitPlacementButtons.prefab index 61921fd..98118e9 100644 --- a/Assets/Prefabs/UI/BuyableUnitsView/UnitPlacementButtons.prefab +++ b/Assets/Prefabs/UI/BuyableUnitsView/UnitPlacementButtons.prefab @@ -786,6 +786,45 @@ PrefabInstance: objectReference: {fileID: 11400000, guid: 4fda8972f6f46684891773953155782e, type: 2} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: e20680474d73eee49836ff9cbc6d0b28, type: 3} +--- !u!1 &907652128862280226 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 907652127959947826, guid: e20680474d73eee49836ff9cbc6d0b28, type: 3} + m_PrefabInstance: {fileID: 1255702544} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1825274587757073426 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 907652128862280226} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4640c30390a17784990af92ddf341312, type: 3} + m_Name: + m_EditorClassIdentifier: + _warningAnimator: {fileID: 1335203379556626542} +--- !u!95 &1335203379556626542 +Animator: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 907652128862280226} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: 5377b0ef23c777049a02fe97ad950bb5, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 --- !u!224 &907652128862280229 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 907652127959947829, guid: e20680474d73eee49836ff9cbc6d0b28, type: 3} @@ -1764,7 +1803,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 907652127959947829, guid: e20680474d73eee49836ff9cbc6d0b28, type: 3} propertyPath: m_AnchoredPosition.y - value: -398.2 + value: -299.90002 objectReference: {fileID: 0} - target: {fileID: 907652127959947829, guid: e20680474d73eee49836ff9cbc6d0b28, type: 3} propertyPath: m_LocalEulerAnglesHint.x diff --git a/Assets/Scripts/Drag&Drop/MaximumPopulationReachedCardAlert.cs b/Assets/Scripts/Drag&Drop/MaximumPopulationReachedCardAlert.cs new file mode 100644 index 0000000..d9fc02c --- /dev/null +++ b/Assets/Scripts/Drag&Drop/MaximumPopulationReachedCardAlert.cs @@ -0,0 +1,28 @@ +using GatherAndDefend.Events; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class MaximumPopulationReachedCardAlert : MonoBehaviour +{ + [SerializeField] private Animator _warningAnimator; + + private void Start() + { + EventAggregator.Instance.GetEvent().Attach(HandlePopulationChangedEvent); + } + + private void HandlePopulationChangedEvent(PopulationChangedEventArgs args) + { + if (args.Pop / args.MaxPop >= GlobalConfig.Instance.Current.populationWarningPercentage) + { + // Show warning + _warningAnimator.SetBool("isWarning", true); + } + else + { + // Hide warning + _warningAnimator.SetBool("isWarning", false); + } + } +} diff --git a/Assets/Scripts/Drag&Drop/MaximumPopulationReachedCardAlert.cs.meta b/Assets/Scripts/Drag&Drop/MaximumPopulationReachedCardAlert.cs.meta new file mode 100644 index 0000000..69ef4d9 --- /dev/null +++ b/Assets/Scripts/Drag&Drop/MaximumPopulationReachedCardAlert.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4640c30390a17784990af92ddf341312 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Events/PopulationChangedEvent.cs b/Assets/Scripts/Events/PopulationChangedEvent.cs index c9dc916..a988701 100644 --- a/Assets/Scripts/Events/PopulationChangedEvent.cs +++ b/Assets/Scripts/Events/PopulationChangedEvent.cs @@ -1,6 +1,12 @@  using GatherAndDefend.Events; -class PopulationChangedEvent : EventBase +public struct PopulationChangedEventArgs +{ + public float Pop; + public float MaxPop; +} + +public class PopulationChangedEvent : EventBase { } \ No newline at end of file diff --git a/Assets/Scripts/Resource/ResourceManager.cs b/Assets/Scripts/Resource/ResourceManager.cs index cb31eb8..61d76fc 100644 --- a/Assets/Scripts/Resource/ResourceManager.cs +++ b/Assets/Scripts/Resource/ResourceManager.cs @@ -86,7 +86,11 @@ public class ResourceManager : Singleton if (_currentPopulation != value) { _currentPopulation = value; - EventAggregator.Instance.GetEvent().Invoke(); + EventAggregator.Instance.GetEvent().Invoke( + new PopulationChangedEventArgs() { + Pop = _currentPopulation, + MaxPop = MaximumPopulation + }); } } } @@ -98,7 +102,12 @@ public class ResourceManager : Singleton if (_maximumPopulation != value) { _maximumPopulation = value; - EventAggregator.Instance.GetEvent().Invoke(); + EventAggregator.Instance.GetEvent().Invoke( + new PopulationChangedEventArgs() + { + Pop = CurrentPopulation, + MaxPop = _maximumPopulation + }); } } } From 8ec062892a8ab1e342a6fe0e6a24e53ec33d5805 Mon Sep 17 00:00:00 2001 From: Ader_Alisma Date: Fri, 30 May 2025 19:05:03 +0000 Subject: [PATCH 6/6] Added Unit Tooltip (#6) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Affiche un Tooltip d'une unité quand on hover sur l'unité Inclus description et stats de l'unité Co-authored-by: Ader Alisma 01 Reviewed-on: https://gitea.clubconjure.com/Conjure/gather-and-defend/pulls/6 Reviewed-by: EliaGingras1 --- Assets/Design/UnitCards/Archer.asset | 1 + Assets/Design/UnitCards/Castle.asset | 1 + Assets/Design/UnitCards/Farm.asset | 1 + Assets/Design/UnitCards/Farmer.asset | 1 + Assets/Design/UnitCards/FarmerMob.asset | 1 + Assets/Design/UnitCards/House.asset | 1 + Assets/Design/UnitCards/Knight.asset | 1 + Assets/Design/UnitCards/Mill.asset | 1 + .../Sticks/Harversters/axemanStick.prefab | 3 +- .../Harversters/berriesGathererStick.prefab | 3 +- .../Sticks/Harversters/farmerStick.prefab | 5 +- .../Sticks/Harversters/minerStick.prefab | 3 +- Assets/Scenes/Game.unity | 740 ++++++++++++++++++ Assets/Scripts/Ally/Tooltip.meta | 8 + Assets/Scripts/Ally/Tooltip/TooltipManager.cs | 58 ++ .../Ally/Tooltip/TooltipManager.cs.meta | 11 + Assets/Scripts/Ally/Tooltip/TooltipText.cs | 45 ++ .../Scripts/Ally/Tooltip/TooltipText.cs.meta | 11 + .../Drag&Drop/GameObjectPlacementButton.cs | 13 + .../Scripts/Drag&Drop/TilePlacementButton.cs | 16 +- Assets/Scripts/Drag&Drop/UnitCard.cs | 3 + .../Scripts/Drag&Drop/UnitPlacementButton.cs | 11 +- Assets/Scripts/Events/TooltipChangedEvent.cs | 5 + .../Events/TooltipChangedEvent.cs.meta | 11 + .../UnitTree/UpgradePlacementButton.cs | 18 +- 25 files changed, 962 insertions(+), 10 deletions(-) create mode 100644 Assets/Scripts/Ally/Tooltip.meta create mode 100644 Assets/Scripts/Ally/Tooltip/TooltipManager.cs create mode 100644 Assets/Scripts/Ally/Tooltip/TooltipManager.cs.meta create mode 100644 Assets/Scripts/Ally/Tooltip/TooltipText.cs create mode 100644 Assets/Scripts/Ally/Tooltip/TooltipText.cs.meta create mode 100644 Assets/Scripts/Events/TooltipChangedEvent.cs create mode 100644 Assets/Scripts/Events/TooltipChangedEvent.cs.meta diff --git a/Assets/Design/UnitCards/Archer.asset b/Assets/Design/UnitCards/Archer.asset index c542064..ca1504d 100644 --- a/Assets/Design/UnitCards/Archer.asset +++ b/Assets/Design/UnitCards/Archer.asset @@ -16,3 +16,4 @@ MonoBehaviour: _rock: 0 _food: 0 _cooldownInSeconds: 2 + _tooltipString: diff --git a/Assets/Design/UnitCards/Castle.asset b/Assets/Design/UnitCards/Castle.asset index 5df408a..8e97e6d 100644 --- a/Assets/Design/UnitCards/Castle.asset +++ b/Assets/Design/UnitCards/Castle.asset @@ -16,3 +16,4 @@ MonoBehaviour: _rock: 350 _food: 0 _cooldownInSeconds: 30 + _tooltipString: diff --git a/Assets/Design/UnitCards/Farm.asset b/Assets/Design/UnitCards/Farm.asset index dd9e858..1e9e9cc 100644 --- a/Assets/Design/UnitCards/Farm.asset +++ b/Assets/Design/UnitCards/Farm.asset @@ -16,3 +16,4 @@ MonoBehaviour: _rock: 0 _food: 0 _cooldownInSeconds: 0 + _tooltipString: diff --git a/Assets/Design/UnitCards/Farmer.asset b/Assets/Design/UnitCards/Farmer.asset index 73bede4..4cfa31a 100644 --- a/Assets/Design/UnitCards/Farmer.asset +++ b/Assets/Design/UnitCards/Farmer.asset @@ -16,3 +16,4 @@ MonoBehaviour: _rock: 0 _food: 10 _cooldownInSeconds: 0 + _tooltipString: diff --git a/Assets/Design/UnitCards/FarmerMob.asset b/Assets/Design/UnitCards/FarmerMob.asset index de5d664..b059c01 100644 --- a/Assets/Design/UnitCards/FarmerMob.asset +++ b/Assets/Design/UnitCards/FarmerMob.asset @@ -16,3 +16,4 @@ MonoBehaviour: _rock: 0 _food: 20 _cooldownInSeconds: 1 + _tooltipString: Agressive farmer's association MOB diff --git a/Assets/Design/UnitCards/House.asset b/Assets/Design/UnitCards/House.asset index c59ce0c..802db2e 100644 --- a/Assets/Design/UnitCards/House.asset +++ b/Assets/Design/UnitCards/House.asset @@ -16,3 +16,4 @@ MonoBehaviour: _rock: 0 _food: 0 _cooldownInSeconds: 1 + _tooltipString: diff --git a/Assets/Design/UnitCards/Knight.asset b/Assets/Design/UnitCards/Knight.asset index 049b562..704d4fa 100644 --- a/Assets/Design/UnitCards/Knight.asset +++ b/Assets/Design/UnitCards/Knight.asset @@ -16,3 +16,4 @@ MonoBehaviour: _rock: 0 _food: 100 _cooldownInSeconds: 15 + _tooltipString: diff --git a/Assets/Design/UnitCards/Mill.asset b/Assets/Design/UnitCards/Mill.asset index f6004be..dcbdb34 100644 --- a/Assets/Design/UnitCards/Mill.asset +++ b/Assets/Design/UnitCards/Mill.asset @@ -16,3 +16,4 @@ MonoBehaviour: _rock: 0 _food: 0 _cooldownInSeconds: 30 + _tooltipString: diff --git a/Assets/Prefabs/Sticks/Harversters/axemanStick.prefab b/Assets/Prefabs/Sticks/Harversters/axemanStick.prefab index 475a01f..ac39c8b 100644 --- a/Assets/Prefabs/Sticks/Harversters/axemanStick.prefab +++ b/Assets/Prefabs/Sticks/Harversters/axemanStick.prefab @@ -549,10 +549,11 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _lifeBar: {fileID: 5840466301071226527} - _hp: 0 + _hp: 1 _speed: 0 _attack_damage: 0 _attack_interval: 0 + _enemy: {fileID: 0} _harvesterResourcePairs: - _harvesterPrefab: {fileID: 5157279992115123224, guid: 85534a2d6c2add54d864073914646192, type: 3} _resource: 2 diff --git a/Assets/Prefabs/Sticks/Harversters/berriesGathererStick.prefab b/Assets/Prefabs/Sticks/Harversters/berriesGathererStick.prefab index aaab2a1..4776453 100644 --- a/Assets/Prefabs/Sticks/Harversters/berriesGathererStick.prefab +++ b/Assets/Prefabs/Sticks/Harversters/berriesGathererStick.prefab @@ -1237,10 +1237,11 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _lifeBar: {fileID: 2537148645254917234} - _hp: 0 + _hp: 1 _speed: 0 _attack_damage: 0 _attack_interval: 0 + _enemy: {fileID: 0} _harvesterResourcePairs: - _harvesterPrefab: {fileID: 5157279992115123224, guid: 85534a2d6c2add54d864073914646192, type: 3} _resource: 2 diff --git a/Assets/Prefabs/Sticks/Harversters/farmerStick.prefab b/Assets/Prefabs/Sticks/Harversters/farmerStick.prefab index 59005ea..0d94a3b 100644 --- a/Assets/Prefabs/Sticks/Harversters/farmerStick.prefab +++ b/Assets/Prefabs/Sticks/Harversters/farmerStick.prefab @@ -443,7 +443,7 @@ Rigidbody2D: m_Simulated: 1 m_UseFullKinematicContacts: 0 m_UseAutoMass: 0 - m_Mass: 1 + m_Mass: 1000000 m_LinearDrag: 0 m_AngularDrag: 0.05 m_GravityScale: 0 @@ -491,10 +491,11 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _lifeBar: {fileID: 2921647257831789607} - _hp: 0 + _hp: 1 _speed: 0 _attack_damage: 0 _attack_interval: 0 + _enemy: {fileID: 0} _harvesterResourcePairs: - _harvesterPrefab: {fileID: 5157279992115123224} _resource: 2 diff --git a/Assets/Prefabs/Sticks/Harversters/minerStick.prefab b/Assets/Prefabs/Sticks/Harversters/minerStick.prefab index f8d4ba6..9a28bb1 100644 --- a/Assets/Prefabs/Sticks/Harversters/minerStick.prefab +++ b/Assets/Prefabs/Sticks/Harversters/minerStick.prefab @@ -634,10 +634,11 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: _lifeBar: {fileID: 7890345829581758539} - _hp: 0 + _hp: 1 _speed: 0 _attack_damage: 0 _attack_interval: 0 + _enemy: {fileID: 0} _harvesterResourcePairs: - _harvesterPrefab: {fileID: 5157279992115123224, guid: 85534a2d6c2add54d864073914646192, type: 3} _resource: 2 diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity index 0e32a68..bae83e5 100644 --- a/Assets/Scenes/Game.unity +++ b/Assets/Scenes/Game.unity @@ -2600,6 +2600,62 @@ Canvas: m_SortingLayerID: 0 m_SortingOrder: 0 m_TargetDisplay: 0 +--- !u!1 &921843856 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 921843857} + - component: {fileID: 921843858} + m_Layer: 5 + m_Name: TooltipGUI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &921843857 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 921843856} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.5391, y: 1.5391, z: 1.5391} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1750497990} + - {fileID: 979791170} + m_Father: {fileID: 1092900232} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -681, y: -223} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &921843858 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 921843856} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3c61083f9f8ea6441afcccd38ee6428e, type: 3} + m_Name: + m_EditorClassIdentifier: + _tooltipPanel: {fileID: 1750497989} + _tooltipDescription: {fileID: 1661484071} + _tooltipHp: {fileID: 1968535036} + _tooltipDmg: {fileID: 1811362476} + _tooltipAttackSpeed: {fileID: 1562415857} --- !u!1 &978587365 GameObject: m_ObjectHideFlags: 0 @@ -2746,6 +2802,73 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 978587365} m_CullTransparentMesh: 1 +--- !u!1 &979791169 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 979791170} + - component: {fileID: 979791171} + m_Layer: 5 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &979791170 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 979791169} + 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_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1661484070} + - {fileID: 1968535035} + - {fileID: 1811362475} + - {fileID: 1562415856} + m_Father: {fileID: 921843857} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -87, y: 86} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &979791171 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 979791169} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 5 + m_Right: 5 + m_Top: 5 + m_Bottom: 5 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 --- !u!1 &1092900228 GameObject: m_ObjectHideFlags: 0 @@ -2847,6 +2970,7 @@ RectTransform: - {fileID: 115274809} - {fileID: 588460020} - {fileID: 179679298} + - {fileID: 921843857} m_Father: {fileID: 0} m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -3968,6 +4092,141 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: b116bc5489ed8524da52c4dbc835640e, type: 3} +--- !u!1 &1562415855 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1562415856} + - component: {fileID: 1562415858} + - component: {fileID: 1562415857} + m_Layer: 5 + m_Name: TooltipAttackSpeed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1562415856 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1562415855} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 979791170} + m_RootOrder: 3 + 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: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1562415857 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1562415855} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1562415858 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1562415855} + m_CullTransparentMesh: 1 --- !u!1 &1622690417 GameObject: m_ObjectHideFlags: 0 @@ -4046,6 +4305,141 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1661484069 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1661484070} + - component: {fileID: 1661484072} + - component: {fileID: 1661484071} + m_Layer: 5 + m_Name: TooltipDescription + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1661484070 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1661484069} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 979791170} + 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: 273.4146, y: 78.0236} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1661484071 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1661484069} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1661484072 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1661484069} + m_CullTransparentMesh: 1 --- !u!1 &1709530843 GameObject: m_ObjectHideFlags: 0 @@ -4179,6 +4573,82 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1709530843} m_CullTransparentMesh: 1 +--- !u!1 &1750497989 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1750497990} + - component: {fileID: 1750497992} + - component: {fileID: 1750497991} + m_Layer: 5 + m_Name: TooltipPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1750497990 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1750497989} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 3.0415, y: 3.0415, z: 3.0415} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 921843857} + 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, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1750497991 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1750497989} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 0.392} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1750497992 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1750497989} + m_CullTransparentMesh: 1 --- !u!114 &1760532843 MonoBehaviour: m_ObjectHideFlags: 0 @@ -4328,6 +4798,276 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1761692192} m_CullTransparentMesh: 1 +--- !u!1 &1811362474 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1811362475} + - component: {fileID: 1811362477} + - component: {fileID: 1811362476} + m_Layer: 5 + m_Name: TooltipDamage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1811362475 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1811362474} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 979791170} + m_RootOrder: 2 + 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: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1811362476 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1811362474} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1811362477 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1811362474} + m_CullTransparentMesh: 1 +--- !u!1 &1968535034 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1968535035} + - component: {fileID: 1968535037} + - component: {fileID: 1968535036} + m_Layer: 5 + m_Name: TooltipHp + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1968535035 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1968535034} + 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_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 979791170} + m_RootOrder: 1 + 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: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1968535036 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1968535034} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &1968535037 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1968535034} + m_CullTransparentMesh: 1 --- !u!1 &2019202046 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Ally/Tooltip.meta b/Assets/Scripts/Ally/Tooltip.meta new file mode 100644 index 0000000..7c7fb8e --- /dev/null +++ b/Assets/Scripts/Ally/Tooltip.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 54b66411b2ca31042865510b55cf4608 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Ally/Tooltip/TooltipManager.cs b/Assets/Scripts/Ally/Tooltip/TooltipManager.cs new file mode 100644 index 0000000..5f23e6c --- /dev/null +++ b/Assets/Scripts/Ally/Tooltip/TooltipManager.cs @@ -0,0 +1,58 @@ +using GatherAndDefend.Events; +using System; +using System.Diagnostics; + +public class TooltipManager : Singleton +{ + private string _description; + public string Description { get { return _description; } } + private string _hp; + public string Hp { get { return _hp; } } + private string _damage; + public string Damage { get { return _damage; } } + private string _attackSpeed; + public string AttackSpeed { get { return _attackSpeed; } } + private bool _tooltipVisibility; + public bool TooltipVisibility { get { return _tooltipVisibility; } } + + public void ShowTooltip(UnitCard unitCard, string hp, string dmg, string atkSpeed, bool isNotTile = true) + { + string description = DescriptionManager(unitCard); + _tooltipVisibility = true; + _description = description; + if (hp.Equals("0") && isNotTile) + { + _hp = "1"; + } else + { + _hp = hp; + } + _damage = dmg; + _attackSpeed = atkSpeed; + EventAggregator.Instance.GetEvent().Invoke(); + } + + public void HideToolTip() + { + _tooltipVisibility = false; + EventAggregator.Instance.GetEvent().Invoke(); + } + + private string DescriptionManager(UnitCard unitCard) + { + if (unitCard != null) + { + string tooltipDescription; + if (unitCard.TooltipString != null && unitCard.TooltipString.Length > 0) + { + tooltipDescription = unitCard.TooltipString; + } + else + { + tooltipDescription = "Exemple de description d'unité pour " + unitCard.name.ToLower(); + } + return tooltipDescription; + } + return null; + } +} diff --git a/Assets/Scripts/Ally/Tooltip/TooltipManager.cs.meta b/Assets/Scripts/Ally/Tooltip/TooltipManager.cs.meta new file mode 100644 index 0000000..13f9843 --- /dev/null +++ b/Assets/Scripts/Ally/Tooltip/TooltipManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c319ef77aa02448488fc0f25f670426b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Ally/Tooltip/TooltipText.cs b/Assets/Scripts/Ally/Tooltip/TooltipText.cs new file mode 100644 index 0000000..0c70365 --- /dev/null +++ b/Assets/Scripts/Ally/Tooltip/TooltipText.cs @@ -0,0 +1,45 @@ +using GatherAndDefend.Events; +using TMPro; +using UnityEngine; + +public class TooltipText : MonoBehaviour +{ + private TooltipManager _tooltipManager; + [SerializeField] + private GameObject _tooltipPanel; + [SerializeField] + private TextMeshProUGUI _tooltipDescription; + [SerializeField] + private TextMeshProUGUI _tooltipHp; + [SerializeField] + private TextMeshProUGUI _tooltipDmg; + [SerializeField] + private TextMeshProUGUI _tooltipAttackSpeed; + private const string EMPTY_STRING = ""; + private void Start() + { + _tooltipManager = TooltipManager.Instance; + EventAggregator.Instance.GetEvent().Attach(OnEventUpdate); + } + + // Update is called once per frame + private void OnEventUpdate() + { + if (_tooltipManager.TooltipVisibility) + { + _tooltipPanel.SetActive(true); + _tooltipDescription.text = _tooltipManager.Description; + _tooltipHp.text = (_tooltipManager.Hp.Equals("0") ? ("Intouchable") : "Points de vie: " + _tooltipManager.Hp); + _tooltipDmg.text = (_tooltipManager.Damage.Equals("0") ? "Ne peut pas attaquer" : "Dommage: " + _tooltipManager.Damage); + _tooltipAttackSpeed.text = (_tooltipManager.Damage.Equals("0") ? EMPTY_STRING : "Vitesse d'attaque: " + _tooltipManager.AttackSpeed); + } + else + { + _tooltipPanel.SetActive(false); + _tooltipDescription.text = EMPTY_STRING; + _tooltipHp.text = EMPTY_STRING; + _tooltipDmg.text = EMPTY_STRING; + _tooltipAttackSpeed.text = EMPTY_STRING; + } + } +} diff --git a/Assets/Scripts/Ally/Tooltip/TooltipText.cs.meta b/Assets/Scripts/Ally/Tooltip/TooltipText.cs.meta new file mode 100644 index 0000000..e02b652 --- /dev/null +++ b/Assets/Scripts/Ally/Tooltip/TooltipText.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3c61083f9f8ea6441afcccd38ee6428e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Drag&Drop/GameObjectPlacementButton.cs b/Assets/Scripts/Drag&Drop/GameObjectPlacementButton.cs index b9e0512..d75de55 100644 --- a/Assets/Scripts/Drag&Drop/GameObjectPlacementButton.cs +++ b/Assets/Scripts/Drag&Drop/GameObjectPlacementButton.cs @@ -2,6 +2,7 @@ using System.Linq; using UnityEditor; using UnityEngine; +using UnityEngine.EventSystems; public class GameObjectPlacementButton : UnitPlacementButton { @@ -81,4 +82,16 @@ public class GameObjectPlacementButton : UnitPlacementButton detection.transform.localPosition = detectionRect.position; detection.transform.localScale = detectionRect.size; } + + public override void OnPointerEnter(PointerEventData eventData) + { + Ally allyObj = _prefab.GetComponent(); + TooltipManager.Instance.ShowTooltip(_unitCardInformation, allyObj.Hp.ToString(), allyObj.AttackDamage.ToString(), allyObj.AttackInterval.ToString()); + } + + public override void OnPointerExit(PointerEventData eventData) + { + base.OnPointerExit(eventData); + TooltipManager.Instance.HideToolTip(); + } } \ No newline at end of file diff --git a/Assets/Scripts/Drag&Drop/TilePlacementButton.cs b/Assets/Scripts/Drag&Drop/TilePlacementButton.cs index 3390f49..aae2d1e 100644 --- a/Assets/Scripts/Drag&Drop/TilePlacementButton.cs +++ b/Assets/Scripts/Drag&Drop/TilePlacementButton.cs @@ -1,13 +1,13 @@ -using System.Collections; -using System.Collections.Generic; using UnityEngine; +using UnityEngine.EventSystems; public class TilePlacementButton : UnitPlacementButton { public LevelTile tile; + const string NULL = "0"; protected override bool CanPlace() -{ + { return ResourceManager.Instance.EnoughFor(_unitCardInformation.Rock, _unitCardInformation.Wood, _unitCardInformation.Food) && base.CanPlace(); } @@ -23,4 +23,14 @@ public class TilePlacementButton : UnitPlacementButton rend.sortingOrder = 2; return placeholder; } + + public override void OnPointerEnter(PointerEventData eventData) + { + TooltipManager.Instance.ShowTooltip(_unitCardInformation, NULL, NULL, NULL, false); + } + + public override void OnPointerExit(PointerEventData eventData) + { + TooltipManager.Instance.HideToolTip(); + } } diff --git a/Assets/Scripts/Drag&Drop/UnitCard.cs b/Assets/Scripts/Drag&Drop/UnitCard.cs index 81a2eda..d7eecd5 100644 --- a/Assets/Scripts/Drag&Drop/UnitCard.cs +++ b/Assets/Scripts/Drag&Drop/UnitCard.cs @@ -11,9 +11,12 @@ public class UnitCard : ScriptableObject protected int _food; [SerializeField] protected int _cooldownInSeconds = 3; + [SerializeField, TextArea(10, 100)] + protected string _tooltipString; public int Wood => _wood; public int Rock => _rock; public int Food => _food; public int CooldownInSeconds => _cooldownInSeconds; + public string TooltipString => _tooltipString; } \ No newline at end of file diff --git a/Assets/Scripts/Drag&Drop/UnitPlacementButton.cs b/Assets/Scripts/Drag&Drop/UnitPlacementButton.cs index 95639bb..692e876 100644 --- a/Assets/Scripts/Drag&Drop/UnitPlacementButton.cs +++ b/Assets/Scripts/Drag&Drop/UnitPlacementButton.cs @@ -5,7 +5,7 @@ using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; -public abstract class UnitPlacementButton : PlacementButton +public abstract class UnitPlacementButton : PlacementButton, IPointerEnterHandler, IPointerExitHandler { [SerializeField] protected Sprite _detectionRangeSprite; @@ -24,6 +24,11 @@ public abstract class UnitPlacementButton : PlacementButton protected Image _cooldownIndicator; protected bool _lockedByCooldown; + protected override void Start() + { + base.Start(); + } + protected override void Update() { base.Update(); @@ -77,4 +82,8 @@ public abstract class UnitPlacementButton : PlacementButton { return base.CanPlace() && !_lockedByCooldown; } + + public virtual void OnPointerEnter(PointerEventData eventData){} + + public virtual void OnPointerExit(PointerEventData eventData){} } diff --git a/Assets/Scripts/Events/TooltipChangedEvent.cs b/Assets/Scripts/Events/TooltipChangedEvent.cs new file mode 100644 index 0000000..a153eaf --- /dev/null +++ b/Assets/Scripts/Events/TooltipChangedEvent.cs @@ -0,0 +1,5 @@ +using GatherAndDefend.Events; + +public class TooltipChangedEvent : EventBase +{ +} \ No newline at end of file diff --git a/Assets/Scripts/Events/TooltipChangedEvent.cs.meta b/Assets/Scripts/Events/TooltipChangedEvent.cs.meta new file mode 100644 index 0000000..8b842d2 --- /dev/null +++ b/Assets/Scripts/Events/TooltipChangedEvent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 927ca3622899c4848838a81957e849eb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/UnitTree/UpgradePlacementButton.cs b/Assets/Scripts/UnitTree/UpgradePlacementButton.cs index 69ecaa2..75e4623 100644 --- a/Assets/Scripts/UnitTree/UpgradePlacementButton.cs +++ b/Assets/Scripts/UnitTree/UpgradePlacementButton.cs @@ -4,7 +4,7 @@ using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; -public class UpgradePlacementButton : MonoBehaviour, IPointerClickHandler +public class UpgradePlacementButton : MonoBehaviour, IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler { private Button _button; @@ -77,6 +77,7 @@ public class UpgradePlacementButton : MonoBehaviour, IPointerClickHandler resourceManager.Remove(_unitCardInformation.Rock, _unitCardInformation.Wood, _unitCardInformation.Food); Destroy(_unitGameObject); Destroy(_buttonContainer); + HideTooltip(); } } @@ -93,4 +94,19 @@ public class UpgradePlacementButton : MonoBehaviour, IPointerClickHandler _canvas = canvas; _unitArt.sprite = unitUpgrade.UpgradeCardArt; } + public void OnPointerEnter(PointerEventData eventData) + { + Ally allyObj = _prefab.GetComponent(); + TooltipManager.Instance.ShowTooltip(_unitCardInformation, allyObj.Hp.ToString(), allyObj.AttackDamage.ToString(), allyObj.AttackInterval.ToString()); + } + + public void OnPointerExit(PointerEventData eventData) + { + HideTooltip(); + } + + private void HideTooltip() + { + TooltipManager.Instance.HideToolTip(); + } } \ No newline at end of file