Commit Graph

84 Commits

Author SHA1 Message Date
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
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