|
All Jobs Damage Simulator and Gear Sets
By Dazusu 2023-07-01 21:34:25
A small feature request (convenience tool, really), a button that will copy to clipboard the current gear set in GearSwap/json format:
Code {
main="item name",
sub="item name",
...
}
Aside from that - this tool is amazing and I've had a lot of fun with it so far. Thanks for putting it together (and maintaining it!)
[+]
By Izanami 2023-07-01 23:49:10
A small feature request (convenience tool, really), a button that will copy to clipboard the current gear set in GearSwap/json format
I've actually already added a basic version of this in the updated GUI since it was requested a while ago through PMs. I'm not sure how to make it go directly to clipboard, but it does print to the terminal, which can then be copied manually. Adding auto-copy-to-clipboard was only 2 extra lines and appears to be working already. This is much better than spamming to the terminal and manually copying the output. Thanks for suggesting the clipboard idea.
The current version does not print augments yet. This is a problem for duplicate items you have in-game with multiple augment paths (such as ambuscade capes). However, gearswap should have no issue finding the correct augmented item to equip if you only have one copy (such as Odyssey equipment).
As far as I can tell, everything directly related to the new GUI code is working properly, but I keep finding small issues with how its linked to the main code (such as a checkbox not applying under specific conditions) so I'm hesitant to push the update now. I'll probably release a separate "beta" repository for this version soon and maintain both versions of the GUI until I'm comfortable with the updated one.
サーバ: Asura
Game: FFXI
Posts: 160
By Asura.Bynebill 2023-07-03 00:47:34
Any plans to add berserk to warrior? considering it's pretty much fulltime and such an impactful buff.
By Izanami 2023-07-03 19:20:56
Any plans to add berserk to warrior? considering it's pretty much fulltime and such an impactful buff. I have no plans to add berserk to the old code, but it is already part of the new code, along with Aggressor, Warcry, Blood Rage, and many JAs for other jobs. See below.
( Updated GUI beta version)
My most recent replies in this thread have all been "this is in the new GUI", which isn't helpful if that new GUI isn't available. So I've decided to release the current version in a "beta" repository until I'm confident that the updated code has very few common bugs remaining. The GUI is still missing a few simple features, such as plotting damage distributions (which was actually the whole reason I started this project), but the most-used features are included and functioning (as far as I can tell, but I haven't tested every possible scenario). You will certainly run into bugs using this beta code.
I've rewritten/cleaned the main code to treat the player stats as a proper class instance. It is now much easier to read, especially the new create_player.py file, which was the old set_stats.py file. All of the player's stats (after gear and buffs, but ignoring things like attack bonuses/penalties from WSs) are stored in the the "player.stats" dictionary, and the equipped gear in the "player.gearset" dictionary. The damage calculation algorithms should be unchanged, but damage output between the two versions of the code might be slightly different due to rounding/truncation differences. If you see any large differences between the two, then it's probably a typo and should be fixed.
The updated code beta repository can be found in this new GitHub repository. You can go to the Actions page to download the GitHub generated executable and a zipped folder containing only the necessary files for running the code.
I've made the following adjustments/additions to the code. The following list is likely not complete, but should cover the large changes.
Added user-defined master levels, which changes your sub job level throughout the code.
- For now, this only unlocks sub job traits and increases STR/DEX/VIT/AGI/INT/MND/CHR and combat skills by 1 per ML.
- Sub job stats are assumed for Lv53 sub jobs no matter what ML you choose. The loss of true sub job bonus parameters should be small compared to the benefit of enhanced traits and main job stats.
Added Occult Acumen (TP return from spellcasting based on the spell's base MP cost).
- Occult Acumen has been added to the following existing gear: DRK Empy+3 feet, Mallquis Chapeau +2, and Khatvanga
- The following Occult Acumen gear has been added: Oneiros Rope, Merlinic hands+body+feet with +11 Occult Acumen (Fern stone), Perdition Slops, Seraphic Ampulla, Welkin Crown
- The code now outputs average TP return with average damage with all quicklook buttons, including spellcasting.
- Added the Impact spell, which costs 666 MP and provides a "quick" way to start with 3000 TP for AM3 on DRK. I use base_damage=1 since I only cared about TP return for Impact, so it will not return correct damage.
The code now supports Regain (including Gokotai Regain). The code uses 3-seconds per Regain tic and adds a fraction of the value to your tp_return for each attack round based on your time_per_attack_round.
- Regain from Gokotai will not show up in the player.stats dictionary, but it is being applied. I'll fix this later.
Added Corsair rolls: Tacticians, Monks, Warlocks
The code now has over 40 total special toggles for magic burst and job abilities. These toggles are displayed or hidden depending on your main job, sub job, and master level choices. For example: BLM/SCH will only see Ebullience when at least ML30.
"Warcry", "Berserk", "Aggressor", "Mighty Strikes", "Focus", "Footwork", "Impetus", "Manafont", "Manawell", "Chainspell", "Composure", "Conspirator", "Divine Emblem", "Enlight II", "Last Resort", "Endark II", "Sharpshot", "Barrage", "Velocity Shot", "Double Shot", "Hover Shot", "Hasso", "Sange", "Shell V", "Innin", "Futae", "Nature's Meditation", "Triple Shot", "Building Flourish", "Climactic Flourish", "Striking Flourish", "Ternary Flourish", "Saber Dance", "Ebullience", "Enlightenment", "Swordplay", "True Shot", "Sneak Attack", "Trick Attack", "Blood Rage", "Haste Samba", "Klimaform", "Distract III"
There is no longer a space limit for adding these toggles, so I plan to add more later.
- Some job abilities are enhanced by your choice of main job. For example: Berserk provides +25% attack by default, but WAR main also gains +40 attack (from job points) and having Conqueror equipped provides +8.5% more attack and +14% crit rate.
- Many of these toggles have tool-tips which describe their function and potency. Mouse-over them for 0.5 seconds to see these details
The code includes the prime weapon skills, but only the Scythe WS will return somewhat legitimate damage since it is the only somewhat constrained WS thanks to testing by SimonSes. We do still need the 2000 TP FTP value, though.
The code now checks gear slots and equipment in those slots in random order. The equipment order should be randomized every iteration the code runs. This effectively provides a small chance to find a slightly better best set than before, but I've only seen it happen a few times.
While rewriting the code, I corrected a lot of small issues. See below for an incomplete list of things I've fixed. Most of these are not yet fixed in the old version of the code.
COR was missing 6% True Shot from job mastery gifts. I'm still not sure if the job point category "increase damage from sweet spot +20" is +20% (+20 True Shot) or +20 weapon DMG, so I've ignored it.
COR Empy+3 boots no longer provide +31% Quick Draw Damage
I've corrected the Quick Draw damage formula, and updated BG Wiki with the correct equation.
A few jobs gained special magic damage, magic accuracy, or magic attack stats from job mastery or merits. I've created new stats for these special stats so that they are not applied outside of their scope.
- For example: Ninja has "Ninjutsu Magic Damage +40" from Job Point categories. I previously simply added +40 to Ninja's Magic Damage stat, but now I've ensured that this only applies to Ninjutsu nukes.
- Ninja was also missing the "Ninjutsu Magic Damage +100" while under Futae.
A few jobs were missing stats from their job mastery gifts. I caught and corrected a few of these as I re-added everything manually.
- For example: Corsair gains +36 (+5 +8 +10 +13) accuracy, attack, ranged accuracy, and ranged attack from job mastery gifts. The previous version of the code only gave +26 to each.
Monk was missing +40 Attack that applied during Impetus.
Monk now makes use of "Kick Attacks Attack +40" to provide +40 Attack for kicks (and Kick weapon skills with Footwork up). I intentionally ignored this stat previously.
Samurai now makes use of "Zanshin Attack +40" to provide +40 Attack for Zanshin procs.
I've tried to remove hard-coded ability bonuses based on equipment.
- For example: Hattori Tekko +3 adds +28% Futae bonus, so I've created a "Futae Bonus" stat and put it in the gear.py file instead of checking if Hattori Tekko +3 are equipped while calculating damage. This will allow users to add lower quality equipment without having to modify the main code each time.
Daken was not getting its hidden +100 Ranged Accuracy during TP throws.
Ikenga R0 armor was not included.
Gleti's Crossbow was labeled as a "weapon" rather than a "crossbow" type, which means that the code probably rejected most sets with Gleti's Crossbow due to not finding the required "crossbow"->"bolt" combo.
Hand-to-Hand was using the wrong delay for TP return, resulting in large TP return numbers.
In addition to rewriting the main code, I've rewritten the GUI using tkinter, which is included by default with Python3, instead of PySimpleGUI. The new gui_wsdist.py code is currently over 3500 lines of poorly-written, but somehow mostly functional, code. I plan to clean up this GUI code later. For now this will have to do.
The layout of the GUI has not changed significantly. The following changes have been made, many of which are very nice quality of life changes suggested by users that I would not have thought about myself.
Added "defaults.txt" text file which defines the initial state of many widgets within the GUI. The GUI will load these defaults when launched.
- I do not recommend manually changing this file since the inputs within are literally placed in the GUI and any typos could cause issues. I've instead included a file menu at the top of the window which includes a button to automatically output the state of the GUI to the defaults.txt file in the correct format.
Added a new button to copy the currently equipped gear to the clipboard in gearswap.lua format, which makes it easy to paste sets into your gearswap file. The button is directly above the equipped gear in the inputs tab. - This button currently only prints item names and ignores augments.
You can now hover over the drop-down menus and use the mousewheel to scroll without having to first open the menus.
- Most drop-down menus are in reverse numerical order now such that scrolling up will increase the value.
- This feature can be slow when rapidly scrolling through the main jobs list, since each selection triggers updates to the displayed gear lists for each job. I recommend manually clicking to select main job to avoid this.
Mouse-over tooltips for equipment stats now works consistently and quickly. No more moving your mouse around the equipment icon randomly and hoping that the equipment stats will display.
There are new buttons for "Copy to TP set" and "Copy to WS set" located above the equipped gear. These are both disabled for now, but I will later have them copy the equipped set to a DPS tab to estimate DPS based on repeated WSs with fixed TP and WS sets.
Added options for choosing which statistic/metric is prioritize when automatically finding sets, such as look for "Damage Dealt", or "TP Returned".
- Note that TP sets do include "DPS" as an option, but I wouldn't trust it since it does not consider WS damage. It is probably only useful for amnesia fights where you can't WS anyway
Note that the updated GUI does not support screen resolutions with height less than ~900 pixels. I will add a horizontally-oriented GUI later, but this is low priority. Additionally, I use the "vista" theme within tkinter, which means the GUI is intended for use with Windows Vista or higher. Linux, MacOS, and earlier versions of Windows do not have access to this theme and will result in a broken GUI. Apparently, the GUI looks slightly different (better even) on Windows11.
Finally, I very frequently encounter small issues with the updated GUI and code, which is why I've been hesitant to upload the beta. But it appears to function well for all of the many situations I've tested (and fixed) at this point. You will almost certainly run into an error message or some other issue. When you do encounter a bug, feel free to post it here or PM me (or preferably post on the GitHub Issues page) so I can try to replicate/resolve it. I imagine there will be many small bugs so hopefully we don't need to spam this thread with small issues. Please provide as much detail as possible for each bug post (ws, spell, buffs enabled, button clicked, error message, etc). Feel free to keep posting feature requests here as well.
Ramuh.Austar
サーバ: Ramuh
Game: FFXI
Posts: 10481
By Ramuh.Austar 2023-07-03 20:26:03
shijin spiral ftp should be 1.5
[+]
By Izanami 2023-07-03 20:51:40
shijin spiral ftp should be 1.5
This is actually the second time you've told me this. I must have gotten busy and not fixed the issue the first time, or accidentally reverted the correction.
Either way, both versions of the code now use FTP=1.5 for Shijin Spiral. Thanks.
サーバ: Asura
Game: FFXI
Posts: 160
By Asura.Bynebill 2023-07-04 01:31:34
Thanks for the link to the updated/beta version. I see in your pic you list berserk as 25% and only mention warriors JP and Mythic enhancement. Berserk for warrior main job is 35%, 25% for sub.
Berserk
By Izanami 2023-07-04 14:29:43
Thanks for the link to the updated/beta version. I see in your pic you list berserk as 25% and only mention warriors JP and Mythic enhancement. Berserk for warrior main job is 35%, 25% for sub.
Berserk
Thanks. This is an issue I would have not caught by myself. Berserk now provides WAR main with +35% (0.34765625) attack, while WAR sub gets +25% (0.25). The tooltip has also been updated.
how valuable and viable would a ws metric option for ws accuracy / magic accuracy be? for things like full break or tachi: ageha etc.
I like this idea and it is easy enough to add. The outputs from this are not surprising, though. My first thought is to have the code maximize (hit_rate * magic_accuracy), so more magic accuracy is always good, but accuracy stops being valuable after reaching the hit rate cap.
I've added Shield Break, Armor Break, Weapon Break, Full Break, Nightmare Scythe, Tachi: Ageha, Shell Crusher, Skullbreaker, Sniper Shot, and Dulling Arrow. These technically did not need to be added since the code is not maximizing damage, so it didn't need their WSC or FTP, but it doesn't hurt to have them for completeness.
I've also added an Angon checkbox which shows up for all jobs and applies DEF-20% to the enemy. I will eventually swap this for a drop-down menu which will also include Defense Down from WSs, DNC steps, and BLU spells.
Finally, I've included the enemy's finalized stats (after debuffs) in the "Show stats" button. This just makes it easy to confirm the effect of debuffs.
Ramuh.Austar
サーバ: Ramuh
Game: FFXI
Posts: 10481
By Ramuh.Austar 2023-07-04 16:38:32
My first thought is to have the code maximize (hit_rate * magic_accuracy), so more magic accuracy is always good, but accuracy stops being valuable after reaching the hit rate cap. why not just reach hit rate cap, then maximize magic accuracy? if you use the portion of the code from the spell damage, you can reach magic accuracy cap as well and then from there maximize the damage.
By Dazusu 2023-07-04 16:44:54
Do you take donations? Got a PayPal link?
By Izanami 2023-07-04 20:14:55
My first thought is to have the code maximize (hit_rate * magic_accuracy), so more magic accuracy is always good, but accuracy stops being valuable after reaching the hit rate cap. why not just reach hit rate cap, then maximize magic accuracy? if you use the portion of the code from the spell damage, you can reach magic accuracy cap as well and then from there maximize the damage.
This is a good idea too. I may change the algorithm to do this later, but for now I'm not worried about it.
Do you take donations? Got a PayPal link?
A few people have asked me about donations, so I may consider it in the future in the sense of a "buy me a coffee" button hidden in the menu. But for now, I do not want to take donations since it would make me feel like I'm obligated to work on this project, even when I'd rather do other things.
By Lili 2023-07-06 13:43:37
So, I dig the beta version with the new gui a lot - and, it also seems to be a fair bit faster than the old one. Thanks a lot.
However, this is how it looks like on my laptop:
It's workable for some basic functionality, but most buffs are unselectable unfortunately :-\
Laptop screen is 1920x1080, no DPI scaling DPI scaling at 120, see below, windows 10.
By Izanami 2023-07-06 14:19:42
However, this is how it looks like on my laptop:
It's workable for some basic functionality, but most buffs are unselectable unfortunately :-\
Laptop screen is 1920x1080, no DPI scaling, windows 10.
Interesting considering I'm also using 1920x1080 Windows10. I'm not sure about my DPI scaling, though.
At first glance, I think the issue might be that your Windows10 default font size is slightly larger than mine, and that font size is being inherited by the GUI for the text. Your list of gear seems to hold 13 options compared to the ~16 I see in my screenshot at the top of this page. Text field (and buttons with text) widths in Tkinter are defined in units of "average character width", rather than pixels (width=5 will hold 5 letters/numbers on average). So larger font size leads to larger text widgets, which potentially leads to widgets being pushed out of frames as you're seeing.
I think the solution for this is for me to turn on the "automatically expand frames to fit their contents" option, which I remember being pretty annoying to properly use, so I chose not to use it at the time. This should be an easy fix, but the GUI code is a mess, so I'm not sure if it will be a quick fix. Essentially all rows/columns in each frame, and subframes in those frames and so on, need to be updated with a small configuration change to one parameter.
I'll see what I can do with this soon. Hopefully it's a quick fix.
[+]
By Lili 2023-07-06 15:33:19
I'll see what I can do with this soon. Hopefully it's a quick fix.
So, I'm a dumbass so I went to doublecheck DPI scaling, and I actually have my laptop set at 120% cuz I'm an old fart who doesn't like to use glasses. However, compatibility settings to disable scaling don't seem to be helping... at this point I'll gladly wait for your next version.
サーバ: Asura
Game: FFXI
Posts: 25
By Asura.Kaelann 2023-07-06 16:03:23
Testing out the new version, the UI definitely feels better and more responsive.
One issue I noticed is it doesn't seem to be taking Footwork into account anymore on MNK. Both Tornado Kick and Dragon Kick damage are not affected by toggling it, and Anchorite's Gaiters +3 aren't increasing the WS Damage. This worked in the previous GUI, so hopefully it's not a difficult fix.
Another issue is, on WAR, it appears to be using DA values over 100 when calculating time to WS. You can test this by putting on any set with >100 DA using the JSE+1 earring, looking at the time to WS and TP/round, then swapping it for the +2 and checking again.
Aside from that, do you think you could expand the available buffs/debuffs to include Distract III, Frazzle III, Box Step, Quickstep and Stutter Step? I'd ask about Aria as well, but I'm not sure if we have good enough data on how that works yet.
By Izanami 2023-07-06 17:21:42
However, compatibility settings to disable scaling don't seem to be helping... at this point I'll gladly wait for your next version.
I'll probably work on this over the weekend. This is one of those GUI101 things that I should probably learn how to do anyway.
One issue I noticed is it doesn't seem to be taking Footwork into account anymore on MNK. Both Tornado Kick and Dragon Kick damage are not affected by toggling it, and Anchorite's Gaiters +3 aren't increasing the WS Damage. This worked in the previous GUI, so hopefully it's not a difficult fix.
Looks like Footwork was applying the bonus stats, but there were a few simple issues.
I had a typo in a stat name. "Kick Attack DMG" should've been "Kick Attacks DMG" which caused the +20 DMG from Footwork and +20 DMG from JP gifts to not apply.
I never told the updated code to use "Kick DMG" instead of "H2H DMG" for Kick WSs with Footwork up. TP sets were unaffected since I handled their kick_dmg separately for Kick Attack proc PDIF.
These have been fixed.
Another issue is, on WAR, it appears to be using DA values over 100 when calculating time to WS. You can test this by putting on any set with >100 DA using the JSE+1 earring, looking at the time to WS and TP/round, then swapping it for the +2 and checking again.
I simply forgot to limit some stats at 100%. I've added a cap to QA, TA, DA, Crit Rate, Daken, and Kick Attacks. Zanshin already had its rate capped at 100%.
Aside from that, do you think you could expand the available buffs/debuffs to include Distract III, Frazzle III, Box Step, Quickstep and Stutter Step? I'd ask about Aria as well, but I'm not sure if we have good enough data on how that works yet. Distract3 was already in the code for RDM main only, but I've moved it to all jobs similar to Angon. I'll add the others later, probably next week or this weekend.
Cerberus.Kylos
サーバ: Cerberus
Game: FFXI
Posts: 4473
By Cerberus.Kylos 2023-07-14 16:34:36
I'm having to redo all my macros and equipsets from scratch (don't ask), so I was considering targets and buffs for each of my jobs. For example, I'd only really use SCH in Sortie in a party, while THF is often used on older content with low or no ilvl with trusts.
I'm interested to know what ilvl targets and buffs players typically aim for with each job. If we could compile a list of common targets and buffs per job, this may help newer players using the program to create reliable sets. From my experience, on DRK I was typically aiming for i135 with BRD (+7 Honor/Victory/Advancing) and COR (+7 Chaos/Samurai), but I also had some sets for i140. I could not see the point in having any sets without those buffs present.
Please share your typical habits using the program so far, and we can make a list together.
By Dodik 2023-07-14 18:28:55
Only need two of those, so can add one minuet. Marcato honor + victory will cap magic haste. Or marcato minuet and two marches.
Gilgamesh.Maletaru
サーバ: Gilgamesh
Game: FFXI
Posts: 36
By Gilgamesh.Maletaru 2023-07-14 18:37:32
Only need two of those, so can add one minuet. Marcato honor + victory will cap magic haste. Or marcato minuet and two marches.
Honor+Victory will cap even without Marcato. Depending whether you need extra acc, could be better to Marcato Minuet V than HMarch.
[+]
Ramuh.Austar
サーバ: Ramuh
Game: FFXI
Posts: 10481
By Ramuh.Austar 2023-07-14 18:38:53
i believe the program still only accounts for tp/second for the tp sets and doesn't include dps values, so if you're using it for that purpose then the only relevant stat for tp sets are going to be mob evasion. generally if you can hit an apex mob without major buffs of a specific challenge level, then you can hit NMs just fine with food and acc buffs, especially if 2h'd.
for example, 139 apex mobs have 1344 evasion. Ou has 1380 something(1388?) if i recall. of course there will still be some really high evasion ones for the same level. albumen is like 1776 compared to teles with 1588 evasion despite both being CL150
your accuracy will also adjust based on your party setup, unless you are the only DD you shouldn't focus on what buffs maximize your damage but the damage of the group as a whole. if your tp bonus offhanding friend needs an extra accuracy buff, you can drop that much from your sets.
attack requirements will be much harder to recommend settings for since those will vary a lot more, particularly when you're limited on party comps, geo nerfs, or whatever else.
By Katyl 2023-07-15 00:59:07
Assuming capped +Song/Skill where relevant, it is never better to Marcato Valor Minuet V.
Valor Minuet V +8 is 223 ATK
Honor March +4 is 232 ATK
Edit: See below
[+]
Cerberus.Kylos
サーバ: Cerberus
Game: FFXI
Posts: 4473
By Cerberus.Kylos 2023-07-15 01:45:44
Only need two of those, so can add one minuet. Marcato honor + victory will cap magic haste. Or marcato minuet and two marches.
No idea why I put advancing in there, it was meant to be Minuet, lol
[+]
Carbuncle.Maletaru
サーバ: Carbuncle
Game: FFXI
Posts: 2676
By Carbuncle.Maletaru 2023-07-15 08:01:27
Assuming capped +Song/Skill where relevant, it is never better to Marcato Valor Minuet V.
Valor Minuet V +8 is 223 ATK
Honor March +4 is 232 ATK
Assuming you don't have Minuet merits or JP I guess, but I think it's fairly safe to assume most BRDs have Minuet JP and 5/5 Minuet merits, so the real numbers are: 248 (plus STR from empyrean armor) and 232.
By Dodik 2023-07-15 08:58:30
Gilgamesh.Maletaru said: »Honor+Victory will cap even without Marcato. Depending whether you need extra acc, could be better to Marcato Minuet V than HMarch.
True, most people marcato honor march though. I tend to favour minuet for marcato because the 50% extra attack on it is really strong.
Honor march attack with marcato: 348
Minuet5 with marcato and full equipment/merit buffs: 372
Not insignificant.
By Katyl 2023-07-15 11:23:10
Huh, well I suppose there is a use case then.
I was under the impression the bonus Minuet Job Point category was only for the BRD from the wording compared to the Minne Job Point category.
Increases physical defense granted by Minne.
Increases physical attack while under the effects of Minuet.
But after testing in game it does affect the song on others. Go figure. Thanks for the clarification.
Edit: After checking in game it does say granted like Minne, but on the BG Job page it says under the effects of. No idea if this was ninja patched or why BG has different wording. Live Laugh FFXI
[+]
Carbuncle.Maletaru
サーバ: Carbuncle
Game: FFXI
Posts: 2676
By Carbuncle.Maletaru 2023-07-15 12:20:45
The difference is so small its almost always better to take the extra haste and accuracy from HM.
Except we're talking about scenarios with HMarch+VMarch, so the haste difference is 0, unless you're slowed I guess? So ultimately it comes down to:
Gilgamesh.Maletaru said: »Depending whether you need extra acc, could be better to Marcato Minuet V than HMarch.
If you need the extra ~29 acc, Marcato your HMarch, if you don't, the optimal thing is to Marcato the Minuet.
See also: if you're buffing RNG/COR who are shooting. It may not make a big difference either way (8 attack, as you said), but it's still a bigger number with no drawbacks. At least in the scenario being described.
[+]
[+]
By Pantafernando 2023-07-15 15:46:31
When you guys picture dmg over like 30 or 40k+, against how much def/mdef we are talking? Also, what buff/debuff are being considered on those simulations?
|
|