Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a121b2ef74 |
@@ -11,6 +11,7 @@
|
|||||||
## Input Requirements
|
## Input Requirements
|
||||||
|
|
||||||
- Every game screen, menu, dialog, overlay, and gameplay interaction must be fully navigable by controller at all times.
|
- Every game screen, menu, dialog, overlay, and gameplay interaction must be fully navigable by controller at all times.
|
||||||
|
- Any time a screen, menu, dialog, overlay, or gameplay interaction is added or changed, verify controller navigation still works for that surface before considering the work complete.
|
||||||
- Controller navigation must not depend on touch, mouse, keyboard, or hidden developer-only shortcuts.
|
- Controller navigation must not depend on touch, mouse, keyboard, or hidden developer-only shortcuts.
|
||||||
- Focus state must always be visible and predictable when controller navigation is active.
|
- Focus state must always be visible and predictable when controller navigation is active.
|
||||||
- Avoid interaction patterns that trap focus, lose focus, or require precise pointer input.
|
- Avoid interaction patterns that trap focus, lose focus, or require precise pointer input.
|
||||||
|
|||||||
Binary file not shown.
@@ -7,8 +7,8 @@ android {
|
|||||||
applicationId "com.warren.iwanttoheal"
|
applicationId "com.warren.iwanttoheal"
|
||||||
minSdkVersion rootProject.ext.minSdkVersion
|
minSdkVersion rootProject.ext.minSdkVersion
|
||||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||||
versionCode 91
|
versionCode 92
|
||||||
versionName "1.1.12"
|
versionName "1.1.13"
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
aaptOptions {
|
aaptOptions {
|
||||||
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
|
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
|
||||||
|
|||||||
@@ -944,24 +944,23 @@ export function PvpStadiumScreen({
|
|||||||
|
|
||||||
const finishShop = useCallback(() => {
|
const finishShop = useCallback(() => {
|
||||||
if (shopReady || status !== 'shop') return
|
if (shopReady || status !== 'shop') return
|
||||||
setShopReady(true)
|
const liveMatch = liveMatchRef.current
|
||||||
submittedShopRef.current = true
|
if (!liveMatch) {
|
||||||
setPlayerSide((current) => {
|
startNextRound()
|
||||||
const next = { ...current, shopReady: true }
|
|
||||||
playerRef.current = next
|
|
||||||
return next
|
|
||||||
})
|
|
||||||
if (liveMatchRef.current) {
|
|
||||||
submitPvpUpgradeChoice(liveMatchRef.current.id, {
|
|
||||||
encounterIndex: roundIndex,
|
|
||||||
buffId: 'stadium-shop',
|
|
||||||
debuffId: '',
|
|
||||||
purchases: playerRef.current.buffs,
|
|
||||||
shopReady: true,
|
|
||||||
}).catch(() => undefined)
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
startNextRound()
|
setShopReady(true)
|
||||||
|
submittedShopRef.current = true
|
||||||
|
const readyPlayer = { ...playerRef.current, shopReady: true }
|
||||||
|
playerRef.current = readyPlayer
|
||||||
|
setPlayerSide(readyPlayer)
|
||||||
|
submitPvpUpgradeChoice(liveMatch.id, {
|
||||||
|
encounterIndex: roundIndex,
|
||||||
|
buffId: 'stadium-shop',
|
||||||
|
debuffId: '',
|
||||||
|
purchases: playerRef.current.buffs,
|
||||||
|
shopReady: true,
|
||||||
|
}).catch(() => undefined)
|
||||||
}, [roundIndex, shopReady, startNextRound, status])
|
}, [roundIndex, shopReady, startNextRound, status])
|
||||||
|
|
||||||
const { rematchRequested, rematchMessage, handleRematch } = usePvpLiveMatchSync<StadiumSideState, LivePvpMatch>({
|
const { rematchRequested, rematchMessage, handleRematch } = usePvpLiveMatchSync<StadiumSideState, LivePvpMatch>({
|
||||||
|
|||||||
Reference in New Issue
Block a user