Farmyard

In short

Map 2 of 5. “Hay, barns and a breeze. Hit the bullseyes, or the barn.” An open field (no stands) with a post-and-rail wooden fence, a 6 mph breeze, and Sticky balls on changeups, curveballs and knuckleballs (1 in 3).

How it works

  • Unlock: second in db.ballparks. Opens when Sandlot Field is beaten on Medium. Beating it on Medium opens Windy City Yard.
  • Environment: stadium = false, so there are no bleachers, crowd or light towers, and no stands for the ball to hit. ground = GroundStyle.Sandlot (patchy grass, an all-dirt infield, no warning track). wallStyle = WallStyle.WoodFence (post-and-rail fence, more fencing down the foul lines). The wall’s distance and height still count the same.
  • Special ball: Sticky (mud) on changeup, curveball and knuckleball. It leaves the hand quick, then drags through the last stretch. See Special Balls.
  • Targets: three landing zones. Open fields get no pole markers; the dressing puts a dartboard on each bullseye and the barn model is its own target.
  • Dressing: farm.dressing = "Parks/farm_Dressing" still does not exist at 45a2167, so ParkLayouts.BuildFarm builds it from Resources/Props/Farm/ (seeded System.Random(1717), the same farm every time):
    • Barn at (-12°, 450 ft), Silo at (-20°, 470 ft), Windmill at -36° and 110 ft past the fence, Scarecrow at 40° and 40 ft past the fence (scale 1.2).
    • A Dartboard (scale 2.6) on every target except the Barn.
    • Two Stables with WaterTroughs past right field (27° at +120 ft, 39° at +95 ft).
    • Hay-bale bleachers (HayBaleSquare) down both foul lines, 30 to 62 m out, two steps high.
    • Up to 10 clusters of 1 to 3 round hay bales past the fence (kept clear of the barn).
    • 28 Sunflowers past the left-field pole; a tree line at 760 to 860 ft from -78° to 78°.
  • Pitchers: the shared pool for innings 1 to 8. Because the Sticky ball rides only changeups, curveballs and knuckleballs, pitchers here lean on those pitches (80% of draws, about 70% of pitches; PitcherAI.FavouredShare). Final boss: farm.finalBossId = "farmer", so inning 9 is always BOSS: Farmer Fitz (only here): sinkers 3, changeups 2, knuckleballs 1, no special ball of his own yet. See Pitchers and Bosses.

Numbers

WhatValueWhere to tune
id / display namefarm / FarmyardDefaultContent
Unlock order2 of 5 (index 1), goal multiplier x1.15order of db.ballparks
LF / CF / RF310 / 380 / 315 ftPark(...)
Wall height6 ftPark(...)
Gravityx1gravityScale
Wind6 mph blowing toward 20° (toward right of center)windMph, windDirectionDeg
Night / skyno / ClearDayisNight, sky
Ground / wallSandlot / WoodFenceground, wallStyle
Grass / wall colour(0.36, 0.64, 0.24) / (0.5, 0.33, 0.18)Park(...)
Crowdnone (stadium = false; crowdDensity left at 0.75 but unused)stadium
Special ballSticky, changeup / curveball / knuckleball, chance 1/3farm.balls
Final bossFarmer Fitz (farmer): no ball, no handicapfarm.finalBossId
Batter modifiersnonebatterModifiers
Scoreboarddefault open-field spot: 140 ft past the center-field fence (520 ft)Scoreboard.DistanceM

Targets

LabelSprayDistanceRadiusPaysColour
Left Bullseye-28°370 ft20 ftx3(0.85, 0.12, 0.1)
Barn-12°450 ft30 ftx2(0.7, 0.12, 0.09)
Right Bullseye30°372 ft22 ftx2.5(1, 0.85, 0.2)

Inning goals (inning 3, 6, 9 are boss innings)

Difficulty123456789
Normal5757251125112514002200220027504275
Medium80010001575157519753075307538506000
Hard110013752125212526754175417552008150

Special ball chance by difficulty (x1 / x1.5 / x2): 1/3, 1/2, 2/3.

In the code

FileWhat it does
Assets/_Project/Scripts/Data/DefaultContent.csPark("farm", ...), wind, ground, fence, targets, Sticky ball, finalBossId, Farmer Fitz
Assets/_Project/Scripts/Ballparks/ParkLayouts.csBuildFarm: barn, silo, windmill, hay bales, dartboards, trees
Assets/_Project/Scripts/Ballparks/BallparkBuilder.csBuildSandlotGround, BuildWoodFences

Gotchas

  • The ballpark card’s wind text says “out to center”: WindDirectionLabel only says left or right beyond ±20°, and this park is exactly 20°.
  • Because the dressing is code-built, moving a target in DefaultContent moves its dartboard with it. The Barn model is placed at a fixed (-12°, 450 ft), so moving the Barn target would leave the model behind.