Widen centre drain gap; calm the music down
Gameplay (you should now be able to lose balls): - flipper length 170 -> 154, so the rest-position tips meet with a ~50px gap instead of ~18px - balls dropping down the middle now drain freely - keep the outlane guard posts so side drains stay fair (all drains now happen through the widened centre), and verify with autoplay: centre drains = 40, side = 0, ~10s average ball life for the bot Audio (was a harsh machine-gun): - completely rewrote both music loops: no more square waves or noise hats in the music; sparse triangle bass + soft melody with rests, at lower volume (play loop now ~47% audible windows, was a solid wall) - softened the wall-hit thud (frequent during rallies) and the charge ticks
This commit is contained in:
+5
-4
@@ -17,7 +17,7 @@ MAX_SPEED = 13.0 # speed cap (prevents tunneling; ~300px of rise)
|
||||
RESTITUTION = 0.42
|
||||
BALL_R = 7.0
|
||||
|
||||
FLIP_LEN = 170.0
|
||||
FLIP_LEN = 154.0
|
||||
FLIP_REST = math.radians(6.0) # tips slightly lowered toward center drain
|
||||
FLIP_UP = -math.radians(52.0) # fired position
|
||||
FLIP_PIVOT_L = (62.0, 338.0)
|
||||
@@ -36,10 +36,11 @@ BUMPERS = [
|
||||
SLING_KICK_L = (0.60, -0.80)
|
||||
SLING_KICK_R = (-0.60, -0.80)
|
||||
SLINGS = [
|
||||
# upper slingshots by the lower bumpers - kick toward table center
|
||||
# upper slingshots just below the two outer bumpers - kick toward centre
|
||||
dict(pos=(150.0, 282.0), r=11.0, kick=SLING_KICK_L),
|
||||
dict(pos=(330.0, 282.0), r=11.0, kick=SLING_KICK_R),
|
||||
# guard posts at the outlane mouths - protect the corners
|
||||
# guard posts at the outlane mouths: wall-huggers get bounced back into
|
||||
# play instead of silently draining - the centre gap is the real risk
|
||||
dict(pos=(44.0, 314.0), r=12.0, kick=(0.80, -0.60)),
|
||||
dict(pos=(436.0, 314.0), r=12.0, kick=(-0.80, -0.60)),
|
||||
]
|
||||
@@ -137,7 +138,7 @@ class Table:
|
||||
for b in BUMPERS]
|
||||
self.slings = [
|
||||
dict(x=s["pos"][0], y=s["pos"][1], r=s["r"], cool=0, flash=0,
|
||||
kick=s["kick"], guard=(i >= 2))
|
||||
kick=s["kick"])
|
||||
for i, s in enumerate(SLINGS)]
|
||||
self.stars = [dict(x=x, y=y, r=13.0, lit=False, cool=0, pulse=0)
|
||||
for x, y in STARS]
|
||||
|
||||
Reference in New Issue
Block a user