The whites take a wash, the friend brings their own colours, and the menu shows the man
Three things off the back of the picker. THE LIVE PLAYER on the setup screen is the real sprite through the real tint, not a mock-up of the pick — so the menu cannot promise a colour the court will not keep. It redraws on every tap of a tour, a kit or a skin. THE WOMEN'S TOUR IS NO LONGER SAT OUT. Her set is drawn head to toe in whites, so there was no hue to rotate — the answer is not a dye but a WASH: the pick laid over her whites at a low saturation with the lightness kept, which is how you dye a white kit in life and gives rose, powder blue, mint, lilac. Her hair and skin fall out of it on lightness alone, which is exactly what a dye could not manage. THE FRIEND ACROSS THE NET now wears what they picked on their own phone. Their look crosses on pairing, and since the opponent art is red rather than blue the kit rides its own hue arc — safe there for the one reason it would not be on the player's own sheets: the opponent sprites carry no drawn blood. An older build simply never sends it and the opponent draws as before; the match still plays. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
1daa3e9d6a
commit
b5838b2b24
6 files changed
+194
-64
No files matched your search
+31
-10
@@ -747,15 +747,21 @@ export const CUP_ROUNDS = [
|
||||
];
|
||||
|
||||
export const TOURS = [
|
||||
// `kit` — whether this tour's art HAS a kit to dye. The men's set is drawn in blue shorts, so it
|
||||
// does. The women's set is drawn in WHITES: her skirt is (240,248,248)/(208,216,224), a cool-cast
|
||||
// white, and the only genuinely saturated blue anywhere on her sheets is HER HAIR — same hue as
|
||||
// his shorts (210-240) and overlapping in lightness, so no hue or lightness rule can tell the two
|
||||
// apart. A kit tint on her set therefore dyes her hair and nothing else, which is why she is
|
||||
// flagged out of it rather than fenced around. THE FIX IS ART, NOT CODE: give her set a coloured
|
||||
// kit through the sprite pipeline and this becomes `kit: true` with no other change.
|
||||
{ id: 'men', name: "MEN'S SINGLES", tile: 'tour_m', sfx: null, kit: true },
|
||||
{ id: 'women', name: "WOMEN'S SINGLES", tile: 'tour_w', sfx: '_f', kit: false, dx: 0.46, apex: 0.78, tossDx: -0.59,
|
||||
// `kit` — HOW this tour's art takes a colour, because the two sets are dressed differently and the
|
||||
// same operation cannot serve both.
|
||||
//
|
||||
// 'dye' the men. Drawn in blue shorts, so the kit pick rotates that hue and keeps the shading.
|
||||
//
|
||||
// 'wash' the women. Drawn head to toe in WHITES — her skirt is (240,248,248)/(208,216,224), a
|
||||
// cool-cast white — so there is no hue to rotate: rotating a near-neutral does nothing,
|
||||
// and the only genuinely saturated blue on her sheets is HER HAIR, at the same hue AND
|
||||
// lightness as his shorts. So her whites are TINTED INSTEAD: the pick's hue laid over
|
||||
// them at a low saturation, lightness kept, which is how you dye a white kit in real
|
||||
// life and gives rose / powder blue / mint / lilac rather than a solid block of colour.
|
||||
// Her hair and skin fall out of it on lightness alone, which is why this is safe where
|
||||
// a dye was not.
|
||||
{ id: 'men', name: "MEN'S SINGLES", tile: 'tour_m', sfx: null, kit: 'dye' },
|
||||
{ id: 'women', name: "WOMEN'S SINGLES", tile: 'tour_w', sfx: '_f', kit: 'wash', dx: 0.46, apex: 0.78, tossDx: -0.59,
|
||||
oDx: 0.48, oApex: 0.73 },
|
||||
];
|
||||
|
||||
@@ -814,7 +820,22 @@ export const SKINS = [
|
||||
// them cleanly and only just — blood is a spike at 0 deg, skin peaks at 16-24 — so the arc starts
|
||||
// at 10. What that leaves untinted on the death frames is the reddest skin, which is the
|
||||
// blood-soaked skin, and it reads as gore rather than as a miss.
|
||||
export const TINT = { kit: [150, 300], skin: [10, 45], satKit: 0.15, satSkin: 0.28, lumSkin: 0.80 };
|
||||
//
|
||||
// THE OPPONENT wears red, not blue — (184,8,8) for him, (184,48,48) for her — so the friend across
|
||||
// the net in a netplay match needs his own kit arc, `oKit`, sitting around 0 deg. It is safe there
|
||||
// for the one reason it would not be on the player's sheets: the opponent art carries no DRAWN
|
||||
// blood (his damage is all live particles), so nothing in that arc is blood.
|
||||
//
|
||||
// THE WHITES, for a 'wash' tour. Bright and barely saturated, which is exactly what her skin is
|
||||
// NOT — hers reaches lum 0.77 at saturation 0.79, so the pair of limits keeps them apart with room
|
||||
// to spare — and what her hair is not either, at lum 0.25. washS/washL are the dye strength: the
|
||||
// pick's saturation scaled down to a pastel, and a slight darkening without which a tint laid on a
|
||||
// 0.96-lightness white is invisible.
|
||||
export const TINT = {
|
||||
kit: [150, 300], oKit: [345, 15], skin: [10, 45],
|
||||
satKit: 0.15, satSkin: 0.28, lumSkin: 0.80,
|
||||
whiteLum: 0.72, whiteSat: 0.60, washS: 0.30, washL: 0.93,
|
||||
};
|
||||
|
||||
// netW was the singles-stick width (10.06) while the court is drawn to the DOUBLES lines, so the
|
||||
// net stopped 0.46 m short of each sideline and visibly failed to meet the court edge. The posts
|
||||
|
||||
Reference in new issue
Block a user