Faster fielders

Adjust left and right field positions.
Bouncy baserunners.
Patched npc nil index issue.
This commit is contained in:
Sage Vaillancourt 2025-02-11 00:01:36 -05:00
parent 90f792ff4e
commit 0646663e5e
4 changed files with 11 additions and 8 deletions

View File

@ -122,6 +122,8 @@ C.ThrowMeterDrainPerSec = 150
--- how fast the ball can be thrown. --- how fast the ball can be thrown.
C.CrankPower = 10 C.CrankPower = 10
C.FielderRunMult = 1.3
C.UserThrowPower = 0.3 C.UserThrowPower = 0.3
--- How fast baserunners move after a walk --- How fast baserunners move after a walk

View File

@ -20,7 +20,7 @@ FielderDanceAnimator.repeatCount = C.DanceBounceCount - 1
local function newFielder(name, speed) local function newFielder(name, speed)
return { return {
name = name, name = name,
speed = speed, speed = speed * C.FielderRunMult,
} }
end end
@ -33,9 +33,9 @@ function Fielding.new()
third = newFielder("Third", 40), third = newFielder("Third", 40),
pitcher = newFielder("Pitcher", 30), pitcher = newFielder("Pitcher", 30),
catcher = newFielder("Catcher", 35), catcher = newFielder("Catcher", 35),
left = newFielder("Left", 40), left = newFielder("Left", 50),
center = newFielder("C.Center", 40), center = newFielder("Center", 50),
right = newFielder("Right", 40), right = newFielder("Right", 50),
}, },
---@type Fielder | nil ---@type Fielder | nil
fielderTouchingBall = nil, fielderTouchingBall = nil,
@ -69,9 +69,9 @@ function Fielding:resetFielderPositions(fromOffTheField)
self.fielders.third.target = utils.xy(C.Screen.W * 0.1, C.Screen.H * 0.48) self.fielders.third.target = utils.xy(C.Screen.W * 0.1, C.Screen.H * 0.48)
self.fielders.pitcher.target = utils.xy(C.PitcherStartPos.x, C.PitcherStartPos.y) self.fielders.pitcher.target = utils.xy(C.PitcherStartPos.x, C.PitcherStartPos.y)
self.fielders.catcher.target = utils.xy(C.Screen.W * 0.475, C.Screen.H * 0.92) self.fielders.catcher.target = utils.xy(C.Screen.W * 0.475, C.Screen.H * 0.92)
self.fielders.left.target = utils.xy(C.Screen.W * -1, C.Screen.H * -0.2) self.fielders.left.target = utils.xy(C.Screen.W * -0.6, C.Screen.H * -0.1)
self.fielders.center.target = utils.xy(C.Center.x, C.Screen.H * -0.4) self.fielders.center.target = utils.xy(C.Center.x, C.Screen.H * -0.4)
self.fielders.right.target = utils.xy(C.Screen.W * 2, self.fielders.left.target.y) self.fielders.right.target = utils.xy(C.Screen.W * 1.6, self.fielders.left.target.y)
end end
---@param deltaSeconds number ---@param deltaSeconds number

View File

@ -34,7 +34,8 @@ function blipper.new(msInterval, image1, image2)
image2 = image2, image2 = image2,
draw = function(self, disableBlipping, x, y) draw = function(self, disableBlipping, x, y)
local currentImage = (disableBlipping or self.blinker.on) and self.image2 or self.image1 local currentImage = (disableBlipping or self.blinker.on) and self.image2 or self.image1
currentImage:draw(x, y) local offsetY = currentImage == PlayerLowHat and -1 or 0
currentImage:draw(x, y + offsetY)
end, end,
} }
end end

View File

@ -55,7 +55,7 @@ function Npc:runningSpeed(ball)
end end
local touchedBase = utils.isTouchingBase(runner1.x, runner1.y) local touchedBase = utils.isTouchingBase(runner1.x, runner1.y)
if not touchedBase then if not touchedBase and runner1.nextBase then
local distToNext = utils.distanceBetween(runner1.x, runner1.y, runner1.nextBase.x, runner1.nextBase.y) local distToNext = utils.distanceBetween(runner1.x, runner1.y, runner1.nextBase.x, runner1.nextBase.y)
local distToPrev = utils.distanceBetween(runner1.x, runner1.y, runner1.prevBase.x, runner1.prevBase.y) local distToPrev = utils.distanceBetween(runner1.x, runner1.y, runner1.prevBase.x, runner1.prevBase.y)
if distToNext < distToPrev then if distToNext < distToPrev then