From ffb6dcd04fcbfeaa5fda328e59fe3f16403b5765 Mon Sep 17 00:00:00 2001 From: David Finol Date: Wed, 18 Dec 2024 13:24:59 -0600 Subject: [PATCH 01/13] Update libraries --- Packages/manifest.json | 4 ++-- Packages/packages-lock.json | 12 ++++++------ .../CustomColorSettings.asset | 17 +++++++++++++++++ 3 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 ProjectSettings/Packages/com.unity.multiplayer.tools/CustomColorSettings.asset diff --git a/Packages/manifest.json b/Packages/manifest.json index 30090816..c9652613 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -6,8 +6,8 @@ "com.unity.ide.rider": "3.0.34", "com.unity.ide.visualstudio": "2.0.22", "com.unity.multiplayer.center": "1.0.0", - "com.unity.multiplayer.tools": "2.2.1", - "com.unity.netcode.gameobjects": "2.0.0", + "com.unity.multiplayer.tools": "2.2.2", + "com.unity.netcode.gameobjects": "2.2.0", "com.unity.nuget.newtonsoft-json": "3.2.1", "com.unity.services.lobby": "1.2.2", "com.unity.services.relay": "1.1.1", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 7624bf22..c7d18044 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -85,13 +85,13 @@ } }, "com.unity.multiplayer.tools": { - "version": "2.2.1", + "version": "2.2.2", "depth": 0, "source": "registry", "dependencies": { - "com.unity.burst": "1.8.17", - "com.unity.collections": "2.4.0", - "com.unity.mathematics": "1.3.1", + "com.unity.burst": "1.8.18", + "com.unity.collections": "2.5.1", + "com.unity.mathematics": "1.3.2", "com.unity.profiling.core": "1.0.2", "com.unity.nuget.mono-cecil": "1.11.4", "com.unity.modules.uielements": "1.0.0", @@ -100,11 +100,11 @@ "url": "https://packages.unity.com" }, "com.unity.netcode.gameobjects": { - "version": "2.0.0", + "version": "2.2.0", "depth": 0, "source": "registry", "dependencies": { - "com.unity.transport": "2.3.0", + "com.unity.transport": "2.4.0", "com.unity.nuget.mono-cecil": "1.11.4" }, "url": "https://packages.unity.com" diff --git a/ProjectSettings/Packages/com.unity.multiplayer.tools/CustomColorSettings.asset b/ProjectSettings/Packages/com.unity.multiplayer.tools/CustomColorSettings.asset new file mode 100644 index 00000000..d293b24e --- /dev/null +++ b/ProjectSettings/Packages/com.unity.multiplayer.tools/CustomColorSettings.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 53 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d3c63bcbf0c7c4315b6f985026440942, type: 3} + m_Name: + m_EditorClassIdentifier: + colors: + m_Keys: + m_Values: [] From d9364ed9e1ad4150997a3f3396f7a1fa28f29df2 Mon Sep 17 00:00:00 2001 From: David Finol Date: Thu, 19 Dec 2024 15:24:17 -0600 Subject: [PATCH 02/13] Update roadmap --- docs/pages/roadmap.md | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/docs/pages/roadmap.md b/docs/pages/roadmap.md index 3e9253de..e2670547 100644 --- a/docs/pages/roadmap.md +++ b/docs/pages/roadmap.md @@ -4,32 +4,41 @@ permalink: roadmap.html # Roadmap -## What's New - v1.124 -- Bug-Fix: Cards stacking in center of Play Area - -## Sprint - Priority 1 -- Bug-Fix: macOS Mission Control freezes -- Bug-Fix: Importing more than 200 cards fails -- Bug-Fix: Deck Editor slows when loading too many cards +## What's New - v1.125 +- Build Windows +- Fix GA Spoilers (update rate + error on load) +- Fix playing of default cards after game sync +- Cards: Animated highlight +https://github.com/PandaArcade/UIOutline/?tab=readme-ov-file +https://discussions.unity.com/t/pulsating-glow-effect-on-ui-button/148020 +https://docs.unity3d.com/Packages/com.unity.ugui@2.0/manual/HOWTO-ShaderGraph.html - Cards: Select left and right on zoom in Cards Explorer - Game-Play: Enhanced Drawer Buttons + +## Sprint - Priority 1 +- Bugs: https://github.com/finol-digital/Card-Game-Simulator/issues - Game-Play: Move card to zone, stack, or drawer (E) - Game-Play: Animation for card and stack actions -- Cards: Animated highlight - Game-Play: Special action buttons (i.e. button to reset rotation for all cards, button to turn all cards faceup, etc.) -- Cards: Support mix of different card sizes in the same game - Game-Play: Apply permissions for each other's decks/stacks/cards, shuffling, moving, deleting, viewing facedown, etc - Game-Play: Label which player is interacting with cards/playables - Game-Play: Name-Plates indicating player seats +- CardGameDef: Support mix of different card sizes in the same game +- CardGameDef: Set increments for Game-Play Points-Counter (gamePlayPointsIncrement) +- Platforms: Setup gamepad and keyboard shortcuts/hotkeys for Game-Play and Settings +- Platforms: Display gamepad and keyboard shortcuts/hotkeys in-app +- Platforms: Full controller support (Steam) +- Platforms: Multi-player and Developer Mode on Web + +## Backlog - Priority 2 +- Integration: Private Lobbies & Deep links to join multiplayer rooms (cgs.link) - Game-Play: Display values on Card in Play Area - Game-Play: Counter system for players and cards (Dice grouping/parenting) - Game-Play: Support multiple card selection - Game-Play: Cut/Copy/Paste Cards - Game-Play: Undo with Ctrl-Z - Game-Play: Save/Load Sessions + Log of all (Player) actions -- CardGameDef: Set increments for Game-Play Points-Counter - -## Backlog - Priority 2 +- Deck-Editor: Save with Ctrl-S - Game-Play: Custom Tokens - Game-Play: Flip Random for tokens - Game-Play: Rename Stacks @@ -43,10 +52,6 @@ permalink: roadmap.html - Option for card count limits, i.e. 3 copies per deck - Option to have a hard deck size limit applied, as well as for extras, I.e. 50 card main deck, 5 card extra deck - Game-Play: Support multiple playmats -- Game-Play: Setup gamepad and keyboard shortcuts/hotkeys for Game-Play and Settings -- Platforms: Display gamepad and keyboard shortcuts/hotkeys in-app -- Platforms: Full controller support (Steam) -- Integration: Private Lobbies & Deep links to join multiplayer rooms (cgs.link) - Platforms: Android widgets - Accessibility: Add audio and sounds throughout the app - Accessibility: Wiki-page for Playing a Game From 32e4d5db8571a275c08f836ec43398c6054edb01 Mon Sep 17 00:00:00 2001 From: David Finol Date: Thu, 19 Dec 2024 15:42:19 -0600 Subject: [PATCH 03/13] Update roadmap --- docs/pages/roadmap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pages/roadmap.md b/docs/pages/roadmap.md index e2670547..1ebc8ffd 100644 --- a/docs/pages/roadmap.md +++ b/docs/pages/roadmap.md @@ -13,7 +13,7 @@ https://github.com/PandaArcade/UIOutline/?tab=readme-ov-file https://discussions.unity.com/t/pulsating-glow-effect-on-ui-button/148020 https://docs.unity3d.com/Packages/com.unity.ugui@2.0/manual/HOWTO-ShaderGraph.html - Cards: Select left and right on zoom in Cards Explorer -- Game-Play: Enhanced Drawer Buttons +- Game-Play: Enhanced Drawer Buttons (Drop-down target for Deal and current for Hand) ## Sprint - Priority 1 - Bugs: https://github.com/finol-digital/Card-Game-Simulator/issues From b81ac971d1d8e608a690327321b23b270adf6bf7 Mon Sep 17 00:00:00 2001 From: David Finol Date: Wed, 25 Dec 2024 11:35:44 -0600 Subject: [PATCH 04/13] Fix NPEs --- Assets/Scripts/Cgs/CardGameView/Multiplayer/CardStack.cs | 2 +- Assets/Scripts/Cgs/Play/Multiplayer/CgsNetPlayer.cs | 9 ++++++++- docs/pages/roadmap.md | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Assets/Scripts/Cgs/CardGameView/Multiplayer/CardStack.cs b/Assets/Scripts/Cgs/CardGameView/Multiplayer/CardStack.cs index 4b04eeae..9d1c5dea 100644 --- a/Assets/Scripts/Cgs/CardGameView/Multiplayer/CardStack.cs +++ b/Assets/Scripts/Cgs/CardGameView/Multiplayer/CardStack.cs @@ -98,7 +98,7 @@ public IReadOnlyList Cards { get { - if (!CgsNetManager.Instance.IsOnline) + if (CgsNetManager.Instance == null || !CgsNetManager.Instance.IsOnline) return _cards; _cards = new List(); diff --git a/Assets/Scripts/Cgs/Play/Multiplayer/CgsNetPlayer.cs b/Assets/Scripts/Cgs/Play/Multiplayer/CgsNetPlayer.cs index bb9ca75b..58c6d907 100644 --- a/Assets/Scripts/Cgs/Play/Multiplayer/CgsNetPlayer.cs +++ b/Assets/Scripts/Cgs/Play/Multiplayer/CgsNetPlayer.cs @@ -66,7 +66,14 @@ private IReadOnlyList CardStacks { var cardStacks = new List(); foreach (var cardStack in _cardStacks) - cardStacks.Add(((NetworkObject) cardStack).GetComponent()); + { + var networkObject = (NetworkObject) cardStack; + if (networkObject == null) + continue; + var cardStackObject = networkObject.GetComponent(); + if (cardStackObject != null) + cardStacks.Add(cardStackObject); + } return cardStacks; } } diff --git a/docs/pages/roadmap.md b/docs/pages/roadmap.md index 1ebc8ffd..7e40b33c 100644 --- a/docs/pages/roadmap.md +++ b/docs/pages/roadmap.md @@ -6,7 +6,7 @@ permalink: roadmap.html ## What's New - v1.125 - Build Windows -- Fix GA Spoilers (update rate + error on load) +- Fix GA Spoilers (update rate + error on load, switch between spoilers and non?) - Fix playing of default cards after game sync - Cards: Animated highlight https://github.com/PandaArcade/UIOutline/?tab=readme-ov-file From 341ac606aa835b227c63094d3a4010b8552e9527 Mon Sep 17 00:00:00 2001 From: David Finol Date: Mon, 30 Dec 2024 19:45:44 -0600 Subject: [PATCH 05/13] Update roadmap --- docs/pages/roadmap.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/pages/roadmap.md b/docs/pages/roadmap.md index 7e40b33c..24e28ebb 100644 --- a/docs/pages/roadmap.md +++ b/docs/pages/roadmap.md @@ -6,6 +6,9 @@ permalink: roadmap.html ## What's New - v1.125 - Build Windows +- Edit cgs.gg icon(s) to have logo color +- file loads for games management menu +- bugs report from user - Fix GA Spoilers (update rate + error on load, switch between spoilers and non?) - Fix playing of default cards after game sync - Cards: Animated highlight From 4d53b0f22c87d9eed52ae43808549182cfbf9596 Mon Sep 17 00:00:00 2001 From: David Finol Date: Wed, 8 Jan 2025 15:57:52 -0600 Subject: [PATCH 06/13] Deck Load Edit --- Assets/Prefabs/Menus/Deck Load Menu.prefab | 237 +++++++++++++++++++-- Assets/Scripts/Cgs/Decks/DeckLoadMenu.cs | 45 ++-- docs/pages/roadmap.md | 5 +- 3 files changed, 254 insertions(+), 33 deletions(-) diff --git a/Assets/Prefabs/Menus/Deck Load Menu.prefab b/Assets/Prefabs/Menus/Deck Load Menu.prefab index 9b8aa5e1..58f4f971 100644 --- a/Assets/Prefabs/Menus/Deck Load Menu.prefab +++ b/Assets/Prefabs/Menus/Deck Load Menu.prefab @@ -98,7 +98,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 8356448086834464153} - - {fileID: 2246683230168559971} + - {fileID: 4437707374420521437} - {fileID: 1204363880446156584} - {fileID: 8343908982811316374} m_Father: {fileID: 400962576706862966} @@ -412,6 +412,7 @@ MonoBehaviour: emptyText: {fileID: 5123299679087527343} scrollRect: {fileID: 114606226609976292} deleteFileButton: {fileID: 2246683230168559968} + editFileButton: {fileID: 9147103048969810018} shareFileButton: {fileID: 1204363880446156587} loadFromFileButton: {fileID: 3508140940397334825} newDeckPanel: {fileID: 224055920836126120} @@ -669,6 +670,7 @@ RectTransform: - {fileID: 3546013897162359176} - {fileID: 224078098875981124} - {fileID: 224207170848406008} + - {fileID: 2246683230168559971} m_Father: {fileID: 224225068410981816} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -1293,7 +1295,7 @@ PrefabInstance: serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 224207170848406008} + m_TransformParent: {fileID: 400962576706862966} m_Modifications: - target: {fileID: 633149931556260068, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} @@ -1343,12 +1345,12 @@ PrefabInstance: - target: {fileID: 633149931556260071, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} propertyPath: m_Pivot.x - value: 0.5 + value: 1 objectReference: {fileID: 0} - target: {fileID: 633149931556260071, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} propertyPath: m_Pivot.y - value: 0.5 + value: 1 objectReference: {fileID: 0} - target: {fileID: 633149931556260071, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} @@ -1358,7 +1360,7 @@ PrefabInstance: - target: {fileID: 633149931556260071, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} propertyPath: m_AnchorMax.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 633149931556260071, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} @@ -1368,7 +1370,7 @@ PrefabInstance: - target: {fileID: 633149931556260071, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} propertyPath: m_AnchorMin.x - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 633149931556260071, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} @@ -1378,7 +1380,7 @@ PrefabInstance: - target: {fileID: 633149931556260071, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} propertyPath: m_SizeDelta.x - value: 432.5 + value: 200 objectReference: {fileID: 0} - target: {fileID: 633149931556260071, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} @@ -1408,27 +1410,27 @@ PrefabInstance: - target: {fileID: 633149931556260071, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 633149931556260071, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 633149931556260071, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 633149931556260071, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} propertyPath: m_AnchoredPosition.x - value: 618.75 + value: -125 objectReference: {fileID: 0} - target: {fileID: 633149931556260071, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} propertyPath: m_AnchoredPosition.y - value: -42.5 + value: -125 objectReference: {fileID: 0} - target: {fileID: 633149931556260071, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} @@ -1585,7 +1587,7 @@ PrefabInstance: - target: {fileID: 633149931556260071, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} propertyPath: m_SizeDelta.x - value: 432.5 + value: 440 objectReference: {fileID: 0} - target: {fileID: 633149931556260071, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} @@ -1630,7 +1632,7 @@ PrefabInstance: - target: {fileID: 633149931556260071, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} propertyPath: m_AnchoredPosition.x - value: 1051.25 + value: 1040 objectReference: {fileID: 0} - target: {fileID: 633149931556260071, guid: 050b35c711bf97548b7054e54e7b44b4, type: 3} @@ -2015,6 +2017,203 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 1785133921096528623} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1878775037841588098 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 224207170848406008} + m_Modifications: + - target: {fileID: 1494664878241574619, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_Text + value: Edit + objectReference: {fileID: 0} + - target: {fileID: 1751753110650578252, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: tooltip + value: Edit + objectReference: {fileID: 0} + - target: {fileID: 2442268098906025027, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_Sprite + value: + objectReference: {fileID: 21300000, guid: 536e57b1da365924cba730f3e2a07572, + type: 3} + - target: {fileID: 2848342772243254878, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_Name + value: Edit Button + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_Pivot.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_SizeDelta.x + value: 410 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_SizeDelta.y + value: 85 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_AnchoredPosition.x + value: 410 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_AnchoredPosition.y + value: -42.5 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7269854554250268640, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_Interactable + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7269854554250268640, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7269854554250268640, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7269854554250268640, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 114086429987633334} + - target: {fileID: 7269854554250268640, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 7269854554250268640, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: Edit + objectReference: {fileID: 0} + - target: {fileID: 7269854554250268640, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Cgs.Decks.DeckLoadMenu, Cgs + objectReference: {fileID: 0} + - target: {fileID: 7269854554250268640, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 30c175fe170c9e0459ee166821450a03, type: 3} +--- !u!224 &4437707374420521437 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + m_PrefabInstance: {fileID: 1878775037841588098} + m_PrefabAsset: {fileID: 0} +--- !u!114 &9147103048969810018 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7269854554250268640, guid: 30c175fe170c9e0459ee166821450a03, + type: 3} + m_PrefabInstance: {fileID: 1878775037841588098} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &2072264703698072196 PrefabInstance: m_ObjectHideFlags: 0 @@ -2526,7 +2725,7 @@ PrefabInstance: - target: {fileID: 1829473601405758889, guid: 545336a218e4b2e43acf2260017946f3, type: 3} propertyPath: m_AnchorMax.y - value: 0.99999756 + value: 1 objectReference: {fileID: 0} - target: {fileID: 1829473601405758889, guid: 545336a218e4b2e43acf2260017946f3, type: 3} @@ -2646,7 +2845,7 @@ PrefabInstance: - target: {fileID: 1829473602834048258, guid: 545336a218e4b2e43acf2260017946f3, type: 3} propertyPath: m_Size - value: 0.9999977 + value: 1 objectReference: {fileID: 0} - target: {fileID: 1829473602834048258, guid: 545336a218e4b2e43acf2260017946f3, type: 3} @@ -3274,7 +3473,7 @@ PrefabInstance: - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, type: 3} propertyPath: m_SizeDelta.x - value: 402.5 + value: 410 objectReference: {fileID: 0} - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, type: 3} @@ -3319,7 +3518,7 @@ PrefabInstance: - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, type: 3} propertyPath: m_AnchoredPosition.x - value: 1267.5 + value: 1260 objectReference: {fileID: 0} - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, type: 3} @@ -3471,7 +3670,7 @@ PrefabInstance: - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, type: 3} propertyPath: m_SizeDelta.x - value: 402.5 + value: 410 objectReference: {fileID: 0} - target: {fileID: 2848342772243254879, guid: 30c175fe170c9e0459ee166821450a03, type: 3} diff --git a/Assets/Scripts/Cgs/Decks/DeckLoadMenu.cs b/Assets/Scripts/Cgs/Decks/DeckLoadMenu.cs index 0e8d632b..5ed01858 100644 --- a/Assets/Scripts/Cgs/Decks/DeckLoadMenu.cs +++ b/Assets/Scripts/Cgs/Decks/DeckLoadMenu.cs @@ -25,6 +25,8 @@ namespace Cgs.Decks [RequireComponent(typeof(Modal))] public class DeckLoadMenu : SelectionPanel { + public const string Untitled = "Untitled"; + public const string DecInstructions = "//On each line, enter:\n// \n//For example:\n4 Super Awesome Card\n3 Less Awesome Card I Still Like\n1 Card That Is Situational"; @@ -43,6 +45,7 @@ public class DeckLoadMenu : SelectionPanel public const string DeckSaveErrorMessage = "There was an error saving the deck to file: "; public Button deleteFileButton; + public Button editFileButton; public Button shareFileButton; public Button loadFromFileButton; @@ -100,6 +103,8 @@ private void Update() EventSystem.current.currentSelectedGameObject.GetComponent().isOn = true; else if (Inputs.IsSort && shareFileButton.interactable) Share(); + else if (Inputs.IsLoad && editFileButton.interactable) + Edit(); else if (Inputs.IsNew) ShowNewDeckPanel(); else if (Inputs.IsOption && deleteFileButton.interactable) @@ -157,6 +162,7 @@ private void BuildDeckFileSelectionOptions() Rebuild(_deckFiles, SelectFile, _selectedFilePath); + editFileButton.interactable = !string.IsNullOrEmpty(_selectedFilePath); shareFileButton.interactable = !string.IsNullOrEmpty(_selectedFilePath); deleteFileButton.interactable = !string.IsNullOrEmpty(_selectedFilePath); loadFromFileButton.interactable = !string.IsNullOrEmpty(_selectedFilePath); @@ -168,6 +174,7 @@ public void SelectFile(Toggle toggle, string deckFilePath) if (string.IsNullOrEmpty(deckFilePath)) { _selectedFilePath = string.Empty; + editFileButton.interactable = false; shareFileButton.interactable = false; deleteFileButton.interactable = false; loadFromFileButton.interactable = false; @@ -177,6 +184,7 @@ public void SelectFile(Toggle toggle, string deckFilePath) if (toggle != null && toggle.isOn) { _selectedFilePath = deckFilePath; + editFileButton.interactable = true; shareFileButton.interactable = true; deleteFileButton.interactable = true; loadFromFileButton.interactable = true; @@ -229,6 +237,28 @@ public void DeleteFile() BuildDeckFileSelectionOptions(); } + [UsedImplicitly] + public void Edit() + { + if (string.IsNullOrEmpty(_selectedFilePath) || !File.Exists(_selectedFilePath)) + { + Debug.LogError("Edit missing _selectedFilePath!"); + return; + } + + newDeckPanel.gameObject.SetActive(true); + + try + { + nameInputField.text = GetNameFromPath(_selectedFilePath); + textInputField.text = File.ReadAllText(_selectedFilePath); + } + catch + { + Debug.LogWarning("Edit had _selectedFilePath but failed to load it"); + } + } + [UsedImplicitly] public void Share() { @@ -271,19 +301,8 @@ public void LoadFromFileAndHide() public void ShowNewDeckPanel() { newDeckPanel.gameObject.SetActive(true); - - if (string.IsNullOrEmpty(_selectedFilePath) || !File.Exists(_selectedFilePath)) - return; - - try - { - nameInputField.text = GetNameFromPath(_selectedFilePath); - textInputField.text = File.ReadAllText(_selectedFilePath); - } - catch - { - Debug.LogWarning("ShowNewDeckPanel had _selectedFilePath but failed to load it"); - } + nameInputField.text = Untitled; + textInputField.text = string.Empty; } [UsedImplicitly] diff --git a/docs/pages/roadmap.md b/docs/pages/roadmap.md index 24e28ebb..b67a97bb 100644 --- a/docs/pages/roadmap.md +++ b/docs/pages/roadmap.md @@ -5,12 +5,15 @@ permalink: roadmap.html # Roadmap ## What's New - v1.125 -- Build Windows +autoupdate = 0 +move card to zone from field +allow rotation in deckPositions - Edit cgs.gg icon(s) to have logo color - file loads for games management menu - bugs report from user - Fix GA Spoilers (update rate + error on load, switch between spoilers and non?) - Fix playing of default cards after game sync +show hands to each other - Cards: Animated highlight https://github.com/PandaArcade/UIOutline/?tab=readme-ov-file https://discussions.unity.com/t/pulsating-glow-effect-on-ui-button/148020 From f6a56e3742e73983330303a6af32b304e343828a Mon Sep 17 00:00:00 2001 From: David Finol Date: Fri, 10 Jan 2025 13:35:33 -0600 Subject: [PATCH 07/13] Update versions --- Assets/Scripts/Cgs/Cgs.asmdef | 7 +-- .../Cgs/Play/Multiplayer/CgsNetManager.cs | 4 +- Packages/manifest.json | 5 +- Packages/packages-lock.json | 61 +++++++++---------- .../CustomColorSettings.asset | 2 +- docs/pages/roadmap.md | 6 +- 6 files changed, 41 insertions(+), 44 deletions(-) diff --git a/Assets/Scripts/Cgs/Cgs.asmdef b/Assets/Scripts/Cgs/Cgs.asmdef index 533573cd..cf7365db 100644 --- a/Assets/Scripts/Cgs/Cgs.asmdef +++ b/Assets/Scripts/Cgs/Cgs.asmdef @@ -4,14 +4,13 @@ "references": [ "GUID:a145925718f93ac4380e53283d16d5a9", "GUID:ab425aab4b86fce43a60190dfdddb1ad", + "GUID:e0cd26848372d4e5c891c569017e11f1", "GUID:1491147abca9d7d4bb7105af628b223e", + "GUID:f2d49d9fa7e7eb3418e39723a7d3b92f", "GUID:5540e30183c82e84b954c033c388e06c", "GUID:fe25561d224ed4743af4c60938a59d0b", - "GUID:4c3f49d89436d478ea78315c03159dcc", - "GUID:03058786646e84a4587858e9302c3f41", - "GUID:f2d49d9fa7e7eb3418e39723a7d3b92f", + "GUID:37e17ffe38d86ae48bc3207e83ffef88", "GUID:6055be8ebefd69e48b49212b09b47b2f", - "GUID:e0cd26848372d4e5c891c569017e11f1", "GUID:7414b02949352454b9c0e1f8683812b3", "GUID:ef2dc3324a188f84995fe4e29bd967f8", "GUID:2ace7ebb826df10459d12b4f3c4a9407", diff --git a/Assets/Scripts/Cgs/Play/Multiplayer/CgsNetManager.cs b/Assets/Scripts/Cgs/Play/Multiplayer/CgsNetManager.cs index 650f05b7..f9641e4c 100644 --- a/Assets/Scripts/Cgs/Play/Multiplayer/CgsNetManager.cs +++ b/Assets/Scripts/Cgs/Play/Multiplayer/CgsNetManager.cs @@ -204,7 +204,7 @@ private static async Task> AllocateRelayServerAnd throw; } - return Tuple.Create(new RelayServerData(allocation, "dtls"), relayJoinCode); + return Tuple.Create(allocation.ToRelayServerData("dtls"), relayJoinCode); } private static async Task CreateLobby(RelayServerData relayServerData, string relayJoinCode) @@ -414,7 +414,7 @@ private static async Task JoinRelay(string relayJoinCode) Debug.Log($"[CgsNet] host: {allocation.HostConnectionData[0]} {allocation.HostConnectionData[1]}"); Debug.Log($"[CgsNet] client: {allocation.AllocationId}"); - return new RelayServerData(allocation, "dtls"); + return allocation.ToRelayServerData("dtls"); } private async Task UpdatePlayerRelayInfoAsync(string allocationId, string connectionInfo) diff --git a/Packages/manifest.json b/Packages/manifest.json index c9652613..a75e3f54 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -6,11 +6,10 @@ "com.unity.ide.rider": "3.0.34", "com.unity.ide.visualstudio": "2.0.22", "com.unity.multiplayer.center": "1.0.0", - "com.unity.multiplayer.tools": "2.2.2", + "com.unity.multiplayer.tools": "2.2.3", "com.unity.netcode.gameobjects": "2.2.0", "com.unity.nuget.newtonsoft-json": "3.2.1", - "com.unity.services.lobby": "1.2.2", - "com.unity.services.relay": "1.1.1", + "com.unity.services.multiplayer": "1.0.2", "com.unity.test-framework": "1.4.5", "com.unity.testtools.codecoverage": "1.2.6", "com.unity.toolchain.linux-x86_64": "2.0.10", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index c7d18044..81bff1d8 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -85,7 +85,7 @@ } }, "com.unity.multiplayer.tools": { - "version": "2.2.2", + "version": "2.2.3", "depth": 0, "source": "registry", "dependencies": { @@ -153,51 +153,50 @@ }, "url": "https://packages.unity.com" }, - "com.unity.services.lobby": { - "version": "1.2.2", - "depth": 0, + "com.unity.services.deployment": { + "version": "1.3.0", + "depth": 1, "source": "registry", "dependencies": { - "com.unity.services.core": "1.12.5", - "com.unity.services.wire": "1.2.6", - "com.unity.nuget.newtonsoft-json": "3.0.2", - "com.unity.modules.unitywebrequest": "1.0.0", - "com.unity.services.authentication": "2.7.4", - "com.unity.modules.unitywebrequestwww": "1.0.0", - "com.unity.modules.unitywebrequestaudio": "1.0.0", - "com.unity.modules.unitywebrequesttexture": "1.0.0", - "com.unity.modules.unitywebrequestassetbundle": "1.0.0" + "com.unity.services.core": "1.12.0", + "com.unity.services.deployment.api": "1.0.0" }, "url": "https://packages.unity.com" }, - "com.unity.services.qos": { - "version": "1.3.2", - "depth": 1, + "com.unity.services.deployment.api": { + "version": "1.0.0", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.services.multiplayer": { + "version": "1.0.2", + "depth": 0, "source": "registry", "dependencies": { - "com.unity.collections": "1.2.4", - "com.unity.services.core": "1.12.5", - "com.unity.nuget.newtonsoft-json": "3.0.2", + "com.unity.transport": "2.2.1", + "com.unity.collections": "2.2.1", + "com.unity.services.qos": "1.3.0", + "com.unity.services.core": "1.13.0", + "com.unity.services.wire": "1.2.7", + "com.unity.services.deployment": "1.3.0", + "com.unity.nuget.newtonsoft-json": "3.2.1", "com.unity.modules.unitywebrequest": "1.0.0", - "com.unity.services.authentication": "2.7.4" + "com.unity.services.authentication": "3.3.3" }, "url": "https://packages.unity.com" }, - "com.unity.services.relay": { - "version": "1.1.1", - "depth": 0, + "com.unity.services.qos": { + "version": "1.3.0", + "depth": 1, "source": "registry", "dependencies": { - "com.unity.transport": "1.3.0", - "com.unity.services.qos": "1.3.2", - "com.unity.services.core": "1.12.5", + "com.unity.collections": "1.2.4", + "com.unity.services.core": "1.12.4", "com.unity.nuget.newtonsoft-json": "3.0.2", "com.unity.modules.unitywebrequest": "1.0.0", - "com.unity.services.authentication": "2.7.4", - "com.unity.modules.unitywebrequestwww": "1.0.0", - "com.unity.modules.unitywebrequestaudio": "1.0.0", - "com.unity.modules.unitywebrequesttexture": "1.0.0", - "com.unity.modules.unitywebrequestassetbundle": "1.0.0" + "com.unity.services.authentication": "2.0.0" }, "url": "https://packages.unity.com" }, diff --git a/ProjectSettings/Packages/com.unity.multiplayer.tools/CustomColorSettings.asset b/ProjectSettings/Packages/com.unity.multiplayer.tools/CustomColorSettings.asset index d293b24e..0f059e0c 100644 --- a/ProjectSettings/Packages/com.unity.multiplayer.tools/CustomColorSettings.asset +++ b/ProjectSettings/Packages/com.unity.multiplayer.tools/CustomColorSettings.asset @@ -9,7 +9,7 @@ MonoBehaviour: m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d3c63bcbf0c7c4315b6f985026440942, type: 3} + m_Script: {fileID: 11500000, guid: 6762c37d3236e2a4382cd018dcdf221e, type: 3} m_Name: m_EditorClassIdentifier: colors: diff --git a/docs/pages/roadmap.md b/docs/pages/roadmap.md index b67a97bb..36c3f021 100644 --- a/docs/pages/roadmap.md +++ b/docs/pages/roadmap.md @@ -8,12 +8,11 @@ permalink: roadmap.html autoupdate = 0 move card to zone from field allow rotation in deckPositions -- Edit cgs.gg icon(s) to have logo color - file loads for games management menu -- bugs report from user +if a player that isnt host in a multiplayer room draws cards too quickly it can bug out and some of the cards vanish without showing in hand - Fix GA Spoilers (update rate + error on load, switch between spoilers and non?) - Fix playing of default cards after game sync -show hands to each other +- Edit cgs.gg icon(s) to have logo color - Cards: Animated highlight https://github.com/PandaArcade/UIOutline/?tab=readme-ov-file https://discussions.unity.com/t/pulsating-glow-effect-on-ui-button/148020 @@ -27,6 +26,7 @@ https://docs.unity3d.com/Packages/com.unity.ugui@2.0/manual/HOWTO-ShaderGraph.ht - Game-Play: Animation for card and stack actions - Game-Play: Special action buttons (i.e. button to reset rotation for all cards, button to turn all cards faceup, etc.) - Game-Play: Apply permissions for each other's decks/stacks/cards, shuffling, moving, deleting, viewing facedown, etc +- Game-Play: Allow players to reveal/show hands to each other - Game-Play: Label which player is interacting with cards/playables - Game-Play: Name-Plates indicating player seats - CardGameDef: Support mix of different card sizes in the same game From 6e5bfc951375b86e6cdb04e3c153e1484ef514c7 Mon Sep 17 00:00:00 2001 From: David Finol Date: Fri, 10 Jan 2025 18:40:35 -0600 Subject: [PATCH 08/13] Fix autoUpdate = 0 --- Assets/Scripts/Cgs/CardGameManager.cs | 2 +- .../FinolDigital.Cgs.CardGameDef.Unity/UnityCardGame.cs | 2 +- docs/pages/roadmap.md | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Assets/Scripts/Cgs/CardGameManager.cs b/Assets/Scripts/Cgs/CardGameManager.cs index 81dd059b..cdd4712a 100644 --- a/Assets/Scripts/Cgs/CardGameManager.cs +++ b/Assets/Scripts/Cgs/CardGameManager.cs @@ -517,7 +517,7 @@ public IEnumerator UpdateCardGame(UnityCardGame cardGame) cardGame.ClearError(); } - cardGame.Load(UpdateCardGame, LoadCards, LoadSetCards); + cardGame.Load(null, LoadCards, LoadSetCards); if (cardGame == Current) ResetGameScene(); } diff --git a/Assets/Scripts/FinolDigital.Cgs.CardGameDef.Unity/UnityCardGame.cs b/Assets/Scripts/FinolDigital.Cgs.CardGameDef.Unity/UnityCardGame.cs index c5d17297..dc5e92d6 100644 --- a/Assets/Scripts/FinolDigital.Cgs.CardGameDef.Unity/UnityCardGame.cs +++ b/Assets/Scripts/FinolDigital.Cgs.CardGameDef.Unity/UnityCardGame.cs @@ -441,7 +441,7 @@ public void Load(CardGameCoroutineDelegate updateCoroutine, CardGameCoroutineDel Debug.Log($"Unable to determine last update date for {Name}. Assuming today."); } - var shouldUpdate = AutoUpdate >= 0 && daysSinceUpdate >= AutoUpdate; + var shouldUpdate = AutoUpdate >= 0 && daysSinceUpdate >= AutoUpdate && updateCoroutine != null; if (shouldUpdate) { if (CoroutineRunner != null) diff --git a/docs/pages/roadmap.md b/docs/pages/roadmap.md index 36c3f021..8b638e0a 100644 --- a/docs/pages/roadmap.md +++ b/docs/pages/roadmap.md @@ -5,7 +5,8 @@ permalink: roadmap.html # Roadmap ## What's New - v1.125 -autoupdate = 0 +- Fix setting autoUpdate = 0 in CardGameDef.json + move card to zone from field allow rotation in deckPositions - file loads for games management menu From 42bba91bcac57da7858e9bcdd4b6781d94a44bfc Mon Sep 17 00:00:00 2001 From: David Finol Date: Sat, 11 Jan 2025 01:34:59 -0600 Subject: [PATCH 09/13] Fix bugs --- Assets/Scripts/Cgs/CardGameManager.cs | 9 ++------- .../grand_archive_spoilers.json | 1 - docs/pages/roadmap.md | 18 ++++++++---------- firebase/firebase.json | 2 +- 4 files changed, 11 insertions(+), 19 deletions(-) diff --git a/Assets/Scripts/Cgs/CardGameManager.cs b/Assets/Scripts/Cgs/CardGameManager.cs index cdd4712a..d3cebdff 100644 --- a/Assets/Scripts/Cgs/CardGameManager.cs +++ b/Assets/Scripts/Cgs/CardGameManager.cs @@ -543,18 +543,15 @@ private IEnumerator LoadCards(UnityCardGame cardGame) Messenger.Show(string.Format(CardsLoadedMessage, cardGame.Name)); } + // ReSharper disable once MemberCanBeMadeStatic.Local private IEnumerator LoadSetCards(UnityCardGame cardGame) { cardGame ??= Current; - var setCardsLoaded = false; - foreach (var set in cardGame.Sets.Values) + foreach (var set in cardGame.Sets.Values.ToList()) { if (string.IsNullOrEmpty(set.CardsUrl)) continue; - if (!setCardsLoaded) - Messenger.Show(string.Format(SetCardsLoadingMessage, cardGame.Name)); - setCardsLoaded = true; var setCardsFilePath = Path.Combine(cardGame.SetsDirectoryPath, UnityFileMethods.GetSafeFileName(set.Code + UnityFileMethods.JsonExtension)); if (!File.Exists(setCardsFilePath)) @@ -570,8 +567,6 @@ private IEnumerator LoadSetCards(UnityCardGame cardGame) if (!string.IsNullOrEmpty(cardGame.Error)) Debug.LogError(LoadErrorMessage + cardGame.Error); - else if (setCardsLoaded) - Messenger.Show(string.Format(SetCardsLoadedMessage, cardGame.Name)); } public void Select(string gameId) diff --git a/docs/games/grand_archive_spoilers/grand_archive_spoilers.json b/docs/games/grand_archive_spoilers/grand_archive_spoilers.json index 5bd3eddc..6de5477f 100644 --- a/docs/games/grand_archive_spoilers/grand_archive_spoilers.json +++ b/docs/games/grand_archive_spoilers/grand_archive_spoilers.json @@ -2,7 +2,6 @@ "name": "Grand Archive (Spoilers)", "allCardsUrl": "https://www.cardgamesimulator.com/games/grand_archive/AllCards.json", "allSetsUrl": "https://www.cardgamesimulator.com/games/grand_archive_spoilers/AllSets.json", - "autoUpdate": 1, "autoUpdateUrl": "https://www.cardgamesimulator.com/games/grand_archive_spoilers/grand_archive_spoilers.json", "bannerImageUrl": "https://www.cardgamesimulator.com/games/grand_archive/Banner.png", "cardBackImageUrl": "https://www.cardgamesimulator.com/games/grand_archive/CardBack.png", diff --git a/docs/pages/roadmap.md b/docs/pages/roadmap.md index 8b638e0a..ee434a3e 100644 --- a/docs/pages/roadmap.md +++ b/docs/pages/roadmap.md @@ -6,23 +6,20 @@ permalink: roadmap.html ## What's New - v1.125 - Fix setting autoUpdate = 0 in CardGameDef.json - -move card to zone from field -allow rotation in deckPositions -- file loads for games management menu -if a player that isnt host in a multiplayer room draws cards too quickly it can bug out and some of the cards vanish without showing in hand -- Fix GA Spoilers (update rate + error on load, switch between spoilers and non?) +- Fix moving card to zone from field - Fix playing of default cards after game sync -- Edit cgs.gg icon(s) to have logo color +- Fix file loads for games management menu + + +## Sprint - Priority 1 +- Bugs: https://github.com/finol-digital/Card-Game-Simulator/issues +- Bug-Fix: If a player that isn't host in a multiplayer room draws cards too quickly it can bug out and some of the cards vanish without showing in hand - Cards: Animated highlight https://github.com/PandaArcade/UIOutline/?tab=readme-ov-file https://discussions.unity.com/t/pulsating-glow-effect-on-ui-button/148020 https://docs.unity3d.com/Packages/com.unity.ugui@2.0/manual/HOWTO-ShaderGraph.html - Cards: Select left and right on zoom in Cards Explorer - Game-Play: Enhanced Drawer Buttons (Drop-down target for Deal and current for Hand) - -## Sprint - Priority 1 -- Bugs: https://github.com/finol-digital/Card-Game-Simulator/issues - Game-Play: Move card to zone, stack, or drawer (E) - Game-Play: Animation for card and stack actions - Game-Play: Special action buttons (i.e. button to reset rotation for all cards, button to turn all cards faceup, etc.) @@ -31,6 +28,7 @@ https://docs.unity3d.com/Packages/com.unity.ugui@2.0/manual/HOWTO-ShaderGraph.ht - Game-Play: Label which player is interacting with cards/playables - Game-Play: Name-Plates indicating player seats - CardGameDef: Support mix of different card sizes in the same game +- CardGameDef: Support rotation in deckPositions - CardGameDef: Set increments for Game-Play Points-Counter (gamePlayPointsIncrement) - Platforms: Setup gamepad and keyboard shortcuts/hotkeys for Game-Play and Settings - Platforms: Display gamepad and keyboard shortcuts/hotkeys in-app diff --git a/firebase/firebase.json b/firebase/firebase.json index 14d9be1d..c7fa680b 100644 --- a/firebase/firebase.json +++ b/firebase/firebase.json @@ -5,7 +5,7 @@ "redirects": [ { "source": "/gatcg", - "destination": "https://cgs.games/link/grand_archive_spoilers", + "destination": "https://cgs.games/link/grand_archive", "type": 301 } ], From 52e7ffc4c0437dc98a08835fe38ccc8fbf683977 Mon Sep 17 00:00:00 2001 From: David Finol Date: Mon, 13 Jan 2025 23:48:47 -0600 Subject: [PATCH 10/13] Fix moving card to zone from play area --- .../Cgs/CardGameView/Multiplayer/CardModel.cs | 25 ++++++++++++++++++- .../CardGameView/Viewer/CardActionPanel.cs | 3 +++ Assets/Scripts/Cgs/Play/PlayController.cs | 2 ++ docs/pages/roadmap.md | 9 +++---- 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/Assets/Scripts/Cgs/CardGameView/Multiplayer/CardModel.cs b/Assets/Scripts/Cgs/CardGameView/Multiplayer/CardModel.cs index 8e07ceef..a8ad4d63 100644 --- a/Assets/Scripts/Cgs/CardGameView/Multiplayer/CardModel.cs +++ b/Assets/Scripts/Cgs/CardGameView/Multiplayer/CardModel.cs @@ -570,6 +570,27 @@ protected override void UpdatePosition() && ParentCardZone != null) ParentToCanvas(targetPosition); + // Check for card zones + if (ParentCardZone == PlayController.Instance.playAreaCardZone && PlaceHolderCardZone == null) + { + foreach (var cardZone in PlayController.Instance.AllCardZones) + { + if (cardZone == PlayController.Instance.playAreaCardZone) + continue; + if (RectTransformUtility.RectangleContainsScreenPoint((RectTransform) cardZone.transform, + CurrentPointerEventData.position)) + PlaceHolderCardZone = cardZone; + } + } + else if (PlaceHolderCardZone != null + && PlaceHolderCardZone.transform.parent == PlayController.Instance.playAreaCardZone.transform) + { + if (!RectTransformUtility.RectangleContainsScreenPoint((RectTransform) PlaceHolderCardZone.transform, + CurrentPointerEventData.position)) + PlaceHolderCardZone = null; + } + // end check + if (PlaceHolderCardZone != null) PlaceHolderCardZone.UpdateLayout(PlaceHolder, targetPosition); @@ -602,7 +623,9 @@ private void UpdateCardZonePosition(Vector2 targetPosition) || (cardZone.Type == CardZoneType.Vertical && isOutXBounds) || (cardZone.Type == CardZoneType.Horizontal && isOutYBounds) || (cardZone.Type == CardZoneType.Area && PlaceHolder != null && - PlaceHolder.parent != transform.parent)) + PlaceHolder.parent.parent != + PlayController.Instance.playAreaCardZone.transform) + ) // Assumes we are in play area and card zones are siblings ParentToCanvas(targetPosition); } diff --git a/Assets/Scripts/Cgs/CardGameView/Viewer/CardActionPanel.cs b/Assets/Scripts/Cgs/CardGameView/Viewer/CardActionPanel.cs index 6c95a1e7..f780b76a 100644 --- a/Assets/Scripts/Cgs/CardGameView/Viewer/CardActionPanel.cs +++ b/Assets/Scripts/Cgs/CardGameView/Viewer/CardActionPanel.cs @@ -47,6 +47,9 @@ public void Show() _canvasGroup.interactable = true; _canvasGroup.blocksRaycasts = true; + if (CardViewer.Instance.SelectedCardModel == null) + return; + rotateButton.interactable = CardViewer.Instance.SelectedCardModel.ParentCardZone != null && CardViewer.Instance.SelectedCardModel.ParentCardZone.allowsRotation; diff --git a/Assets/Scripts/Cgs/Play/PlayController.cs b/Assets/Scripts/Cgs/Play/PlayController.cs index a54afd43..965fa252 100644 --- a/Assets/Scripts/Cgs/Play/PlayController.cs +++ b/Assets/Scripts/Cgs/Play/PlayController.cs @@ -127,6 +127,8 @@ public Vector2 NewDeckPosition private IEnumerable AllCardStacks => playAreaCardZone.GetComponentsInChildren(); + public IEnumerable AllCardZones => playAreaCardZone.GetComponentsInChildren(); + public LobbyMenu Lobby => _lobby ??= Instantiate(lobbyMenuPrefab).GetOrAddComponent(); private LobbyMenu _lobby; diff --git a/docs/pages/roadmap.md b/docs/pages/roadmap.md index ee434a3e..49a6c48b 100644 --- a/docs/pages/roadmap.md +++ b/docs/pages/roadmap.md @@ -6,18 +6,17 @@ permalink: roadmap.html ## What's New - v1.125 - Fix setting autoUpdate = 0 in CardGameDef.json -- Fix moving card to zone from field +- Fix moving card to zone from play area - Fix playing of default cards after game sync - Fix file loads for games management menu - ## Sprint - Priority 1 - Bugs: https://github.com/finol-digital/Card-Game-Simulator/issues - Bug-Fix: If a player that isn't host in a multiplayer room draws cards too quickly it can bug out and some of the cards vanish without showing in hand - Cards: Animated highlight -https://github.com/PandaArcade/UIOutline/?tab=readme-ov-file -https://discussions.unity.com/t/pulsating-glow-effect-on-ui-button/148020 -https://docs.unity3d.com/Packages/com.unity.ugui@2.0/manual/HOWTO-ShaderGraph.html + - https://github.com/PandaArcade/UIOutline/?tab=readme-ov-file + - https://discussions.unity.com/t/pulsating-glow-effect-on-ui-button/148020 + - https://docs.unity3d.com/Packages/com.unity.ugui@2.0/manual/HOWTO-ShaderGraph.html - Cards: Select left and right on zoom in Cards Explorer - Game-Play: Enhanced Drawer Buttons (Drop-down target for Deal and current for Hand) - Game-Play: Move card to zone, stack, or drawer (E) From 4be9f96873821d8ce8d8fd2eb02505c5f8449a39 Mon Sep 17 00:00:00 2001 From: David Finol Date: Tue, 14 Jan 2025 00:07:13 -0600 Subject: [PATCH 11/13] Fix bugs --- .../Scripts/Cgs/CardGameView/Multiplayer/CardModel.cs | 11 +++++------ .../UnityCardGame.cs | 1 + 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Assets/Scripts/Cgs/CardGameView/Multiplayer/CardModel.cs b/Assets/Scripts/Cgs/CardGameView/Multiplayer/CardModel.cs index a8ad4d63..a8be004f 100644 --- a/Assets/Scripts/Cgs/CardGameView/Multiplayer/CardModel.cs +++ b/Assets/Scripts/Cgs/CardGameView/Multiplayer/CardModel.cs @@ -583,12 +583,11 @@ protected override void UpdatePosition() } } else if (PlaceHolderCardZone != null - && PlaceHolderCardZone.transform.parent == PlayController.Instance.playAreaCardZone.transform) - { - if (!RectTransformUtility.RectangleContainsScreenPoint((RectTransform) PlaceHolderCardZone.transform, - CurrentPointerEventData.position)) - PlaceHolderCardZone = null; - } + && PlaceHolderCardZone.transform.parent == PlayController.Instance.playAreaCardZone.transform + && !RectTransformUtility.RectangleContainsScreenPoint( + (RectTransform) PlaceHolderCardZone.transform, + CurrentPointerEventData.position)) + PlaceHolderCardZone = null; // end check if (PlaceHolderCardZone != null) diff --git a/Assets/Scripts/FinolDigital.Cgs.CardGameDef.Unity/UnityCardGame.cs b/Assets/Scripts/FinolDigital.Cgs.CardGameDef.Unity/UnityCardGame.cs index dc5e92d6..5d0e8479 100644 --- a/Assets/Scripts/FinolDigital.Cgs.CardGameDef.Unity/UnityCardGame.cs +++ b/Assets/Scripts/FinolDigital.Cgs.CardGameDef.Unity/UnityCardGame.cs @@ -216,6 +216,7 @@ public IEnumerator Download(bool isRedo = false) if (isRedo) { DeckUrls.Clear(); + GameStartDecks.Clear(); LoadedSets.Clear(); LoadedCards.Clear(); CardNames.Clear(); From 2179c1d9c58a8b3b76b380aca3c1b130bad962c3 Mon Sep 17 00:00:00 2001 From: David Finol Date: Wed, 15 Jan 2025 17:38:16 -0600 Subject: [PATCH 12/13] Release v1.125 --- docs/pages/roadmap.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/pages/roadmap.md b/docs/pages/roadmap.md index 49a6c48b..8e84181e 100644 --- a/docs/pages/roadmap.md +++ b/docs/pages/roadmap.md @@ -8,7 +8,6 @@ permalink: roadmap.html - Fix setting autoUpdate = 0 in CardGameDef.json - Fix moving card to zone from play area - Fix playing of default cards after game sync -- Fix file loads for games management menu ## Sprint - Priority 1 - Bugs: https://github.com/finol-digital/Card-Game-Simulator/issues From ac31c97608f556b196a337910c40d5da10cdd5d0 Mon Sep 17 00:00:00 2001 From: David Finol Date: Wed, 15 Jan 2025 19:57:07 -0600 Subject: [PATCH 13/13] Bundle update --- Gemfile.lock | 47 +++++++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 76b7fb3d..06ba7c92 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -25,25 +25,25 @@ GEM artifactory (3.0.17) atomos (0.1.3) aws-eventstream (1.3.0) - aws-partitions (1.1023.0) - aws-sdk-core (3.214.0) + aws-partitions (1.1038.0) + aws-sdk-core (3.216.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.992.0) aws-sigv4 (~> 1.9) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.96.0) - aws-sdk-core (~> 3, >= 3.210.0) + aws-sdk-kms (1.97.0) + aws-sdk-core (~> 3, >= 3.216.0) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.176.1) - aws-sdk-core (~> 3, >= 3.210.0) + aws-sdk-s3 (1.178.0) + aws-sdk-core (~> 3, >= 3.216.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) - aws-sigv4 (1.10.1) + aws-sigv4 (1.11.0) aws-eventstream (~> 1, >= 1.0.2) babosa (1.0.4) base64 (0.2.0) benchmark (0.4.0) - bigdecimal (3.1.8) + bigdecimal (3.1.9) claide (1.1.0) cocoapods (1.16.2) addressable (~> 2.8) @@ -86,8 +86,8 @@ GEM colored2 (3.1.2) commander (4.6.0) highline (~> 2.0.0) - concurrent-ruby (1.3.4) - connection_pool (2.4.1) + concurrent-ruby (1.3.5) + connection_pool (2.5.0) declarative (0.0.20) digest-crc (0.6.5) rake (>= 12.0.0, < 14.0.0) @@ -118,8 +118,8 @@ GEM faraday-em_synchrony (1.0.0) faraday-excon (1.1.0) faraday-httpclient (1.0.1) - faraday-multipart (1.0.4) - multipart-post (~> 2) + faraday-multipart (1.1.0) + multipart-post (~> 2.0) faraday-net_http (1.0.2) faraday-net_http_persistent (1.2.0) faraday-patron (1.0.0) @@ -127,7 +127,7 @@ GEM faraday-retry (1.0.3) faraday_middleware (1.2.1) faraday (~> 1.0) - fastimage (2.3.1) + fastimage (2.4.0) fastlane (2.226.0) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.8, < 3.0.0) @@ -172,7 +172,7 @@ GEM xcpretty-travis-formatter (>= 0.0.3, < 2.0.0) fastlane-sirp (1.0.0) sysrandom (~> 1.0) - ffi (1.17.0-x64-mingw-ucrt) + ffi (1.17.1-x64-mingw-ucrt) fourflusher (2.3.1) fuzzy_match (2.0.4) gh_inspector (1.1.3) @@ -219,10 +219,10 @@ GEM i18n (1.14.6) concurrent-ruby (~> 1.0) jmespath (1.6.2) - json (2.9.0) - jwt (2.9.3) + json (2.9.1) + jwt (2.10.1) base64 - logger (1.6.3) + logger (1.6.5) mini_magick (4.13.2) mini_mime (1.1.5) minitest (5.25.4) @@ -236,7 +236,7 @@ GEM nkf (0.2.0) optparse (0.6.0) os (1.1.4) - plist (3.7.1) + plist (3.7.2) public_suffix (4.0.7) rake (13.2.1) representable (3.2.0) @@ -244,12 +244,12 @@ GEM trailblazer-option (>= 0.1.1, < 0.2.0) uber (< 0.2.0) retriable (3.1.2) - rexml (3.3.9) + rexml (3.4.0) rouge (3.28.0) ruby-macho (2.5.1) ruby2_keywords (0.0.5) - rubyzip (2.3.2) - securerandom (0.4.0) + rubyzip (2.4.1) + securerandom (0.4.1) security (0.1.5) signet (0.19.0) addressable (~> 2.8) @@ -288,12 +288,7 @@ GEM xcpretty (~> 0.2, >= 0.0.7) PLATFORMS - arm64-darwin-20 - arm64-darwin-21 x64-mingw-ucrt - x86_64-darwin-19 - x86_64-darwin-20 - x86_64-linux DEPENDENCIES cocoapods