Tomatoes, match tabs, shared pings, and a round of fixes
- On the results, everyone but the winner splats tomatoes where they click (bots aim at the winner), with a new splat sound. - During a match the menu has the item tabs (choosing when the countdown allows, and otherwise levelling the sandbox's levels for when you're back), Play (the game's rules) and Settings. - Pings are shared through the server (protocol 4), so other players' connection bars show over their heads and on their windows. - PvP comes into lobbies with your profile and is saved. - The choice menu opens by itself however the countdown began. - Knocked-out fighters keep their buttons current, so Ready on the results toggles once per press. - The weapon wheel wraps both ways. Readying with empty slots plays the equip sound for your own fighter. - Shock Absorber: up to 50% less weapon movement and 33% less knockback. Only the catalog previews the next level. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
cdb0845da2
commit
9a41474069
29 files changed
+295
-79
No files matched your search
+7
-7
@@ -1190,9 +1190,9 @@ static void effects_preview_get(Game& game, const char* now, const char* next, c
|
||||
SDL_strlcpy(text, result.c_str(), size);
|
||||
}
|
||||
|
||||
// Name, numbers at a level and description of a weapon or trinket. Trinkets say how many copies are equipped, and
|
||||
// when they stack.
|
||||
Tooltip Ui::tooltip_build(Game& game, bool isTrinket, int item, int level)
|
||||
// Name, numbers at a level and description of a weapon or trinket, previewing the next level's where asked (the
|
||||
// catalog). Trinkets say how many copies are equipped, and when they stack.
|
||||
Tooltip Ui::tooltip_build(Game& game, bool isTrinket, int item, int level, bool isPreview)
|
||||
{
|
||||
Tooltip tooltip;
|
||||
tooltip.isTrinket = isTrinket;
|
||||
@@ -1214,8 +1214,8 @@ Tooltip Ui::tooltip_build(Game& game, bool isTrinket, int item, int level)
|
||||
else
|
||||
SDL_strlcpy(equipped, copies > 0 ? "Equipped" : "Not Equipped", sizeof(equipped));
|
||||
tooltip.name = def.name;
|
||||
// In the sandbox, the effects show what the next level changes after an arrow, as weapons' stats do.
|
||||
bool isPreview = game.sim.match.state == MATCH_PRACTICE && level < LEVEL_COUNT - 1;
|
||||
// Previewed (in the catalog), the effects show what the next level changes after an arrow, as stats do.
|
||||
isPreview &= level < LEVEL_COUNT - 1;
|
||||
char effects[TOOLTIP_LENGTH];
|
||||
if (isPreview)
|
||||
effects_preview_get(game, def.effects[level], def.effects[level + 1], effects, sizeof(effects));
|
||||
@@ -1234,8 +1234,8 @@ Tooltip Ui::tooltip_build(Game& game, bool isTrinket, int item, int level)
|
||||
|
||||
const WeaponDef& def = WEAPON_DEFS[item];
|
||||
tooltip.name = def.name;
|
||||
// In the sandbox, values that change at the next level show it after an arrow.
|
||||
bool isPreview = game.sim.match.state == MATCH_PRACTICE && level < LEVEL_COUNT - 1;
|
||||
// Previewed (in the catalog), values that change at the next level show it after an arrow.
|
||||
isPreview &= level < LEVEL_COUNT - 1;
|
||||
SDL_snprintf(tooltip.stats, sizeof(tooltip.stats), isPreview ? "(Level %d → Level %d)" : "(Level %d)", level + 1,
|
||||
level + 2);
|
||||
stats_table_build(fighter, item, level, isPreview, tooltip);
|
||||
|
||||
Reference in new issue
Block a user