Browse Source

Dynamic RPC: Improve Pokemon Scarlet/Violet (#723)

Updated Pokemon Scarlet and Violet to use multi parser it now displays
if your in a team circle and area of the game

![image](https://github.com/user-attachments/assets/6d8d52c5-65a9-4ac3-af91-cb0c03576ad6)
Piplup 1 năm trước cách đây
mục cha
commit
9227cbe5a7

+ 11 - 7
src/Ryujinx/Utilities/PlayReport/PlayReports.Formatters.cs

@@ -59,12 +59,13 @@ namespace Ryujinx.Ava.Utilities.PlayReport
                 "Race" => "Racing",
                 _ => FormattedValue.ForceReset
             };
-
-        private static FormattedValue PokemonSVUnionCircle(SingleValue value)
-            => value.Matched.BoxedValue is 0 ? "Playing Alone" : "Playing in a group";
-
-        private static FormattedValue PokemonSVArea(SingleValue value)
-            => value.Matched.StringValue switch
+        
+        private static FormattedValue PokemonSV(MultiValue values)
+        {
+            
+            string playStatus = values.Matched[0].BoxedValue is 0 ? "Playing Alone" : "Playing in a group";
+            
+            FormattedValue locations = values.Matched[1].ToString()  switch
             {
                 // Base Game Locations
                 "a_w01" => "South Area One",
@@ -92,10 +93,13 @@ namespace Ryujinx.Ava.Utilities.PlayReport
                 "a_w24" => "South Paldean Sea",
                 "a_w25" => "West Paldean Sea",
                 "a_w26" => "East Paldean Sea",
-                "a_w27" => "Nouth Paldean Sea",
+                "a_w27" => "North Paldean Sea",
                 //TODO DLC Locations
                 _ => FormattedValue.ForceReset
             };
+            
+            return$"{playStatus} in {locations}";
+        }
 
         private static FormattedValue SuperSmashBrosUltimate_Mode(SparseMultiValue values)
         {

+ 2 - 3
src/Ryujinx/Utilities/PlayReport/PlayReports.cs

@@ -59,9 +59,8 @@ namespace Ryujinx.Ava.Utilities.PlayReport
             .AddSpec(
                 ["0100a3d008c5c000", "01008f6008c5e000"],
                 spec => spec
-                    .WithDescription("based on what area of Paldea you're exploring.")
-                    .AddValueFormatter("area_no", PokemonSVArea)
-                    .AddValueFormatter("team_circle", PokemonSVUnionCircle)
+                    .WithDescription("based on if you're playing alone or in a group and what area of Paldea you're exploring.")
+                    .AddMultiValueFormatter(["team_circle", "area_no"], PokemonSV)
             )
             .AddSpec(
                 "01006a800016e000",