# Quidditch stands define __quidditch_stands = { "weather": "sun_high", "rain": False, "puddles": False, "crowd": (), "crowd_react": (None, None, None), "spotlight": False, "hole": False, "tree_fire": False } default quidditch_stands = __quidditch_stands.copy() # Crowd density presets define crowd_few = ("low_1") define crowd_mid = ("low_1", "low_2", "tower_1") define crowd_full = ("low_1", "low_2", "low_3", "low_4", "tower_1", "tower_2") image quidditch_stands rain_heavy: "images/rooms/quidditch_stands/rain/heavy_0.webp" pause 0.125 "images/rooms/quidditch_stands/rain/heavy_1.webp" pause 0.125 "images/rooms/quidditch_stands/rain/heavy_2.webp" pause 0.125 repeat image quidditch_stands rain_heavy_surface_top: "images/rooms/quidditch_stands/rain/heavysurf_top_0.webp" pause 0.125 "images/rooms/quidditch_stands/rain/heavysurf_top_1.webp" pause 0.125 "images/rooms/quidditch_stands/rain/heavysurf_top_2.webp" pause 0.125 repeat image quidditch_stands rain_heavy_surface: "images/rooms/quidditch_stands/rain/heavysurf_0.webp" pause 0.125 "images/rooms/quidditch_stands/rain/heavysurf_1.webp" pause 0.125 "images/rooms/quidditch_stands/rain/heavysurf_2.webp" pause 0.125 repeat image crowd_bj: "images/rooms/quidditch_stands/crowd_bj0.webp" pause 0.5 "images/rooms/quidditch_stands/crowd_bj1.webp" pause 0.5 repeat label quidditch_stands(hidden=False, reset=False, **kwargs): # Update and show the area. # Pass `hidden=True` to update only, `reset=True` to reset the area before applying arguments. if reset: $ quidditch_stands = __quidditch_stands | kwargs else: $ quidditch_stands.update(kwargs) if not hidden: show screen quidditch_stands_back(**quidditch_stands) show screen quidditch_stands_mid(**quidditch_stands) show screen quidditch_stands_front(**quidditch_stands) return screen quidditch_stands_back(weather, rain=False, crowd=(), crowd_bj=False, crowd_react=(None, None, None), tree_fire=False, puddles=False, **kwargs): zorder 0 add f"images/rooms/quidditch_stands/bg_{weather}.webp" zoom 0.5 if tree_fire: add "quid_stands_fire" pos (870, -15) for c in crowd: add f"images/rooms/quidditch_stands/crowd_{c}.webp" zoom 0.5 if crowd_bj: add "crowd_bj" zoom 0.5 if rain: add "quidditch_stands rain_heavy_surface" zoom 0.5 add crowd_react[0] pos (570, 140) add crowd_react[1] pos (720, 90) add crowd_react[2] pos (960, 60) #TODO Add rain/puddle graphics screen quidditch_stands_mid(weather, **kwargs): zorder 8 add f"images/rooms/quidditch_stands/podium_{weather}.webp" zoom 0.5 screen quidditch_stands_front(weather, spotlight=False, hole=False, rain=False, **kwargs): zorder 8 add f"images/rooms/quidditch_stands/fg_{weather}.webp" zoom 0.5 if hole: add "images/rooms/quidditch_stands/hole.webp" zoom 0.5 if spotlight: add "images/rooms/quidditch_stands/spotlight.webp" zoom 0.5 if rain: add "quidditch_stands rain_heavy_surface_top" zoom 0.5 if rain: add "quidditch_stands rain_heavy" zoom 0.5 #TODO Align bludger movement to new tower design screen bludger_flying(start, end, t=1.0): zorder 4 tag bludger add "images/rooms/quidditch_stands/bludger.webp": at transform: anchor (0.5, 0.5) align (0.5, 0.5) pos start ease t xpos end[0] ypos end[1] image quid_stands_fire: zoom 0.5 "images/rooms/quidditch_stands/fire/0.webp" with d3 pause 0.3 "images/rooms/quidditch_stands/fire/1.webp" with d3 pause 0.3 repeat label test_stands: call ctc call quidditch_stands(hole=False) pause 1.5 call quidditch_stands(weather="sun_low") pause 1.5 call quidditch_stands(crowd=["low_1"]) pause 0.5 call quidditch_stands(crowd=["low_1", "low_2"]) pause 0.5 call quidditch_stands(crowd=["low_1", "low_2", "low_3"]) pause 0.5 call quidditch_stands(weather="sun_high", crowd=["low_1", "low_2", "low_3", "low_4"]) pause 0.5 call quidditch_stands(crowd=["low_1", "low_2", "low_3", "low_4", "tower_2"]) pause 0.5 call quidditch_stands(crowd=["low_1", "low_2", "low_3", "low_4", "tower_1", "tower_2"]) pause 0.5 call quidditch_stands(crowd=["low_1", "low_2", "low_3", "low_4", "tower_1", "tower_2"]) pause 1.5 call quidditch_stands(spotlight=True) pause 1.5 call quidditch_stands(spotlight=False) pause 1.5 call quidditch_stands(hole=True) pause 1 call quidditch_stands(weather="overcast", crowd_bj=True) pause 1 call quidditch_stands(reset=True, hidden=True) jump test_stands