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