Commit Graph

77 Commits

Author SHA1 Message Date
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
Sage Vaillancourt a341abed31 Skeleton tracking/display of balls and strikes 2025-02-07 00:17:24 -05:00
Sage Vaillancourt 2867b4a367 Add basic player-controlled fielding.
Pull out a dbg.lua for functions that can be called for testing certain scenarios.
2025-02-06 21:36:51 -05:00
Sage Vaillancourt 4fc49d3631 Add minimap.
Some other small refactors.
2025-02-06 13:34:03 -05:00
Sage Vaillancourt eb28a628f2 buttonControlledThrow() simplification 2025-02-05 23:45:26 -05:00
Sage Vaillancourt 8319b554ec Pitcher can throw to bases.
Logic should be re-usable generally for throwing between fielders.
2025-02-05 23:42:17 -05:00
Sage Vaillancourt 57625a9b80 Player pitching, npc batting, and gloves
Or at least a basic implementation thereof
2025-02-05 18:25:34 -05:00
Sage Vaillancourt 779b13d56b Add basic testing. Requires luaunit.
Put utils functions into a module. Of sorts, anyway.
Add benchAllFielders()
Add playerIsOn() and associated "sides".
Pass appliedSpeed through into runner funcs. Should make it easier to put under NPC control.
2025-02-05 13:52:12 -05:00
Sage Vaillancourt 45a20cbb70 Refactoring and better type hinting. 2025-02-05 10:01:45 -05:00
Sage Vaillancourt 841b7e3fea Decrease BaseHitbox to fix tag-outs
Rename tryToThrowOut() to tryToMakeOut()
2025-02-04 14:27:58 -05:00
Sage Vaillancourt 9df836e0bf Switch to spaces. 2025-02-04 13:06:41 -05:00
Sage Vaillancourt 44ba30ee97 Remove Fielder.onArrive() callback
Instead, just try to throw for an out when touching the ball.
This also tentatively moves toward implementing cutoff throws.
Re-org to define tryToThrowOut() before it is referenced.
2025-02-04 13:04:26 -05:00
Sage Vaillancourt 1d55c27fa2 Allow for more complex pitches.
Add some very mid music.
2025-02-04 11:30:18 -05:00
Sage Vaillancourt fb991e48df Add PlayerBack sprite 2025-02-03 21:27:46 -05:00
Sage Vaillancourt 6308871692 Correct draw offset for hits to right field. 2025-02-03 20:45:18 -05:00
Sage Vaillancourt 6dd8469409 Implement multi-out fielding.
Extract announcer.lua
Fielders now only dance at the end of the half-inning.
Ball is now drawn over everything but the scoreboard and announcer.
2025-02-03 20:26:08 -05:00
Sage Vaillancourt 5d01769eb1 Multiple pitches. Track innings.
Have catcher throw ball back to pitcher.
NOTE: Bit of a timer hack in init() to get the ball to the pitcher at the beginning of the game.
2025-02-03 18:57:45 -05:00
Sage Vaillancourt 14629a5346 Add batting-team indicator to scoreboard. 2025-02-03 12:46:15 -05:00
Sage Vaillancourt e68566957d Fix some fielding logic.
Runner forcedTo fields are now updated properly.
Fielders can throw to bases other than first.
Also, update label() to handle tables.
2025-02-03 00:03:37 -05:00