Make main.lua functions `local`, where possible

This commit is contained in:
Sage Vaillancourt 2025-02-08 13:36:09 -05:00
parent 66bd97499a
commit d85db79e52
1 changed files with 28 additions and 28 deletions

View File

@ -141,7 +141,7 @@ local Pitches <const> = {
} }
---@return boolean playerIsOnSide, boolean playerIsOnOtherSide ---@return boolean playerIsOnSide, boolean playerIsOnOtherSide
function playerIsOn(side) local function playerIsOn(side)
local ret local ret
if PlayerTeam == battingTeam then if PlayerTeam == battingTeam then
ret = side == C.Sides.offense ret = side == C.Sides.offense
@ -158,7 +158,7 @@ end
---@param flyTimeMs number | nil ---@param flyTimeMs number | nil
---@param floaty boolean | nil ---@param floaty boolean | nil
---@param customBallScaler pd_animator | nil ---@param customBallScaler pd_animator | nil
function throwBall(destX, destY, easingFunc, flyTimeMs, floaty, customBallScaler) local function throwBall(destX, destY, easingFunc, flyTimeMs, floaty, customBallScaler)
ball.heldBy = nil ball.heldBy = nil
throwMeter = 0 throwMeter = 0
@ -181,7 +181,7 @@ end
---@param pitchFlyTimeMs number | nil ---@param pitchFlyTimeMs number | nil
---@param pitchTypeIndex number | nil ---@param pitchTypeIndex number | nil
function pitch(pitchFlyTimeMs, pitchTypeIndex) local function pitch(pitchFlyTimeMs, pitchTypeIndex)
catcherThrownBall = false catcherThrownBall = false
offenseMode = C.Offense.batting offenseMode = C.Offense.batting
@ -210,7 +210,7 @@ end
---@param x number ---@param x number
---@param y number ---@param y number
---@return Base | nil ---@return Base | nil
function isTouchingBase(x, y) local function isTouchingBase(x, y)
return utils.first(C.Bases, function(base) return utils.first(C.Bases, function(base)
return utils.distanceBetween(x, y, base.x, base.y) < C.BaseHitbox return utils.distanceBetween(x, y, base.x, base.y) < C.BaseHitbox
end) end)
@ -220,20 +220,20 @@ end
---@param x number ---@param x number
---@param y number ---@param y number
---@return boolean, number ---@return boolean, number
function isTouchingBall(x, y) local function isTouchingBall(x, y)
local ballDistance = utils.distanceBetween(x, y, ball.x, ball.y) local ballDistance = utils.distanceBetween(x, y, ball.x, ball.y)
return ballDistance < C.BallCatchHitbox, ballDistance return ballDistance < C.BallCatchHitbox, ballDistance
end end
---@param base Base ---@param base Base
---@return Runner | nil ---@return Runner | nil
function getRunnerWithNextBase(base) local function getRunnerWithNextBase(base)
return utils.first(runners, function(runner) return utils.first(runners, function(runner)
return runner.nextBase == base return runner.nextBase == base
end) end)
end end
function updateForcedRunners() local function updateForcedRunners()
local stillForced = true local stillForced = true
for _, base in ipairs(C.Bases) do for _, base in ipairs(C.Bases) do
local runnerTargetingBase = getRunnerWithNextBase(base) local runnerTargetingBase = getRunnerWithNextBase(base)
@ -250,7 +250,7 @@ function updateForcedRunners()
end end
---@param runner integer | Runner ---@param runner integer | Runner
function outRunner(runner, message) local function outRunner(runner, message)
if type(runner) ~= "number" then if type(runner) ~= "number" then
for i, maybe in ipairs(runners) do for i, maybe in ipairs(runners) do
if runner == maybe then if runner == maybe then
@ -299,7 +299,7 @@ function outRunner(runner, message)
end end
---@param runnerIndex number ---@param runnerIndex number
function score(runnerIndex) local function score(runnerIndex)
outRunners[#outRunners + 1] = runners[runnerIndex] outRunners[#outRunners + 1] = runners[runnerIndex]
table.remove(runners, runnerIndex) table.remove(runners, runnerIndex)
battingTeam.score = battingTeam.score + 1 battingTeam.score = battingTeam.score + 1
@ -307,7 +307,7 @@ function score(runnerIndex)
end end
---@return Base[] ---@return Base[]
function getForcedOutTargets() local function getForcedOutTargets()
local targets = {} local targets = {}
for _, base in ipairs(C.Bases) do for _, base in ipairs(C.Bases) do
local runnerTargetingBase = getRunnerWithNextBase(base) local runnerTargetingBase = getRunnerWithNextBase(base)
@ -322,7 +322,7 @@ end
--- Returns the position,distance of the basest closest to the runner furthest from a base --- Returns the position,distance of the basest closest to the runner furthest from a base
---@return Base | nil, number | nil ---@return Base | nil, number | nil
function getBaseOfStrandedRunner() local function getBaseOfStrandedRunner()
local farRunnersBase, farDistance local farRunnersBase, farDistance
for _, runner in pairs(runners) do for _, runner in pairs(runners) do
if runner ~= batter then if runner ~= batter then
@ -339,7 +339,7 @@ end
--- Returns x,y of the out target --- Returns x,y of the out target
---@return number|nil, number|nil ---@return number|nil, number|nil
function getNextOutTarget() local function getNextOutTarget()
-- TODO: Handle missed throws, check for fielders at target, etc. -- TODO: Handle missed throws, check for fielders at target, etc.
local targets = getForcedOutTargets() local targets = getForcedOutTargets()
if #targets ~= 0 then if #targets ~= 0 then
@ -353,7 +353,7 @@ function getNextOutTarget()
end end
---@param fielder Fielder ---@param fielder Fielder
function tryToMakeAnOut(fielder) local function tryToMakeAnOut(fielder)
local targetX, targetY = getNextOutTarget() local targetX, targetY = getNextOutTarget()
if targetX ~= nil and targetY ~= nil then if targetX ~= nil and targetY ~= nil then
local nearestFielder = utils.getNearestOf(Field.fielders, targetX, targetY) local nearestFielder = utils.getNearestOf(Field.fielders, targetX, targetY)
@ -366,7 +366,7 @@ function tryToMakeAnOut(fielder)
end end
end end
function readThrow() local function readThrow()
if throwMeter > C.ThrowMeterMax then if throwMeter > C.ThrowMeterMax then
return (C.PitchFlyMs / (throwMeter / C.ThrowMeterMax)) return (C.PitchFlyMs / (throwMeter / C.ThrowMeterMax))
end end
@ -376,7 +376,7 @@ end
---@param thrower Fielder ---@param thrower Fielder
---@param throwFlyMs number ---@param throwFlyMs number
---@return boolean didThrow ---@return boolean didThrow
function buttonControlledThrow(thrower, throwFlyMs, forbidThrowHome) local function buttonControlledThrow(thrower, throwFlyMs, forbidThrowHome)
local targetBase local targetBase
if playdate.buttonIsPressed(playdate.kButtonLeft) then if playdate.buttonIsPressed(playdate.kButtonLeft) then
targetBase = C.Bases[C.Third] targetBase = C.Bases[C.Third]
@ -402,7 +402,7 @@ function buttonControlledThrow(thrower, throwFlyMs, forbidThrowHome)
return true return true
end end
function outEligibleRunners(fielder) local function outEligibleRunners(fielder)
local touchedBase = isTouchingBase(fielder.x, fielder.y) local touchedBase = isTouchingBase(fielder.x, fielder.y)
local didOutRunner = false local didOutRunner = false
for i, runner in pairs(runners) do for i, runner in pairs(runners) do
@ -423,7 +423,7 @@ function outEligibleRunners(fielder)
return didOutRunner return didOutRunner
end end
function updateNpcFielder(fielder, outedSomeRunner) local function updateNpcFielder(fielder, outedSomeRunner)
if offenseMode ~= C.Offense.running then if offenseMode ~= C.Offense.running then
return return
end end
@ -437,7 +437,7 @@ function updateNpcFielder(fielder, outedSomeRunner)
end end
---@param fielder Fielder ---@param fielder Fielder
function updateFielder(fielder) local function updateFielder(fielder)
if fielder.target ~= nil then if fielder.target ~= nil then
if not utils.moveAtSpeed(fielder, fielder.speed * deltaSeconds, fielder.target) then if not utils.moveAtSpeed(fielder, fielder.speed * deltaSeconds, fielder.target) then
fielder.target = nil fielder.target = nil
@ -465,7 +465,7 @@ end
---@param runnerIndex integer | nil May only be nil if runner == batter ---@param runnerIndex integer | nil May only be nil if runner == batter
---@param appliedSpeed number ---@param appliedSpeed number
---@return boolean ---@return boolean
function updateRunner(runner, runnerIndex, appliedSpeed) local function updateRunner(runner, runnerIndex, appliedSpeed)
local autoRunSpeed = 20 * deltaSeconds local autoRunSpeed = 20 * deltaSeconds
--autoRunSpeed = 140 --autoRunSpeed = 140
@ -515,7 +515,7 @@ function updateRunner(runner, runnerIndex, appliedSpeed)
return prevX ~= runner.x or prevY ~= runner.y return prevX ~= runner.x or prevY ~= runner.y
end end
function nextBatter() local function nextBatter()
batter = nil batter = nil
playdate.timer.new(2000, function() playdate.timer.new(2000, function()
pitchTracker:reset() pitchTracker:reset()
@ -525,7 +525,7 @@ function nextBatter()
end) end)
end end
function walk() local function walk()
announcer:say("Walk!") announcer:say("Walk!")
Field.fielders.first.target = C.Bases[C.First] Field.fielders.first.target = C.Bases[C.First]
batter.nextBase = C.Bases[C.First] batter.nextBase = C.Bases[C.First]
@ -536,7 +536,7 @@ function walk()
nextBatter() nextBatter()
end end
function strikeOut() local function strikeOut()
local outBatter = batter local outBatter = batter
batter = nil batter = nil
outRunner(outBatter --[[@as Runner]], "Strike out!") outRunner(outBatter --[[@as Runner]], "Strike out!")
@ -544,7 +544,7 @@ function strikeOut()
end end
---@param batDeg number ---@param batDeg number
function updateBatting(batDeg, batSpeed) local function updateBatting(batDeg, batSpeed)
if ball.y < C.BallOffscreen then if ball.y < C.BallOffscreen then
ball.y = ballAnimatorY:currentValue() + ballFloatAnimator:currentValue() ball.y = ballAnimatorY:currentValue() + ballFloatAnimator:currentValue()
ball.size = C.SmallestBallRadius -- ballFloatAnimator:currentValue() ball.size = C.SmallestBallRadius -- ballFloatAnimator:currentValue()
@ -595,7 +595,7 @@ end
--- Returns true only if at least one of the given runners moved during this update --- Returns true only if at least one of the given runners moved during this update
---@param appliedSpeed number ---@param appliedSpeed number
---@return boolean ---@return boolean
function updateRunning(appliedSpeed, forcedOnly) local function updateRunning(appliedSpeed, forcedOnly)
ball.size = ballSizeAnimator:currentValue() ball.size = ballSizeAnimator:currentValue()
local runnerMoved = false local runnerMoved = false
@ -610,7 +610,7 @@ function updateRunning(appliedSpeed, forcedOnly)
return runnerMoved return runnerMoved
end end
function walkAwayOutRunners() local function walkAwayOutRunners()
for i, runner in ipairs(outRunners) do for i, runner in ipairs(outRunners) do
if runner.x < C.Screen.W + 50 and runner.y < C.Screen.H + 50 then if runner.x < C.Screen.W + 50 and runner.y < C.Screen.H + 50 then
runner.x = runner.x + (deltaSeconds * 25) runner.x = runner.x + (deltaSeconds * 25)
@ -621,7 +621,7 @@ function walkAwayOutRunners()
end end
end end
function playerPitch(throwFly) local function playerPitch(throwFly)
local aButton = playdate.buttonIsPressed(playdate.kButtonA) local aButton = playdate.buttonIsPressed(playdate.kButtonA)
local bButton = playdate.buttonIsPressed(playdate.kButtonB) local bButton = playdate.buttonIsPressed(playdate.kButtonB)
if not aButton and not bButton then if not aButton and not bButton then
@ -635,7 +635,7 @@ function playerPitch(throwFly)
end end
end end
function updateGameState() local function updateGameState()
deltaSeconds = playdate.getElapsedTime() or 0 deltaSeconds = playdate.getElapsedTime() or 0
playdate.resetElapsedTime() playdate.resetElapsedTime()
local crankChange = playdate.getCrankChange() --[[@as number]] local crankChange = playdate.getCrankChange() --[[@as number]]
@ -802,7 +802,7 @@ function playdate.update()
announcer:draw(C.Center.x, 10) announcer:draw(C.Center.x, 10)
end end
function init() local function init()
playdate.display.setRefreshRate(50) playdate.display.setRefreshRate(50)
gfx.setBackgroundColor(gfx.kColorWhite) gfx.setBackgroundColor(gfx.kColorWhite)
playdate.setMenuImage(gfx.image.new("images/game/menu-image.png")) playdate.setMenuImage(gfx.image.new("images/game/menu-image.png"))