Sage Vaillancourt
6007ac971f
Add .luacheckrc, remove selene.toml
2025-02-16 18:43:09 -05:00
Sage Vaillancourt
db1409d94d
selene -> luacheck
...
Greatly simplifies the Makefile.
2025-02-16 15:14:59 -05:00
Sage Vaillancourt
bbaaca4a2d
Sort runners/fielders by `y` for draw order
...
Pulled Fielding:drawFielders() back out into main.lua for this.
Also switching some table-keyed enums to string literal types.
2025-02-15 22:13:37 -05:00
Sage Vaillancourt
51855e13cf
Convert main into a Game object.
...
Much BATTER encapsulation of its dependencies and mutable state. Only the team scores are still global and mutable, but that shouldn't be too hard to fix.
2025-02-15 17:38:56 -05:00
Sage Vaillancourt
bb95ef5a63
Add inning count selection to main menu.
2025-02-15 09:40:07 -05:00
Sage Vaillancourt
8943eef73f
Add simple main menu (disabled for now)
...
String names on Logo assets
Add dbg.drawLine() - to use when defining outfield boundaries.
Allow flipped fielder draws.
2025-02-14 15:42:10 -05:00
Sage Vaillancourt
e710a79d9c
Unified test/setup.lua harness
2025-02-12 23:35:05 -05:00
Sage Vaillancourt
c8f128f277
Add alternate logos.
...
Tweak assets.lua2p to put them in their own table.
2025-02-12 23:10:38 -05:00
Sage Vaillancourt
027bb31bff
A bit of testing for baserunning and fielding.
...
Required minor reworking to get those test harnesses in place.
2025-02-12 22:49:37 -05:00
Sage Vaillancourt
a801b64f55
Fielders can catch passing balls.
...
Implemented with a new catchEligible field. Should be easy enough to add some erroring to those catches, too.
Allow npc to control individual baserunners.
Add a bit more dirt to the infield.
This commit *does* introduce some entanglement between files. E.g. the markIneligible() calls, and overriding ball.heldBy from within Fielding
2025-02-12 17:18:18 -05:00
Sage Vaillancourt
1926960c86
NPCs can play each other
...
Some timing tweaks and TODOs.
Cluster global state tighter together.
2025-02-11 13:50:03 -05:00
Sage Vaillancourt
b9d25e18d8
New black away uniforms!
...
Generate sprites from component images during load.
Should make it easy to swap out logos at runtime.
2025-02-11 08:32:51 -05:00
Sage Vaillancourt
0646663e5e
Faster fielders
...
Adjust left and right field positions.
Bouncy baserunners.
Patched npc nil index issue.
2025-02-11 00:01:36 -05:00
Sage Vaillancourt
90f792ff4e
More aggressive NPC running
...
Less aggressive NPC batting :D
Updated Player sprites - now with belt!
2025-02-10 23:25:19 -05:00
Sage Vaillancourt
fbbfc3c2e7
Move fielder-draw iteration and dance to fielding.lua
...
Move PlayerImageBlipper to graphics.lua
2025-02-10 22:36:17 -05:00
Sage Vaillancourt
f67d6262ac
Fix some NPC positioning.
...
Basic foul-ball implementation.
Some balance tweaks. Generally faster play.
Move pitchMeter to utils.
Player -> User when talking about the human player instead of a baseball player.
Slightly delay scoreboard changes.
Animate ball-strike entry and exit.
2025-02-10 21:22:21 -05:00
Sage Vaillancourt
534a16ad67
Fix inning switching.
...
Add onThirdOut() as a baserunning dependency instead of relying on a wrapper function in main
Reset pitchTracker on side-switch
2025-02-10 12:47:24 -05:00
Sage Vaillancourt
fc4e12eddd
Updated bg and player sprites.
...
Player is taller now.
Fixed out handling.
2025-02-10 11:24:53 -05:00
Sage Vaillancourt
90fa692303
Fix linting
...
Use .styluaignore instead of Makefile hacks to ignore generated files.
2025-02-09 14:47:37 -05:00
Sage Vaillancourt
4d69e77d9f
Class-ify npc -> Npc
...
In the future, may keep a small memory of past pitches/plays, and use it to adjust swings, baserunning, etc.
2025-02-09 12:30:53 -05:00
Sage Vaillancourt
575c9e0a18
Explicitly set minimap draw sizes
2025-02-09 12:15:37 -05:00
Sage Vaillancourt
0f83298086
Only draw in-bounds fielders on minimap.
...
Inject animator into Ball, instead of entire gfx
2025-02-09 12:09:31 -05:00
Sage Vaillancourt
89c37eaf3d
Move Fielder type into fielding.lua
2025-02-09 11:50:31 -05:00
Sage Vaillancourt
476e0d54cb
Start extracting ball.lua
...
PseudoAnimator -> SimpleAnimator
2025-02-09 11:49:15 -05:00
Sage Vaillancourt
fed1151179
XYPair -> XyPair, throwBall() -> launchBall()
...
Add Point3d type.
2025-02-09 11:35:19 -05:00
Sage Vaillancourt
d74332f685
Store animators directly on the `ball` object
2025-02-09 11:26:24 -05:00
Sage Vaillancourt
9c0d263a29
Class-ify Announcer, Baserunning, and Fielding
...
Largely to enable dependency injection.
I am pushing AWAY the paranoia that metatable lookups will slow things down. (You've got like 20 entities, bud, chill.)
Field -> Fielding
2025-02-09 11:19:11 -05:00
Sage Vaillancourt
aadaa6e0d6
Use : instead of . in self function definitions
2025-02-09 10:31:32 -05:00
Sage Vaillancourt
c56cae6527
batter -> baserunning.batter
2025-02-09 10:12:56 -05:00
Sage Vaillancourt
1a68521bd4
Extract baserunning.lua
...
field.lua -> fielding.lua
npcFielderAction() -> npc.fielderAction()
Generally, a pinch of additional or stricter typing
2025-02-09 10:06:57 -05:00
Sage Vaillancourt
50ddd67730
Start drawing fielders in minimap
2025-02-09 00:04:59 -05:00
Sage Vaillancourt
fedf680626
Small action-queue.lua doc-comment tweaks
2025-02-08 22:08:42 -05:00
Sage Vaillancourt
82d1dac5de
Buffer player-controlled fielder throws.
...
Use new actionQueue to do so.
Move thrower and receiver selection into fielder.lua
Correct SOURCE_FILES listing in Makefile
2025-02-08 22:02:29 -05:00
Sage Vaillancourt
b119310859
Even further fielder logic extraction.
...
Also remove some redundant ball-position mutation.
2025-02-08 20:25:30 -05:00
Sage Vaillancourt
30f2eada72
Extract almost all NPC fielding logic
2025-02-08 19:04:10 -05:00
Sage Vaillancourt
80c15161e3
Move more logic into field.lua
2025-02-08 18:28:17 -05:00
Sage Vaillancourt
d85db79e52
Make main.lua functions `local`, where possible
2025-02-08 13:36:09 -05:00
Sage Vaillancourt
66bd97499a
Try to cluster global state together.
...
Start peeling out fielder functions into a new file.
A bit more constant use.
In Makefile, parse main.lua imports for source files.
2025-02-08 11:52:39 -05:00
Sage Vaillancourt
324673ea98
Add music + sound effects to assets.lua2p
2025-02-08 09:39:56 -05:00
Sage Vaillancourt
8dc999fd72
Add LuaPreprocess for asset-processing.
...
Rename image assets to match var names.
2025-02-08 01:53:26 -05:00
Sage Vaillancourt
4a4049996f
Much more fleshed-out constants.lua
...
* Move scoreboard.lua to draw/overlay.lua
* Move minimap drawing into overlay.lua
* Remove playdate imports from utils.lua
2025-02-08 00:49:03 -05:00
Sage Vaillancourt
f07530623f
Delete unused ecs.lua toy
...
Add a quick type assertion to outRunner()
2025-02-07 23:56:39 -05:00
Sage Vaillancourt
881ff0e734
Implementing walks and strike-outs
...
* Look at limiting batting/throw power with math.log()
* Extract draw/fielder.lua
* Extract some values into constants.lua
* Extract npc.lua for computer batting (and eventually probably more CPU behavior)
* pitchTracker in utils
2025-02-07 20:29:40 -05:00
sage
969de111fe
Merge pull request 'Properly display balls and strikes' ( #3 ) from proper-balls-and-strikes-display into main
...
Reviewed-on: #3
Reviewed-by: NikB0t <culvey.nikalas@gmail.com>
2025-02-07 20:11:54 -05:00
Sage Vaillancourt
e44bdcb57b
magicNumbers = magicNumbers - 1
2025-02-07 14:08:14 -05:00
Sage Vaillancourt
2b436082bb
Properly display balls and strikes
...
But only when the count isn't 0 - 0
2025-02-07 10:34:35 -05:00
sage
9c08990d76
Merge pull request 'Disallow zero-speed bats' ( #2 ) from revert-zero-speed-hits into main
...
Reviewed-on: #2
2025-02-07 00:53:20 -05:00
Sage Vaillancourt
d0f4b9df97
Disallow zero-speed bats
2025-02-07 00:50:49 -05:00
Sage Vaillancourt
9678db167f
Hyphen over colon in balls/strikes
2025-02-07 00:47:54 -05:00
sage
16fde510ac
Merge pull request 'Skeleton tracking/display of balls and strikes' ( #1 ) from balls-and-strikes into main
...
Reviewed-on: #1
2025-02-07 00:18:19 -05:00