Commit Graph

27 Commits (32f8b667618f9c014e29710be56a54541d007e8d)

Author SHA1 Message Date
LeRoyce Pearson 32f8b66761 refactor: go all in on Element abstraction to prepare for multiplayer support 2024-03-01 16:07:13 -07:00
LeRoyce Pearson 0a0a7d8d49 remove history len debug text 2024-02-29 13:47:04 -07:00
LeRoyce Pearson 527c3aa0ce feat: make text gray if it has no command 2024-02-29 13:45:41 -07:00
LeRoyce Pearson 6d7c4d8b74 feat: marking cards no longer clogs the undo history 2024-02-29 13:40:43 -07:00
LeRoyce Pearson a14e5c3839 feat: refine screen size based sprite selection
Before this change, medium was selected even for devices that could use
the large sprites.

I also changed the metric from `framebuffer_size[1]` to `window_size[1]`.
This is pixel art with pixels that are designed to be seen. We care more
about its size on the screen.
2024-02-29 13:15:21 -07:00
LeRoyce Pearson dbe5a92b54 fix: don't crash if joystick doesn't have expected inputs
My laptop and desktop both have devices that appear as joysticks, but are
very clearly not. Before this change this meant that I couldn't test the
game on desktop after adding joystick support.
2024-02-29 13:13:09 -07:00
LeRoyce Pearson e2a52dad0b feat: discard a card to end the turn 2024-02-28 15:26:13 -07:00
LeRoyce Pearson 52a247bceb don't reset position of selection when selecting cards
This makes it easier to select the next card.
2024-02-28 15:00:50 -07:00
LeRoyce Pearson 807712af79 fix: remove slight offset when cards were rendered
Fixed by updating version of seizer to one that doesn't offset the canvas
projection.
2024-02-28 14:47:35 -07:00
LeRoyce Pearson 84d8766124 send one move input per joystick button press
This makes it easier to control on the RG351M, as inputting a single
move no longer requires a frame perfect press and release.
2024-02-28 13:46:14 -07:00
LeRoyce Pearson 980d8cb6a1 initial support for RG351M controller input 2024-02-28 13:39:39 -07:00
LeRoyce Pearson 197756e5c3 feat: open window with size of workarea 2024-02-28 12:20:02 -07:00
LeRoyce Pearson 6f42b35e14 only activate "New Meld" when a valid meld is marked 2024-02-27 00:27:09 -07:00
LeRoyce Pearson f0e6bc4e0d add TextElement for "New Meld" button 2024-02-26 23:58:38 -07:00
LeRoyce Pearson 2dde105a58 feat: mark/unmark cards after drawing 2024-02-26 22:24:47 -07:00
LeRoyce Pearson c5526ba229 feat: activating and undoing actions 2024-02-26 21:55:51 -07:00
LeRoyce Pearson 1134f0ee08 improve navigation with the arrow keys 2024-02-26 21:00:01 -07:00
LeRoyce Pearson 45bd514bd3 remove `element` from `Action`, rely only on `command` 2024-02-26 20:39:10 -07:00
LeRoyce Pearson a7bc7e87e0 replace `Spread` with `CardElements` and an `HBox` 2024-02-26 20:18:39 -07:00
LeRoyce Pearson 91f896c5ef implement hovering over elements 2024-02-26 19:50:26 -07:00
LeRoyce Pearson 54d04f4a2b refactor: handler that returns a tree of elements 2024-02-26 18:27:31 -07:00
LeRoyce Pearson d63a6d06fb feat: highlight selected card, change highlight card 2024-02-26 13:59:14 -07:00
LeRoyce Pearson 45bc09b612 render draw/discard/hand 2024-02-25 00:19:34 -07:00
LeRoyce Pearson 695c4d6280 feat: add small size graphics 2024-02-24 16:44:41 -07:00
LeRoyce Pearson 680f56a39d feat: render stack of cards
Added `tile_offset` and `tile_stride` to render exactly the card without
the blank space surrounding it on the tile.
2024-02-24 16:27:37 -07:00
LeRoyce Pearson 755518bb5d feat: use framebuffer size to choose sprite set
Using multiple sizes of sprites will hopefully make porting the game to
a wider range of devices easier.
2024-02-24 15:58:55 -07:00
LeRoyce Pearson 15e1670ec3 get medium cards rendering 2024-02-23 14:44:27 -07:00