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