Signed-off-by: Matt Bruce <mbrucedogs@gmail.com>

This commit is contained in:
Matt Bruce 2026-01-01 16:05:54 -06:00
parent 388c517ba9
commit c2518abad0
10 changed files with 58 additions and 92 deletions

View File

@ -442,7 +442,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.6;
MARKETING_VERSION = 1.7;
PRODUCT_BUNDLE_IDENTIFIER = com.mbrucedogs.Baccarat;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
@ -480,7 +480,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.6;
MARKETING_VERSION = 1.7;
PRODUCT_BUNDLE_IDENTIFIER = com.mbrucedogs.Baccarat;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";

View File

@ -9,6 +9,9 @@ import SwiftUI
import CasinoKit
/// Walkthrough steps for Baccarat onboarding.
/// Note: Only includes elements that are ALWAYS visible during the betting phase.
/// Conditional elements (bettingHint) are excluded to prevent
/// the walkthrough from getting stuck when those views aren't rendered.
enum BaccaratWalkthroughTags: SherpaTags {
// MARK: - Top Bar Elements
@ -30,14 +33,11 @@ enum BaccaratWalkthroughTags: SherpaTags {
/// Shows the road map history display
case history
// MARK: - Gameplay Elements
// MARK: - Gameplay Elements (always visible during betting phase)
/// Introduce the betting zones (Player, Banker, Tie)
case bettingZone
/// Explain the betting hints showing patterns and tips
case bettingHint
/// Explain the chip selector for choosing bet amounts
case chipSelector
@ -111,15 +111,6 @@ enum BaccaratWalkthroughTags: SherpaTags {
)
}
case .bettingHint:
return .custom(edge: .top) { onTap in
WalkthroughCalloutView(
icon: "lightbulb.fill",
text: String(localized: "walkthrough.bettingHint"),
onTap: onTap
)
}
case .chipSelector:
return .custom(edge: .top) { onTap in
WalkthroughCalloutView(

View File

@ -4976,6 +4976,7 @@
},
"walkthrough.bettingHint" : {
"comment" : "Walkthrough hint for the betting hint display",
"extractionState" : "stale",
"localizations" : {
"en" : {
"stringUnit" : {

View File

@ -331,7 +331,6 @@ struct GameTableView: View, SherpaDelegate {
secondaryInfo: hintInfo.secondaryText,
style: hintInfo.style
)
.sherpaTag(BaccaratWalkthroughTags.bettingHint)
.transition(.opacity)
.padding(.vertical, Design.Spacing.small)
.debugBorder(showDebugBorders, color: .purple, label: "Hint")
@ -448,7 +447,6 @@ struct GameTableView: View, SherpaDelegate {
secondaryInfo: hintInfo.secondaryText,
style: hintInfo.style
)
.sherpaTag(BaccaratWalkthroughTags.bettingHint)
.transition(.opacity)
.padding(.vertical, Design.Spacing.small)
.debugBorder(showDebugBorders, color: .purple, label: "Hint")

View File

@ -421,7 +421,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.6;
MARKETING_VERSION = 1.7;
PRODUCT_BUNDLE_IDENTIFIER = com.mbrucedogs.Blackjack;
PRODUCT_NAME = "$(TARGET_NAME)";
STRING_CATALOG_GENERATE_SYMBOLS = YES;
@ -454,7 +454,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.6;
MARKETING_VERSION = 1.7;
PRODUCT_BUNDLE_IDENTIFIER = com.mbrucedogs.Blackjack;
PRODUCT_NAME = "$(TARGET_NAME)";
STRING_CATALOG_GENERATE_SYMBOLS = YES;

View File

@ -32,18 +32,12 @@ enum BlackjackWalkthroughTags: SherpaTags {
/// Introduce the betting zone where chips are placed
case bettingZone
/// Explain the betting hints based on card count
case bettingHint
/// Explain the chip selector for choosing bet amounts
case chipSelector
/// Show the deal button to start the round
case dealButton
/// Explain player actions during the hand
case playerActions
func makeCallout() -> Callout {
switch self {
// Top Bar
@ -102,15 +96,6 @@ enum BlackjackWalkthroughTags: SherpaTags {
)
}
case .bettingHint:
return .custom(edge: .top) { onTap in
WalkthroughCalloutView(
icon: "lightbulb.fill",
text: String(localized: "walkthrough.bettingHint"),
onTap: onTap
)
}
case .chipSelector:
return .custom(edge: .top) { onTap in
WalkthroughCalloutView(
@ -128,15 +113,6 @@ enum BlackjackWalkthroughTags: SherpaTags {
onTap: onTap
)
}
case .playerActions:
return .custom(edge: .top) { onTap in
WalkthroughCalloutView(
icon: "hand.point.up.left.fill",
text: String(localized: "walkthrough.playerActions"),
onTap: onTap
)
}
}
}
}

View File

@ -3526,29 +3526,6 @@
}
}
},
"GAME STATS" : {
"comment" : "Title for a section in the statistics sheet dedicated to blackjack-specific statistics.",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "GAME STATS"
}
},
"es-MX" : {
"stringUnit" : {
"state" : "translated",
"value" : "ESTADÍSTICAS DEL JUEGO"
}
},
"fr-CA" : {
"stringUnit" : {
"state" : "translated",
"value" : "STATISTIQUES DE JEU"
}
}
}
},
"Game Sessions" : {
"comment" : "Title for the Game Sessions help page",
"localizations" : {
@ -3572,6 +3549,29 @@
}
}
},
"GAME STATS" : {
"comment" : "Title for a section in the statistics sheet dedicated to blackjack-specific statistics.",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "GAME STATS"
}
},
"es-MX" : {
"stringUnit" : {
"state" : "translated",
"value" : "ESTADÍSTICAS DEL JUEGO"
}
},
"fr-CA" : {
"stringUnit" : {
"state" : "translated",
"value" : "STATISTIQUES DE JEU"
}
}
}
},
"GAME STYLE" : {
"localizations" : {
"en" : {
@ -7789,6 +7789,7 @@
},
"walkthrough.bettingHint" : {
"comment" : "Walkthrough hint for the betting hint display",
"extractionState" : "stale",
"localizations" : {
"en" : {
"stringUnit" : {
@ -7856,29 +7857,6 @@
}
}
},
"walkthrough.close" : {
"comment" : "Walkthrough button to close/advance to next step",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Close"
}
},
"es-MX" : {
"stringUnit" : {
"state" : "translated",
"value" : "Cerrar"
}
},
"fr-CA" : {
"stringUnit" : {
"state" : "translated",
"value" : "Fermer"
}
}
}
},
"walkthrough.chipSelector" : {
"comment" : "Walkthrough hint for the chip selector",
"localizations" : {
@ -7902,6 +7880,29 @@
}
}
},
"walkthrough.close" : {
"comment" : "Walkthrough button to close/advance to next step",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Close"
}
},
"es-MX" : {
"stringUnit" : {
"state" : "translated",
"value" : "Cerrar"
}
},
"fr-CA" : {
"stringUnit" : {
"state" : "translated",
"value" : "Fermer"
}
}
}
},
"walkthrough.dealButton" : {
"comment" : "Walkthrough hint for the deal button",
"localizations" : {
@ -7927,6 +7928,7 @@
},
"walkthrough.playerActions" : {
"comment" : "Walkthrough hint for player action buttons",
"extractionState" : "stale",
"localizations" : {
"en" : {
"stringUnit" : {

View File

@ -84,7 +84,6 @@ struct ActionButtonsView: View {
.transition(.scale.combined(with: .opacity))
}
}
.sherpaTag(BlackjackWalkthroughTags.playerActions)
.onAppear {
animatedActions = availableActions
}

View File

@ -220,7 +220,6 @@ struct BlackjackTableView: View {
// Betting hint based on count (only when card counting enabled)
if let hint = state.bettingHint {
BlackjackBettingHintView(hint: hint, trueCount: state.engine.trueCount)
.sherpaTag(BlackjackWalkthroughTags.bettingHint)
.transition(.opacity)
.padding(.vertical, 10)
.debugBorder(showDebugBorders, color: .purple, label: "BetHint")

2
Sherpa

@ -1 +1 @@
Subproject commit 683a5b5c1805643d41b4ddd43edd110361668d93
Subproject commit 62b1652aa7af19fdf210cd3a08a445358224e872