From e841438997d7ac5f63585f4fb0df61a75b4105d7 Mon Sep 17 00:00:00 2001 From: dal4segno Date: Mon, 23 Feb 2026 16:55:32 +0900 Subject: [PATCH] =?UTF-8?q?=EB=8C=80=EC=9E=A5=EA=B0=84=EC=9D=84=20?= =?UTF-8?q?=EC=9D=B4=EC=9A=A9=ED=95=9C=20=EC=97=85=EA=B7=B8=EB=A0=88?= =?UTF-8?q?=EC=9D=B4=EB=93=9C=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assembly-CSharp.csproj | 4 + Assets/Prefabs/Blacksmith.prefab | 14 + Assets/Resources/Data.meta | 8 + Assets/Resources/Data/ScriptableObjects.meta | 8 + .../Data/ScriptableObjects/Upgrade.meta | 8 + .../ScriptableObjects/Upgrade/Upgrade1.asset | 27 + .../Upgrade/Upgrade1.asset.meta | 8 + .../ScriptableObjects/Upgrade/Upgrade10.asset | 27 + .../Upgrade/Upgrade10.asset.meta | 8 + .../ScriptableObjects/Upgrade/Upgrade11.asset | 27 + .../Upgrade/Upgrade11.asset.meta | 8 + .../ScriptableObjects/Upgrade/Upgrade12.asset | 27 + .../Upgrade/Upgrade12.asset.meta | 8 + .../ScriptableObjects/Upgrade/Upgrade13.asset | 27 + .../Upgrade/Upgrade13.asset.meta | 8 + .../ScriptableObjects/Upgrade/Upgrade14.asset | 27 + .../Upgrade/Upgrade14.asset.meta | 8 + .../ScriptableObjects/Upgrade/Upgrade15.asset | 27 + .../Upgrade/Upgrade15.asset.meta | 8 + .../ScriptableObjects/Upgrade/Upgrade2.asset | 27 + .../Upgrade/Upgrade2.asset.meta | 8 + .../ScriptableObjects/Upgrade/Upgrade3.asset | 27 + .../Upgrade/Upgrade3.asset.meta | 8 + .../ScriptableObjects/Upgrade/Upgrade4.asset | 27 + .../Upgrade/Upgrade4.asset.meta | 8 + .../ScriptableObjects/Upgrade/Upgrade5.asset | 27 + .../Upgrade/Upgrade5.asset.meta | 8 + .../ScriptableObjects/Upgrade/Upgrade6.asset | 27 + .../Upgrade/Upgrade6.asset.meta | 8 + .../ScriptableObjects/Upgrade/Upgrade7.asset | 27 + .../Upgrade/Upgrade7.asset.meta | 8 + .../ScriptableObjects/Upgrade/Upgrade8.asset | 27 + .../Upgrade/Upgrade8.asset.meta | 8 + .../ScriptableObjects/Upgrade/Upgrade9.asset | 27 + .../Upgrade/Upgrade9.asset.meta | 8 + Assets/Scenes/GameMain.unity | 13 +- Assets/Scripts/Buildings.meta | 8 + Assets/Scripts/Buildings/Blacksmith.cs | 126 +++++ Assets/Scripts/Buildings/Blacksmith.cs.meta | 2 + Assets/Scripts/PlayerStats.cs | 21 + Assets/Scripts/PlayerUpgradeManager.cs | 4 + Assets/Scripts/UI.meta | 8 + Assets/Scripts/UI/UpgradeListItem.cs | 228 ++++++++ Assets/Scripts/UI/UpgradeListItem.cs.meta | 2 + Assets/Scripts/UI/UpgradeListPopup.cs | 175 ++++++ Assets/Scripts/UI/UpgradeListPopup.cs.meta | 2 + Assets/UI/Upgrade/UpgradeListItem.prefab | 19 + Assets/UI/Upgrade/UpgradeListPopup.prefab | 504 +----------------- 48 files changed, 1189 insertions(+), 490 deletions(-) create mode 100644 Assets/Resources/Data.meta create mode 100644 Assets/Resources/Data/ScriptableObjects.meta create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade.meta create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade1.asset create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade1.asset.meta create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade10.asset create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade10.asset.meta create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade11.asset create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade11.asset.meta create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade12.asset create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade12.asset.meta create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade13.asset create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade13.asset.meta create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade14.asset create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade14.asset.meta create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade15.asset create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade15.asset.meta create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade2.asset create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade2.asset.meta create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade3.asset create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade3.asset.meta create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade4.asset create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade4.asset.meta create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade5.asset create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade5.asset.meta create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade6.asset create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade6.asset.meta create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade7.asset create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade7.asset.meta create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade8.asset create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade8.asset.meta create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade9.asset create mode 100644 Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade9.asset.meta create mode 100644 Assets/Scripts/Buildings.meta create mode 100644 Assets/Scripts/Buildings/Blacksmith.cs create mode 100644 Assets/Scripts/Buildings/Blacksmith.cs.meta create mode 100644 Assets/Scripts/UI.meta create mode 100644 Assets/Scripts/UI/UpgradeListItem.cs create mode 100644 Assets/Scripts/UI/UpgradeListItem.cs.meta create mode 100644 Assets/Scripts/UI/UpgradeListPopup.cs create mode 100644 Assets/Scripts/UI/UpgradeListPopup.cs.meta diff --git a/Assembly-CSharp.csproj b/Assembly-CSharp.csproj index 35fea36..0ef1135 100644 --- a/Assembly-CSharp.csproj +++ b/Assembly-CSharp.csproj @@ -53,9 +53,11 @@ + + @@ -96,6 +98,7 @@ + @@ -118,6 +121,7 @@ + diff --git a/Assets/Prefabs/Blacksmith.prefab b/Assets/Prefabs/Blacksmith.prefab index a72eb3b..84c7222 100644 --- a/Assets/Prefabs/Blacksmith.prefab +++ b/Assets/Prefabs/Blacksmith.prefab @@ -11,6 +11,7 @@ GameObject: - component: {fileID: 5854748735229546762} - component: {fileID: 4404305322825062480} - component: {fileID: 8736618315465008189} + - component: {fileID: 3088394590933577447} m_Layer: 0 m_Name: Blacksmith m_TagString: Untagged @@ -80,6 +81,19 @@ MonoBehaviour: AutoObjectParentSync: 1 SyncOwnerTransformWhenParented: 1 AllowOwnerToParent: 0 +--- !u!114 &3088394590933577447 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3769411674882976201} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 39d108eb3babe48409cc4dfc803dbbe4, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Northbound.Blacksmith + _upgradePopupPrefab: {fileID: 2939937666831822298, guid: 534816991b3afe149b9a117e920d83eb, type: 3} --- !u!1001 &6017823276457359066 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/Data.meta b/Assets/Resources/Data.meta new file mode 100644 index 0000000..fdb2134 --- /dev/null +++ b/Assets/Resources/Data.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 633be28f04d3950499d3ebbf2758e23b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/ScriptableObjects.meta b/Assets/Resources/Data/ScriptableObjects.meta new file mode 100644 index 0000000..19414d8 --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 693a55ca03fd43a418616dd59ef601c9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade.meta b/Assets/Resources/Data/ScriptableObjects/Upgrade.meta new file mode 100644 index 0000000..66b232c --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ec21abff735922741a51d7fbbb56aae2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade1.asset b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade1.asset new file mode 100644 index 0000000..c011f19 --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade1.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f134815569ad014e9ccc81ddc443c4c, type: 3} + m_Name: Upgrade1 + m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.UpgradeData + id: 1 + memo: "\uCCB4\uB825 \uC99D\uAC00 Lv.1" + upgradeCategory: combat + upgradeTarget: person + mana: 200 + requireUpgradeId: + effectStatList: + - player_max_hp + effectOpList: + - add + effectValueList: + - 50 + sortOrder: 1 diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade1.asset.meta b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade1.asset.meta new file mode 100644 index 0000000..1c7ba28 --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade1.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 44903308c714f6947914cbe297fbdfb7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade10.asset b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade10.asset new file mode 100644 index 0000000..3b8bc18 --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade10.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f134815569ad014e9ccc81ddc443c4c, type: 3} + m_Name: Upgrade10 + m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.UpgradeData + id: 10 + memo: "\uB178\uB3D9\uB825 \uC99D\uAC00 Lv.1" + upgradeCategory: harvest + upgradeTarget: person + mana: 200 + requireUpgradeId: + effectStatList: + - player_manpower + effectOpList: + - add + effectValueList: + - 5 + sortOrder: 10 diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade10.asset.meta b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade10.asset.meta new file mode 100644 index 0000000..64d97a9 --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade10.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c4380276ab4a025499ac49c28afc5fe6 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade11.asset b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade11.asset new file mode 100644 index 0000000..b4ad9e7 --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade11.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f134815569ad014e9ccc81ddc443c4c, type: 3} + m_Name: Upgrade11 + m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.UpgradeData + id: 11 + memo: "\uB178\uB3D9\uB825 \uC99D\uAC00 Lv.2" + upgradeCategory: harvest + upgradeTarget: person + mana: 300 + requireUpgradeId: 0a000000 + effectStatList: + - player_manpower + effectOpList: + - add + effectValueList: + - 10 + sortOrder: 11 diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade11.asset.meta b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade11.asset.meta new file mode 100644 index 0000000..b427aa0 --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade11.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cf5af8525b9d7c34da291f64cd18cc5a +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade12.asset b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade12.asset new file mode 100644 index 0000000..f395916 --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade12.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f134815569ad014e9ccc81ddc443c4c, type: 3} + m_Name: Upgrade12 + m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.UpgradeData + id: 12 + memo: "\uB178\uB3D9\uB825 \uC99D\uAC00 Lv.3" + upgradeCategory: harvest + upgradeTarget: person + mana: 400 + requireUpgradeId: 070000000a000000 + effectStatList: + - player_manpower + effectOpList: + - add + effectValueList: + - 20 + sortOrder: 12 diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade12.asset.meta b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade12.asset.meta new file mode 100644 index 0000000..cb3f54f --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade12.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4e85b0527bc16124ba251da975a08b7d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade13.asset b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade13.asset new file mode 100644 index 0000000..55adf2c --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade13.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f134815569ad014e9ccc81ddc443c4c, type: 3} + m_Name: Upgrade13 + m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.UpgradeData + id: 13 + memo: "\uC774\uB3D9\uC18D\uB3C4 \uC99D\uAC00 Lv.1" + upgradeCategory: scout + upgradeTarget: person + mana: 200 + requireUpgradeId: + effectStatList: + - player_move_speed + effectOpList: + - mul + effectValueList: + - 1.1 + sortOrder: 13 diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade13.asset.meta b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade13.asset.meta new file mode 100644 index 0000000..968928e --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade13.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b97eb48c01c4c5b449497d8f3657921e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade14.asset b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade14.asset new file mode 100644 index 0000000..82869a7 --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade14.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f134815569ad014e9ccc81ddc443c4c, type: 3} + m_Name: Upgrade14 + m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.UpgradeData + id: 14 + memo: "\uC774\uB3D9\uC18D\uB3C4 \uC99D\uAC00 Lv.2" + upgradeCategory: scout + upgradeTarget: person + mana: 300 + requireUpgradeId: 0d000000 + effectStatList: + - player_move_speed + effectOpList: + - mul + effectValueList: + - 1.2 + sortOrder: 14 diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade14.asset.meta b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade14.asset.meta new file mode 100644 index 0000000..74cffd3 --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade14.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e19c880ad7090f2459ce181137ae0d52 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade15.asset b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade15.asset new file mode 100644 index 0000000..c8cd64a --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade15.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f134815569ad014e9ccc81ddc443c4c, type: 3} + m_Name: Upgrade15 + m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.UpgradeData + id: 15 + memo: "\uC774\uB3D9\uC18D\uB3C4 \uC99D\uAC00 Lv.3" + upgradeCategory: scout + upgradeTarget: person + mana: 400 + requireUpgradeId: 0e000000 + effectStatList: + - player_move_speed + effectOpList: + - mul + effectValueList: + - 1.3 + sortOrder: 15 diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade15.asset.meta b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade15.asset.meta new file mode 100644 index 0000000..75d88cb --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade15.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e70470dae56a6324485c325baa2a09cd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade2.asset b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade2.asset new file mode 100644 index 0000000..588194a --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade2.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f134815569ad014e9ccc81ddc443c4c, type: 3} + m_Name: Upgrade2 + m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.UpgradeData + id: 2 + memo: "\uCCB4\uB825 \uC99D\uAC00 Lv.2" + upgradeCategory: combat + upgradeTarget: person + mana: 300 + requireUpgradeId: 01000000 + effectStatList: + - player_max_hp + effectOpList: + - add + effectValueList: + - 100 + sortOrder: 2 diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade2.asset.meta b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade2.asset.meta new file mode 100644 index 0000000..6e3f78b --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade2.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b6c266c42e14ff843b601a91f2329bea +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade3.asset b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade3.asset new file mode 100644 index 0000000..05c2369 --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade3.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f134815569ad014e9ccc81ddc443c4c, type: 3} + m_Name: Upgrade3 + m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.UpgradeData + id: 3 + memo: "\uCCB4\uB825 \uC99D\uAC00 Lv.3" + upgradeCategory: combat + upgradeTarget: person + mana: 400 + requireUpgradeId: 0200000005000000 + effectStatList: + - player_max_hp + effectOpList: + - add + effectValueList: + - 150 + sortOrder: 3 diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade3.asset.meta b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade3.asset.meta new file mode 100644 index 0000000..658ca8a --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade3.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 19d1eec49f4c40b4983579b5153e6d17 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade4.asset b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade4.asset new file mode 100644 index 0000000..cba912e --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade4.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f134815569ad014e9ccc81ddc443c4c, type: 3} + m_Name: Upgrade4 + m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.UpgradeData + id: 4 + memo: "\uACF5\uACA9\uB825 \uC99D\uAC00 Lv.1" + upgradeCategory: combat + upgradeTarget: person + mana: 200 + requireUpgradeId: + effectStatList: + - player_atk_damage + effectOpList: + - add + effectValueList: + - 5 + sortOrder: 4 diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade4.asset.meta b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade4.asset.meta new file mode 100644 index 0000000..54a1c7f --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade4.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 753e2ab2fa8922841be9a8d1b10947b7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade5.asset b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade5.asset new file mode 100644 index 0000000..724c4a8 --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade5.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f134815569ad014e9ccc81ddc443c4c, type: 3} + m_Name: Upgrade5 + m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.UpgradeData + id: 5 + memo: "\uACF5\uACA9\uB825 \uC99D\uAC00 Lv.2" + upgradeCategory: combat + upgradeTarget: person + mana: 300 + requireUpgradeId: 04000000 + effectStatList: + - player_atk_damage + effectOpList: + - add + effectValueList: + - 10 + sortOrder: 5 diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade5.asset.meta b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade5.asset.meta new file mode 100644 index 0000000..6926132 --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade5.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a6714280457a76540a7be17859d22d2d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade6.asset b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade6.asset new file mode 100644 index 0000000..d4c158b --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade6.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f134815569ad014e9ccc81ddc443c4c, type: 3} + m_Name: Upgrade6 + m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.UpgradeData + id: 6 + memo: "\uACF5\uACA9\uB825 \uC99D\uAC00 Lv.3" + upgradeCategory: combat + upgradeTarget: person + mana: 400 + requireUpgradeId: 0200000005000000 + effectStatList: + - player_atk_damage + effectOpList: + - add + effectValueList: + - 15 + sortOrder: 6 diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade6.asset.meta b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade6.asset.meta new file mode 100644 index 0000000..c074f33 --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade6.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 88112bf6f5fac2b48b232ccbfba2db39 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade7.asset b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade7.asset new file mode 100644 index 0000000..906e07a --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade7.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f134815569ad014e9ccc81ddc443c4c, type: 3} + m_Name: Upgrade7 + m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.UpgradeData + id: 7 + memo: "\uC790\uC6D0 \uCD5C\uB300 \uC6A9\uB7C9 \uC99D\uAC00 Lv.1" + upgradeCategory: harvest + upgradeTarget: person + mana: 200 + requireUpgradeId: + effectStatList: + - player_capacity + effectOpList: + - add + effectValueList: + - 20 + sortOrder: 7 diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade7.asset.meta b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade7.asset.meta new file mode 100644 index 0000000..251199d --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade7.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4ab81608eee38814fbf6aa212e1be77f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade8.asset b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade8.asset new file mode 100644 index 0000000..95284dd --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade8.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f134815569ad014e9ccc81ddc443c4c, type: 3} + m_Name: Upgrade8 + m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.UpgradeData + id: 8 + memo: "\uC790\uC6D0 \uCD5C\uB300 \uC6A9\uB7C9 \uC99D\uAC00 Lv.2" + upgradeCategory: harvest + upgradeTarget: person + mana: 300 + requireUpgradeId: 07000000 + effectStatList: + - player_capacity + effectOpList: + - add + effectValueList: + - 50 + sortOrder: 8 diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade8.asset.meta b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade8.asset.meta new file mode 100644 index 0000000..38232bd --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade8.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2d2e1368141991b4094242daed1d2214 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade9.asset b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade9.asset new file mode 100644 index 0000000..6062d88 --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade9.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f134815569ad014e9ccc81ddc443c4c, type: 3} + m_Name: Upgrade9 + m_EditorClassIdentifier: Assembly-CSharp::Northbound.Data.UpgradeData + id: 9 + memo: "\uC790\uC6D0 \uCD5C\uB300 \uC6A9\uB7C9 \uC99D\uAC00 Lv.3" + upgradeCategory: harvest + upgradeTarget: person + mana: 400 + requireUpgradeId: 070000000a000000 + effectStatList: + - player_capacity + effectOpList: + - add + effectValueList: + - 100 + sortOrder: 9 diff --git a/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade9.asset.meta b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade9.asset.meta new file mode 100644 index 0000000..ceb31da --- /dev/null +++ b/Assets/Resources/Data/ScriptableObjects/Upgrade/Upgrade9.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 07d8f3587bbbbb74e983ee9d0a175e49 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/GameMain.unity b/Assets/Scenes/GameMain.unity index a8d30b3..ee95fdd 100644 --- a/Assets/Scenes/GameMain.unity +++ b/Assets/Scenes/GameMain.unity @@ -2069,7 +2069,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 12780dc9ee390c742b6cbd405e59a916, type: 3} m_Name: m_EditorClassIdentifier: Assembly-CSharp::Northbound.UpgradeDatabase - _upgradeDataList: [] --- !u!224 &1282800775 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 8873176760615364646, guid: a470599cc0481164ab487ecf39b1ebd0, type: 3} @@ -3042,6 +3041,10 @@ PrefabInstance: propertyPath: m_Name value: Blacksmith objectReference: {fileID: 0} + - target: {fileID: 3769411674882976201, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3} + propertyPath: m_Layer + value: 7 + objectReference: {fileID: 0} - target: {fileID: 5854748735229546762, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3} propertyPath: m_LocalPosition.x value: 20 @@ -3082,14 +3085,14 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 6864316733236988811, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3} + propertyPath: m_Layer + value: 7 + objectReference: {fileID: 0} - target: {fileID: 8736618315465008189, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3} propertyPath: GlobalObjectIdHash value: 1738409839 objectReference: {fileID: 0} - - target: {fileID: 9130994837512732106, guid: 368961a0f2d71ce4aad5d8ffe52e0b7f, type: 3} - propertyPath: m_Convex - value: 1 - objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] diff --git a/Assets/Scripts/Buildings.meta b/Assets/Scripts/Buildings.meta new file mode 100644 index 0000000..a222e90 --- /dev/null +++ b/Assets/Scripts/Buildings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3cdca32e565bc4942912b9bc2233349e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Buildings/Blacksmith.cs b/Assets/Scripts/Buildings/Blacksmith.cs new file mode 100644 index 0000000..c6397af --- /dev/null +++ b/Assets/Scripts/Buildings/Blacksmith.cs @@ -0,0 +1,126 @@ +using UnityEngine; +using Unity.Netcode; + +namespace Northbound +{ + /// + /// 블랙스미스 건물 - 업그레이드 구매 가능 + /// + public class Blacksmith : MonoBehaviour, IInteractable + { + [Header("UI Reference")] + [SerializeField] private GameObject _upgradePopupPrefab; + + private GameObject _popupInstance; + private UpgradeListPopup _upgradePopup; + + private void Awake() + { + // 프리팹이 없으면 Resources에서 로드 + if (_upgradePopupPrefab == null) + { + _upgradePopupPrefab = Resources.Load("UI/Upgrade/UpgradeListPopup"); + } + } + + #region IInteractable Implementation + + public bool CanInteract(ulong playerId) + { + return true; + } + + public void Interact(ulong playerId) + { + OpenUpgradePopup(playerId); + } + + public string GetInteractionPrompt() + { + return "[F] 업그레이드"; + } + + public string GetInteractionAnimation() + { + return ""; + } + + public EquipmentData GetEquipmentData() + { + return null; + } + + public Transform GetTransform() + { + return transform; + } + + + + + #endregion + + private void OpenUpgradePopup(ulong playerId) + { + // 플레이어의 UpgradeManager와 Stats 찾기 + var playerObj = GetPlayerObject(playerId); + if (playerObj == null) + { + Debug.LogWarning($"[Blacksmith] 플레이어 {playerId}를 찾을 수 없습니다."); + return; + } + + var upgradeManager = playerObj.GetComponent(); + var playerStats = playerObj.GetComponent(); + + if (upgradeManager == null || playerStats == null) + { + Debug.LogWarning("[Blacksmith] PlayerUpgradeManager 또는 PlayerStats가 없습니다."); + return; + } + + // 팝업 생성 + if (_popupInstance == null && _upgradePopupPrefab != null) + { + _popupInstance = Instantiate(_upgradePopupPrefab); + _upgradePopup = _popupInstance.GetComponent(); + + if (_upgradePopup == null) + { + _upgradePopup = _popupInstance.AddComponent(); + } + } + + // 팝업 초기화 및 열기 + if (_upgradePopup != null) + { + _upgradePopup.Initialize(upgradeManager, playerStats); + } + } + + private GameObject GetPlayerObject(ulong playerId) + { + if (NetworkManager.Singleton == null) return null; + + // NetworkManager에서 플레이어 오브젝트 찾기 + foreach (var netObj in NetworkManager.Singleton.SpawnManager.SpawnedObjects.Values) + { + var controller = netObj.GetComponent(); + if (controller != null && controller.OwnerPlayerId == playerId) + { + return netObj.gameObject; + } + } + + return null; + } + + private void OnDestroy() + { + if (_popupInstance != null) + { + Destroy(_popupInstance); + } + } + } +} diff --git a/Assets/Scripts/Buildings/Blacksmith.cs.meta b/Assets/Scripts/Buildings/Blacksmith.cs.meta new file mode 100644 index 0000000..8bf32dc --- /dev/null +++ b/Assets/Scripts/Buildings/Blacksmith.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 39d108eb3babe48409cc4dfc803dbbe4 \ No newline at end of file diff --git a/Assets/Scripts/PlayerStats.cs b/Assets/Scripts/PlayerStats.cs index 9b4b358..2e354a5 100644 --- a/Assets/Scripts/PlayerStats.cs +++ b/Assets/Scripts/PlayerStats.cs @@ -140,5 +140,26 @@ namespace Northbound public void SetBaseAttackRange(float value) => baseAttackRange = value; #endregion + + /// + /// 현재 스탯 정보 출력 (디버그용) + /// + public void PrintCurrentStats() + { + Debug.Log($"[PlayerStats] 현재 스탯:\n" + + $" Max HP: {GetMaxHp()} (기본: {baseMaxHp})\n" + + $" Damage: {GetDamage()} (기본: {baseDamage})\n" + + $" Capacity: {GetCapacity()} (기본: {baseCapacity})\n" + + $" Manpower: {GetManpower()} (기본: {baseManpower})\n" + + $" Move Speed: {GetMoveSpeed()} (기본: {baseMoveSpeed})\n" + + $" Sight: {GetSight()} (기본: {baseSight})\n" + + $" Attack Range: {GetAttackRange()} (기본: {baseAttackRange})"); + + if (_upgradeManager != null) + { + var ownedIds = _upgradeManager.GetOwnedUpgradeIdList(); + Debug.Log($"[PlayerStats] 보유 업그레이드 수: {ownedIds.Count}"); + } + } } } diff --git a/Assets/Scripts/PlayerUpgradeManager.cs b/Assets/Scripts/PlayerUpgradeManager.cs index df42eee..cda84ca 100644 --- a/Assets/Scripts/PlayerUpgradeManager.cs +++ b/Assets/Scripts/PlayerUpgradeManager.cs @@ -143,6 +143,10 @@ namespace Northbound Debug.Log($"[PlayerUpgradeManager] 업그레이드 '{upgrade.memo}' 구매 완료! (ID: {upgradeId})"); + // 스탯 변경 확인 + var playerStats = GetComponent(); + playerStats?.PrintCurrentStats(); + // 이벤트 발생 OnUpgradePurchased?.Invoke(upgradeId); } diff --git a/Assets/Scripts/UI.meta b/Assets/Scripts/UI.meta new file mode 100644 index 0000000..80901ec --- /dev/null +++ b/Assets/Scripts/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 00eb5c70ed6dd1840841026ff5a16805 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/UI/UpgradeListItem.cs b/Assets/Scripts/UI/UpgradeListItem.cs new file mode 100644 index 0000000..543f386 --- /dev/null +++ b/Assets/Scripts/UI/UpgradeListItem.cs @@ -0,0 +1,228 @@ +using System.Collections.Generic; +using TMPro; +using UnityEngine; +using UnityEngine.EventSystems; +using UnityEngine.UI; +using Northbound.Data; + +namespace Northbound +{ + /// + /// 업그레이드 리스트 아이템 UI + /// + public class UpgradeListItem : MonoBehaviour, IPointerClickHandler + { + [Header("UI References")] + [SerializeField] private TextMeshProUGUI _nameText; + [SerializeField] private TextMeshProUGUI _costText; + [SerializeField] private Transform _effectRowsParent; + [SerializeField] private Transform _reqChipsParent; + [SerializeField] private Button _purchaseButton; + [SerializeField] private GameObject _purchasedOverlay; + [SerializeField] private Image _backgroundImage; + + private UpgradeData _upgradeData; + private bool _isOwned; + private bool _canPurchase; + private UpgradeListPopup _parentPopup; + + private Color _normalColor = new Color(1f, 1f, 1f, 0.44f); // 기본 배경색 + private Color _disabledColor = new Color(0.5f, 0.5f, 0.5f, 0.6f); // 회색 + + private void Awake() + { + if (_purchaseButton == null) + { + _purchaseButton = GetComponent