From 88ab6bcee797b5bd034c097b54f0959f2ee0f204 Mon Sep 17 00:00:00 2001 From: kabix09 Date: Mon, 19 Dec 2022 03:34:45 +0100 Subject: [PATCH] Add Shop module Add Shop panel & saving module --- .../UiPanels/Dialogue/BaseButton.prefab | 2 + .../UiPanels/Dialogue/DialoguePanel.prefab | 3 + .../Resources/UiPanels/EquipmentPanel.prefab | 108 +- Assets/Resources/UiPanels/Shop.meta | 8 + .../Resources/UiPanels/Shop/ChestSlot.prefab | 357 ++++ .../UiPanels/Shop/ChestSlot.prefab.meta | 7 + .../Resources/UiPanels/Shop/ShopPanel.prefab | 1830 +++++++++++++++++ .../UiPanels/Shop/ShopPanel.prefab.meta | 7 + Assets/Scripts/AnimatedDoorBehaviour.cs | 1 + Assets/Scripts/DoorBehaviour.cs | 2 + Assets/Scripts/NPCs' Scripts/NPCFollowing.cs | 1 - .../Application/Chest/ChestController.cs | 5 - .../REFACTORING/Application/NPC/NPC.cs | 9 +- .../Application/NPC/NpcShopManager.cs | 98 + .../Application/NPC/NpcShopManager.cs.meta | 11 + .../REFACTORING/Application/Panel/Shop.meta | 8 + .../Application/Panel/Shop/SaveShopManager.cs | 100 + .../Panel/Shop/SaveShopManager.cs.meta | 11 + .../Panel/Shop/SceneShopDataLoader.cs | 108 + .../Panel/Shop/SceneShopDataLoader.cs.meta | 3 + .../Panel/Shop/SceneShopDataManager.cs | 154 ++ .../Panel/Shop/SceneShopDataManager.cs.meta | 3 + .../Panel/Shop/ShopDataListManager.cs | 31 + .../Panel/Shop/ShopDataListManager.cs.meta | 11 + .../Manager/Panel/SceneBaseDataLoader.cs | 2 - .../Draggable/DraggablePanelController.cs | 54 +- .../Draggable/DraggablePanelInterface.cs | 3 + .../WarehousePanelController.cs | 31 +- .../Shared/Manager/UI/UIBaseManager.cs | 2 + .../Application/Shared/Mapper.meta | 8 + .../Application/Shared/Mapper/IModelMapper.cs | 9 + .../Shared/Mapper/IModelMapper.cs.meta | 11 + .../Scripts/REFACTORING/Application/Shop.meta | 8 + .../Application/Shop/ShopItemCardKeeper.cs | 168 ++ .../Shop/ShopItemCardKeeper.cs.meta | 11 + .../Application/UI/Chest/ChestUIManager.cs | 6 + .../UI/Equipment/EquipmentUIManager.cs | 17 + .../UI/Panel/ChestPanelController.cs | 4 + .../UI/Panel/EquipmentPanelController.cs | 4 +- .../UI/Panel/InventoryPanelController.cs | 7 + .../UI/Panel/ShopPanelController.cs | 117 ++ .../UI/Panel/ShopPanelController.cs.meta | 3 + .../REFACTORING/Application/UI/Shop.meta | 3 + .../UI/Shop/ShopContentUIManager.cs | 113 + .../UI/Shop/ShopContentUIManager.cs.meta | 11 + .../Application/UI/Shop/ShopUIManager.cs | 108 + .../Application/UI/Shop/ShopUIManager.cs.meta | 3 + .../Item/EquippableItem/EquippableItem.cs | 4 +- .../Scripts/REFACTORING/Models/Item/Item.cs | 51 +- .../REFACTORING/Models/Item/ItemData.cs | 8 + .../REFACTORING/Models/Panel/Slot/ISlot.cs | 1 + .../REFACTORING/Models/Panel/Slot/ItemSlot.cs | 27 +- .../REFACTORING/Models/Panel/Slot/ShopSlot.cs | 26 + .../Models/Panel/Slot/ShopSlot.cs.meta | 11 + .../REFACTORING/Models/Shared/ModelData.cs | 7 +- Assets/Scripts/REFACTORING/Models/Shop.meta | 8 + .../Scripts/REFACTORING/Models/Shop/Shop.cs | 91 + .../REFACTORING/Models/Shop/Shop.cs.meta | 11 + .../REFACTORING/Models/Shop/ShopData.cs | 55 + .../REFACTORING/Models/Shop/ShopData.cs.meta | 11 + Assets/Scripts/REFACTORING/Story.meta | 8 + .../REFACTORING/Story/WizardHouse.meta | 8 + .../Story/WizardHouse/ResetPlayer.cs.meta | 11 + Assets/Scripts/SaveController.cs | 12 + 64 files changed, 3825 insertions(+), 106 deletions(-) create mode 100644 Assets/Resources/UiPanels/Shop.meta create mode 100644 Assets/Resources/UiPanels/Shop/ChestSlot.prefab create mode 100644 Assets/Resources/UiPanels/Shop/ChestSlot.prefab.meta create mode 100644 Assets/Resources/UiPanels/Shop/ShopPanel.prefab create mode 100644 Assets/Resources/UiPanels/Shop/ShopPanel.prefab.meta create mode 100644 Assets/Scripts/REFACTORING/Application/NPC/NpcShopManager.cs create mode 100644 Assets/Scripts/REFACTORING/Application/NPC/NpcShopManager.cs.meta create mode 100644 Assets/Scripts/REFACTORING/Application/Panel/Shop.meta create mode 100644 Assets/Scripts/REFACTORING/Application/Panel/Shop/SaveShopManager.cs create mode 100644 Assets/Scripts/REFACTORING/Application/Panel/Shop/SaveShopManager.cs.meta create mode 100644 Assets/Scripts/REFACTORING/Application/Panel/Shop/SceneShopDataLoader.cs create mode 100644 Assets/Scripts/REFACTORING/Application/Panel/Shop/SceneShopDataLoader.cs.meta create mode 100644 Assets/Scripts/REFACTORING/Application/Panel/Shop/SceneShopDataManager.cs create mode 100644 Assets/Scripts/REFACTORING/Application/Panel/Shop/SceneShopDataManager.cs.meta create mode 100644 Assets/Scripts/REFACTORING/Application/Panel/Shop/ShopDataListManager.cs create mode 100644 Assets/Scripts/REFACTORING/Application/Panel/Shop/ShopDataListManager.cs.meta create mode 100644 Assets/Scripts/REFACTORING/Application/Shared/Mapper.meta create mode 100644 Assets/Scripts/REFACTORING/Application/Shared/Mapper/IModelMapper.cs create mode 100644 Assets/Scripts/REFACTORING/Application/Shared/Mapper/IModelMapper.cs.meta create mode 100644 Assets/Scripts/REFACTORING/Application/Shop.meta create mode 100644 Assets/Scripts/REFACTORING/Application/Shop/ShopItemCardKeeper.cs create mode 100644 Assets/Scripts/REFACTORING/Application/Shop/ShopItemCardKeeper.cs.meta create mode 100644 Assets/Scripts/REFACTORING/Application/UI/Panel/ShopPanelController.cs create mode 100644 Assets/Scripts/REFACTORING/Application/UI/Panel/ShopPanelController.cs.meta create mode 100644 Assets/Scripts/REFACTORING/Application/UI/Shop.meta create mode 100644 Assets/Scripts/REFACTORING/Application/UI/Shop/ShopContentUIManager.cs create mode 100644 Assets/Scripts/REFACTORING/Application/UI/Shop/ShopContentUIManager.cs.meta create mode 100644 Assets/Scripts/REFACTORING/Application/UI/Shop/ShopUIManager.cs create mode 100644 Assets/Scripts/REFACTORING/Application/UI/Shop/ShopUIManager.cs.meta create mode 100644 Assets/Scripts/REFACTORING/Models/Panel/Slot/ShopSlot.cs create mode 100644 Assets/Scripts/REFACTORING/Models/Panel/Slot/ShopSlot.cs.meta create mode 100644 Assets/Scripts/REFACTORING/Models/Shop.meta create mode 100644 Assets/Scripts/REFACTORING/Models/Shop/Shop.cs create mode 100644 Assets/Scripts/REFACTORING/Models/Shop/Shop.cs.meta create mode 100644 Assets/Scripts/REFACTORING/Models/Shop/ShopData.cs create mode 100644 Assets/Scripts/REFACTORING/Models/Shop/ShopData.cs.meta create mode 100644 Assets/Scripts/REFACTORING/Story.meta create mode 100644 Assets/Scripts/REFACTORING/Story/WizardHouse.meta create mode 100644 Assets/Scripts/REFACTORING/Story/WizardHouse/ResetPlayer.cs.meta diff --git a/Assets/Resources/UiPanels/Dialogue/BaseButton.prefab b/Assets/Resources/UiPanels/Dialogue/BaseButton.prefab index 5bb0c91b..381713d9 100644 --- a/Assets/Resources/UiPanels/Dialogue/BaseButton.prefab +++ b/Assets/Resources/UiPanels/Dialogue/BaseButton.prefab @@ -28,6 +28,7 @@ RectTransform: 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: 5110571134592049265} m_Father: {fileID: 0} @@ -130,6 +131,7 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.95, y: 4.5, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 5110571134455525713} m_RootOrder: 0 diff --git a/Assets/Resources/UiPanels/Dialogue/DialoguePanel.prefab b/Assets/Resources/UiPanels/Dialogue/DialoguePanel.prefab index fea54240..2afd88b4 100644 --- a/Assets/Resources/UiPanels/Dialogue/DialoguePanel.prefab +++ b/Assets/Resources/UiPanels/Dialogue/DialoguePanel.prefab @@ -28,6 +28,7 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1.2, y: 6, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2835830911057077560} m_RootOrder: 0 @@ -107,6 +108,7 @@ RectTransform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 5, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2835830911057077560} m_RootOrder: 1 @@ -186,6 +188,7 @@ RectTransform: m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.95, y: 0.2, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 2835830909972040045} - {fileID: 2835830910843601522} diff --git a/Assets/Resources/UiPanels/EquipmentPanel.prefab b/Assets/Resources/UiPanels/EquipmentPanel.prefab index f73cfc58..3cefb474 100644 --- a/Assets/Resources/UiPanels/EquipmentPanel.prefab +++ b/Assets/Resources/UiPanels/EquipmentPanel.prefab @@ -786,7 +786,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMin.x @@ -794,15 +794,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_SizeDelta.x - value: 65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_SizeDelta.y - value: 65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_LocalScale.x @@ -846,11 +846,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchoredPosition.x - value: 477.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchoredPosition.y - value: -72.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -924,7 +924,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMin.x @@ -932,15 +932,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_SizeDelta.x - value: 65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_SizeDelta.y - value: 65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_LocalScale.x @@ -984,11 +984,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchoredPosition.x - value: 277.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchoredPosition.y - value: -72.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -1062,7 +1062,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMin.x @@ -1070,15 +1070,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_SizeDelta.x - value: 65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_SizeDelta.y - value: 65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_LocalScale.x @@ -1122,11 +1122,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchoredPosition.x - value: 77.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchoredPosition.y - value: -72.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -1200,7 +1200,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMin.x @@ -1208,15 +1208,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_SizeDelta.x - value: 65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_SizeDelta.y - value: 65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_LocalScale.x @@ -1260,11 +1260,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchoredPosition.x - value: 377.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchoredPosition.y - value: -72.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -1338,7 +1338,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMin.x @@ -1346,15 +1346,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_SizeDelta.x - value: 65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_SizeDelta.y - value: 65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_LocalScale.x @@ -1398,11 +1398,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchoredPosition.x - value: 177.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchoredPosition.y - value: -72.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -1476,7 +1476,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMin.x @@ -1484,15 +1484,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_SizeDelta.x - value: 65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_SizeDelta.y - value: 65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_LocalScale.x @@ -1536,11 +1536,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchoredPosition.x - value: 77.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchoredPosition.y - value: -227.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -1614,7 +1614,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMin.x @@ -1622,15 +1622,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_SizeDelta.x - value: 65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_SizeDelta.y - value: 65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_LocalScale.x @@ -1674,11 +1674,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchoredPosition.x - value: 77.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchoredPosition.y - value: -457.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -1752,7 +1752,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMin.x @@ -1760,15 +1760,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_SizeDelta.x - value: 65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_SizeDelta.y - value: 65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_LocalScale.x @@ -1812,11 +1812,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchoredPosition.x - value: 77.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchoredPosition.y - value: -342.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -1882,7 +1882,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMin.x @@ -1890,15 +1890,15 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_SizeDelta.x - value: 65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_SizeDelta.y - value: 65 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_LocalScale.x @@ -1942,11 +1942,11 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchoredPosition.x - value: 77.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_AnchoredPosition.y - value: -112.5 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6050866944478881893, guid: 27d62cf80d88f774abdf05e1c1663f1c, type: 3} propertyPath: m_LocalEulerAnglesHint.x diff --git a/Assets/Resources/UiPanels/Shop.meta b/Assets/Resources/UiPanels/Shop.meta new file mode 100644 index 00000000..b8a4d62e --- /dev/null +++ b/Assets/Resources/UiPanels/Shop.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 298e71b7ba16d154cb08695f420aee2f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/UiPanels/Shop/ChestSlot.prefab b/Assets/Resources/UiPanels/Shop/ChestSlot.prefab new file mode 100644 index 00000000..80f26c81 --- /dev/null +++ b/Assets/Resources/UiPanels/Shop/ChestSlot.prefab @@ -0,0 +1,357 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &3818338909570481462 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3818338909570481463} + - component: {fileID: 3818338909570481461} + - component: {fileID: 3818338909570481460} + m_Layer: 5 + m_Name: number_held + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3818338909570481463 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3818338909570481462} + 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: 3818338910890019851} + 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: 16.7, y: -20.2} + m_SizeDelta: {x: 30, y: 15.3012} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3818338909570481461 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3818338909570481462} + m_CullTransparentMesh: 1 +--- !u!114 &3818338909570481460 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3818338909570481462} + m_Enabled: 0 + 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: '0 + +' + 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: 16 + m_fontSizeBase: 16 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + 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!1 &3818338910890019850 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3818338910890019851} + - component: {fileID: 3818338910890019849} + - component: {fileID: 3818338910890019848} + - component: {fileID: 7379342322136183382} + - component: {fileID: 6370833506293926211} + m_Layer: 5 + m_Name: ChestSlot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3818338910890019851 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3818338910890019850} + 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: 3818338911641453617} + - {fileID: 3818338909570481463} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 55, y: -55} + m_SizeDelta: {x: 60, y: 60} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3818338910890019849 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3818338910890019850} + m_CullTransparentMesh: 1 +--- !u!114 &3818338910890019848 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3818338910890019850} + 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: 1} + 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: 21300000, guid: a45fb5c08be526a4dabe2e91e53f4d15, type: 3} + m_Type: 0 + 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!114 &7379342322136183382 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3818338910890019850} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3818338910890019848} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!114 &6370833506293926211 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3818338910890019850} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6bf41236973acd14caf4428b908d0674, type: 3} + m_Name: + m_EditorClassIdentifier: + slotItemNumberText: {fileID: 3818338909570481460} + itemImage: {fileID: 3818338911641453630} + _PanelController: {fileID: 0} + _number: 0 + _item: {fileID: 0} + countStackableItems: 0 +--- !u!1 &3818338911641453616 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3818338911641453617} + - component: {fileID: 3818338911641453631} + - component: {fileID: 3818338911641453630} + m_Layer: 5 + m_Name: inventory_image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3818338911641453617 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3818338911641453616} + 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: 3818338910890019851} + m_RootOrder: 0 + 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: 0, y: 0} + m_SizeDelta: {x: 50, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3818338911641453631 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3818338911641453616} + m_CullTransparentMesh: 1 +--- !u!114 &3818338911641453630 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3818338911641453616} + 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} + 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: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 diff --git a/Assets/Resources/UiPanels/Shop/ChestSlot.prefab.meta b/Assets/Resources/UiPanels/Shop/ChestSlot.prefab.meta new file mode 100644 index 00000000..0944f271 --- /dev/null +++ b/Assets/Resources/UiPanels/Shop/ChestSlot.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9a433c7b5b00f9b4489a10db4051c7b7 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/UiPanels/Shop/ShopPanel.prefab b/Assets/Resources/UiPanels/Shop/ShopPanel.prefab new file mode 100644 index 00000000..bf1000ae --- /dev/null +++ b/Assets/Resources/UiPanels/Shop/ShopPanel.prefab @@ -0,0 +1,1830 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &129393666831391439 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3948576823622022677} + - component: {fileID: 60097275787939088} + - component: {fileID: 3465856343569915379} + m_Layer: 5 + m_Name: ItemDescription + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3948576823622022677 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 129393666831391439} + 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: 3466730968482620191} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: -83.96, y: -150.73} + m_SizeDelta: {x: 301.92, y: 150.34} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &60097275787939088 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 129393666831391439} + m_CullTransparentMesh: 1 +--- !u!114 &3465856343569915379 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 129393666831391439} + 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: 0264833e418f9c347a60eea0d843662f, type: 2} + m_sharedMaterial: {fileID: -4776278116225565339, guid: 0264833e418f9c347a60eea0d843662f, 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: 30 + m_fontSizeBase: 30 + 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: 10, y: 5, z: 25, 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!1 &228795243614148105 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4131952680451427526} + - component: {fileID: 5048117407858301215} + - component: {fileID: 5415396874097778333} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4131952680451427526 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 228795243614148105} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 2, z: 2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 708272129096473007} + 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: 159.9, y: 67.9} + m_SizeDelta: {x: 100, y: 45} + m_Pivot: {x: 1, y: 1} +--- !u!222 &5048117407858301215 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 228795243614148105} + m_CullTransparentMesh: 1 +--- !u!114 &5415396874097778333 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 228795243614148105} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.63529414, g: 0.44705883, b: 0.2901961, 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_FontData: + m_Font: {fileID: 12800000, guid: 6b506a7e42917d6489d0e806d6b4f62d, type: 2} + m_FontSize: 0 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: < Sell > +--- !u!1 &1071823570750480248 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8578709671528783699} + - component: {fileID: 8903237013404709938} + - component: {fileID: 8437530654143720538} + m_Layer: 5 + m_Name: ItemName + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8578709671528783699 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1071823570750480248} + 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: 3466730968482620191} + m_RootOrder: 0 + 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: -2.399994, y: 103.6} + m_SizeDelta: {x: 465.2, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8903237013404709938 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1071823570750480248} + m_CullTransparentMesh: 1 +--- !u!114 &8437530654143720538 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1071823570750480248} + 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: 0264833e418f9c347a60eea0d843662f, type: 2} + m_sharedMaterial: {fileID: -4776278116225565339, guid: 0264833e418f9c347a60eea0d843662f, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4280502656 + m_fontColor: {r: 0.5, g: 0.28602022, b: 0.13915095, 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: 35 + m_fontSizeBase: 35 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 512 + 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: 10, 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!1 &3493975195232405963 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7486549892750104183} + - component: {fileID: 2198147180326041084} + - component: {fileID: 2051776933318440406} + m_Layer: 5 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7486549892750104183 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3493975195232405963} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.6344782} + m_LocalScale: {x: 0.4, y: 0.4, z: 0.4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 559294344518255621} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 97.20217, y: -20.198303} + m_SizeDelta: {x: 113.2034, y: 150.34} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2198147180326041084 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3493975195232405963} + m_CullTransparentMesh: 1 +--- !u!114 &2051776933318440406 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3493975195232405963} + 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: 0264833e418f9c347a60eea0d843662f, type: 2} + m_sharedMaterial: {fileID: -4776278116225565339, guid: 0264833e418f9c347a60eea0d843662f, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4280896883 + m_fontColor: {r: 0.4528302, g: 0.30150148, b: 0.16019936, 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: 30 + m_fontSizeBase: 30 + 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: 5, 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!1 &3566628495246924972 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3466730968482620191} + - component: {fileID: 2777822848878691120} + - component: {fileID: 3323282877333581654} + - component: {fileID: 3275466138613302188} + m_Layer: 5 + m_Name: ItemDetails + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3466730968482620191 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3566628495246924972} + 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: 8578709671528783699} + - {fileID: 3948576823622022677} + - {fileID: 6688396200328387348} + - {fileID: 559294344518255621} + - {fileID: 6769108684415400144} + - {fileID: 708272129096473007} + m_Father: {fileID: 5331092055018478732} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: -257.65198, y: 318.3421} + m_SizeDelta: {x: 515, y: 300} + m_Pivot: {x: 0, y: 1} +--- !u!222 &2777822848878691120 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3566628495246924972} + m_CullTransparentMesh: 1 +--- !u!114 &3323282877333581654 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3566628495246924972} + 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: 1} + 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: 21300000, guid: 968b2ea4edc9cb44e8b83b067b92cd79, type: 3} + m_Type: 0 + 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!114 &3275466138613302188 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3566628495246924972} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9e2866969bce0b54dbc4690d51aa19aa, type: 3} + m_Name: + m_EditorClassIdentifier: + SelectedItem: {fileID: 0} + _buyButton: {fileID: 684985198997091952} + _sellButton: {fileID: 1755983701611443418} + _itemPreviewSprite: {fileID: 0} + _itemPreviewName: {fileID: 8437530654143720538} + _itemPreviewDescription: {fileID: 3465856343569915379} + _itemPreviewStats: {fileID: 2051776933318440406} + _itemPreviewStatsValue: {fileID: 1086154942094143486} + _itemPreviewPrice: {fileID: 2176859836513736533} +--- !u!1 &4181923878083080648 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4299401306498991878} + - component: {fileID: 8624322643399475980} + - component: {fileID: 5422292301042054472} + m_Layer: 5 + m_Name: Text + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4299401306498991878 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4181923878083080648} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 2, z: 2} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 6769108684415400144} + 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: 159.9, y: 67.9} + m_SizeDelta: {x: 100, y: 45} + m_Pivot: {x: 1, y: 1} +--- !u!222 &8624322643399475980 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4181923878083080648} + m_CullTransparentMesh: 1 +--- !u!114 &5422292301042054472 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4181923878083080648} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.63529414, g: 0.44705883, b: 0.2901961, 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_FontData: + m_Font: {fileID: 12800000, guid: 6b506a7e42917d6489d0e806d6b4f62d, type: 2} + m_FontSize: 0 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 4 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: < Buy > +--- !u!1 &5331092054895676295 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5331092054895676294} + - component: {fileID: 5331092054895676291} + - component: {fileID: 5331092054895676292} + - component: {fileID: 5331092054895676293} + m_Layer: 5 + m_Name: Viewport + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5331092054895676294 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092054895676295} + 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: 5331092056807707113} + m_Father: {fileID: 5331092055037629063} + 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, y: 1} +--- !u!222 &5331092054895676291 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092054895676295} + m_CullTransparentMesh: 1 +--- !u!114 &5331092054895676292 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092054895676295} + 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: 1} + 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: 21300000, guid: c7b158bba3938c6498313b06b868b9a7, type: 3} + m_Type: 0 + 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!114 &5331092054895676293 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092054895676295} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 +--- !u!1 &5331092055018478733 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5331092055018478732} + - component: {fileID: 5331092055018478730} + - component: {fileID: 5331092055018478731} + - component: {fileID: -516142197714040851} + m_Layer: 5 + m_Name: ShopPanel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5331092055018478732 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092055018478733} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.4, y: 0.4, z: 0.4} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5331092055896533710} + - {fileID: 5331092055037629063} + - {fileID: 5331092055143140113} + - {fileID: 3466730968482620191} + m_Father: {fileID: 0} + m_RootOrder: 0 + 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: -125, y: 0.2} + m_SizeDelta: {x: 550, y: 715} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5331092055018478730 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092055018478733} + m_CullTransparentMesh: 0 +--- !u!114 &5331092055018478731 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092055018478733} + 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: 21300000, guid: c7b158bba3938c6498313b06b868b9a7, type: 3} + m_Type: 0 + 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!114 &-516142197714040851 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092055018478733} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66c5355517f64f558a08ba75b98d4fb0, type: 3} + m_Name: + m_EditorClassIdentifier: + _panelContent: {fileID: 5331092056807707114} + ChildBoxTemplate: {fileID: 3818338910890019850, guid: 9a433c7b5b00f9b4489a10db4051c7b7, type: 3} + ChildBoxList: [] + AllowToUseItemInPanel: 1 +--- !u!1 &5331092055037629064 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5331092055037629063} + - component: {fileID: 5331092055037629060} + - component: {fileID: 5331092055037629061} + - component: {fileID: 5331092055037629062} + m_Layer: 5 + m_Name: Scroll View + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5331092055037629063 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092055037629064} + 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: 5331092054895676294} + m_Father: {fileID: 5331092055018478732} + 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: 0, y: 2} + m_SizeDelta: {x: 550, y: 715} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5331092055037629060 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092055037629064} + m_CullTransparentMesh: 1 +--- !u!114 &5331092055037629061 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092055037629064} + 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: 21300000, guid: c7b158bba3938c6498313b06b868b9a7, type: 3} + m_Type: 0 + 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!114 &5331092055037629062 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092055037629064} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1aa08ab6e0800fa44ae55d278d1423e3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Content: {fileID: 5331092056807707113} + m_Horizontal: 0 + m_Vertical: 0 + m_MovementType: 2 + m_Elasticity: 0.5 + m_Inertia: 1 + m_DecelerationRate: 0.135 + m_ScrollSensitivity: 1 + m_Viewport: {fileID: 5331092054895676294} + m_HorizontalScrollbar: {fileID: 0} + m_VerticalScrollbar: {fileID: 0} + m_HorizontalScrollbarVisibility: 2 + m_VerticalScrollbarVisibility: 2 + m_HorizontalScrollbarSpacing: -3 + m_VerticalScrollbarSpacing: -3 + m_OnValueChanged: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &5331092055143140114 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5331092055143140113} + - component: {fileID: 5331092055143140110} + - component: {fileID: 5331092055143140111} + - component: {fileID: 5331092055143140112} + m_Layer: 5 + m_Name: Button + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5331092055143140113 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092055143140114} + 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: 5331092055018478732} + m_RootOrder: 2 + 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: 232.6, y: 404.2} + m_SizeDelta: {x: 50, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5331092055143140110 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092055143140114} + m_CullTransparentMesh: 1 +--- !u!114 &5331092055143140111 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092055143140114} + 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: 1} + 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: 21300000, guid: 11277a3f23988ec47908362d708edaa8, type: 3} + m_Type: 0 + 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!114 &5331092055143140112 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092055143140114} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 5331092055143140111} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &5331092055455069026 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5331092055455069025} + - component: {fileID: 5331092055455069087} + - component: {fileID: 5331092055455069024} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5331092055455069025 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092055455069026} + 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: 5331092055896533710} + m_RootOrder: 0 + 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: 0, y: 0} + m_SizeDelta: {x: 200, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5331092055455069087 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092055455069026} + m_CullTransparentMesh: 1 +--- !u!114 &5331092055455069024 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092055455069026} + 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: Shop + 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: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + 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!1 &5331092055896533711 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5331092055896533710} + - component: {fileID: 5331092055896533708} + - component: {fileID: 5331092055896533709} + m_Layer: 5 + m_Name: Header + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5331092055896533710 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092055896533711} + 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: 5331092055455069025} + m_Father: {fileID: 5331092055018478732} + 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: 397.5} + m_SizeDelta: {x: -130, y: -635} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5331092055896533708 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092055896533711} + m_CullTransparentMesh: 1 +--- !u!114 &5331092055896533709 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092055896533711} + 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: 1} + 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: 21300000, guid: fc7810d5df3d6b64eb3b231f24cf22f9, type: 3} + m_Type: 0 + 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!1 &5331092056807707114 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5331092056807707113} + - component: {fileID: 5331092056807707111} + - component: {fileID: 5331092056807707112} + m_Layer: 5 + m_Name: Content + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5331092056807707113 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092056807707114} + 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: 5331092054895676294} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -2.0000153} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!114 &5331092056807707111 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092056807707114} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalFit: 0 + m_VerticalFit: 2 +--- !u!114 &5331092056807707112 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5331092056807707114} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8a8695521f0d02e499659fee002a26c2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 30 + m_Right: 30 + m_Top: 30 + m_Bottom: 30 + m_ChildAlignment: 0 + m_StartCorner: 0 + m_StartAxis: 0 + m_CellSize: {x: 70, y: 70} + m_Spacing: {x: 15, y: 15} + m_Constraint: 1 + m_ConstraintCount: 6 +--- !u!1 &5791111864296249941 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6688396200328387348} + - component: {fileID: 8364902457591990674} + - component: {fileID: 2176859836513736533} + m_Layer: 5 + m_Name: ItemPrice + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6688396200328387348 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5791111864296249941} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.8, y: 1.8, z: 4.5} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 3466730968482620191} + m_RootOrder: 2 + 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: -55, y: -55.557} + m_SizeDelta: {x: 100, y: 50} + m_Pivot: {x: 1, y: 1} +--- !u!222 &8364902457591990674 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5791111864296249941} + m_CullTransparentMesh: 1 +--- !u!114 &2176859836513736533 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5791111864296249941} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.63529414, g: 0.44705883, b: 0.2901961, 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_FontData: + m_Font: {fileID: 12800000, guid: 6b506a7e42917d6489d0e806d6b4f62d, type: 2} + m_FontSize: 0 + m_FontStyle: 0 + m_BestFit: 0 + m_MinSize: 0 + m_MaxSize: 40 + m_Alignment: 3 + m_AlignByGeometry: 0 + m_RichText: 1 + m_HorizontalOverflow: 0 + m_VerticalOverflow: 0 + m_LineSpacing: 1 + m_Text: +--- !u!1 &6464525384277514054 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 559294344518255621} + m_Layer: 0 + m_Name: ItemStats + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &559294344518255621 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6464525384277514054} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 138.0944, y: -100.23424, z: -1.5861955} + m_LocalScale: {x: 2.5, y: 2.5, z: 2.5} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7486549892750104183} + - {fileID: 2604331234304421841} + m_Father: {fileID: 3466730968482620191} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7019061589672154310 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2604331234304421841} + - component: {fileID: 3917428984941034369} + - component: {fileID: 1086154942094143486} + m_Layer: 5 + m_Name: Value + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2604331234304421841 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7019061589672154310} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0.6344782} + m_LocalScale: {x: 0.4, y: 0.4, z: 0.4} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 559294344518255621} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 1} + m_AnchorMax: {x: 0.5, y: 1} + m_AnchoredPosition: {x: 129.84222, y: -19.906311} + m_SizeDelta: {x: 50, y: 150.34} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3917428984941034369 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7019061589672154310} + m_CullTransparentMesh: 1 +--- !u!114 &1086154942094143486 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7019061589672154310} + 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: 0264833e418f9c347a60eea0d843662f, type: 2} + m_sharedMaterial: {fileID: -4776278116225565339, guid: 0264833e418f9c347a60eea0d843662f, 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: 30 + m_fontSizeBase: 30 + 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: 5, 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!1 &7389587382739172384 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6769108684415400144} + - component: {fileID: 8836301433650985822} + - component: {fileID: 684985198997091952} + m_Layer: 5 + m_Name: BuyButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &6769108684415400144 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7389587382739172384} + 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: 2.5} + m_ConstrainProportionsScale: 1 + m_Children: + - {fileID: 4299401306498991878} + m_Father: {fileID: 3466730968482620191} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -27.3, y: 74.1} + m_SizeDelta: {x: 121.882, y: 50} + m_Pivot: {x: 1, y: 1} +--- !u!222 &8836301433650985822 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7389587382739172384} + m_CullTransparentMesh: 1 +--- !u!114 &684985198997091952 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7389587382739172384} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3275466138613302188} + m_TargetAssemblyTypeName: ShopItemCardKeeper, Assembly-CSharp + m_MethodName: BuyItem + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 +--- !u!1 &8341358844673530274 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 708272129096473007} + - component: {fileID: 6022919591664857004} + - component: {fileID: 1755983701611443418} + m_Layer: 5 + m_Name: SellButton + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &708272129096473007 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8341358844673530274} + 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: 2.5} + m_ConstrainProportionsScale: 1 + m_Children: + - {fileID: 4131952680451427526} + m_Father: {fileID: 3466730968482620191} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -27.3, y: 74.1} + m_SizeDelta: {x: 121.882, y: 50} + m_Pivot: {x: 1, y: 1} +--- !u!222 &6022919591664857004 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8341358844673530274} + m_CullTransparentMesh: 1 +--- !u!114 &1755983701611443418 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8341358844673530274} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 0} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 3275466138613302188} + m_TargetAssemblyTypeName: ShopItemCardKeeper, Assembly-CSharp + m_MethodName: SellItem + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 diff --git a/Assets/Resources/UiPanels/Shop/ShopPanel.prefab.meta b/Assets/Resources/UiPanels/Shop/ShopPanel.prefab.meta new file mode 100644 index 00000000..3edf68b4 --- /dev/null +++ b/Assets/Resources/UiPanels/Shop/ShopPanel.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a159d0aaa20a84d47bd3b412db2822e4 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/AnimatedDoorBehaviour.cs b/Assets/Scripts/AnimatedDoorBehaviour.cs index a7146b11..c2fcfed0 100644 --- a/Assets/Scripts/AnimatedDoorBehaviour.cs +++ b/Assets/Scripts/AnimatedDoorBehaviour.cs @@ -66,6 +66,7 @@ public class AnimatedDoorBehaviour : TriggerDoor SaveController.GetComponent().SaveHealth(); SaveController.GetComponent().SaveChests(); + SaveController.GetComponent().SaveShops(); // 2. Change scene SceneManager.LoadScene(gateway.nextMapName); diff --git a/Assets/Scripts/DoorBehaviour.cs b/Assets/Scripts/DoorBehaviour.cs index b3f2abeb..4c6fbc09 100644 --- a/Assets/Scripts/DoorBehaviour.cs +++ b/Assets/Scripts/DoorBehaviour.cs @@ -47,6 +47,8 @@ public class DoorBehaviour : MonoBehaviour SaveController.GetComponent().SaveHealth(); SaveController.GetComponent().SaveChests(); + SaveController.GetComponent().SaveShops(); + // 2. Change scene SceneManager.LoadScene(gateway.nextMapName); } diff --git a/Assets/Scripts/NPCs' Scripts/NPCFollowing.cs b/Assets/Scripts/NPCs' Scripts/NPCFollowing.cs index cd1ca187..e801a5ae 100644 --- a/Assets/Scripts/NPCs' Scripts/NPCFollowing.cs +++ b/Assets/Scripts/NPCs' Scripts/NPCFollowing.cs @@ -51,7 +51,6 @@ public class NPCFollowing : MonoBehaviour { if (approaching && Vector2.Distance(targetPosition.position, transform.position) >= actionRadius) { - Debug.Log(agent); agent.FindPath(); //transform.position = Vector2.MoveTowards(transform.position, target.position, moveSpeed * Time.deltaTime); StartCoroutine(agent.FollowPath()); diff --git a/Assets/Scripts/REFACTORING/Application/Chest/ChestController.cs b/Assets/Scripts/REFACTORING/Application/Chest/ChestController.cs index effc9d9c..727057da 100644 --- a/Assets/Scripts/REFACTORING/Application/Chest/ChestController.cs +++ b/Assets/Scripts/REFACTORING/Application/Chest/ChestController.cs @@ -24,11 +24,6 @@ public class ChestController : MonoBehaviour ChestUIManager.Instance.CurrentChestName = null; ChestUIManager.Instance.ClosePanel(); - - // Close additiona panels - if (EquipmentUIManager.Instance.GetPanelStatus()) EquipmentUIManager.Instance.ClosePanel(); - - if (InventoryUIManager.Instance.GetPanelStatus()) InventoryUIManager.Instance.ClosePanel(); } } } diff --git a/Assets/Scripts/REFACTORING/Application/NPC/NPC.cs b/Assets/Scripts/REFACTORING/Application/NPC/NPC.cs index 179dc171..192b0a4a 100644 --- a/Assets/Scripts/REFACTORING/Application/NPC/NPC.cs +++ b/Assets/Scripts/REFACTORING/Application/NPC/NPC.cs @@ -6,5 +6,12 @@ public class NPC : MonoBehaviour { public string Name; - + + public NPCStateEnum State = NPCStateEnum.Pending; + + + public void ChangeState(NPCStateEnum _newState) + { + State = _newState; + } } diff --git a/Assets/Scripts/REFACTORING/Application/NPC/NpcShopManager.cs b/Assets/Scripts/REFACTORING/Application/NPC/NpcShopManager.cs new file mode 100644 index 00000000..31143787 --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/NPC/NpcShopManager.cs @@ -0,0 +1,98 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using UnityEngine.SceneManagement; + +class NpcShopManager : MonoBehaviour +{ + [SerializeField] + public Dialogue DialogueTemplate; + + /* We user object CLONED TO PREVENT overwritting changes in main object inassets */ + private Dialogue Dialogue; + + [SerializeField] + public Shop shop; + + public void Start() + { + // TODO - remove - we want ot register ir manually because condition below is not meeted in test env + this.RegisterShop(); + + + // 1. Create dialogue object from template + + // 2. Set speaker name + Dialogue = Instantiate(DialogueTemplate); + Dialogue.SetSpeakerName(gameObject.GetComponent().name); + + // if its new game or we dont have any save from this map - use deffault shop settings / content + // else overwrite value by saved one + if (OnMapAppearanceMethod.GameStatus == GameStatus.NewGame || + (OnMapAppearanceMethod.Gateway != OnMapAppearanceMethodEnum.NewGame || ShopUIManager.Instance.GetList().Count == 0) + ) + // 0. Register shop in scene shop manager + this.RegisterShop(); + //ShopUIManager.Instance.Add(shop); + else + shop = ShopUIManager.Instance.GetList().Where(shop => { + return shop.Npc == gameObject.GetComponent().name && shop.Map == SceneManager.GetActiveScene().name; + }).First(); + } + + public void OnTriggerEnter2D(Collider2D collision) + { + if(collision.gameObject.tag == "Player" && gameObject.GetComponent().State == NPCStateEnum.Trading && !ShopUIManager.Instance.GetPanelStatus()) + { + // 1. Open dialogue panel + + // 2. Open shop + + OpenShop(); + } + } + + public void OnTriggerExit2D(Collider2D collision) + { + if (collision.gameObject.tag == "Player") + { + CloseShop(); + } + } + + public void RegisterShop() + { + // 1. Set owner name + shop.Npc = gameObject.name; + + // 2. Create new Shop instance in scene registry list + ((SceneShopDataManager)SceneShopDataManager.Instance) + .RegisterShop( + new Shop( + SceneManager.GetActiveScene().name, + gameObject.name, + shop.GetContent() + ) + ); + } + + public void OpenShop() + { + Debug.Log("OpenShop"); + + // Open shopa action - invoked as dialogue end action + ShopUIManager.Instance.CurrentShopOwnerName = gameObject.GetComponent().name; + ShopUIManager.Instance.OpenPanel(); + + } + + public void CloseShop() + { + ShopUIManager.Instance.ClosePanel(); + + ShopUIManager.Instance.CurrentShopOwnerName = ""; + } +} + diff --git a/Assets/Scripts/REFACTORING/Application/NPC/NpcShopManager.cs.meta b/Assets/Scripts/REFACTORING/Application/NPC/NpcShopManager.cs.meta new file mode 100644 index 00000000..cba4d4b6 --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/NPC/NpcShopManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 965172500144077489774a33c2fa0660 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/REFACTORING/Application/Panel/Shop.meta b/Assets/Scripts/REFACTORING/Application/Panel/Shop.meta new file mode 100644 index 00000000..99a9eddf --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/Panel/Shop.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8c41b592443b53b45b36340468fcd02e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/REFACTORING/Application/Panel/Shop/SaveShopManager.cs b/Assets/Scripts/REFACTORING/Application/Panel/Shop/SaveShopManager.cs new file mode 100644 index 00000000..3a2b07f5 --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/Panel/Shop/SaveShopManager.cs @@ -0,0 +1,100 @@ +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Runtime.Serialization.Formatters.Binary; +using UnityEngine; + +public class SaveShopManager : SaveModelSystem +{ + public override bool SaveModelItem(Shop model) + { + return base.SaveModelItem(model); + } + + public override bool SaveModelList(List list) + { + BinaryFormatter formatter = new BinaryFormatter(); + + Debug.Log("Saved Shops at " + Path); + + if (!Directory.Exists(Path)) Directory.CreateDirectory(Path); + + /* Main logic of conversion data format */ + var data = ConvertObjectsListToListOfDataModels(list); + + FileStream stream = new FileStream( + Path + GetFileName(ObjectListName), + FileMode.Create + ); + + formatter.Serialize(stream, data); + stream.Close(); + + return true; + } + + public override Shop LoadModelItem() + { + return base.LoadModelItem(); + } + + public override List LoadModelList() + { + string path = Path + GetFileName(ObjectListName); + + if (File.Exists(path)) + { + BinaryFormatter formatter = new BinaryFormatter(); + FileStream stream = new FileStream(path, FileMode.Open); + + List questsList = formatter.Deserialize(stream) as List; + stream.Close(); + + return ConvertListOfDataModelsToListOfObject(questsList); + } + else + { + Debug.Log("Save file not found in " + path); + } + + return new List(); + } + + // Support function + + // 1. From model to data format + public static ShopData ConvertObjectToDataModel(Shop model) + { + return new ShopData(model); + } + + public static List ConvertObjectsListToListOfDataModels(List modelsList) + { + List convertedList = new List(); + + foreach (Shop model in modelsList) + { + convertedList.Add(ConvertObjectToDataModel(model)); + } + + return convertedList; + } + + // 2. From data to model format + public static Shop ConvertDataModelToObject(ShopData dataModel) + { + return (Shop)dataModel.MapDataToObject(); + } + + public static List ConvertListOfDataModelsToListOfObject(List dataModelsList) + { + List convertedList = new List(); + + foreach (ShopData dataModel in dataModelsList) + { + convertedList.Add(ConvertDataModelToObject(dataModel)); + } + + return convertedList; + } +} \ No newline at end of file diff --git a/Assets/Scripts/REFACTORING/Application/Panel/Shop/SaveShopManager.cs.meta b/Assets/Scripts/REFACTORING/Application/Panel/Shop/SaveShopManager.cs.meta new file mode 100644 index 00000000..da94df6f --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/Panel/Shop/SaveShopManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fb95e6324ffd5c3438985ff99f6ac077 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/REFACTORING/Application/Panel/Shop/SceneShopDataLoader.cs b/Assets/Scripts/REFACTORING/Application/Panel/Shop/SceneShopDataLoader.cs new file mode 100644 index 00000000..56c76218 --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/Panel/Shop/SceneShopDataLoader.cs @@ -0,0 +1,108 @@ +using System; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +public class SceneShopDataLoader : SceneBaseDataLoader +{ + public SceneShopDataLoader(string _objectListName, string _objectFolderName) + { + SaveModelSystem = new SaveShopManager(); + SaveModelSystem.ObjectFolderName = _objectFolderName; + SaveModelSystem.ObjectListName = _objectListName; + } + + /* + public void LoadInventoryItemsList() + { + string path = SaveSystem.GetSavePath(); + + if (!Directory.Exists(path)) // if not exists thats mean there was nothing saved yet - nothing to load + return; + + FileInfo[] fileInfo = new DirectoryInfo(path).GetFiles(); + + foreach(FileInfo file in fileInfo) + { + if(file.Name != this.ItemsListName + ".fun") + continue; + + Dictionary equippableItemsList = SaveInventorySystem.LoadInventoryItemsList(this.ItemsListName); + + // itemEntry.Value.MapDataToObject() - map data format to object + + // save object + foreach(KeyValuePair itemEntry in equippableItemsList) + { + InventoryManager.Instance.SetupItemInInventory(itemEntry.Key, itemEntry.Value.MapDataToEquippableItemPrefarbAsset().equippableItem); + } + } + } + + public void SaveInventoryItems() + { + // Case I - if we remember all list + // 1) if after removed item form DynamicList is empty - remove all file + // 2) if after removed item form DynamciList there are another one - save updated list again + if(InventoryManager.Instance._items.Count > 0) { + + // 1. Map From Dictionary' to 'Dictionary' + Dictionary mappedList = new Dictionary(); + + foreach(KeyValuePair itemElement in InventoryManager.Instance._items) + { + mappedList[itemElement.Key] = new EquippableItemPrefabAsset( + itemElement.Value.Name, + itemElement.Value.ItemModel.name, + new Vector3(0,0,0), + (EquippableItem) itemElement.Value + ); + } + + // 2. Save Items + SaveInventorySystem.SaveInventoryItemsList(mappedList, this.ItemsListName); + } else { + string _path = SaveSystem.GetSavePath() + "/" + this.ItemsListName + ".fun"; + + try + { + Debug.Log("File to remove: " + _path); + + if(File.Exists(_path)) + { + File.Delete(_path); + } + } + catch (IOException ioExp) + { + Debug.LogError(ioExp.Message); + } + } + + // Case II - if we rememenber object per file + // 1) remove specyfic file + // + // Unfortunatelly we don't use this way of saving items yet :D + } + */ + + + protected override List LoadDynamicData() + { + SaveModelSystem.Path = PathBuilder.BuildSavePath().WithMap(CurrentMap).WithDataType(SceneElementTypeEnum.Dynamic).GetString(); + + return SaveModelSystem.LoadModelList(); + } + + protected override bool SaveDynamicData(List _elements) + { + SaveModelSystem.Path = PathBuilder.BuildSavePath().WithMap(CurrentMap).WithDataType(SceneElementTypeEnum.Dynamic).GetString(); + + return base.SaveDynamicData(_elements); + } + + protected override List LoadGenericData() { throw new NotImplementedException(); } + + protected override bool SaveGenericData(List _elements) { throw new NotImplementedException(); } +} + diff --git a/Assets/Scripts/REFACTORING/Application/Panel/Shop/SceneShopDataLoader.cs.meta b/Assets/Scripts/REFACTORING/Application/Panel/Shop/SceneShopDataLoader.cs.meta new file mode 100644 index 00000000..847002a6 --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/Panel/Shop/SceneShopDataLoader.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 46738cb8cf9b480eb99dce24e8d1e80e +timeCreated: 1670938286 \ No newline at end of file diff --git a/Assets/Scripts/REFACTORING/Application/Panel/Shop/SceneShopDataManager.cs b/Assets/Scripts/REFACTORING/Application/Panel/Shop/SceneShopDataManager.cs new file mode 100644 index 00000000..b4217b57 --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/Panel/Shop/SceneShopDataManager.cs @@ -0,0 +1,154 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using UnityEngine.SceneManagement; + +[System.Serializable] +public class SceneShopDataManager : SceneBaseDataManager +{ + protected override string OBJECT_FOLDER_NAME { get { return "Shop"; } } + protected override string OBJECT_LIST_NAME { get { return "ShopList"; } } + + [SerializeField] protected new ShopUIManager UiManager; + + // Instead of build elements on scene we collect shops distracted on scene from npc's + //[SerializeField] List ElementsToBuildOnSceneList = new List(); + + + public override void Awake() + { + if (Instance == null) + { + + Instance = this; + } + else + { + Destroy(gameObject); + } + } + + public override void Start() + { + Debug.Log("Start SceneChestData manager"); + + //TaskUIManager.FindOrCreateInstance(); + UiManager = ShopUIManager.Instance; + + if (UiManager == null) + throw new NullReferenceException("ChestUIManager not found!!!"); + + DynamicDataList = (new ShopDataListManager()).SetUiManager(ref UiManager); + + DataLoader = new SceneShopDataLoader(OBJECT_LIST_NAME, OBJECT_FOLDER_NAME); + + base.Start(); + } + + // TODO - save ChestPrefabAsset (we need to save coords...) but in manager handle Chest data.. + // + protected override void AfterStart() + { + if(OnMapAppearanceMethod.GameStatus == GameStatus.NewGame) + { + if (OnMapAppearanceMethod.Gateway != OnMapAppearanceMethodEnum.NewGame) + UseDynamicSettings(); // if there is nothing saved we will use UseDefaultSettings + else + UseDefaultSettings(); + }else + { + Debug.Log("UseDynamicSettings"); + UseDynamicSettings(); + } + } + + + protected SceneBaseDataManager GetObjectType() + { + return GameObject.FindObjectOfType(); + } + + protected SceneBaseDataManager CreateInstance(ref GameObject managerGameObject) + { + return managerGameObject.AddComponent(); + } + + + + protected override void UseDefaultSettings() + { + Debug.Log("UseDefaultSettings"); + + // we dont need to convert anything + // Instead of build elements on scene we collect shops distracted on scene from npc's + } + + protected override void UseDynamicSettings() + { + Debug.Log("UseDynamicSettings"); + + // BuildList(); + + // when chest detect player in near arrea and player press "c" + // open panel -> chest controller handle Open panel in Scene Chest Manager passing info about what Chest Palyer want to open + // Manager Build panel and pass info about chest content + + LoadDynamicData(); + + + // VERy VERY provisional SOLUTION + if (DynamicDataList.GetList().Count == 0) + { + UseDefaultSettings(); + return; + } + + UiManager.SetList(DynamicDataList.GetList()); + } + + // TODO SHOP API + public void RegisterShop(Shop newShop) + { + if (DynamicDataList.GetList().Where(shop => shop.Npc == newShop.Npc && shop.Map == SceneManager.GetActiveScene().name).Any()) + Debug.LogError("In Shop Manager there is register this shop already"); + else + { + DynamicDataList.AddElementToList(newShop); + + UiManager.SetList(DynamicDataList.GetList()); + } + } + + + + // TODO manager api + // open panel extend function + // close panel extend function + + + // TODO chest api + // add to chest - find chest by its name np + // remove from chest - select chest by its name - + // chesk item in chest - check chest by tis name + + + public override bool SaveDynamicData() + { + // TODO + // how to get list + // 1. List in UI manager should be synchronized with list in this manager + + foreach (Shop shop in UiManager.GetList()) + { + DynamicDataList.GetList().Where(el => el.Map == shop.Map && el.Npc == shop.Npc).ToList().ForEach(el => el = shop); + } + + //DynamicDataList.SetList(tmp); + + // approach: + // 1. get from outside, update local list && us it + // 2. Handle list synchronized all the time & pass local list + return SaveData(DynamicDataList.GetList(), SceneElementTypeEnum.Dynamic); + } +} diff --git a/Assets/Scripts/REFACTORING/Application/Panel/Shop/SceneShopDataManager.cs.meta b/Assets/Scripts/REFACTORING/Application/Panel/Shop/SceneShopDataManager.cs.meta new file mode 100644 index 00000000..0b5c9c0f --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/Panel/Shop/SceneShopDataManager.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 40e9faa037584ea2bfba8168125f3fde +timeCreated: 1670937942 \ No newline at end of file diff --git a/Assets/Scripts/REFACTORING/Application/Panel/Shop/ShopDataListManager.cs b/Assets/Scripts/REFACTORING/Application/Panel/Shop/ShopDataListManager.cs new file mode 100644 index 00000000..15133fc2 --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/Panel/Shop/ShopDataListManager.cs @@ -0,0 +1,31 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ShopDataListManager : DataListManager // or maybe EquippableItem - but its get conflicts... +{ + [SerializeField] protected new ShopUIManager uiManager; + + public new DataListManager SetUiManager(ref ShopUIManager _uiManager) + { + uiManager = _uiManager; + + return this; + } + + /// + /// Add shop to list + /// + /// + public override void AddElementToList(Shop newElement) + { + Elements.Add(newElement); + } + + public override void RemoveElementFromList(Shop element) + { + throw new System.NotImplementedException(); + } + + //public void AddElement +} \ No newline at end of file diff --git a/Assets/Scripts/REFACTORING/Application/Panel/Shop/ShopDataListManager.cs.meta b/Assets/Scripts/REFACTORING/Application/Panel/Shop/ShopDataListManager.cs.meta new file mode 100644 index 00000000..decd6e0c --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/Panel/Shop/ShopDataListManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: df6947d3e5006b242a8d0f4d9e352aac +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/REFACTORING/Application/Shared/Manager/Panel/SceneBaseDataLoader.cs b/Assets/Scripts/REFACTORING/Application/Shared/Manager/Panel/SceneBaseDataLoader.cs index c9710c4f..3816c919 100644 --- a/Assets/Scripts/REFACTORING/Application/Shared/Manager/Panel/SceneBaseDataLoader.cs +++ b/Assets/Scripts/REFACTORING/Application/Shared/Manager/Panel/SceneBaseDataLoader.cs @@ -73,8 +73,6 @@ public abstract class SceneBaseDataLoader : SceneDataLoaderInterface protected virtual bool SaveDynamicData(List _elements) { - Debug.Log(SaveModelSystem.Path); - try { SaveModelSystem.SaveModelList(_elements); diff --git a/Assets/Scripts/REFACTORING/Application/Shared/Manager/UI/Panel/Draggable/DraggablePanelController.cs b/Assets/Scripts/REFACTORING/Application/Shared/Manager/UI/Panel/Draggable/DraggablePanelController.cs index 99cd0351..f8fcd252 100644 --- a/Assets/Scripts/REFACTORING/Application/Shared/Manager/UI/Panel/Draggable/DraggablePanelController.cs +++ b/Assets/Scripts/REFACTORING/Application/Shared/Manager/UI/Panel/Draggable/DraggablePanelController.cs @@ -2,10 +2,13 @@ using System.Linq; using UnityEditor; using UnityEngine; +using UnityEngine.EventSystems; using UnityEngine.UI; public abstract class DraggablePanelController : PanelController>, DraggablePanelInterface { + public bool AllowToUseItemInPanel = true; + [SerializeField] protected new List ChildBoxList = new List(); protected static UIWarehouseManager _uiManager; @@ -27,11 +30,13 @@ public abstract class DraggablePanelController : PanelController slot.Number == itemSlot.Number).First()).ResetSlot(); else ((ItemSlot)ChildBoxList.Where(slot => slot.Number == itemSlot.Number).First()).SetItem(itemSlot.Item); - + // 2. Rebuild/apply UiManager content (list of items) base on slots values after its updating + // 2.1 Make copy because Add -> base.Add() -> base.Add() -> UpdateList() rebuild content ad pass "new" list (in this case with only one - firtst passed - item) to ChestContentUiMangaer.Element + UpdatePanelContent(); + } + + public override void DoubleLeftMouseClick(ItemSlot itemSlot) + { + if(AllowToUseItemInPanel) + itemSlot.Item?.InvokeEffectAction(); + } + + + public override void BuildPanelContent(List> elements) + { + base.BuildPanelContent(elements); + + ClearSlots(); + } + + public void UpdatePanelContent() + { // 2.1 Make copy because Add -> base.Add() -> base.Add() -> UpdateList() rebuild content ad pass "new" list (in this case with only one - firtst passed - item) to ChestContentUiMangaer.Element var ChildBoxListCopy = new List>(ChildBoxList.Where(slot => slot.Item != null).Select(slot => new IndexValuePair(slot.Number, slot.Item)).ToList()); UiManager.RemoveAll(); - foreach(IndexValuePair slot in ChildBoxListCopy) + foreach (IndexValuePair slot in ChildBoxListCopy) { if (slot.Value != null) { @@ -41,13 +61,6 @@ public abstract class WarehousePanelController : DraggablePanelController } } - public override void BuildPanelContent(List> elements) - { - base.BuildPanelContent(elements); - - ClearSlots(); - } - public override void ClearSlots() { foreach (ItemSlot ChestSlot in ChildBoxList) diff --git a/Assets/Scripts/REFACTORING/Application/Shared/Manager/UI/UIBaseManager.cs b/Assets/Scripts/REFACTORING/Application/Shared/Manager/UI/UIBaseManager.cs index c9ad475f..798fc9ee 100644 --- a/Assets/Scripts/REFACTORING/Application/Shared/Manager/UI/UIBaseManager.cs +++ b/Assets/Scripts/REFACTORING/Application/Shared/Manager/UI/UIBaseManager.cs @@ -71,6 +71,8 @@ public abstract class UIBaseManager : MonoBehaviour, ManagerInterface DynamicPanel.transform.localPosition = uiPanelTemplate.transform.position; // prevent overwritten position by... environment??? + DynamicPanel.name = uiPanelTemplate.name; + SetupPanel(); return true; diff --git a/Assets/Scripts/REFACTORING/Application/Shared/Mapper.meta b/Assets/Scripts/REFACTORING/Application/Shared/Mapper.meta new file mode 100644 index 00000000..8876b16d --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/Shared/Mapper.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ce25c90d4bfc30849b2f0c4d83a0c5cb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/REFACTORING/Application/Shared/Mapper/IModelMapper.cs b/Assets/Scripts/REFACTORING/Application/Shared/Mapper/IModelMapper.cs new file mode 100644 index 00000000..29934bcd --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/Shared/Mapper/IModelMapper.cs @@ -0,0 +1,9 @@ + +interface IModelMapper +{ + public abstract T MapDataToObject(string prefarbAssetName); + + public abstract T MapDataToObject(); + +} + diff --git a/Assets/Scripts/REFACTORING/Application/Shared/Mapper/IModelMapper.cs.meta b/Assets/Scripts/REFACTORING/Application/Shared/Mapper/IModelMapper.cs.meta new file mode 100644 index 00000000..e4197531 --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/Shared/Mapper/IModelMapper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d6b77778b83103e4086ee2bd0e833032 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/REFACTORING/Application/Shop.meta b/Assets/Scripts/REFACTORING/Application/Shop.meta new file mode 100644 index 00000000..76e4ad96 --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/Shop.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 48fd614d22204de49ada0e5287d3f5ba +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/REFACTORING/Application/Shop/ShopItemCardKeeper.cs b/Assets/Scripts/REFACTORING/Application/Shop/ShopItemCardKeeper.cs new file mode 100644 index 00000000..36aea2b2 --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/Shop/ShopItemCardKeeper.cs @@ -0,0 +1,168 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +public enum ShopItemCardMode +{ + Buy, + Sell +} + +class ShopItemCardKeeper : MonoBehaviour +{ + [Header("Current Item")] + public EquippableItem SelectedItem; + public int OriginSlotNumver; + + [Header("Shopping Card")] + [SerializeField] private Button _buyButton; + [SerializeField] private Button _sellButton; + + + [Header("Item Preveiw Section")] + [SerializeField] public ShopItemCardMode ShopMode; + [SerializeField] private TextMeshProUGUI _itemPreviewName; + [SerializeField] private TextMeshProUGUI _itemPreviewDescription; + [SerializeField] private TextMeshProUGUI _itemPreviewStats; + [SerializeField] private TextMeshProUGUI _itemPreviewStatsValue; + [SerializeField] private Text _itemPreviewPrice; + + + public void ShowItemDetails(ItemSlot itemSlot, ShopItemCardMode mode = ShopItemCardMode.Buy) + { + SelectedItem = itemSlot.Item; + OriginSlotNumver = itemSlot.Number; + + ShopMode = mode; + + gameObject.active = true; + + BildCardContent(); + } + + public void BildCardContent() + { + // Clear poanel + if (!SelectedItem) + { + _itemPreviewName.text = ""; + _itemPreviewDescription.text = ""; + _itemPreviewStats.text = ""; + _itemPreviewStatsValue.text = ""; + _itemPreviewPrice.text = ""; + + _buyButton.gameObject.SetActive(false); + _sellButton.gameObject.SetActive(false); + + return; + } + + + _itemPreviewName.text = SelectedItem.Name; + + _itemPreviewDescription.text = SelectedItem.Description; + + _itemPreviewStats.text = BuildItemStats(); + _itemPreviewStatsValue.text = SelectedItem.Value.ToString(); + + _itemPreviewPrice.text = $"Price: {CountPrice()}"; + + switch(ShopMode) + { + case ShopItemCardMode.Buy: + { + _sellButton.gameObject.SetActive(false); + + _buyButton.gameObject.SetActive(true); + + break; + } + case ShopItemCardMode.Sell: + { + _buyButton.gameObject.SetActive(false); + + _sellButton.gameObject.SetActive(true); + + break; + } + } + } + + public string BuildItemStats() + { + if(SelectedItem.EquipmentType == EquipmentTypeEnum.Weapon) + return $"Attack: \n"; + + if (SelectedItem.EquipmentType == EquipmentTypeEnum.Helmet || SelectedItem.EquipmentType == EquipmentTypeEnum.Chest) + return $"Deffence: \n"; + + if (SelectedItem.EquipmentType == EquipmentTypeEnum.Boots) + return $"Speed: \n"; + + return ""; + } + + public int CountPrice() + { + return SelectedItem.Price; + } + + public void BuyItem() + { + Debug.Log("Buy item"); + + if (!_buyButton.IsActive()) + return; + + // TODO - CHECK PLAYER ACCOUNT + + // 1. Buy transaction + // 1.1.1 Add to player Inventory Panel + refresh view + InventoryUIManager.Instance.Add(SelectedItem); + + if (InventoryUIManager.Instance.GetPanelStatus()) + GameObject.FindObjectOfType().BuildPanelContent(InventoryUIManager.Instance.GetList()); + + // 1.1.2 Save chnages in Inventory Panel + SceneInventoryDataManager.Instance.SaveDynamicData(); + + // 1.2.1 Remove item from Shop Panel + ShopContentUIManager.Instance.RemoveByPosition(OriginSlotNumver); + + if (ShopUIManager.Instance.GetPanelStatus()) + GameObject.FindObjectOfType().BuildPanelContent(ShopContentUIManager.Instance.GetList()); + + // 1.2.2 Save chnages in Shop Panel + SceneInventoryDataManager.Instance.SaveDynamicData(); + + + + // 2. TODO - Player gold change & save + } + + public void SellItem() + { + Debug.Log("Sell item"); + + if (!_sellButton.IsActive()) + return; + + // 1. Sell transaction + // 1.1.1 Remove from player Inventory Panel by position + refresh view + InventoryUIManager.Instance.RemoveByPosition(OriginSlotNumver); + + if (InventoryUIManager.Instance.GetPanelStatus()) + GameObject.FindObjectOfType().BuildPanelContent(InventoryUIManager.Instance.GetList()); + + // 1.1.2 Save chnages in Inventory Panel + SceneInventoryDataManager.Instance.SaveDynamicData(); + + + // 2. TODO - Player gold change & save + } +} \ No newline at end of file diff --git a/Assets/Scripts/REFACTORING/Application/Shop/ShopItemCardKeeper.cs.meta b/Assets/Scripts/REFACTORING/Application/Shop/ShopItemCardKeeper.cs.meta new file mode 100644 index 00000000..86a8d5cf --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/Shop/ShopItemCardKeeper.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9e2866969bce0b54dbc4690d51aa19aa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/REFACTORING/Application/UI/Chest/ChestUIManager.cs b/Assets/Scripts/REFACTORING/Application/UI/Chest/ChestUIManager.cs index b2c42e1b..760b6ea3 100644 --- a/Assets/Scripts/REFACTORING/Application/UI/Chest/ChestUIManager.cs +++ b/Assets/Scripts/REFACTORING/Application/UI/Chest/ChestUIManager.cs @@ -49,6 +49,12 @@ public class ChestUIManager : UIBaseManager ChestContentUIManager.Instance.DynamicPanel = null; + // Close additionals panels + if (EquipmentUIManager.Instance.GetPanelStatus()) EquipmentUIManager.Instance.ClosePanel(); + + if (InventoryUIManager.Instance.GetPanelStatus()) InventoryUIManager.Instance.ClosePanel(); + + return true; } diff --git a/Assets/Scripts/REFACTORING/Application/UI/Equipment/EquipmentUIManager.cs b/Assets/Scripts/REFACTORING/Application/UI/Equipment/EquipmentUIManager.cs index 3cd547fc..96e23d33 100644 --- a/Assets/Scripts/REFACTORING/Application/UI/Equipment/EquipmentUIManager.cs +++ b/Assets/Scripts/REFACTORING/Application/UI/Equipment/EquipmentUIManager.cs @@ -25,6 +25,23 @@ public class EquipmentUIManager : UIWarehouseManager } } + public override bool OpenPanel() + { + /** + * We dont want to be able to open Inventory Panel when shop is opened + */ + if (ShopUIManager.Instance.GetPanelStatus()) + { + return false; + } + + return base.OpenPanel(); + } + + + + + public override void SetupPanel() { base.SetupPanel(); diff --git a/Assets/Scripts/REFACTORING/Application/UI/Panel/ChestPanelController.cs b/Assets/Scripts/REFACTORING/Application/UI/Panel/ChestPanelController.cs index 319296ba..4f3979cf 100644 --- a/Assets/Scripts/REFACTORING/Application/UI/Panel/ChestPanelController.cs +++ b/Assets/Scripts/REFACTORING/Application/UI/Panel/ChestPanelController.cs @@ -23,6 +23,10 @@ public class ChestPanelController : WarehousePanelController // - remove item from position // - find item in warehouse + private void Start() + { + AllowToUseItemInPanel = false; + } // 1. Prepare empty panel public override void BuildPanelSlots() diff --git a/Assets/Scripts/REFACTORING/Application/UI/Panel/EquipmentPanelController.cs b/Assets/Scripts/REFACTORING/Application/UI/Panel/EquipmentPanelController.cs index 224ddc4e..4be023f1 100644 --- a/Assets/Scripts/REFACTORING/Application/UI/Panel/EquipmentPanelController.cs +++ b/Assets/Scripts/REFACTORING/Application/UI/Panel/EquipmentPanelController.cs @@ -92,9 +92,7 @@ public class EquipmentPanelController : DraggablePanelController var ChildBoxListCopy = new List>(ChildBoxList.Where(slot => slot.Item != null).Select(slot => new IndexValuePair(slot.Number, slot.Item)).ToList()); - Debug.Log(ChildBoxListCopy.Count()); UiManager.RemoveAll(); - Debug.Log(ChildBoxListCopy.Count()); foreach (IndexValuePair slot in ChildBoxListCopy) { @@ -105,7 +103,7 @@ public class EquipmentPanelController : DraggablePanelController } else { - UiManager.Add(new IndexValuePair(slot.Key, null)); + UiManager.Add(new IndexValuePair(slot.Key, null)); // ONLY DIFFERENCE BETWEEN UpdatePanelContent() } } } diff --git a/Assets/Scripts/REFACTORING/Application/UI/Panel/InventoryPanelController.cs b/Assets/Scripts/REFACTORING/Application/UI/Panel/InventoryPanelController.cs index ab0d1f16..ab59f556 100644 --- a/Assets/Scripts/REFACTORING/Application/UI/Panel/InventoryPanelController.cs +++ b/Assets/Scripts/REFACTORING/Application/UI/Panel/InventoryPanelController.cs @@ -88,4 +88,11 @@ public class InventoryPanelController : WarehousePanelController ChildBoxList[element.Key].SetItem(element.Value); } } + + public override void SingleLeftMouseClick(ItemSlot itemSlot) + { + // mark item as selected in shop panel + if (ShopContentUIManager.Instance.DynamicPanel) + ShopContentUIManager.Instance.DynamicPanel.transform.Find("ItemDetails").GetComponent().ShowItemDetails(itemSlot, ShopItemCardMode.Sell); + } } diff --git a/Assets/Scripts/REFACTORING/Application/UI/Panel/ShopPanelController.cs b/Assets/Scripts/REFACTORING/Application/UI/Panel/ShopPanelController.cs new file mode 100644 index 00000000..73e17a8d --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/UI/Panel/ShopPanelController.cs @@ -0,0 +1,117 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.UI; +using UnityEngine.EventSystems; +using System; + + +public class ShopPanelController : WarehousePanelController +{ + protected override UIBaseManager> FetchUiManager() + { + return GameObject.FindObjectOfType(); + } + + // build panel sunction + // - setup - main function to build panel on screen + // - setPanelISlots - build slots on panel dependiong on declared amount + // - setPanelItems - invoking building items on slots + + // api for drag and drop + // - set item on position + // - remove item from position + // - find item in warehouse + + private void Start() + { + AllowToUseItemInPanel = false; + } + + // 1. Prepare empty panel + public override void BuildPanelSlots() + { + if (_panelContent == null) + throw new Exception("Panel content is not attaches"); + + for (int _position = 0; _position < UiManager.SLOTS_NUMBER; _position++) + { + //ISlot newSlot = SetupSlot(_position, _panel); + GameObject newSlot = BuildSlot(_position, _panelContent); + + // Set new Slot instance + ChildBoxList.Add(newSlot.GetComponent()); + + // Assign events + ChildBoxList[_position] = SetupDragAndDropToSlot(ChildBoxList[_position]); + } + } + + public override GameObject BuildSlot(int key, GameObject _parent) + { + if (ChildBoxTemplate == null) + throw new Exception("chestslotbox_template is empty"); + + GameObject _newItemSlot = MonoBehaviour.Instantiate(ChildBoxTemplate, _parent.transform.position, Quaternion.identity); //.GetComponent(); + + _newItemSlot.transform.SetParent(_parent.transform); + _newItemSlot.transform.localScale = new Vector3(1.15f, 1.15f, 1.15f); + + _newItemSlot.GetComponent().SetupSlot(key, null, this); + + return _newItemSlot; + } + + + // 2. Set up panel additn items to it + public override void SetUp(List> elements) + { + // Build panel content template + BuildPanelSlots(); + + // Fill with items + BuildPanelContent(elements); + } + + + public override void BuildPanelContent(List> elements) + { + + base.BuildPanelContent(elements); + + foreach (IndexValuePair element in elements) + { + Debug.Log($"key: {element.Key} - value: {element.Value}"); + ChildBoxList[element.Key].SetItem(new EquippableItem(element.Value)); + } + } + + + //clear deffault efects + public override void BeginDrag(ItemSlot itemSlot) + { + } + + public override void Drag(ItemSlot itemSlot) + { + } + + public override void EndDrag(ItemSlot itemSlot) + { + } + + public override void Drop(ItemSlot dropItemSlot) + { + } + public override void SingleLeftMouseClick(ItemSlot itemSlot) + { + // set item as selected + if (ShopContentUIManager.Instance.DynamicPanel) + ShopContentUIManager.Instance.DynamicPanel.transform.Find("ItemDetails").GetComponent().ShowItemDetails(itemSlot); + } +} + + +//Chest content manager +// gest new elements list after open chest +// remove: -> remove from list, (binding) update list in chest \ No newline at end of file diff --git a/Assets/Scripts/REFACTORING/Application/UI/Panel/ShopPanelController.cs.meta b/Assets/Scripts/REFACTORING/Application/UI/Panel/ShopPanelController.cs.meta new file mode 100644 index 00000000..323ffad5 --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/UI/Panel/ShopPanelController.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 66c5355517f64f558a08ba75b98d4fb0 +timeCreated: 1670939743 \ No newline at end of file diff --git a/Assets/Scripts/REFACTORING/Application/UI/Shop.meta b/Assets/Scripts/REFACTORING/Application/UI/Shop.meta new file mode 100644 index 00000000..258ad9d1 --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/UI/Shop.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: e1e52654453b412e87f740d47e3757ee +timeCreated: 1670938603 \ No newline at end of file diff --git a/Assets/Scripts/REFACTORING/Application/UI/Shop/ShopContentUIManager.cs b/Assets/Scripts/REFACTORING/Application/UI/Shop/ShopContentUIManager.cs new file mode 100644 index 00000000..69e2c670 --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/UI/Shop/ShopContentUIManager.cs @@ -0,0 +1,113 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.SceneManagement; + +public class ShopContentUIManager : UIWarehouseManager +{ + public static new ShopContentUIManager Instance { get; protected set; } + + public override int SLOTS_NUMBER { get { return 24; } } + + public const string ITEM_LOCALIZATION = "UiPanels/"; + public const string PANEL_NAME = null; + + public void Awake() + { + if (Instance == null) + { + Instance = this; + } + else + { + Debug.Log(Instance); + Debug.Log("destroiy shop UI"); + Destroy(gameObject); + } + } + /* + public override void UpdateList() + { + // TODO something like rebuild associated panel content + // depending on which class we use it mayu be Inventory / Chest / Shop Panel Controller + DynamicPanel.GetComponent(); //.Refresh() -- rebuild content + }*/ + + public void Update() + { + // use empty function to override parent Update + // to prevent using Open Panel and Close Panel!!! + // this UI manager mustn't open panel - only manage passed chest content and return updated data + } + + public bool OpenPanel() { return true; } + public bool ClosePanel() { return true; } + protected override GameObject GetTemplatePanel() { throw new System.NotImplementedException(); } + + + public override void SetupPanel() + { + base.SetupPanel(); + + // setup models list + DynamicPanel.GetComponent().SetUp(Elements); + } + + public override void UpdateList() + { + DynamicPanel.GetComponent().BuildPanelContent(Elements); + } + + #region adust parent function + public override void Add(IndexValuePair itemOnSlot) + { + base.Add(itemOnSlot); + + UpdateShopContent(); + } + + public override void Add(EquippableItem item) + { + base.Add(item); + + UpdateShopContent(); + } + + public override void RemoveByPosition(int keyPosition) + { + base.RemoveByPosition(keyPosition); + + UpdateShopContent(); + } + + public override int RemoveByItemId(int itemId) + { + var result = base.RemoveByItemId(itemId); + + UpdateShopContent(); + + return result; + } + + public override int RemoveByItemName(string itemName) + { + var result = base.RemoveByItemName(itemName); + + UpdateShopContent(); + + return result; + } + + public override void RemoveAll() + { + Elements.Clear(); + + UpdateShopContent(); + } + #endregion + + private void UpdateShopContent() + { + ShopUIManager.Instance.UpdateShopContent(SceneManager.GetActiveScene().name, ShopUIManager.Instance.CurrentShopOwnerName, Elements); + } +} \ No newline at end of file diff --git a/Assets/Scripts/REFACTORING/Application/UI/Shop/ShopContentUIManager.cs.meta b/Assets/Scripts/REFACTORING/Application/UI/Shop/ShopContentUIManager.cs.meta new file mode 100644 index 00000000..1d7d273f --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/UI/Shop/ShopContentUIManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 703bf6cf8b4d9d949a3bf7543e072e30 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/REFACTORING/Application/UI/Shop/ShopUIManager.cs b/Assets/Scripts/REFACTORING/Application/UI/Shop/ShopUIManager.cs new file mode 100644 index 00000000..8bf5317b --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/UI/Shop/ShopUIManager.cs @@ -0,0 +1,108 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using UnityEngine.SceneManagement; + +[Serializable] +public class ShopUIManager : UIBaseManager +{ + public new static ShopUIManager Instance { get; private set; } + + public const string ITEM_LOCALIZATION = "UiPanels/Shop/"; + public const string PANEL_NAME = "ShopPanel"; + //public int SLOTS_NUMBER => 24; + + /// + /// Keys pair to detect chest + /// + [Space] + [Header("Current shop unique keys")] + public string CurrentShopOwnerName = null; // OR NPC NAME + + public void Awake() + { + if (Instance == null) + { + Instance = this; + } + else + { + Destroy(gameObject); + } + } + + public override bool OpenPanel() + { + if (CurrentShopOwnerName == null || CurrentShopOwnerName == "") + { + Debug.Log($"You re not in range of any shop"); + + return false; + } + + // Open additionals panels + if (!InventoryUIManager.Instance.GetPanelStatus()) InventoryUIManager.Instance.OpenPanel(); + + return base.OpenPanel(); + } + + public override bool ClosePanel() + { + base.ClosePanel(); + + ShopContentUIManager.Instance.DynamicPanel = null; + + // Close additionals panels + if (InventoryUIManager.Instance.GetPanelStatus()) InventoryUIManager.Instance.ClosePanel(); + + return true; + } + + public override void SetupPanel() + { + base.SetupPanel(); + + var shop = FindShopInCollection(SceneManager.GetActiveScene().name, CurrentShopOwnerName); + if (shop == null) + throw new Exception($"Shop {CurrentShopOwnerName} not found"); + + Debug.Log("Shop UI setupPanel"); + + ShopContentUIManager.Instance.SetList(shop.GetContent()); + ShopContentUIManager.Instance.DynamicPanel = DynamicPanel; + ShopContentUIManager.Instance.SetupPanel(); + } + + public override void UpdateList() + { + if (CurrentShopOwnerName == null || CurrentShopOwnerName == "") + throw new Exception($"You re not in collision with any chest"); + + + var shop = FindShopInCollection(SceneManager.GetActiveScene().name, CurrentShopOwnerName); + if (shop == null) + throw new Exception($"Chest {CurrentShopOwnerName} not found"); + + ShopContentUIManager.Instance.SetList(shop.GetContent()); + ShopContentUIManager.Instance.DynamicPanel = DynamicPanel; + ShopContentUIManager.Instance.UpdateList(); + } + + public void UpdateShopContent(string mapName, string shopOwnerName, List> chestContent) + { + Elements.Where(shop => shop.Map == mapName && shop.Npc == shopOwnerName).ToList().ForEach(shop => shop.SetContent(chestContent)); + } + + protected override GameObject GetTemplatePanel() + { + // Resources = default path - Asset/Resources ... .obj + return Resources.Load(ITEM_LOCALIZATION + PANEL_NAME) as GameObject; + } + + private Shop FindShopInCollection(string _mapName, string _shopOwnerName) + { + Elements.ForEach(el => Debug.Log(el.Npc + " - " + el.Map)); + return Elements.Find(shop => shop.Map == _mapName && shop.Npc == _shopOwnerName); + } +} \ No newline at end of file diff --git a/Assets/Scripts/REFACTORING/Application/UI/Shop/ShopUIManager.cs.meta b/Assets/Scripts/REFACTORING/Application/UI/Shop/ShopUIManager.cs.meta new file mode 100644 index 00000000..bd1c19d9 --- /dev/null +++ b/Assets/Scripts/REFACTORING/Application/UI/Shop/ShopUIManager.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 4d0be1073753419b9be341d0f373ba56 +timeCreated: 1670938751 \ No newline at end of file diff --git a/Assets/Scripts/REFACTORING/Models/Item/EquippableItem/EquippableItem.cs b/Assets/Scripts/REFACTORING/Models/Item/EquippableItem/EquippableItem.cs index bab69af5..533203f6 100644 --- a/Assets/Scripts/REFACTORING/Models/Item/EquippableItem/EquippableItem.cs +++ b/Assets/Scripts/REFACTORING/Models/Item/EquippableItem/EquippableItem.cs @@ -21,7 +21,7 @@ public class EquippableItem : Item public EquippableItem(Item _item) : base(_item) {} - public EquippableItem(EquippableItem _item) : base(_item.name, _item.description, _item.level, _item.itemModel, _item.image) + public EquippableItem(EquippableItem _item) : base(_item.name, _item.description, _item.level, _item.value, _item.price, _item.itemModel, _item.image) { StrengthBonus = _item.StrengthBonus; AgilityBonus = _item.AgilityBonus; @@ -31,6 +31,6 @@ public class EquippableItem : Item EquipmentType = _item.EquipmentType; } - public EquippableItem(string _name, string _description, int _level, GameObject _itemModel, Sprite _image) : base(_name, _description, _level, _itemModel, _image) { } + public EquippableItem(string _name, string _description, int _level, int _value, int _price, GameObject _itemModel, Sprite _image) : base(_name, _description, _level, _value, _price, _itemModel, _image) { } } diff --git a/Assets/Scripts/REFACTORING/Models/Item/Item.cs b/Assets/Scripts/REFACTORING/Models/Item/Item.cs index c27b9cfe..60d7b190 100644 --- a/Assets/Scripts/REFACTORING/Models/Item/Item.cs +++ b/Assets/Scripts/REFACTORING/Models/Item/Item.cs @@ -1,6 +1,8 @@ +using System; using System.Collections; using System.Collections.Generic; using UnityEngine; +using UnityEngine.Events; using UnityEngine.UI; [System.Serializable] @@ -35,6 +37,13 @@ public class Item : ScriptableObject set { level = value; } } + public int value; + public int Value + { + get { return value; } + set { this.value = value; } + } + public Sprite image; public Sprite Image { @@ -50,6 +59,15 @@ public class Item : ScriptableObject set { itemModel = value; } } + public int price; + public int Price + { + get { return price; } + set { price = value; } + } + + + public UnityEvent useEffect = new UnityEvent(); public Item() {} public Item(Item _item) @@ -57,32 +75,37 @@ public class Item : ScriptableObject this.Name = _item.Name; this.Description = _item.Description; this.Level = _item.Level; + this.Value = _item.Value; + this.Price = _item.price; this.ItemModel = _item.ItemModel; this.Image = _item.Image; } - public Item(string _name, string _description, int _level, GameObject _itemModel, Sprite _image) + public Item(string _name, string _description, int _level, int _value, GameObject _itemModel, Sprite _image) { this.Name = _name; this.Description = _description; this.Level = _level; + this.Value = _value; this.ItemModel = _itemModel; this.Image = _image; } -// public void SaveItem() -// { -// SaveItemSystem.SaveItem(this); -// } + public Item(string _name, string _description, int _level, int _value, int _price, GameObject _itemModel, Sprite _image) + { + this.Name = _name; + this.Description = _description; + this.Level = _level; + this.Value = _value; + this.Price = _price; + this.ItemModel = _itemModel; + this.Image = _image; + } -// public void LoadItem() -// { -// ItemData data = SaveItemSystem.LoadIten(); -// id = data.id; -// name = data.name; -// description = data.description; -// level = data.level; - -// } + public void InvokeEffectAction() + { + Debug.Log($"Use {name} effect"); + useEffect.Invoke(); + } } diff --git a/Assets/Scripts/REFACTORING/Models/Item/ItemData.cs b/Assets/Scripts/REFACTORING/Models/Item/ItemData.cs index bd2bb575..b5b1e456 100644 --- a/Assets/Scripts/REFACTORING/Models/Item/ItemData.cs +++ b/Assets/Scripts/REFACTORING/Models/Item/ItemData.cs @@ -11,6 +11,12 @@ public abstract class ItemData : ModelData [SerializeField] public int level; + [SerializeField] + public int value; + + [SerializeField] + public int price; + [SerializeField] public string imageName; @@ -21,6 +27,8 @@ public abstract class ItemData : ModelData { description = item.description; level = item.level; + value = item.value; + price = item.price; imageName = item.image.name; } diff --git a/Assets/Scripts/REFACTORING/Models/Panel/Slot/ISlot.cs b/Assets/Scripts/REFACTORING/Models/Panel/Slot/ISlot.cs index 21181fa8..4361a35d 100644 --- a/Assets/Scripts/REFACTORING/Models/Panel/Slot/ISlot.cs +++ b/Assets/Scripts/REFACTORING/Models/Panel/Slot/ISlot.cs @@ -17,6 +17,7 @@ public interface ISlot event Action OnEndDragEvent; event Action OnDragEvent; event Action OnDropEvent; + event Action OnPointerClickEvent; //(B)Islot // as B public void SetupSlot(int _number, EquippableItem _item, WarehousePanelController _PanelController); diff --git a/Assets/Scripts/REFACTORING/Models/Panel/Slot/ItemSlot.cs b/Assets/Scripts/REFACTORING/Models/Panel/Slot/ItemSlot.cs index 5d02945b..d26c9d25 100644 --- a/Assets/Scripts/REFACTORING/Models/Panel/Slot/ItemSlot.cs +++ b/Assets/Scripts/REFACTORING/Models/Panel/Slot/ItemSlot.cs @@ -1,4 +1,4 @@ -using System.Collections; +using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; @@ -6,7 +6,7 @@ using UnityEngine.UI; using UnityEngine.EventSystems; using System; // for Action type -public class ItemSlot : MonoBehaviour, ISlot, IBeginDragHandler, IEndDragHandler, IDragHandler, IDropHandler +public class ItemSlot : MonoBehaviour, ISlot, IBeginDragHandler, IEndDragHandler, IDragHandler, IDropHandler, IPointerClickHandler { [Header("UI Stuff to change")] [SerializeField] private TextMeshProUGUI slotItemNumberText; @@ -47,6 +47,7 @@ public class ItemSlot : MonoBehaviour, ISlot, IBeginDragHandler, IEndDragHandler public event Action OnEndDragEvent; public event Action OnDragEvent; public event Action OnDropEvent; + public event Action OnPointerClickEvent; /* public ItemSlot() { } public ItemSlot(int number, EquippableItem item = null) @@ -54,15 +55,15 @@ public class ItemSlot : MonoBehaviour, ISlot, IBeginDragHandler, IEndDragHandler Number = number; Item = item; }*/ -/* - public ItemSlot(ItemSlot slot) - { - Number = slot.Number; - Item = slot.Item; + /* + public ItemSlot(ItemSlot slot) + { + Number = slot.Number; + Item = slot.Item; - slotItemNumberText = slot.slotItemNumberText; - itemImage = slot.itemImage; - }*/ + slotItemNumberText = slot.slotItemNumberText; + itemImage = slot.itemImage; + }*/ public void SetupSlot(int _number, EquippableItem _item, WarehousePanelController _PanelController) { @@ -154,5 +155,11 @@ public class ItemSlot : MonoBehaviour, ISlot, IBeginDragHandler, IEndDragHandler if(OnDropEvent != null) OnDropEvent(this); } + + public void OnPointerClick(PointerEventData eventData) + { + if (OnPointerClickEvent != null) + OnPointerClickEvent(this, eventData); + } #endregion } diff --git a/Assets/Scripts/REFACTORING/Models/Panel/Slot/ShopSlot.cs b/Assets/Scripts/REFACTORING/Models/Panel/Slot/ShopSlot.cs new file mode 100644 index 00000000..8bc8e707 --- /dev/null +++ b/Assets/Scripts/REFACTORING/Models/Panel/Slot/ShopSlot.cs @@ -0,0 +1,26 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.EventSystems; + +public class ShopSlot : ItemSlot +{ + /* public ShopSlot(int number, Item item): base(number, item) + { + + }*/ + + public override bool CanReceiveItem(Item item) + { + return true; + + // // allow to put item only when slot is empty + // if(Item == null) + // return true; + + // EquippableItem equippableItem = item as EquippableItem; + // return equippableItem == null; + // // what when player try drop putted equipment fowart to chest + // // what when player try put item on unempty field + } +} diff --git a/Assets/Scripts/REFACTORING/Models/Panel/Slot/ShopSlot.cs.meta b/Assets/Scripts/REFACTORING/Models/Panel/Slot/ShopSlot.cs.meta new file mode 100644 index 00000000..999a49fe --- /dev/null +++ b/Assets/Scripts/REFACTORING/Models/Panel/Slot/ShopSlot.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6bf41236973acd14caf4428b908d0674 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/REFACTORING/Models/Shared/ModelData.cs b/Assets/Scripts/REFACTORING/Models/Shared/ModelData.cs index 05967ee0..931489a7 100644 --- a/Assets/Scripts/REFACTORING/Models/Shared/ModelData.cs +++ b/Assets/Scripts/REFACTORING/Models/Shared/ModelData.cs @@ -2,7 +2,7 @@ using UnityEngine; [System.Serializable] -public abstract class ModelData +public abstract class ModelData : IModelMapper { [SerializeField] public int id; @@ -18,6 +18,8 @@ public abstract class ModelData protected virtual string MODEL_LOCALIZATION => ""; + public ModelData() { } + public ModelData(int _id, string _name) { id = _id; @@ -30,10 +32,9 @@ public abstract class ModelData name = _name; modelName = _modelName; // name of the prefab } + protected abstract V TryFindResource(string modelName); public abstract T MapDataToObject(string prefarbAssetName); public abstract T MapDataToObject(); - - protected abstract V TryFindResource(string modelName); } \ No newline at end of file diff --git a/Assets/Scripts/REFACTORING/Models/Shop.meta b/Assets/Scripts/REFACTORING/Models/Shop.meta new file mode 100644 index 00000000..892c333f --- /dev/null +++ b/Assets/Scripts/REFACTORING/Models/Shop.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: af03d81ce8418c445a237cd953ac7746 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/REFACTORING/Models/Shop/Shop.cs b/Assets/Scripts/REFACTORING/Models/Shop/Shop.cs new file mode 100644 index 00000000..b426e85e --- /dev/null +++ b/Assets/Scripts/REFACTORING/Models/Shop/Shop.cs @@ -0,0 +1,91 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; + +[System.Serializable] +public class Shop +{ + [NonSerialized] + public string Npc; + + [NonSerialized] + public string Map; + + [SerializeField] + public List> Content = new List>(); + + public Shop(string _map) + { + Map = _map; + } + + public Shop(string _map, string _npc) + { + Map = _map; + Npc = _npc; + } + + public Shop(string _map, string _npc, List> _content) + { + Map = _map; + Npc = _npc; + Content = _content; + } + + public void SetContent(List> _content) + { + Content = _content; + } + + public List> GetContent() + { + return Content; + } + + #region item + public void AddItemToShop(Item _item) + { + int firstEmptyPosition = FindFirstEmptyPosition(); + + Content.Add(new IndexValuePair(firstEmptyPosition, (EquippableItem)_item)); + } + + public void AddItemToShopOnPosition(int _position, Item _item) + { + Content.Add(new IndexValuePair(_position, (EquippableItem)_item)); + } + #endregion + + #region equippable item + public void AddItemToShop(EquippableItem _item) + { + int firstEmptyPosition = FindFirstEmptyPosition(); + + Content.Add(new IndexValuePair(firstEmptyPosition, _item)); + } + + public void AddItemToShopOnPosition(int _position, EquippableItem _item) + { + Content.Add(new IndexValuePair(_position, _item)); + } + #endregion + + public int FindFirstEmptyPosition() + { + if (Content.Any()) + { + for (int i = 0; i < Content.Count(); i++) + { + if (Content.Count(el => el.Key == i && el.Value != null) != 0) + continue; + + return i; + } + } + + return 0; + } +} diff --git a/Assets/Scripts/REFACTORING/Models/Shop/Shop.cs.meta b/Assets/Scripts/REFACTORING/Models/Shop/Shop.cs.meta new file mode 100644 index 00000000..399f542a --- /dev/null +++ b/Assets/Scripts/REFACTORING/Models/Shop/Shop.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0490e96226021924b891436f9071aca7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/REFACTORING/Models/Shop/ShopData.cs b/Assets/Scripts/REFACTORING/Models/Shop/ShopData.cs new file mode 100644 index 00000000..bf08ce55 --- /dev/null +++ b/Assets/Scripts/REFACTORING/Models/Shop/ShopData.cs @@ -0,0 +1,55 @@ +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +[System.Serializable] +public class ShopData : IModelMapper +{ + + [SerializeField] + public List> content = new List>(); + + [SerializeField] + public string Map; + + [SerializeField] + public string NpcName; + + public ShopData(Shop shop) + { + Map = shop.Map; + NpcName = shop.Npc; + + foreach (IndexValuePair item in shop.Content) + { + content.Add( + new IndexValuePair(item.Key, new EquippableItemData(item.Value)) + ); + } + } + + public Shop MapDataToObject() + { + var shop = new Shop(Map, NpcName); + + shop.Content.Clear(); + + foreach (IndexValuePair item in content) + { + var castedObject = item.Value.MapDataToObject() as EquippableItem; + + if (castedObject == null) + shop.Content.Add( + new IndexValuePair(item.Key, new EquippableItem(item.Value.MapDataToObject())) + ); + else + shop.Content.Add( + new IndexValuePair(item.Key, castedObject) + ); + } + + return shop; + } + + public Shop MapDataToObject(string prefarbAssetName) { throw new System.NotImplementedException(); } +} diff --git a/Assets/Scripts/REFACTORING/Models/Shop/ShopData.cs.meta b/Assets/Scripts/REFACTORING/Models/Shop/ShopData.cs.meta new file mode 100644 index 00000000..6190e6e8 --- /dev/null +++ b/Assets/Scripts/REFACTORING/Models/Shop/ShopData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 28e57ba1626c78244b20f9ee261cac1c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/REFACTORING/Story.meta b/Assets/Scripts/REFACTORING/Story.meta new file mode 100644 index 00000000..7f4e97a4 --- /dev/null +++ b/Assets/Scripts/REFACTORING/Story.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 429e6ec48b6b6cd4c93c3b8cb6bba0d6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/REFACTORING/Story/WizardHouse.meta b/Assets/Scripts/REFACTORING/Story/WizardHouse.meta new file mode 100644 index 00000000..9ba7293a --- /dev/null +++ b/Assets/Scripts/REFACTORING/Story/WizardHouse.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bd4cef05b2907f4449fc832dfe3140e5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/REFACTORING/Story/WizardHouse/ResetPlayer.cs.meta b/Assets/Scripts/REFACTORING/Story/WizardHouse/ResetPlayer.cs.meta new file mode 100644 index 00000000..ff11bd8c --- /dev/null +++ b/Assets/Scripts/REFACTORING/Story/WizardHouse/ResetPlayer.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 97fdd6676eec8fe4a9ae7f14adcb6366 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/SaveController.cs b/Assets/Scripts/SaveController.cs index d21da97e..d8829549 100644 --- a/Assets/Scripts/SaveController.cs +++ b/Assets/Scripts/SaveController.cs @@ -3,6 +3,10 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; +/* + * IMPOSRTANT + * All methods must be binded in buttons actions list responsible for saving + */ public class SaveController : MonoBehaviour { public void SaveScene() @@ -26,6 +30,7 @@ public class SaveController : MonoBehaviour player.GetComponent().SaveCheckpoint(); } + #region palyer panels data public void SavePlayerEquipmentItems() // toDO change name to save Equipment - save items will save items on map eg after drops { EquipmentDataManager.Instance.SaveDynamicData(); @@ -42,6 +47,7 @@ public class SaveController : MonoBehaviour { SceneInventoryDataManager.Instance.SaveDynamicData(); } + #endregion public void SaveChests() { @@ -50,4 +56,10 @@ public class SaveController : MonoBehaviour if(SceneChestDataManager.Instance) SceneChestDataManager.Instance.SaveDynamicData(); } + + public void SaveShops() + { + if(SceneShopDataManager.Instance) + SceneShopDataManager.Instance.SaveDynamicData(); + } }