The button leaves the header bar for the world, centered on the columns the next purchase unlocks and panning with them until it leaves the view. Those columns now take a lighter tint than the locked ground behind them, so the boundary between the two says how far one purchase reaches. Nothing in the code reported a scroll: the camera knew it had moved and told only the hover. A ViewScrolledEvent says it now, which is what a widget keeping a place in the world rather than on the screen needs. The panels want none of it -- they are placed against the screen and stay put as the world moves under them -- so the button is placed after their pass and never joins the rectangles they step around. Its face is two lines, "Expand" over the cost. That makes the cost a display of its own, so it carries the building-block tooltip the way every other item value does, on hover alone since the click buys the expansion. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ne3mejABZoLWKLh8fgpM3x
16 lines
602 B
C++
16 lines
602 B
C++
#ifndef EXPANSION_COST_CHANGED_EVENT_H
|
|
#define EXPANSION_COST_CHANGED_EVENT_H
|
|
|
|
#include "Event.h"
|
|
|
|
// Fired when the current asteroid-expansion cost changes (REQ-EXP-COST): once at
|
|
// startup and again after each expansion is purchased. Carries no payload — the
|
|
// expansion button re-reads Simulation::getCurrentExpansionCost() to update its cost
|
|
// line and enabled state, and moves onto the next stretch of locked ground, the
|
|
// buildable edge having shifted with the purchase (REQ-UI-EXPAND-BUTTON).
|
|
class ExpansionCostChangedEvent : public Event
|
|
{
|
|
};
|
|
|
|
#endif // EXPANSION_COST_CHANGED_EVENT_H
|