Multiplayer engine: automate player AI actions in board menu and branch space [Commit 13] (#40)

This commit is contained in:
xCrystal
2025-11-30 15:52:02 +01:00
parent 4ec58809a0
commit 97e4725b4e
10 changed files with 135 additions and 19 deletions

View File

@@ -157,9 +157,13 @@ BoardMenuScript::
BoardMenu::
; returns the selected menu item (BOARDMENUITEM_*) in hScriptVar upon exit
ld a, [wCurTurnPlayer]
and a ; PLAYER_1?
jr nz, .die
ld a, [wBoardMenuLastCursorPosition]
cp NUM_BOARD_MENU_ITEMS
jr c, .ok
.die
ld a, BOARDMENUITEM_DIE
.ok
ld [wBoardMenuCursorPosition], a
@@ -223,8 +227,12 @@ ApplyBoardMenuSpritePalette:
GetBoardMenuSelection:
call DelayFrame
ld c, PLAYERAIACTION_BOARD_MENU
call BoardAIAction
jr c, .ai_action
call JoyTextDelay
call GetMenuJoypad
.ai_action
bit A_BUTTON_F, a
jr nz, .a_button
bit SELECT_F, a
@@ -280,8 +288,10 @@ DEF DIE_MAX_NUMBER EQU 6
set SECONDARYSPRITES_DIE_ROLL_F, [hl]
ld a, 1
ld [wDieRoll], a
call HDMATransferTilemapAndAttrmap_Menu ;
call CloseText ; closetext
ld a, 30
ld [wFrameCounter2], a
call HDMATransferTilemapAndAttrmap_Menu
call CloseText
.rotate_die_loop
call IsSFXPlaying
@@ -295,8 +305,12 @@ DEF DIE_MAX_NUMBER EQU 6
add $1
ld [wDieRoll], a
call UpdateSecondarySprites
ld c, PLAYERAIACTION_ROLL_DIE
call BoardAIAction
jr c, .ai_action
call GetJoypad
ldh a, [hJoyPressed]
.ai_action
bit B_BUTTON_F, a
jr nz, .back_to_menu
bit A_BUTTON_F, a