Commit Graph

201 Commits

Author SHA1 Message Date
Regisle
c1904dfcef Move build display stats to its own file (#8337)
* Move build display stats to its own file

* add comments

* fix merge issue
2024-10-20 20:54:06 +11:00
Paliak
795ad13d76 FEAT(warnings): add name of source causing requirements warning to warning message (#8335) 2024-10-20 20:46:05 +11:00
Paliak
118e0b402e Fix numerous fullDPS tooltip issues (#8247)
* FIX: numerous fullDPS issues

* FIX: output reuse and acceleration without existing env

* FIX: prevent calculation of fullDPS if it's not needed for item sorting
2024-09-20 14:28:01 +10:00
OriginalThing
717b698259 Fix 3.1 xp multiplier calc for levels 95-99 (#8283)
* fix 3.1 xp multiplier calc for levels 95-99

* corrected lvl 97 multplier
2024-09-20 14:23:15 +10:00
Regisle
356c29c5c2 Change controls to take a packed "rect" instead of x, y, width, height (#6873)
* change controls to take a packed "rect" instead of x, y, width, height

* Fix bad merge

* Add missing box notation

* fix merge issues and update new controls to use packed rect

* update export

* fix white space

* fix spelling mistake

* fix more merge issues

---------

Co-authored-by: Wires77 <Wires77@users.noreply.github.com>
2024-09-08 16:44:23 -05:00
LocalIdentity
5667a34b96 Fix Frost Blades of Katabasis DoT not scaling with Tinctures and Multistrike (#8281)
* Fix Frost Blades of Katabasis DoT not scaling with some mods

The DoT portion of the skill was not scaling with the `(70-100)% increased Elemental Damage with Melee Weapons` mod on Tinctures.
It was also not scaling with the repeat damage on Multistrike. I tested it in game and the repeat damage definitely applies to the DoT component.
The PR removes the skill hit tag from the DoT component so it doesn't incorrectly show hit damage and stats
It also removes crit chance from showing up unless a skill part has a hit component

* Fix DoT Multi mod not working correctly

---------

Co-authored-by: LocalIdentity <localidentity2@gmail.com>
2024-09-03 22:00:09 +10:00
nofate121
5776a22e58 Add ability to search in the spectre library (#8059)
* add search to spectre library

* move filtering into MinionListControl-lua

* adjust layout

* add ability to search spectre skills

* new layout and separate class for minion search control

* select search bar on open

---------

Co-authored-by: nofate121 <nofate121@abc.def>
2024-08-14 13:07:21 -05:00
Nighty
9c92a3cd3e Nicer check-empty-build popup (#8077) 2024-08-06 18:37:53 +10:00
Paliak
0f522febf3 FIX: full dps visual bug on gem dropdown (#8087) 2024-08-06 18:34:19 +10:00
Nighty
5aa468aa64 check for empty build file (#8074) 2024-08-02 17:01:34 -05:00
Wires77
170617876b Remove remote build list functionality pending redesign (#7995)
* Remove remote build list functionality pending redesign

* Fix spelling
2024-07-29 05:54:52 +10:00
Can Uysal
8bea7bd778 Add latest and trending builds list to the build list module (#7389)
* Add ascendancy assets.

* Add archives list control.

* Add archive list control to buildlist module.

* Make build list module responsive.

* ArchivesList: prevent missing image artwork for builds with no ascendancies.

* ArchivesList: prevent line and stats collapsing on some builds.

* ArchivesList: fix scrollbar content dimensions.

* ArchivesListControl: Display life or es depending on which is greater.

* ArchivesListControl: prevent stats overlapping on smaller screens.

* ArchivesListControl: resize button on screen size change.

* ArchivesListControl: implement word-break on main skill field.

* ArchivesListControl: hide author name from the build cards.

* rename ExtBuildListControl.

* Refactor class names.

* Add ExtBuildListProvider abstract class.

* Add PoBArchivesProvider class.

* Modify ExtBuildListControl to have a generic implementation.

* Highlight active tab, use white border.

* ExtBuildListControl: Add responsive behaviour to the tabs and dropdown.

* ExtBuildListControl: Fix scrollbar.

* Store import links in the xml.

* Build: Implement similar builds list.

* ExtBuildListControl: Prevent overflow on bottom side.

* Common: Add import build utility function.

* Remove unnecessary debug.

* Convert protocol handler URI's to import links on startup.

* Implement similarity check for all builds.

- Add Metadata section to build cards.

* Print proper error messages on build list.

* Add similar builds popup.

* Add class portrait assets.

* Use class portraits as fallback images.

* Remove unnecessary assets, fix templar portrait.

* Formatting changes

* ExtBuildListProvider: Fix indentation.

* Fix bugged font

* Further font fix

* Fix split string calculation with different fonts

* Button layout and text positions

* Fix spacing on builds page

* Fix Similar builds Popup on different window size

Fix from Peechey in discord

* Revert "Fix Similar builds Popup on different window size"

This reverts commit 257c4a59c8d64fe83188b0217c21e5e4a7b22a08.

* General popup resize code

* Add show public builds options to settings.

* Update latest-trending builds option name.

* Add help section and tooltip for similar builds.

* Use build names as a filename placeholder after importing.

* Add cells to the grid, fix horizontal line issue.

* Center version text.

* Improve responsiveness of builds list menu.

* Rearrange similar builds button after loadouts.

* Remove redundant function.

* Check if image asset exists, prevents Warden placeholder.

* Reduce code complexity.

* Fix savename using filepath as a placeholder.

* Fix indentation.

* Use buttoncontrol for import/preview button handling.

* Use a seperator function for repeated drawings.

- Autofill lines below portrait.

* Add some colors to stats.

* Add raider image as warden placeholder.

* Fix builds menu scroll issue.

- Content height was fine on similar builds
but See All button in buildlist was partially
hiding the import/preview buttons.

* Apply suggestions from code review.

Co-authored-by: Wires77 <Wires77@users.noreply.github.com>

* Remove unnecessary title padding.

* Fix buildlist and searchtext responsive issues

* Swap Trending and Latest tabs

---------

Co-authored-by: LocalIdentity <localidentity2@gmail.com>
Co-authored-by: Wires77 <Wires77@users.noreply.github.com>
2024-07-24 23:15:01 -05:00
Tomas Slusny
89dca9bae6 Explicitely check for 1 size sets for loadouts (#7846)
* Explicitely check for 1 size sets for loadouts

Instead of assigning 1 size sets to existing loadout links, just check for this when
the loadouts are being matched instead. Its more reliable and do not relies on
links to be filled (in case of name match sets for example).

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>

* Properly sync active loadout on active set change

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>

* Add info about single passive tree to loadout 1 set help section

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>

* Fix typo

---------

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
Co-authored-by: Wires77 <Wires77@users.noreply.github.com>
2024-07-24 22:23:20 -05:00
Tomas Slusny
c79544b413 Relax matching for loadout names and allow groups at any spot (#7847)
Fixes: #7835

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
2024-07-23 23:44:39 -05:00
Tomas Slusny
94035828f8 Use Default value for loadout with no set name match (#7793)
Closes #7790

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
2024-07-22 13:38:19 -05:00
Tomas Slusny
c5f395eb04 If there is only 1 set, assign it to all loadouts (#7781)
Common use case: you only want to use 1 config set for all loadouts, but putting
every loadout tag in the config name feels a bit silly. This makes the solution a bit more
robust and easier to use.

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
2024-07-22 08:32:37 -05:00
Regisle
c5e22acd53 Enemy dot skills (#6809)
* initial Implementation of enemy damage over time skill type

* add ability to export damage over time boss skill and export shaper beam

* add cortex degen

* fix net recovery

* add degen source

* fix crash

* add comprehensive net regen

* separate out block of code for local variables

* fix merge issue
2024-07-22 14:51:56 +10:00
Tomas Slusny
7529aceda2 Preselect current loadout based on currently selected tree (#7762)
Before this change the information about selected loadout in dropdown is
lost on closing and reopening build. With this change it tries to match
selected loadout with active tree.

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
2024-07-21 22:00:55 -05:00
Peechey
2f99b7d603 Add support for multiple configurations (#7212)
* add support for multiple configurations

* fix scrolling

* defaultIndex for boss preset and damageType dropdowns

* fix for custom mods built into modList

* clear configs before copying over changes for values that do not overlap between sets when changing activeSet

* add configSets to Loadouts
fix bug with Item/Skill/Config SetListControls
refactor functions in Loadout logic for identical code for item/skill/config
add SyncLoadouts to Delete in SetListControls and Convert functions in TreeTab
update help section

* add Sync to PassiveSpecListControl Delete

* add Sync to ConfigSet Rename

* Add unique formatting to options in dropdowns to avoid conflicting with user-created loadouts

* revert bugfix as it caused another bug

* typos

* remove duplicateCheck and recolor logic, fix duplicate scenario where sets have same name and same group

* typo

* refactor doubling up of setting values, use self.configSets[self.activeConfigSetId] everywhere possible

* fix for the "Default" loadout
update Help Section with colour formatting info
fix bug when reordering Tree Sets that are actively in loadouts

* Alter scrollbar height for new UI elements

* Sort loadouts by set name if it's there

* Sort loadouts by tree order + properly reset all dropdowns

---------

Co-authored-by: Wires77 <Wires77@users.noreply.github.com>
2024-07-21 17:06:09 -05:00
NL
cc5983f6e2 Add supports for Multi mine/trap throws (#7662)
* Added support for Minefield, Locus mine and Curtain Call

Including custom modifiers "Skills which throw Mines throw up to %d additional Mine" for additional mine throws

* Added "Throw an additional mine" mod

Elevated shaper helmet mod

* Added additional trap & adjusted cast rate based on number of mine/trap throws

- Multitrap support
- Chance to throw up to % additional traps/mines

* Supports Expendability node from medium cluster

* Fix breakdown incorrect number & trap+mine support throw count bug

* Adjust label & calcs display order

* Add trap-mine interaction

* Adjust extra mine/trap from specialMods to "generic"

---------

Co-authored-by: LocalIdentity <31035929+LocalIdentity@users.noreply.github.com>
2024-07-22 06:25:35 +10:00
Peechey
4d9e848bda add support for blocking allocated nodes during Militant Faith search (#7342) 2024-07-22 05:54:21 +10:00
Regisle
2270853867 EHP lucky and unlucky rework (#7730)
* Improve how we handle EHP Unlucky

* Add support for block lucky and unlucky

* improve tooltip of config option
2024-07-22 03:35:12 +10:00
Peechey
2288eb6614 Add support for linking sets through Loadouts (#7672)
* Initial Checkin for Loadouts feature

* Make the loadouts dropdown the same width as the spec dropdown

* Add help text and tooltip for Loadouts

* add to Subtractem's PR to allow sets to be used multiple times

* clean up

* clean up

* comments

* sync later in Build:init for New build after Active build

* comments

* Help section updated with Loadout identifiers

* add Help to dropdown, change text colour of duplicate loadouts in dropdown

* tighten regex for loadout identifiers, alphanumeric and comma only

---------

Co-authored-by: Subtractem <subtractemgaming@gmail.com>
2024-07-20 03:26:52 +10:00
Paliak
e2090edd8d Update bandit rewards and Fellshrine Reward (#7682)
* FIX: update bandit rewards and Fellshrine Reward

* FIX: The Way forward should count as Act 2
2024-07-15 06:10:06 +10:00
Paliak
adfaae6781 FIX: enemy level not updating in sync with player level when in auto (#7681)
level mode
2024-07-14 23:16:18 +10:00
Paliak
41ba38d925 Implement wisps support (#7532)
* FEAT: impl wisps support

* FIX: add display stat for summon wisps

* FIX: less damage mod not applying

* FIX: use mirage archer style calcs

Sacred wisps causes the Summon Sacred Wisps skill to be triggered when a
projectile spell is fired from a wand. This triggers 2 wisps which then
have an x percent to use the skill that was used to trigger them when
you use it. They likely do not care about whether you actually hit
something with the projectile or not. They're also likely not a trigger
which means they're not under the same tick rounding contrstains like
other triggers.

* TEST: add a test for Sacred Wisps

* TEST: fix test for sacred wisps

Sacred wisps support is two part so the SkillTriggerRate check will fail

* FIX: add stat maps to .txt skill files

* Separate stat display in sidebar

* Change flag to mirageArcher

---------

Co-authored-by: LocalIdentity <localidentity2@gmail.com>
2024-06-28 02:56:12 +10:00
pHiney
ea394b9b35 Split Player and Minion Info lines if they are too long (#7597)
* Split Minion Info line if it's too long

* Added Player infoMassage as well

* Remove forgotten comment

---------

Co-authored-by: Hiney <pHiney@users.noreply.github.com>
2024-06-27 20:12:00 +10:00
Paliak
8f20e3d850 Fix calc mode issues for triggers and mirages (#7458)
* FIX: Remove dead code. Fix calc mode issues.

* FIX: remove vestigial exclude list

* FIX: remove left over greoup table wipe
2024-03-27 02:05:51 -05:00
Paliak
5b13ec64e9 Minor improvements to DPS display for mirages (#7375) 2024-03-09 16:12:15 +11:00
Sida Wang
23a27d445d fix: save method to handle child stats correctly (#7334) 2024-02-01 15:34:08 +11:00
Peechey
e8674e2cce Show accuracy above hit chance when using Precise Technique (#6034)
* show accuracy in sidebar when using precise technique

* cleaner implementation

* more clean

* move position in sidebar

* add warning and change colour to negative if less than life

* better Precise Technique check
2024-01-05 05:22:28 +11:00
Paliak
73482fe542 Cap Doom Blast expiration mode and use charge based calcs for skills that ignore tick rate (#6720)
* FIX: cap expiration mode by cast rate

* FIX: use charge based calcs if ignoring tick rate

* FEAT: add a warning if vixen's gloves not equipped

* FEAT: implement hexblast replacement mode
2023-12-31 19:43:01 +11:00
Regisle
d87d9bcdda Count secondary ascendancy nodes used (#6958)
* add warning for too many secondary ascendancy points used

* remove hardcoded names
2023-12-10 19:20:18 -06:00
Wires77
3478750ae2 Add support for importing new ascendancies (#6956)
* Add support for importing new ascendancies

* Update to use official name

* Fix error when missing alternate ascendancy

* Update to proper format and fix bug

* Future-proof tree format

* Stop using hex codes accidentally

* Different method to set imported secondary class ids

* Don't loop through secondary ascendancies unless we need to
2023-12-10 19:18:17 -06:00
Sida Wang
446aa880df Fix socketed gems calculation and add socket limit warning (#6937)
* feat: add warning for too many gems in slot

* fix: exclude item provided skill groups from socket calc
2023-12-07 02:08:23 +11:00
MoonOverMira
98c508dbbf Fix spell suppression chance not displaying Lucky (#6931)
ab069e8f introduced support for enemies with Cannot be Suppressed, but
inadvertently broke the displayed suppress chance in the build sidebar.
Use EffectiveSpellSuppressionChance to fix that.

Fixes #6929.
2023-12-06 18:04:26 +11:00
Regisle
5fec8709c4 Support for alternate ascendancies (#6882)
* add basic support for Alternate Ascendancies

fix crash

* Fix Render

fix crash

* fix more crashes with converting trees

* Update PassiveSpec.lua

---------

Co-authored-by: LocalIdentity <31035929+LocalIdentity@users.noreply.github.com>
2023-12-04 19:34:37 +11:00
Paliak
f7f55c96ea Move mirage calcs to a new file (#6637)
* FIX: move mirage calcs to a new file

* FIX: exerts applying to skills used by mirages

* FIX:ignore source if SkillType.OtherThingUsesSkill

* TEST: test mirage archer + manaforged
2023-09-11 09:45:00 +10:00
Lancej
c943371111 Create acts table once to reduce OnFrame memory usage (#6631) 2023-09-10 06:38:20 +10:00
LocalIdentity
0476171f1b Display AoE values as metres (#6624)
Converts all output breakdowns of units to instead use metres
Adds support for the new mod parsings so they work correctly
I decided on creating variables that just convert the final value for the output to the calcs / sidebar so all the internal calculations still use units. I made sure that everything still used units so if we want to switch everything to metres it should be quite clear
Added support for the stat on Fireball that gains radius over range

Co-authored-by: LocalIdentity <localidentity2@gmail.com>
2023-09-09 10:50:38 +10:00
Paliak
9a7c51582c Fix Doom Blast rate calcs (#6568)
* FIX: misc fulldps issues

* FIX: cleanup dead code

* FIX: doom blast calcs

* FIX: spellcheck

* FIX: use curse cast rate in curse replacement mode

* FIX: apply min mod on source rate

* FIX: move Doom Blast source config to eff dps

* FIX: modify Doom Blast to better match spreadsheet

https://docs.google.com/spreadsheets/d/1J-yVLmDhKqKNE8QecsPnZgNR2TDGDm41f-1tdC_BxQA/edit#gid=1230763965

* FIX: make vixen's mode defualt

* FIX: move doom blast options to skill options

* Move to alphabetical order

---------

Co-authored-by: LocalIdentity <localidentity2@gmail.com>
2023-09-07 08:22:58 +10:00
Paliak
3c13555d49 FIX: main output crash (#6565) 2023-09-06 07:33:29 +10:00
Paliak
ce86875893 Fix mirage archer and manaforged interaction (#6521)
* FIX: triggered mirages interaction

* FIX: nil check addFlags
2023-08-28 21:25:51 +10:00
Paliak
c4a6ffbb4a FIX: Flamewood not being affected by totem mods (#6487)
Co-authored-by: LocalIdentity <31035929+LocalIdentity@users.noreply.github.com>
2023-08-25 18:58:13 +10:00
Paliak
67653ff8a9 FIX: trigger rework issues (#6486) 2023-08-25 18:33:26 +10:00
Paliak
dc7aeef20a Rework the way Triggers are calculated (#6468)
--- Implemented Enhancements ---
* Support for triggered skills has been reworked.
    * Calculations of effective triggered skills trigger rate should now be more accurate.
    * Improve cooldown breakpoint interactions with skills that add cast time.
    * Implemented all currently existing trigger skills that POB is capable of supporting. Including:
        * CWDT
        * Spell Slinger
        * Counter attack skills
        * Arcanist brand
        * Tawhoa's Chosen
        * Battlemage's Cry
* Implemented Trigger Bots.

--- User Interface ---
* Trigger related breakdowns should now be more descriptive.
* Improve breakdowns for skills that add cast time.
* Display Cast When damage taken threshold in the trigger rate section

--- Fixed Bugs ---
* Triggers should now correctly account for source rate modifiers such as crit chance and accuracy.
* Fixed inaccuracies caused by incorrect handling of skill cooldown during skill rotation simulation.
* Fixed a crash caused by an interaction between unleash and nested triggers.
* Fixed many self triggers counting as self cast.
* Fixed incorrect handling of gems supported by more than one trigger.
2023-08-25 02:47:04 +10:00
Regisle
b12b57529d Implement Corrupting Cry support (#6436)
* FEAT: impl Corrupting Cry support

* FIX: crash caused by incorrect capitalization

* FIX: add statMap and baseFlags to txt template

* FIX: spelling

* Revert "FEAT: impl Corrupting Cry support"

* FIX: reimplement using generic physDot

* FIX: copy paste issue

* FIX: cap corrupting blood staged.

Note that this config option also is affected by the one off bug in
config tab code.

* FIX: off by one in the config

* FIX: don't override skillData.durationSecondary

Overriding skillData.durationSecondary of exterted attacks may mess with
secondary effect of skills such as Dominating Blow

* FIX: CorruptingCry cfg stages not affecting exerts

* FIX: crash when hovering over more mult

* change dot type to corrupting blood to prevent dot from stacking

* Remove Attack dot addition + move config

* Fix removal of line

* Empty

---------

Co-authored-by: Paliak <91493239+Paliak@users.noreply.github.com>
Co-authored-by: LocalIdentity <localidentity2@gmail.com>
2023-08-23 23:27:54 +10:00
LocalIdentity
7ce91694c8 Fix lower channel time stat using red text (#6381)
* Fix lower channel time stat using red text

* Fix Channel time showing on calcs page for more skills than necessary

---------

Co-authored-by: LocalIdentity <localidentity2@gmail.com>
2023-08-19 00:41:26 +10:00
LocalIdentity
30c5f90691 Fix channel times showing for all skills with hit time override 2023-08-13 22:54:35 +10:00
LocalIdentity
10ca12bc5b Add proper support for DPS with Scourge Arrow, Divine Ire, Flameblast and Incinerate (#6245)
* Add proper support for DPS with Channeled skills that use stages

Channeling skills that used stages did not have their hit rate modified by the time it took to channel those stages
This PR adds `hitTimeMultiplier` values for Scourge Arrow, Divine Ire, Flameblast and Incinerate
Snipe is handled in it's own PR
This shows the channel time in the sidebar along with the correct hit rate for these skills
Adds boxes to the config page to set the number of nearby enemies for Divine Ire to calculate the correct charge rate

* Fix breakdowns

---------

Co-authored-by: LocalIdentity <localidentity2@gmail.com>
2023-08-13 17:05:50 +10:00