Commit Graph

42 Commits

Author SHA1 Message Date
Sage Vaillancourt 876f828117 Extract draw/ball.lua
Tweak pointIsSquarelyAboveLine() -> pointIsAboveLine()
2025-02-26 14:20:36 -05:00
Sage Vaillancourt 55a3a7b0ee More type hints.
Also, move pointDirectlyUnderLine() to XyPair-based.
2025-02-24 23:55:03 -05:00
Sage Vaillancourt ad82035ccc Pan back from home runs
Move secondsSinceLastRunnerMove into Baserunning
Tweak draw offset logic - a little jumpy, but better at following the long ball
Taller GrassBackground
Move secondsSinceLastPitch into pitchTracker
Extract pitchTracker and throwMeter
Slightly more truthful utils.moveAtSpeed()
2025-02-19 17:13:06 -05:00
Sage Vaillancourt aebbc35bac Add some quick MenuMusic
And extract a bit more pitchTracker logic
2025-02-18 15:50:22 -05:00
Sage Vaillancourt 2d812f2046 Add basic home-run handling
Still needs to pan the camera back from the home run while the runners circle the bases.
Also add a wrapping-pattern.png, though I'm not sure if it's actually used?
2025-02-18 13:58:44 -05:00
Sage Vaillancourt e20ad0d3ad Add swing-and-a-miss strikes 2025-02-17 20:37:16 -05:00
Sage Vaillancourt 4c9fbcdee7 More advanced statistics and displays. 2025-02-17 20:17:26 -05:00
Sage Vaillancourt 5c45b7bba0 Add box score and transitions
Add constants defining the top of the outfield wall (not used yet)
Take scores out of mutable global state (that might be just about all of it sewn up)
Finish switching batttingTeam to a TeamId value
2025-02-17 13:21:28 -05:00
Sage Vaillancourt db1409d94d selene -> luacheck
Greatly simplifies the Makefile.
2025-02-16 15:14:59 -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 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 90fa692303 Fix linting
Use .styluaignore instead of Makefile hacks to ignore generated files.
2025-02-09 14:47:37 -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 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 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 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 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 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 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 Vaillancourt a341abed31 Skeleton tracking/display of balls and strikes 2025-02-07 00:17:24 -05:00
Sage Vaillancourt 4fc49d3631 Add minimap.
Some other small refactors.
2025-02-06 13:34:03 -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 9df836e0bf Switch to spaces. 2025-02-04 13:06:41 -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 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
Sage Vaillancourt 5fca82bb3a Queue up announcement messages.
Extract drawScoreboard() to new scoreboard.lua
Very, very rudimentary team-switching.
2025-02-02 17:36:25 -05:00
Sage Vaillancourt 073140f700 Add basic announcement messages.
Switch to checking based on __types.lua instead of __stub.lua
New font for announcement. Move Full Circle font out of subdirectory.
2025-02-02 16:15:29 -05:00
Sage Vaillancourt 66e3d2bb01 Fielders can run the ball towards a base themselves.
Ball can be heldBy a fielder.
Fix likely bug in buildCache() and document it (including contemplating future removal).
Add missing Full Circle font png.
2025-02-02 13:32:22 -05:00
Sage Vaillancourt b9fc7ee09e Tweak drift-toward-base behavior.
It's a little clunky for sure, but also more playable.
Added the Full Circle font for the scoreboard.
Do a *check-only* lint in 'make check'
2025-02-02 11:07:15 -05:00
Sage Vaillancourt bf4fbab40f Quick <const> and case fixes in ecs and utils 2025-02-01 17:47:46 -05:00
Sage Vaillancourt f1d8c28370 Add selene to 'make lint'
Patch up its complaints.
Move blipper to graphics.lua
2025-02-01 11:04:27 -05:00
Sage Vaillancourt 4fc37b133e StyLua pass
Add 'lint' recipe to Makefile
2025-02-01 07:39:09 -05:00
Sage Vaillancourt 0b126919ac Better batter-outs, scoreboard, sounds and frowns.
A bunch more refactors, SCREAMING_SNAKE constants, graphics.lua, etc.
2025-01-31 23:34:35 -05:00
Sage Vaillancourt 533c625d47 Add .luarc.json for library reading.
Move more stuff to utils.
More type hints.
*Some* fleshing-out of getNextThrowTarget() etc.
Closer to proper multi-baserunner support.
2025-01-30 00:18:02 -05:00
Sage Vaillancourt 4093f9705a Refactoring, typehints, better baserunning 2025-01-29 00:36:55 -05:00
Sage Vaillancourt 2c179a5ba5 Refactoring.
Consolidate hitBall() and throwBall() into one function.
Pull playerImage into its own "blipper" in utils.lua. This is definitely overkill, but we're learning with Lua, and it's fine, and it's very fine.
2025-01-27 00:26:20 -05:00
Sage Vaillancourt 8bbc029c42 Bigger background for panning across.
Refactor out utils.lua
2025-01-26 23:24:41 -05:00