Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add supports for Multi mine/trap throws #7662

Merged
merged 10 commits into from
Jul 21, 2024

Conversation

NL908
Copy link
Contributor

@NL908 NL908 commented Jul 4, 2024

Description of the problem being solved:

Add support for various sources of additional mine and additional trap throws. This includes:

Support Gems:

  • Additional mine throws support gems with "Supported skills throws up to # additional mines", this includes: Minefield, Locus Mine
  • Additional trap throws support gems with "Supported skills throws up to # additional traps", this includes: Cluster Traps, Multiple Traps.
  • Swift Assembly

Mods:

  • Skills which throw traps throw up to # additional trap(s)
  • Skills which throw mines throw up to # additional mine(s)
  • Throw an additional trap
  • Throw an additional mine
  • #% chance to throw up to # additional trap(s)
  • #% chance to throw up to # additional mine(s)
  • #% chance to throw up to # additional trap(s) or mine(s) (Expendability notable)
  • Curtain Call mods

When throwing additional mines, MineLayingSpeed is reduced by 10% for each additional mine: output.MineLayingSpeed = output.MineLayingSpeed / (1 + (mineThrowCount - 1) * 0.1). I have tested this by capturing in-game footage, and the difference between the calculation and the captured footage is less than one frame. Please double-check and verify that the calculation is correct.

For the "damage multiplier" of having multiple trap/mine throws, the current implementation overrides the speed with skillData.timeOverride = output.MineLayingTime / output.MineThrowCount for mines and skillData.timeOverride = output.TrapThrowingTime / output.TrapThrowCount for traps.
Note: Mine Detonation speed and Trap Triggered speed are not implemented and are not calculated for dps.

Additionally, I have added a calculation for trap-mine skill setups when having multiple traps and multiple mines per throw with skillData.timeOverride = output.MineLayingTime / output.MineThrowCount / output.TrapThrowCount. This applies to setups such as Fire Trap -- High-Impact Mine -- Swift Assembly.

Steps taken to verify a working solution:

  • Ctr+F5 to rebuild ModCache.

Link to a build that showcases this PR:

https://pobb.in/3PTJj4xjYx_K

Before screenshot:

Fire Trap Mine Before
Fire Trap Mine Calculation Before
Icicle Before

After screenshot:

Fire Trap Mine After
Fire Trap Mine Calculation After
Icicle After

@NL908 NL908 marked this pull request as ready for review July 4, 2024 21:56
@NL908 NL908 marked this pull request as draft July 4, 2024 21:57
@Paliak Paliak added the enhancement New feature, calculation, or mod label Jul 5, 2024
@NL908 NL908 marked this pull request as ready for review July 6, 2024 15:16
@LocalIdentity LocalIdentity merged commit cc5983f into PathOfBuildingCommunity:dev Jul 21, 2024
1 of 2 checks passed
@NL908 NL908 deleted the ExtraMines branch August 8, 2024 03:21
@NL908 NL908 restored the ExtraMines branch August 8, 2024 03:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature, calculation, or mod
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants