Grappling hook magic effects: Swift Reel and Long Line - #32
Merged
MidnightsFX merged 1 commit intoOct 2, 2026
Merged
Conversation
…ook from damage effects
Author
Author
grapple.-.Trim.again.mp4 |
Author
|
Other notes: Exploding shot looked really cool but of course did no damage. A new effect that applies knockback or stagger in an AOE around where the grapple lands might be doable too. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Adds two magic effects that roll only on the 1.0 Grappling Hook, and stops the hook rolling damage effects it has no use for.
Why
The hook is an
ItemType.Bow(classifiedBows), so it inherited the bow effect pool: 26 rollable effects, and about 80% of the roll weight went to damage effects or effects that do nothing on it (ModifyFireRate, AmmoConservation). TripleBowShot was actively broken — each of the three grapple points cancels the one before it.New effects
ModifyGrapplePullSpeedModifyGrappleFlightTimeBoth are gated with
AllowedItemNames: ["$item_graplinghook"](the game's own spelling), weight 10.Swift Reel is capped at +75% (~35 m/s) so a physics step can't carry the player past the 1 m arrival window.
Long Line is named for flight time rather than range on purpose: gravity acts for the whole flight, so +100% flight time is +100% reach on a level shot but only about +71% straight up.
Supporting changes
GrapplingPointsnaps the line once it is longer thanm_maxLength(60 m), so the rope now scales with Long Line and the existing Projectile Speed effect. Without it, a long shot breaks the moment it attaches.Attack.ProjectileAttackTriggered, since that method rewritesm_blockReloadafter the projectile is set up.$item_graplinghookadded toExcludedItemNameson 23 effects in each template: the Add*Damage family, ModifyDamage / ModifyPhysicalDamage / ModifyDamageLowHealth, both stagger effects, LifeSteal, LifeStealLowHealth, EitrLeech, Executioner, Slow, ChainLightning, ExplosiveArrows, TripleBowShot, ModifyFireRate and AmmoConservation. What remains on the hook is ModifyProjectileSpeed, ModifyDurability, ReduceWeight, Weightless, QuickDraw and Indestructible, plus the two new effects.English strings are added; other languages fall back until translated.
Known vanilla issue, not changed here
GrapplingPoint.Updatestops the pull once it has counted 0.5 s of frames where the line did not get shorter, and never resets that count during a pull. Above 50 FPS many frames have no physics step, so the distance reads unchanged and the count builds up even at full speed — pulls longer than roughly 20 m can drop into hanging partway. Long Line makes long pulls more common, so this shows up more with it, but it happens on unmodified hooks too.Testing
In-game on a single-player profile:
mieffectand confirmed on long and short pulls.