Table and Summary
More detailed stats of wings. Initially sorted in order of Item ID, but can be sorted by each stat. Calamity's changes to vanilla are marked in red.
- Time: Flight time in frames. Divide by 60 to get the unit in seconds.
- Speed: Run velocity.
- Acc: Run acceleration multiplier.
- Hover: Whether or not both of the above values get replaced by HVStat when hovering.
- Fall: Increased acceleration while falling. The higher it is, the faster the wings fly when picking up speed from falling.
- Rise: Increased acceleration while flying under a specific velocity determined by a product of RMax and the player's jump speed.
- TMax: Hardcapped velocity based on the product of this value and the player's jump speed.
- CAsc: Base vertical acceleration.
Additional Details
Wings air logic applies while the player has a non-zero vertical velocity and is ungrappled, unmounted, not tongued (Wall of Flesh), and not in merfolk form (Neptune's Shell). This logic is required for Speed and Acc to have any effect. Wing movement occurs when the player presses jump or hovers while flight time is still remaining, regardless of wings air logic. During wing movement, flight time is depleted and all stats from VerticalWingSpeeds take place.
Time (int flyTime
) represents the base flight time in frames. Default value is 100. This value is then directly put into player stats to be altered. Note that all vanilla flight time boosts are multiplicative of each other, while all Calamity flight time boosts are additive of each other and directly multiplying in its final step.
Speed (float flySpeedOverride
) overrides the player's horizontal velocity. Default value is -1. Note that this process occurs after base stats and UpdateEquips, but before multiplicative boosts such as Dunerider Boots sand boost and Magiluminescence. These values will be overridden even if the speed values of the wings is less:
Acc (float accelerationMultiplier
) directly multiplies the player's horizontal acceleration, which is 0.08 at base. Default value is 1. This multiplicatively stacks with other acceleration multipliers.
Hover (bool HasDownHoverStats
) determines whether or not both of the above stats get overridden while hovering. Default value is false.
HVStat (float DownHoverSpeedOverride
/ float DownHoverAccelerationMult
) are two values which override the Speed and Acc stats respectively during a hover, provided the Hover bool is true. These values have the same default values as the original stat (-1 and 1 respectively).
Fall (float ascentWhenFalling
) is subtracted from the player's vertical velocity while it is above 0. Default value is 0.5. In comparison, the default gravity is 0.4. Under the default conditions, pressing ↷ Jump while the player is falling initially causes the player to accelerate by Fall + Rise + CAsc = 0.5 + 0.1 + 0.1 = 0.7 pixel per squared frame.
Rise (float ascentWhenRising
) is subtracted from the player's vertical velocity while it above a certain threshold which is normally a negative number (see RMax for details). As such, Rise will always be accounted for if Fall is. Default value is 0.1.
RMax (float maxCanAscendMultiplier
) determines the point in which the player stops gaining acceleration from Rise. The exact threshold is equal to the player's jump speed multiplied by the negative of this value. Default value is 0.5. The player's default jump speed is 5.01. Thus, under the default conditions, the player stops gaining additional acceleration at -2.505 pixel per frame (12.8 mph).
TMax (float maxAscentMultiplier
) determines the point in which the player stops accelerating entirely. The exact threshold is equal to the player's jump speed multiplied by the negative of this value. Default value is 1.5. The player's default jump speed is 5.01. Thus, under the default conditions, the player's top wing speed is at -7.515 pixel per frame (38.4 mph).
CAsc (float constantAscend
) is always subtracted from the player's vertical velocity, until it gets capped by the threshold from TMax. Default value is 0.1.