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

Enable Rune Fencer Category 2 Merits, Implement Vivacious Pulse & Swordplay, Fix level for Tactical Parry III on RUN #1339

Merged

Conversation

WinterSolstice8
Copy link
Member

@WinterSolstice8 WinterSolstice8 commented Feb 28, 2022

Please see attached for this branches progress once merged.
RUN progress.pdf

I got a lot of work done and decided it was time to merge back in since it was getting a little beefy...

This PR implements

  • Vivacious Pulse (complete, minus dynamis divergence weapon aug)
  • Sleight of Sword (complete, minus buff wiping on taking "severe" dmage)
  • Swordplay (Complete)
  • Enable Rune Fencer Category 2 merits
  • Fix level for Tactical Parry III for RUN
  • Fix Inquartata gifts & add Inquartata to Status.lua as there are gear mods that use it

Edit: looks like I accidentally included a file in the last commit that modifies scripts/commands/getstats.lua to include Subtle Blow and Store TP in the display... though I suspect that won't be a problem, other than maybe amending the commit message.

I affirm:

  • I have paid attention to this example and will edit again if need be to not break the formatting, or I will be ignored
  • that I agree to LandSandBoat's Limited Contributor License Agreement, as written on this date
  • that I have read the Contributing Guide
  • that I've tested my code and things my code changed since the last commit in the PR, and will test after any later commits

@TeoTwawki
Copy link
Contributor

Please see attached for this branches progress once merged.
RUN progress.pdf

You could use an issue for tracking. Github's markdown parsing makes it easy to make checklists and tables and such

Copy link
Contributor

@Xaver-DaRed Xaver-DaRed left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mostly styling. Logic looks proper at first glance. Great work.

scripts/commands/getstats.lua Outdated Show resolved Hide resolved
scripts/globals/abilities/swordplay.lua Outdated Show resolved Hide resolved
scripts/globals/job_utils/rune_fencer.lua Outdated Show resolved Hide resolved
scripts/globals/job_utils/rune_fencer.lua Show resolved Hide resolved
scripts/globals/job_utils/rune_fencer.lua Outdated Show resolved Hide resolved
scripts/globals/job_utils/rune_fencer.lua Show resolved Hide resolved
scripts/globals/job_utils/rune_fencer.lua Outdated Show resolved Hide resolved
@WinterSolstice8
Copy link
Member Author

Please see attached for this branches progress once merged.
RUN progress.pdf

You could use an issue for tracking. Github's markdown parsing makes it easy to make checklists and tables and such

Good idea. That way it's not just sitting on my local computer. Plus fancier when I can directly reference the issue number.

@WinterSolstice8
Copy link
Member Author

Transferred that PDF to here.
#1340

Comment on lines 143 to 157
-- add starting tick bonuses if appropriate gear is equipped
if handsSlotID == 27018 then
power = 3 * tickPower
elseif handsSlotID == 27019 then
power = 5 * tickPower
elseif handsSlotID == 23218 then
power = 7 * tickPower
elseif handsSlotID == 23553 then
power = 9 * tickPower
end
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These will need to be extracted out to an item mod, if you let us know what you need here we can push those changes straight into main so you don't get any conflicts while this branch is ongoing

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

image
"Swordplay" item mod makes sense. I don't think anything else but this particular job specific gear boosts this currently though. These item IDs are all from Futhark Mitons/Futhark Mitons +1/Futhark Mitons +2/Futhark Mitons +3. We'd also need to get the extdata for Sleight of Sword if we replace that with an item mod, since we are no longer "guaranteed" to have the item equipped that will always have said augment. That, or the ID check stays but only for the Sleight of Sword augment bonus.

I have Futhark Mitons +3 in retail so i'll be able to dump the packet/data for the augment if I get instructions on how to do so. I assume NQ and all HQs all share the same augment...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We -always- want to avoid checking item IDs when possible. And there's always the Chance SE adds something new that would use the mod.

We'd also need to get the extdata for Sleight of Sword if we replace that with an item mod,

That's not that bad. The part that may be a problem is if its in the segment of augment IDs we handle incorrectly atm (some don't display right, but its usually the type that use a the other items typing with the sockets or slotting). That said, I would bet on its ID being nearby the other job-ability enchanting augments already in our table. Once we have the ID its just a matter of filling in the modifier info for it in the aforementioned table.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll see if I can find a cap or even dig through the values for it later.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Turns out we already have the ID

INSERT INTO `augments` VALUES (1457,0,0,0,0,0); -- Enhances "Sleight of Sword" effect

just needs modifier hooked up where those zeroes are, in augments.sql

Copy link
Member Author

@WinterSolstice8 WinterSolstice8 Feb 28, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yup, client agrees. I added that aug to an !additem call.
image

I will need mods for the following:

  • Enhances "Battuta" effect
  • Enhances "Elemental Sforzo" effect
  • Enhances "Sleight of Sword" effect
  • Enhances "Inspiration" effect
  • Enhances "Elemental Sforzo" effect
  • Swordplay
  • Liement
  • "Enhances "Valiance" and "Vallation" effects" (they are literally the same buff, but one is AoE. Only one mod is needed.)
  • Pflug
  • "Liement" effect extends to an area
  • "Vivacious Pulse" potency (looks like the augment is 1310 according to windower resources, but I can't get Morgelai to display it. Probably some nonsense with the Path A/B/C extdata that I know very little about)
    EDIT:
    Also need
  • Augments "Vivacious Pulse"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Vivacious Pulse" potency (looks like the augment is 1310 according to windower resources, but I can't get Morgelai to display it. Probably some nonsense with the Path A/B/C extdata that I know very little about)

Windower's resource extractor pulls the dat file index, while our table uses the order the packet does - the 2 lists don't agree and we currently lack a way to match them up. Take a look in the augments.sql file and use the !additem GM command to try nearby IDs starting from where "Slight of Sword" was - its probably nearby.

Copy link
Contributor

@claywar claywar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking like a great continuation of the previous PRs. Left a few comments for some additional items. 👍

scripts/commands/getstats.lua Show resolved Hide resolved
scripts/globals/job_utils/rune_fencer.lua Outdated Show resolved Hide resolved
[xi.effect.LUX] = xi.mod.CHR,
}

local stat = runeStatMap[effect:getType()]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the below is possible to be nil, this will throw an exception and break out of the function if getType does not exist in the above table.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I adjusted this logic so that nil check is no longer necessary. Take a look!

if type >= xi.effect.IGNIS and type <= xi.effect.TENEBRAE then
HPHealAmount = HPHealAmount + getRuneHealAmount(effect, target)
elseif
type == xi.effect.POISON or type == xi.effect.PARALYSIS or
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would suggest tabling up these items and looping over them as well instead of a very long conditional.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I adjusted it to a table lookup, like the rune element mapping. tell me what you think

scripts/globals/job_utils/rune_fencer.lua Outdated Show resolved Hide resolved
scripts/globals/job_utils/rune_fencer.lua Outdated Show resolved Hide resolved
local handsSlotID = target:getEquipID(xi.slot.HANDS)

-- add starting tick bonuses if appropriate gear is equipped
if handsSlotID == 27018 then
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More things that could go into items.lua

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More things that could go into items.lua

nay, mods mods mods

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm punting magic number changes until we get the appropriate item mods into the main branch. It will get fixed in a future PR, and I will note it in the progress chart. They will exist here as reminders for what items need to have their sql entries updated. Don't need to duplicate work especially when we know the better way is on the horizon.

@Xaver-DaRed Xaver-DaRed dismissed their stale review February 28, 2022 19:34

Points were adressed. Other points from othe rppl still need to

Copy link
Contributor

@Xaver-DaRed Xaver-DaRed left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If more work is OTW in future PRs, I don't see a problem leaving it as it is here.

@zach2good
Copy link
Contributor

I'll do the mod number additions tonight when I finish work 👍

@zach2good
Copy link
Contributor

Added this PR: #1353

It isn't too bad to add new Mods, you just need to look at the bottom of the C++ list, find the next free number, add them, update the comment and copy things across to the Lua side 👍

@zach2good zach2good force-pushed the feature/runefencer branch from 2a25a07 to 72e66d2 Compare March 2, 2022 19:01
@zach2good
Copy link
Contributor

Rebased feature/runefencer with the new changes in main 👍

@WinterSolstice8
Copy link
Member Author

Not entirely sure why it thinks that many of the commits duplicated...

Copy link
Contributor

@zach2good zach2good left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just some style nits, and the style checker is mad at you:

    scripts/globals/status.lua:1219:5: (W314) value assigned to field INQUARTATA is overwritten on line 1578 before use

If don't want to fight your commits, we can just squash-on-merge, but I'm sure you probably want the credit for multiple commits :P


xi.job_utils.rune_fencer.useVivaciousPulse = function(player, target, ability, effect)
return calculateVivaciousPulseHealing(player, target)
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Newline at end of file please

@WinterSolstice8
Copy link
Member Author

Legitimately have no idea where that redefinition of inquartata came from... I just rebased with upstream/base and never touched that file to my memory. will dig into it

@WinterSolstice8
Copy link
Member Author

WinterSolstice8 commented Mar 4, 2022

Legitimately have no idea where that redefinition of inquartata came from... I just rebased with upstream/base and never touched that file to my memory. will dig into it

Ah... I see. I added it myself because it had already existed in the c++ code but not status. Then came along #1353 which happened to merge without errors back into the same exact location. mystery solved. I will just have to remove it on my end.

@zach2good
Copy link
Contributor

Content-wise, this looks good and it's ready to go in. But, we can't take all of those duplicate commits. I also don't want to cheat you out of a bunch of commits by squashing everything down into a single commit. Could you rebase and fix your commits?

@WinterSolstice8
Copy link
Member Author

Agreed, I think it's a bit of a mess too. I will figure it out after work/this weekend.

@zach2good zach2good mentioned this pull request Mar 4, 2022
4 tasks
* Vivacious pulse is missing Morgelai etc aug bonus due to the aug value not being known at this time.
* Comment unneeded additions to scripts/commands/getstats.lua
* Adjust logic of Vivacious Pulse effect a little
* Actually apply healing in Vivacious Pulse and not just the log message.
@WinterSolstice8
Copy link
Member Author

WinterSolstice8 commented Mar 5, 2022

I rebased off upstream/feature/runefencer, then cherry picked the commits that actually were meant to represent the final product.

@zach2good zach2good merged commit 40a4c33 into LandSandBoat:feature/runefencer Mar 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants