diff --git a/src/constants.lua b/src/constants.lua index 9c30da5..1981be9 100644 --- a/src/constants.lua +++ b/src/constants.lua @@ -122,6 +122,8 @@ C.ThrowMeterDrainPerSec = 150 --- how fast the ball can be thrown. C.CrankPower = 10 +C.FielderRunMult = 1.3 + C.UserThrowPower = 0.3 --- How fast baserunners move after a walk diff --git a/src/fielding.lua b/src/fielding.lua index 12c7227..f199501 100644 --- a/src/fielding.lua +++ b/src/fielding.lua @@ -20,7 +20,7 @@ FielderDanceAnimator.repeatCount = C.DanceBounceCount - 1 local function newFielder(name, speed) return { name = name, - speed = speed, + speed = speed * C.FielderRunMult, } end @@ -33,9 +33,9 @@ function Fielding.new() third = newFielder("Third", 40), pitcher = newFielder("Pitcher", 30), catcher = newFielder("Catcher", 35), - left = newFielder("Left", 40), - center = newFielder("C.Center", 40), - right = newFielder("Right", 40), + left = newFielder("Left", 50), + center = newFielder("Center", 50), + right = newFielder("Right", 50), }, ---@type Fielder | 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.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.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.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 ---@param deltaSeconds number diff --git a/src/graphics.lua b/src/graphics.lua index 773dbf3..aa6e56f 100644 --- a/src/graphics.lua +++ b/src/graphics.lua @@ -34,7 +34,8 @@ function blipper.new(msInterval, image1, image2) image2 = image2, draw = function(self, disableBlipping, x, y) 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 diff --git a/src/npc.lua b/src/npc.lua index 57b9677..832993f 100644 --- a/src/npc.lua +++ b/src/npc.lua @@ -55,7 +55,7 @@ function Npc:runningSpeed(ball) end 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 distToPrev = utils.distanceBetween(runner1.x, runner1.y, runner1.prevBase.x, runner1.prevBase.y) if distToNext < distToPrev then