BallOrcs: sheep to herd, cows to tip, and houses with round doors
Cows that fall over when a fast ball hits them, a sheep-herding prototype, round houses on every level, and a charger that can now aim in a cone.
In plain words
The farm levels got livelier this week. Cows no longer trot politely out of your way: roll into one fast enough and it tips over, kicks its legs, and gets back on its feet a few seconds later. Every level's houses are now round, with round doors and rounded roofs. There is a sheep-herding prototype too. Press the call button and nearby sheep come running to your ball, so you can steer them into a pen. It is still a rough idea, so expect it to change.
Other changes: the chargers can now rush in a cone instead of a single straight line, and every villager you help celebrates in their own way. On a phone, a small camera icon now shows where to drag to look around, and the menus are big enough to tap with a finger.
Under the hood
- Cow tipping (
cow_tip.gd): a ball above 3 m/s that hits a cow tips it onto its side. It stands again after 8 s. Slow touches do nothing. A "Cows tipped: N of M" line appears on the results screen. Orbs, bots and baselines are unchanged. - Sheep herding prototype: a fifth ability, the Call, pulls sheep within 18 m toward the ball for 6 s, with a 9 s cooldown.
sheep_pen.gdbuilds a fenced pen with a gate gap at run time. Sheep only cross the fence at the gate. Fast balls scare sheep further. - Round houses (
tools/levels/open_level.py,house()): a cylinder wall, a flat roof with a torus rim, and a round doorway facing the level's centre line. Two new MultiMesh kinds (disc and torus) carry the new shapes.cyl_facing()returns a proper rotation, because a mirrored one turns the disc inside out and it gets culled. - Charger cone mode:
cone_anglesets the wedge in degrees either side of aim. The default of 0 keeps the old straight lane. A charger that hits a wall is dazed. - Keepsakes:
keepsake.gdgives each owner a uniqueflourishand their own lines, written byadd_keepsakes.py. One example: the swim villager dives into the pond with a newsplashcue. - Fire Fount: a volcanic landscape with a lava plane under the level, three erupting volcanoes, and textured vine walls. One
Landscapecovers both halves of the instanced Furnace Run. - Orchard Halfpipe: the trough bodies join the
surface_stickgroup, so a fast ball rides the wall. The stick is opt-in, so it did nothing in any level until now. - Shadows: the sun's shadow pancake on Forward+ and Mobile was clamping long wall vertices into the floor. Fixing that and halving the shadow bias removed a stripe of lit floor at each wall's foot.
- Touch:
touch_controls.gddraws a camera glyph on the right half of the screen, withMOUSE_FILTER_IGNORE, so it never takes a button.ui_scale.gdadds aMenuZoomso menu buttons are fingertip-sized on touch. - Controls footer: the hint line follows the last-used device. A
HintLabel.SHOWNconstant hides the duplicate footer, so it can return with a one-line change.
Play this build: ./infra/fetch-build.sh windows