Fix flying items freeze/slow display#617
Conversation
…nstead of 2x countdown speed
Reviewer's guide (collapsed on small PRs)Reviewer's GuideAdjusts how Slow and Freeze status effects interact with flying items so that their duration is halved at application time instead of being compensated by faster countdown, simplifying timing logic and fixing inconsistent visual behavior. Class diagram for Item status effect duration handlingclassDiagram
class Item {
bool flying
number slowTimeRemaining
number freezeTimeRemaining
bool isSlowed
bool isFrozen
bool isDestroyed
string enchant
number hasteTimeRemaining
HTMLElement element
HTMLElement freezeElement
Board board
applySlow(duration)
applyFreeze(duration, source)
updateBattle(timeDiff)
}
class Board {
bool hasSlowedItem
bool hasFrozenItem
}
Item --> Board : references
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Hey - I've left some high level feedback:
- The flying-item duration scaling for Slow and Freeze is now duplicated in both
applySlowandapplyFreeze; consider extracting a small helper (e.g.scaleDurationForFlying(duration)) to make future changes to this rule less error-prone and easier to keep in sync. - In
updateBattle,freezeTimeRemainingcan now go negative before being checked; for consistency withslowTimeRemainingand to avoid subtle time-underflow issues, consider explicitly clampingfreezeTimeRemainingto 0 when it passes below zero.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- The flying-item duration scaling for Slow and Freeze is now duplicated in both `applySlow` and `applyFreeze`; consider extracting a small helper (e.g. `scaleDurationForFlying(duration)`) to make future changes to this rule less error-prone and easier to keep in sync.
- In `updateBattle`, `freezeTimeRemaining` can now go negative before being checked; for consistency with `slowTimeRemaining` and to avoid subtle time-underflow issues, consider explicitly clamping `freezeTimeRemaining` to 0 when it passes below zero.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
|
I'm not sure about this - in game, if a slow for 2s is applied while item is flying at time 1s, but it stops flying at 1.1s, does the slow really expire at time 2s? Or is the slow time reduced only while it's flying so, since it was flying for .1s, .2s of the 2s slow would be consumed during that time? |
|
You're questioning this because of how inconsistent the text is in the
game. Sometimes, you see:
1. "While an item is Flying, Slow/Freeze effects applied to it have their
duration halved."
However, in some tooltips, you might find:
2. "Items that are Flying reduce the duration of Slow/Freeze."
As you can see, the two sentences don't actually describe the same thing,
even though the intention is (roughly) the same. One happens upon
application, the other happens as a resulting duration. Maddening. What I
CAN do, is confirm that the game works in line with the wording for (1),
not (2). You can see this for especially long Freeze times in-game, where
flying items will SHOW shorter time frames (1.5s instead of 3). It doesn't
SAY 3 and count faster, it just blanket starts at 1.5 if the item is
flying. You also see this because it strictly DOESN'T behave like item 2 --
example, if Freeze is applied for 3 seconds and then 0.5 seconds in, that
item BECOMES FLYING, the count-down does not happen any faster -- it's
still frozen for all 3 seconds. Nothing is retroactive here, and the
countdown ticker doesn't behave any differently.
Patch notes are explicit that reduction is about the duration of the
APPLIED effects - Flying reduces APPLIED durations by half. Even if an item
gains/loses flying during the duration, none of the duration is in any way
affected or re-calculated. Tooltips are a bit of a hassle in this game due
to inconsistency.
…On Wed, Jan 7, 2026 at 12:39 AM Seth Caldwell ***@***.***> wrote:
*oceanseth* left a comment (oceanseth/BazaarPlanner#617)
<#617 (comment)>
I'm not sure about this - in game, if a slow for 2s is applied while item
is flying at time 1s, but it stops flying at 1.1s, does the slow really
expire at time 2s? Or is the slow time reduced only while it's flying so,
since it was flying for .1s, .2s of the 2s slow would be consumed during
that time?
—
Reply to this email directly, view it on GitHub
<#617 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHDQZJDGB7QEKK5UF4DKKLT4FSL25AVCNFSM6AAAAACQ42M3NKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTOMJXGM4TKMJQGA>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
|
Thank you very much for the details and contributions. I'll test in game a bit to be sure before approving this in. combined with the other admirals pr I want to make sure it's working as it does in game. Sorry for taking forever to get around to these =] |
|
I guess I expect them to move to the second implementation eventually, and that their engineers just were either too lazy or unskilled to get it done in time for the patch. I'll circle back to this in another month or two, if they haven't fixed it, will merge it in. |
Summary by Sourcery
Adjust slow and freeze status effects so flying items experience them for reduced duration without affecting internal timers inconsistently.
Bug Fixes:
Enhancements: