raidboss: add support for The Merchant's Tale (Advanced)#1071
raidboss: add support for The Merchant's Tale (Advanced)#1071ForestSageSarah wants to merge 10 commits into
Conversation
JLGarber
left a comment
There was a problem hiding this comment.
Thanks so much for putting all this together. I don't know how much the regular maintainers here do the Variant/Criterion content, so we really appreciate anyone else willing to work on it. Do you know whether you're likely to be able to put all the timelines for Advanced together? I can check through my logs to see whether there's anything useful there.
Can you clarify the source of your translations? I can read enough French/German to be comfortable with those, but I don't read our other supported languages. If you speak all of them, that's perfectly fine, but if any are machine-translated, let's leave those out and let the community translators handle them instead.
We appreciate your contribution!
Thanks so much! I am planning on completing all three fights (Pari / Seamaid / Swordmaster) - would it have been better to wait until I had the baseline done for the other 3 to PR?
They are a mix of ML and directionals I grabbed from the Aloalo Island file I used as a template - definitely better for the community to translate instead then! |
Co-authored-by: Jonathan Garber <linkthevaliant@gmail.com>
Co-authored-by: Jonathan Garber <linkthevaliant@gmail.com>
Co-authored-by: Jonathan Garber <linkthevaliant@gmail.com>
Typically we do try to make non-Ultimate pieces of content one self-contained package, or "one trigger package/one timeline package" etc, but if you're actively planning to handle the other bosses it probably doesn't matter too much. This is especially true for Advanced Variant, where bosses are encountered in a non-fixed order. That being said, I'll tag in @xiashtra here to assist with clarifying, since this isn't a situation we come across as much and I don't want to give an answer that's my opinion but doesn't fully align with the docs. As for the translations, anything that's directly sourced from another file in the repository is fine, to be clear, so long as the mechanical handling matches exactly. (For example, if there's a specialized translation for a normal-mode raid's output strings, it is fine and expected to re-use that for Savage if it's unchanged mechanically.) What we generally want to avoid is machine translations for new text content. |
Either one PR for the entire instance or one PR per boss should be fine. It can be preferable to submit one PR per boss if it will take a while to finish all of them, so that they can be checked/approved and released incrementally. |
| netRegex: { effectId: '301' }, | ||
| condition: Conditions.targetIsYou(), | ||
| suppressSeconds: 2, | ||
| response: Responses.breakChains(), |
There was a problem hiding this comment.
| response: Responses.breakChains(), | |
| response: Responses.breakChains(), |
This will resolve the lint error. You should use the lint and test scripts locally to check your PR before submitting.
There was a problem hiding this comment.
To follow up on this, most linting errors can be fixed automatically with npm run lintfix. Other npm run <foo>fix targets exist for other linting types as well.
JLGarber
left a comment
There was a problem hiding this comment.
Sorry it's taken me so long to get any feedback going. June has been utterly slammed for me. I don't have time tonight to do a full review, but I thought I would start with the Swordmaster timeline at least so you have something to look at. In the meantime I'll work through reviews for the other sections as I have time.
Thank you once again for getting things rolling on Advanced!
| 2060.8 "Near/Far to Heaven" Ability { id: ["B9CA", "B9CC"], source: "Lone Swordmaster" } | ||
| 2062.8 "Heavens' Confluence" Ability { id: "B649", source: "Lone Swordmaster" } |
There was a problem hiding this comment.
| 2060.8 "Near/Far to Heaven" Ability { id: ["B9CA", "B9CC"], source: "Lone Swordmaster" } | |
| 2062.8 "Heavens' Confluence" Ability { id: "B649", source: "Lone Swordmaster" } | |
| 2060.8 "Heavens' Confluence (in/out)" Ability { id: ["B646", "B647"], source: "Lone Swordmaster" } | |
| 2060.8 "Near to Heaven/Far from Heaven (castbar)" Ability { id: ["B9CA", "B9CB", "B9CC", "B9CD"], source: "Lone Swordmaster" } | |
| 2062.8 "Heavens' Confluence (out/in)" Ability { id: ["B648", "B649"], source: "Lone Swordmaster" } | |
| 2062.8 "Near to Heaven/Far from Heaven (damage)" Ability { id: ["B642", "B643", "B644", "B645"], source: "Lone Swordmaster" } |
A very common pattern we see when Square designs 50/50 mechanics like this is that each iteration of an ability will have its own separate skill. The 4x abilities for Near/Far are for the different stack/spread versions paired with in/out, so we need to list them all, here and elsewhere. (This includes the sets at timeline times 2106, 2179, 2228, 2304, 2350, 2423, and 2472.)
(We list out all the Confluences and Near/Far as timeline text because the Confluence abilities are the actual in/outs, but the player will see a Near/Far castbar, so we need to keep it all visible. This will not always be the case everywhere, but here it's best.)
| 2070.0 "Echoing Heat" Ability { id: "B64A", source: "Lone Swordmaster" } | ||
| 2077.8 "Echoing Hush" Ability { id: "B69B", source: "Lone Swordmaster" } | ||
| 2079.8 "Wolf's Crossing" Ability { id: "B64C", source: "Lone Swordmaster" } | ||
| 2092.8 "Echoing Eight" Ability { id: "B64E", source: "Lone Swordmaster" } |
There was a problem hiding this comment.
| 2070.0 "Echoing Heat" Ability { id: "B64A", source: "Lone Swordmaster" } | |
| 2077.8 "Echoing Hush" Ability { id: "B69B", source: "Lone Swordmaster" } | |
| 2079.8 "Wolf's Crossing" Ability { id: "B64C", source: "Lone Swordmaster" } | |
| 2092.8 "Echoing Eight" Ability { id: "B64E", source: "Lone Swordmaster" } | |
| 2070.0 "Echoing Heat" Ability { id: "B64A", source: "Lone Swordmaster" } | |
| 2077.4 "Echoing Hush 1" Ability { id: "B69B", source: "Lone Swordmaster" } | |
| 2079.4 "Wolf's Crossing (castbar)" Ability { id: "B64C", source: "Lone Swordmaster" } | |
| 2084.8 "Echoing Hush 2" Ability { id: "B69B", source: "Lone Swordmaster" } | |
| 2084.8 "Wolf's Crossing (lines)" Ability { id: "B64D", source: "Lone Swordmaster" } | |
| 2092.4 "Echoing Hush 3" Ability { id: "B69B", source: "Lone Swordmaster" } | |
| 2092.5 "Echoing Eight (castbar)" Ability { id: "B64E", source: "Lone Swordmaster" } | |
| 2096.5 "Echoing Hush 4" Ability { id: "B64B", source: "Lone Swordmaster" } | |
| 2099.5 "Echoing Eight (lines)" Ability { id: "B64F", source: "Lone Swordmaster" } |
It's not a hard and fast rule, but typically we do try to list out even "minor" mechanics that happen separately. Here, Echoing Hush, the puddle-dropping ability, does occur offset from the line mechanics, so it makes sense to list it out separately. As the timeline is displayed, the player will see the pairs of mechanics advancing together and be ready for them.
|
|
||
| 2124.7 "Malefic Alignment 1" Ability { id: "B650", source: "Lone Swordmaster" } | ||
| 2130.7 "Malefic Alignment 2" Ability { id: "B650", source: "Lone Swordmaster" } | ||
| 2137.5 "Cardinal Horizons" Ability { id: "B652", source: "Lone Swordmaster" } |
There was a problem hiding this comment.
| 2137.5 "Cardinal Horizons" Ability { id: "B652", source: "Lone Swordmaster" } | |
| 2137.5 "Cardinal Horizons" Ability { id: "B652", source: "Lone Swordmaster" } | |
| 2137.5 "Lash of Light 1" #Ability { id: "B63F", source: "Lone Swordmaster" } | |
| 2139.5 "Lash of Light 2" #Ability { id: "B63F", source: "Lone Swordmaster" } |
These two Lashes are too close together to sync, but it's worth having them in the timeline for visibility.
| 2148.5 "Echoing Heat" Ability { id: "B64A", source: "Lone Swordmaster" } | ||
| 2148.8 "Will of the Underworld" Ability { id: "BA92", source: "Force of Will" } |
There was a problem hiding this comment.
| 2148.5 "Echoing Heat" Ability { id: "B64A", source: "Lone Swordmaster" } | |
| 2148.8 "Will of the Underworld" Ability { id: "BA92", source: "Force of Will" } | |
| 2148.5 "Echoing Heat" Ability { id: "B64A", source: "Lone Swordmaster" } | |
| 2148.8 "Will of the Underworld 1" Ability { id: "BA92", source: "Force of Will" } | |
| 2155.8 "Will of the Underworld 2" Ability { id: "BA92", source: "Force of Will" } | |
| 2155.8 "Echoing Hush 1" Ability { id: "B69B", source: "Lone Swordmaster" } | |
| 2162.8 "Will of the Underworld 3" Ability { id: "BA92", source: "Force of Will" } | |
| 2162.8 "Echoing Hush 2" Ability { id: "B69B", source: "Lone Swordmaster" } | |
| 2169.8 "Will of the Underworld 4" Ability { id: "BA92", source: "Force of Will" } | |
| 2169.8 "Echoing Hush 3" Ability { id: "B69B", source: "Lone Swordmaster" } |
This is a whole mechanical sequence, so it makes sense to have it visible here.
| 2179.4 "Near/Far to Heaven" Ability { id: ["B9CA", "B9CB", "B9CC", "B9CD"], source: "Lone Swordmaster" } | ||
| 2181.4 "Heavens' Confluence" Ability { id: ["B648", "B649"], source: "Lone Swordmaster" } | ||
| 2188.5 "Sting of the Scorpion" Ability { id: "B636", source: "Lone Swordmaster" } | ||
| 2201.8 "Waiting Wounds" Ability { id: "B653", source: "Lone Swordmaster" } |
There was a problem hiding this comment.
| 2201.8 "Waiting Wounds" Ability { id: "B653", source: "Lone Swordmaster" } | |
| 2201.8 "Waiting Wounds 1" #Ability { id: "B654", source: "Lone Swordmaster" } | |
| 2202.8 "Waiting Wounds 2" #Ability { id: "B654", source: "Lone Swordmaster" } | |
| 2203.8 "Waiting Wounds 3" #Ability { id: "B654", source: "Lone Swordmaster" } |
| 2208.0 "Silent Eight" Ability { id: "B655", source: "Lone Swordmaster" } | ||
| 2213.0 "Resounding Silence" Ability { id: "B656", source: "Lone Swordmaster" } | ||
| 2218.0 "Maw of the Wolf" Ability { id: "B657", source: "Lone Swordmaster" } |
There was a problem hiding this comment.
| 2208.0 "Silent Eight" Ability { id: "B655", source: "Lone Swordmaster" } | |
| 2213.0 "Resounding Silence" Ability { id: "B656", source: "Lone Swordmaster" } | |
| 2218.0 "Maw of the Wolf" Ability { id: "B657", source: "Lone Swordmaster" } | |
| 2208.0 "Silent Eight" Ability { id: "B655", source: "Lone Swordmaster" } | |
| 2213.0 "Resounding Silence" Ability { id: "B656", source: "Lone Swordmaster" } | |
| 2213.0 "--middle--" | |
| 2216.0 "Echoing Eight" Ability { id: "B64F", source: "Lone Swordmaster" } | |
| 2218.0 "Maw of the Wolf" Ability { id: "B657", source: "Lone Swordmaster" } |
| #2260.6 "Lash of Light" #Ability { id: "B63F", source: "Lone Swordmaster" } | ||
| #2262.6 "Lash of Light" #Ability { id: "B63F", source: "Lone Swordmaster" } |
There was a problem hiding this comment.
| #2260.6 "Lash of Light" #Ability { id: "B63F", source: "Lone Swordmaster" } | |
| #2262.6 "Lash of Light" #Ability { id: "B63F", source: "Lone Swordmaster" } | |
| 2260.6 "Lash of Light" #Ability { id: "B63F", source: "Lone Swordmaster" } | |
| 2262.6 "Lash of Light" #Ability { id: "B63F", source: "Lone Swordmaster" } |
It's worth keeping these two visible but unsynced. (If we sync them, they will overlap and cause timeline jitter, so that's why the timeline utility auto-commented the syncs, but we do want to have the exact skill IDs recorded in-line.)
| 2281.9 "Malefic Portent" Ability { id: "B63C", source: "Lone Swordmaster" } | ||
| # 2282.9 "Malefic Influence" #Ability { id: ["B638", "B639", "B63A", "B63B"], source: "Lone Swordmaster" } | ||
| 2282.9 "Malefic Portent" Ability { id: "B63D", source: "Lone Swordmaster" } |
There was a problem hiding this comment.
| 2281.9 "Malefic Portent" Ability { id: "B63C", source: "Lone Swordmaster" } | |
| # 2282.9 "Malefic Influence" #Ability { id: ["B638", "B639", "B63A", "B63B"], source: "Lone Swordmaster" } | |
| 2282.9 "Malefic Portent" Ability { id: "B63D", source: "Lone Swordmaster" } | |
| 2281.9 "Malefic Portent 1" Ability { id: "B63C", source: "Lone Swordmaster" } | |
| 2282.9 "Malefic Portent 2" Ability { id: "B63D", source: "Lone Swordmaster" } |
It's fine to just entirely remove the Malefic Influence here if it's not going to be displayed to the player.
| 2328.4 "Echoing Hush + Wolf's Crossing" Ability { id: "B69B", source: "Lone Swordmaster" } | ||
| #2328.4 "Wolf's Crossing" #Ability { id: "B64D", source: "Lone Swordmaster" } |
There was a problem hiding this comment.
| 2328.4 "Echoing Hush + Wolf's Crossing" Ability { id: "B69B", source: "Lone Swordmaster" } | |
| #2328.4 "Wolf's Crossing" #Ability { id: "B64D", source: "Lone Swordmaster" } | |
| 2328.4 "Echoing Hush" Ability { id: "B69B", source: "Lone Swordmaster" } | |
| 2328.4 "Wolf's Crossing" #Ability { id: "B64D", source: "Lone Swordmaster" } |
Here and elsewhere, it's fine to have simultaneous abilities going off at once in the timeline.
| # -p BC08:2009.1 | ||
|
|
There was a problem hiding this comment.
| # -p BC08:2009.1 | |
| # -p BC08:2009.1 | |
| # -ii B638 B639 B63A B63B B63D B640 B641 B651 B653 B658 |
This is maybe not an exhaustive ignore list, but it's what I picked up from a quick pass through while I was writing up the other review comments.
Adds initial raidboss support for Pari of Plenty in The Merchant's Tale (Advanced).
Included:
ToDo