mirror of
https://github.com/Ryubing/Ryujinx.git
synced 2025-03-15 04:14:47 +00:00
misc: chore: [ci skip] Move the play report analyzer definition into a PlayReport static class to avoid polluting the Discord integration module
This commit is contained in:
parent
bf713a80d6
commit
8117e160c2
2 changed files with 77 additions and 63 deletions
|
@ -82,36 +82,6 @@ namespace Ryujinx.Ava
|
|||
}
|
||||
}
|
||||
|
||||
public static string MarioKart8(object obj)
|
||||
{
|
||||
return obj switch
|
||||
{
|
||||
// Single Player
|
||||
"Single" => "Single Player",
|
||||
// Multiplayer
|
||||
"Multi-2players" => "Multiplayer 2 Players",
|
||||
"Multi-3players" => "Multiplayer 3 Players",
|
||||
"Multi-4players" => "Multiplayer 4 Players",
|
||||
// Wireless/LAN Play
|
||||
"Local-Single" => "Wireless/LAN Play",
|
||||
"Local-2players" => "Wireless/LAN Play 2 Players",
|
||||
// CC Classes
|
||||
"50cc" => "50cc",
|
||||
"100cc" => "100cc",
|
||||
"150cc" => "150cc",
|
||||
"Mirror" => "Mirror (150cc)",
|
||||
"200cc" => "200cc",
|
||||
// Modes
|
||||
"GrandPrix" => "Grand Prix",
|
||||
"TimeAttack" => "Time Trials",
|
||||
"VS" => "VS Races",
|
||||
"Battle" => "Battle Mode",
|
||||
"RaceStart" => "Selecting a Course",
|
||||
"Race" => "Racing",
|
||||
_ => "Playing Mario Kart 8 Deluxe"
|
||||
};
|
||||
}
|
||||
|
||||
public static void Use(Optional<string> titleId)
|
||||
{
|
||||
if (titleId.TryGet(out string tid))
|
||||
|
@ -155,45 +125,13 @@ namespace Ryujinx.Ava
|
|||
_discordClient?.SetPresence(_discordPresenceMain);
|
||||
_discordPresencePlaying = null;
|
||||
}
|
||||
|
||||
private static readonly PlayReportAnalyzer _playReportAnalyzer = new PlayReportAnalyzer()
|
||||
.AddSpec( // Breath of the Wild
|
||||
"01007ef00011e000",
|
||||
gameSpec =>
|
||||
gameSpec.AddValueFormatter("IsHardMode", val => val is 1 ? "Playing Master Mode" : "Playing Normal Mode")
|
||||
)
|
||||
.AddSpec( // Super Mario Odyssey
|
||||
"0100000000010000",
|
||||
gameSpec =>
|
||||
gameSpec.AddValueFormatter("is_kids_mode", val => val is 1 ? "Playing in Assist Mode" : "Playing in Regular Mode")
|
||||
)
|
||||
.AddSpec( // Super Mario Odyssey (China)
|
||||
"010075000ECBE000",
|
||||
gameSpec =>
|
||||
gameSpec.AddValueFormatter("is_kids_mode", val => val is 1 ? "Playing in 帮助模式" : "Playing in 普通模式")
|
||||
)
|
||||
.AddSpec( // Super Mario 3D World + Bowser's Fury
|
||||
"010028600EBDA000",
|
||||
gameSpec =>
|
||||
gameSpec.AddValueFormatter("mode", val => val is 0 ? "Playing Super Mario 3D World" : "Playing Bowser's Fury")
|
||||
)
|
||||
.AddSpec( // Mario Kart 8 Deluxe
|
||||
"0100152000022000",
|
||||
gameSpec =>
|
||||
gameSpec.AddValueFormatter("To", MarioKart8)
|
||||
)
|
||||
.AddSpec( // Mario Kart 8 Deluxe (China)
|
||||
"010075100E8EC000",
|
||||
gameSpec =>
|
||||
gameSpec.AddValueFormatter("To", MarioKart8)
|
||||
);
|
||||
|
||||
private static void HandlePlayReport(MessagePackObject playReport)
|
||||
{
|
||||
if (!TitleIDs.CurrentApplication.Value.HasValue) return;
|
||||
if (_discordPresencePlaying is null) return;
|
||||
|
||||
Optional<string> details = _playReportAnalyzer.Run(TitleIDs.CurrentApplication.Value, playReport);
|
||||
Optional<string> details = PlayReport.Analyzer.Run(TitleIDs.CurrentApplication.Value, playReport);
|
||||
|
||||
if (!details.HasValue) return;
|
||||
|
||||
|
|
76
src/Ryujinx/Utilities/PlayReport.cs
Normal file
76
src/Ryujinx/Utilities/PlayReport.cs
Normal file
|
@ -0,0 +1,76 @@
|
|||
using Ryujinx.Common.Helper;
|
||||
|
||||
namespace Ryujinx.Ava.Utilities
|
||||
{
|
||||
public static class PlayReport
|
||||
{
|
||||
public static PlayReportAnalyzer Analyzer { get; } = new PlayReportAnalyzer()
|
||||
.AddSpec(
|
||||
"01007ef00011e000",
|
||||
spec => spec.AddValueFormatter("IsHardMode", BreathOfTheWild_MasterMode)
|
||||
)
|
||||
.AddSpec( // Super Mario Odyssey
|
||||
"0100000000010000",
|
||||
spec =>
|
||||
spec.AddValueFormatter("is_kids_mode", SuperMarioOdyssey_AssistMode)
|
||||
)
|
||||
.AddSpec( // Super Mario Odyssey (China)
|
||||
"010075000ECBE000",
|
||||
spec =>
|
||||
spec.AddValueFormatter("is_kids_mode", SuperMarioOdysseyChina_AssistMode)
|
||||
)
|
||||
.AddSpec( // Super Mario 3D World + Bowser's Fury
|
||||
"010028600EBDA000",
|
||||
spec => spec.AddValueFormatter("mode", SuperMario3DWorldOrBowsersFury)
|
||||
)
|
||||
.AddSpec( // Mario Kart 8 Deluxe
|
||||
"0100152000022000",
|
||||
spec => spec.AddValueFormatter("To", MarioKart8Deluxe_Mode)
|
||||
)
|
||||
.AddSpec( // Mario Kart 8 Deluxe (China)
|
||||
"010075100E8EC000",
|
||||
spec => spec.AddValueFormatter("To", MarioKart8Deluxe_Mode)
|
||||
);
|
||||
|
||||
private static string BreathOfTheWild_MasterMode(object val)
|
||||
=> val is 1 ? "Playing Master Mode" : "Playing Normal Mode";
|
||||
|
||||
private static string SuperMarioOdyssey_AssistMode(object val)
|
||||
=> val is 1 ? "Playing in Assist Mode" : "Playing in Regular Mode";
|
||||
|
||||
private static string SuperMarioOdysseyChina_AssistMode(object val)
|
||||
=> val is 1 ? "Playing in 帮助模式" : "Playing in 普通模式";
|
||||
|
||||
private static string SuperMario3DWorldOrBowsersFury(object val)
|
||||
=> val is 0 ? "Playing Super Mario 3D World" : "Playing Bowser's Fury";
|
||||
|
||||
private static string MarioKart8Deluxe_Mode(object obj)
|
||||
=> obj switch
|
||||
{
|
||||
// Single Player
|
||||
"Single" => "Single Player",
|
||||
// Multiplayer
|
||||
"Multi-2players" => "Multiplayer 2 Players",
|
||||
"Multi-3players" => "Multiplayer 3 Players",
|
||||
"Multi-4players" => "Multiplayer 4 Players",
|
||||
// Wireless/LAN Play
|
||||
"Local-Single" => "Wireless/LAN Play",
|
||||
"Local-2players" => "Wireless/LAN Play 2 Players",
|
||||
// CC Classes
|
||||
"50cc" => "50cc",
|
||||
"100cc" => "100cc",
|
||||
"150cc" => "150cc",
|
||||
"Mirror" => "Mirror (150cc)",
|
||||
"200cc" => "200cc",
|
||||
// Modes
|
||||
"GrandPrix" => "Grand Prix",
|
||||
"TimeAttack" => "Time Trials",
|
||||
"VS" => "VS Races",
|
||||
"Battle" => "Battle Mode",
|
||||
"RaceStart" => "Selecting a Course",
|
||||
"Race" => "Racing",
|
||||
//TODO: refactor value formatting system to pass in the name from the content archive so this can be localized properly
|
||||
_ => "Playing Mario Kart 8 Deluxe"
|
||||
};
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue