Home Ready Room

CAB Fleet Boss Battles Combo Node Helper (Crew Finder)

(A) Traveling Man(A) Traveling Man ✭✭✭✭✭
edited September 19 in Ready Room
This sheet will identify any crew that meet the trait requirements for a specific combo node in Fleet Boss Battles. At this time, it doesn't account for multiple crew being used to unlock a single node (it only lists crew who meet the requirements on their own).

Like other Google Spreadsheets, please make a copy of this and save to your own Drive.

v3.2 (2022-09-18)
https://cabtools.app/combo-chain-helper/

Feedback is welcome.
CABTools.app
Ov (Overall) | Vo (Voyage) | Fa (Faction) | Ga (Gauntlet)
Sb (Ship Battle) | Bt (Boss Battle Traits) | Co (Collection) | (Cd (Cadet)
«13

Comments

  • WaldoMagWaldoMag ✭✭✭✭✭
    edited July 18
    I already had this data in Spreadsheet form for CAB Power Ratings scoring, so I figured it would work well with this. Still very new, so if you notice errors, please let me know.

    This sheet will identify any crew that meet the trait requirements for a specific combo node in Fleet Boss Battles. At this time, it doesn't account for multiple crew being used to unlock a single node (it only lists crew who meet the requirements on their own).

    Like other Google Spreadsheets, please make a copy of this and save to your own Drive.

    v1.0 (2022-07-17)
    https://docs.google.com/spreadsheets/d/1h4EpGgqZ3GvFhgLSMJJ919S5UX1J8dyt6a8QffM4tfY/edit#gid=1415034793

    Feedback is welcome.

    I am only at normal difficulty. But, what I have seen every-time is there is one crew who will match the combo. I have used crew to cover as many traits as possible. With the remaining combos, my other account, I usually can see one or two crew who will match say one remaining combo. So with 3 crew if there is two combos left, I will get one more combo with a 50/50 chance on the last. My last account will finish the combos if needed.

    It does help to realize that one crew exits for one combo. But it really helps small fleets that are in communication with each other (or not in communication, just might mean an attempt with no combo unlocked) to be able to cover as many traits as possible with the crew and have two or more crew combine on combos.

    Edit: your tool should help over trying to use crew retrieval which does not have all possible crew (3* one; 4* and 5* many)

    Edit: my last Easy battle had Ktarian ended up being Wildman 2* , but I only figured that out from traits remaining and knowing which traits I had tried.
    BTW, not sure if you have the unshown traits or not?
  • (A) Traveling Man(A) Traveling Man ✭✭✭✭✭
    I've pushed out an update that will include the total number of traits each eligible crew matches. Link updated above.
    CABTools.app
    Ov (Overall) | Vo (Voyage) | Fa (Faction) | Ga (Gauntlet)
    Sb (Ship Battle) | Bt (Boss Battle Traits) | Co (Collection) | (Cd (Cadet)
  • Captain IdolCaptain Idol ✭✭✭✭✭
    This is great! Very very handy!
    Few suggestions, could the list be sorted by number of traits (easy enough to do with a SORT function)
    And could there be a dropdown box with some Data Validation with each trait (just make a list that can dynamically grab from datacore and have the validation grab from that list) so we can just use the dropdown instead of typing it all in manually.
    But aside from that this is going to be extremely useful!
  • (A) Traveling Man(A) Traveling Man ✭✭✭✭✭
    This is great! Very very handy!
    Few suggestions, could the list be sorted by number of traits (easy enough to do with a SORT function)
    And could there be a dropdown box with some Data Validation with each trait (just make a list that can dynamically grab from datacore and have the validation grab from that list) so we can just use the dropdown instead of typing it all in manually.
    But aside from that this is going to be extremely useful!

    Absolutely on both of those. Time was the limiting factor on the SORT. Skill is the limiting factor on the "dynamically grabbing" thing. But I love both ideas. If you want to shoot me some pointers on the latter, I'd definitely be interested!
    CABTools.app
    Ov (Overall) | Vo (Voyage) | Fa (Faction) | Ga (Gauntlet)
    Sb (Ship Battle) | Bt (Boss Battle Traits) | Co (Collection) | (Cd (Cadet)
  • (A) Traveling Man(A) Traveling Man ✭✭✭✭✭
    I added the Sort to the existing version of the spreadsheet. If anyone wants it there ... make a new copy (or add it to your own!). It'll be on any future versions.
    CABTools.app
    Ov (Overall) | Vo (Voyage) | Fa (Faction) | Ga (Gauntlet)
    Sb (Ship Battle) | Bt (Boss Battle Traits) | Co (Collection) | (Cd (Cadet)
  • (A) Traveling Man(A) Traveling Man ✭✭✭✭✭
    New update pushed, to include the dropdown menus. And a couple of trait corrections I found when adding that feature....
    CABTools.app
    Ov (Overall) | Vo (Voyage) | Fa (Faction) | Ga (Gauntlet)
    Sb (Ship Battle) | Bt (Boss Battle Traits) | Co (Collection) | (Cd (Cadet)
  • Captain IdolCaptain Idol ✭✭✭✭✭
    This is great! Very very handy!
    Few suggestions, could the list be sorted by number of traits (easy enough to do with a SORT function)
    And could there be a dropdown box with some Data Validation with each trait (just make a list that can dynamically grab from datacore and have the validation grab from that list) so we can just use the dropdown instead of typing it all in manually.
    But aside from that this is going to be extremely useful!

    Absolutely on both of those. Time was the limiting factor on the SORT. Skill is the limiting factor on the "dynamically grabbing" thing. But I love both ideas. If you want to shoot me some pointers on the latter, I'd definitely be interested!

    I'll have to dig up the piece of code I used but it was a lengthy query formula that took all the traits from all crew in the came, parsed out the unique variants and then tranposed them out.
  • (A) Traveling Man(A) Traveling Man ✭✭✭✭✭
    I'll have to dig up the piece of code I used but it was a lengthy query formula that took all the traits from all crew in the came, parsed out the unique variants and then tranposed them out.

    I think I have the trait list licked from my Power Ratings spreadsheet data. It's the whole "Auto-populating from Datacore" that would give me fits. :)

    Maybe not worth the effort anymore, since I'm already manually adding crew when they come in, but I'm always willing to learn. Or just let smarter people do the work...
    CABTools.app
    Ov (Overall) | Vo (Voyage) | Fa (Faction) | Ga (Gauntlet)
    Sb (Ship Battle) | Bt (Boss Battle Traits) | Co (Collection) | (Cd (Cadet)
  • VenimusVenimus ✭✭
    It is not necessary to have all traits in one crew to unlock, you may spread the traits in multiple crew, thus it is possible that you can pick 3-4 that covers as much as possible of the traits. Is it possible to make the calculator work this way?
    Something like an intersection
  • (A) Traveling Man(A) Traveling Man ✭✭✭✭✭
    edited July 18
    Venimus wrote: »
    It is not necessary to have all traits in one crew to unlock, you may spread the traits in multiple crew, thus it is possible that you can pick 3-4 that covers as much as possible of the traits. Is it possible to make the calculator work this way?
    Something like an intersection

    Certainly an idea, but a little outside the focus so far of this. I think if you leave the Primary field blank, it will just pull up the crew who have all of the other listed traits, sorted by number of matches (that is one-too-high for each). That might work for you if you are just looking to throw spaghetti at the wall (a valid tactic).

    As far as generating specific groups of crew that can unlock a single node in combination ... that sounds like it would require a re-imagining of the sheet. Maybe useful, but not something I'll be able to implement on this sheet in the near-term.
    CABTools.app
    Ov (Overall) | Vo (Voyage) | Fa (Faction) | Ga (Gauntlet)
    Sb (Ship Battle) | Bt (Boss Battle Traits) | Co (Collection) | (Cd (Cadet)
  • Captain IdolCaptain Idol ✭✭✭✭✭
    edited July 20
    I'll have to dig up the piece of code I used but it was a lengthy query formula that took all the traits from all crew in the came, parsed out the unique variants and then tranposed them out.

    I think I have the trait list licked from my Power Ratings spreadsheet data. It's the whole "Auto-populating from Datacore" that would give me fits. :)

    Maybe not worth the effort anymore, since I'm already manually adding crew when they come in, but I'm always willing to learn. Or just let smarter people do the work...

    Not as hard as you might think, I do it with CIDAS.

    Use this on a hidden sheet to import data
    =IMPORTDATA("https://datacore.app/structured/crew.csv")
    

    Then this one for listing (and counting if you need it) the traits on that page
    =TRANSPOSE(ARRAYFORMULA(QUERY(TRANSPOSE(TRIM(SPLIT(QUERY(ARRAYFORMULA('Sheet With Datacore Import'!A:A)&",",,9^99),","))),"select Col1,COUNT(Col1) where Col1<>'' group by Col1",0)))
    

    Because on CIDAS I have the count for purely interest purposes you could take the count column out for just a dynamic trait list. As the ImportData will auto update once in a while when Datacore does it should stay relevant with minimal amount of work.

    Edit: I should mention, take out the transpose if you just want it as a vertical line of traits.
    Edit Edit: You can also use this datacore link to keep your crew lists up to date. Maximum automation!
  • JimBerlinJimBerlin ✭✭✭
    I cannot echo what Idol said enough. You will not regret moving to an import. Everything you need should be in that csv, and the feeling of checking after an update and it actually working without manual input...chef's kiss. If you want a second set of eyes on it, let me know.
  • (A) Traveling Man(A) Traveling Man ✭✭✭✭✭
    edited July 20
    Use this on a hidden sheet to import data
    =IMPORTDATA("https://datacore.app/structured/crew.csv")
    

    This is quite useful indeed. Just knowing that sheet exists is a huge help on a lot of levels. Heck, even for CAB ratings, I'd still have to manually import the final list to the site, but this auto-import eliminates all typos and secret changes.

    And I had just talked myself out of retooling the whole Google Sheet for that. Thanks :D

    Sheet is missing some info though that I'd need, but I can certainly make use of it.
    CABTools.app
    Ov (Overall) | Vo (Voyage) | Fa (Faction) | Ga (Gauntlet)
    Sb (Ship Battle) | Bt (Boss Battle Traits) | Co (Collection) | (Cd (Cadet)
  • cmdrworfcmdrworf ✭✭✭✭✭
    @Captain Idol and now you've got me looking at it for DNA as well.... hmmmmm :smiley:
    Sir, I protest! I am NOT a merry man!
  • JimBerlinJimBerlin ✭✭✭
    edited July 20
    Use this on a hidden sheet to import data
    =IMPORTDATA("https://datacore.app/structured/crew.csv")
    

    This is quite useful indeed. Just knowing that sheet exists is a huge help on a lot of levels. Heck, even for CAB ratings, I'd still have to manually import the final list to the site, but this auto-import eliminates all typos and secret changes.

    And I had just talked myself out of retooling the whole Google Sheet for that. Thanks :D

    Sheet is missing some info though that I'd need, but I can certainly make use of it.

    Preface: This is way easier than it sounds once you get the hang of it. It only took me a while because I'm not code savvy.

    If what you're missing is in a separate file or in the JSON and just needs to be output in a sheet, you can do like I did and gap it onto a separate file.

    Needing info not in a CSV? Set up a completely separate sheet to run a script to pull whatever source JSON file at timed intervals and output what you want, how you want. Then, you can make another tab in that sheet that all of the work and heavy lifting is done in. This becomes a source for import in the final sheet. In the end, your users have a sheet with the import function. That pulls data from a page that uses an import html to get the raw file and then convert to usable format.

    For an example, see this: https://docs.google.com/spreadsheets/d/1cyxS2wZRJPfUn5gGjBR6DhbGdqymAkgGPOWkS2IvNDo/edit?usp=sharing

    If it's just needing info from another csv, then you can import both into the master file, tinker and reformat how you want it into another tab, and then import that tab into the user-facing file.
  • Captain IdolCaptain Idol ✭✭✭✭✭
    cmdrworf wrote: »
    @Captain Idol and now you've got me looking at it for DNA as well.... hmmmmm :smiley:

    You wouldn't need to publish a new version every time a crew changes, just pull the data direct and change all your formulae to be more adaptive.
    The only reason I don't do that for Hyper Backend is....wait why don't I do that for Hyper Backend?
  • Selene 7Selene 7 ✭✭✭✭
    This is great, thanks so much for sharing! One suggestion would be if you could somehow "check" which crew have already been tried, so you can quickly see which others are also not worth trying?
  • Selene 7Selene 7 ✭✭✭✭
    Nice, looking forward to trying it out! One question, when you "check mark" a crew, does it also automatically cross out other crew that become ineligible (because they have only the same possible traits)?
  • Great Tool, it really helps a lot!
    I made an addition to my copy, which others may find useful too.
    I wanted to quickly see, which crew satisfies the same traits so we only check one of them.
    I came up with this solution.
    'X' means crew matches trait at this position, '_' means no match.
    Crew with the same pattern matches the same traits
    gtmhiuuso7d7.png

    In Sheet "CrewImport" I added column CX with the following formula
    =TEXTJOIN(" ", false,"[",
    IF(BZ2<>true,"_","X"),
    IF(CA2<>true,"_","X"),
    IF(CB2<>true,"_","X"),
    IF(CC2<>true,"_","X"),
    IF(CD2<>true,"_","X"),
    IF(CE2<>true,"_","X"),
    IF(CF2<>true,"_","X"),
    IF(CG2<>true,"_","X"),
    IF(CH2<>true,"_","X"),
    IF(CI2<>true,"_","X"),
    IF(CJ2<>true,"_","X"),
    IF(CK2<>true,"_","X"),
    IF(CL2<>true,"_","X"),
    IF(CM2<>true,"_","X"),
    IF(CN2<>true,"_","X"),
    IF(CO2<>true,"_","X"),
    IF(CP2<>true,"_","X"),
    IF(CQ2<>true,"_","X"),
    IF(CR2<>true,"_","X"),
    IF(CS2<>true,"_","X"),
    IF(CT2<>true,"_","X"),
    IF(CU2<>true,"_","X"),
    IF(CV2<>true,"_","X"),
    IF(CW2<>true,"_","X"),"]")

    And a small change in Sheet "Eligable Crew", so the additional column will be displayed
    =IFERROR(SORT(QUERY({CrewImport!A2:CX},"SELECT Col1, Col77, Col54, Col102 WHERE (Col75=TRUE and Col76=TRUE and Col78=TRUE)"), 2, FALSE), "None")
  • (A) Traveling Man(A) Traveling Man ✭✭✭✭✭
    Selene 7 wrote: »
    Nice, looking forward to trying it out! One question, when you "check mark" a crew, does it also automatically cross out other crew that become ineligible (because they have only the same possible traits)?

    It doesn't yet. Working on something that will do something similar, but that won't be for a future update.
    CABTools.app
    Ov (Overall) | Vo (Voyage) | Fa (Faction) | Ga (Gauntlet)
    Sb (Ship Battle) | Bt (Boss Battle Traits) | Co (Collection) | (Cd (Cadet)
  • Selene 7Selene 7 ✭✭✭✭
    Ok, thanks, good to know. I've been testing the new version, works nicely. Very handy to see the traits!
  • [DKA] henka[DKA] henka ✭✭
    edited July 28
    Did some minor adjustment to my version to quickly see crew with the same traits from the trait list.
    Now it looks like this, which makes it easy to elimate all crew with the same trait combination.
    gjm5ujfk78fx.png

    Just changed the sorting on the main sheet.
    =IFERROR(SORT(QUERY({CrewImport!A2:CX},"SELECT Col1, Col77, Col54, Col102 WHERE (Col75=TRUE and Col76=TRUE and Col78=TRUE)"), 2, FALSE, 4, FALSE), "None")
  • JimBerlinJimBerlin ✭✭✭
    Did some minor adjustment to my version to quickly see crew with the same traits from the trait list.
    No it looks like this, which makes it easy to elimate all crew with the same trait combination.
    image removed to save space
    Just changed the sorting on the main sheet.
    =IFERROR(SORT(QUERY({CrewImport!A2:CX},"SELECT Col1, Col77, Col54, Col102 WHERE (Col75=TRUE and Col76=TRUE and Col78=TRUE)"), 2, FALSE, 4, FALSE), "None")

    Very nice! I was messing with Muad'Dave's and made a system to convert all of the trait strings via split, then match against listed traits from the board, rejoin, then alphabetize before splitting out again to a list of pertinent traits. Then, I use query to sort crew by number of hidden traits matched and by alpha. Then end result looks like this...

    zv4ph73p5tqv.png


    It does the same thing with a lot more processing, but due to query can more easily be adjusted and catered. What I'd love to see from any tool is an indication of crew in multiple nodes at once. Doesn't look like this one allows for looking at more than one node in a combo at a time. Great work on this to all contributing.
  • [DKA] henka[DKA] henka ✭✭
    edited July 28
    @(A) Traveling Man I just found, that your formula in sheet "CrewImport" columns BW and BX does not go all the way down to the end of the sheet. This will prevent new crew from showing up in "Eligible Crew".
    ui85memohk1a.png
  • (A) Traveling Man(A) Traveling Man ✭✭✭✭✭
    @(A) Traveling Man I just found, that your formula in sheet "CrewImport" columns BW and BX does not go all the way down to the end of the sheet. This will prevent new crew from showing up in "Eligible Crew".
    ui85memohk1a.png

    Yikes - thanks for pointing it out! I'll get a new version pushed today with a fix.
    CABTools.app
    Ov (Overall) | Vo (Voyage) | Fa (Faction) | Ga (Gauntlet)
    Sb (Ship Battle) | Bt (Boss Battle Traits) | Co (Collection) | (Cd (Cadet)
  • (A) Traveling Man(A) Traveling Man ✭✭✭✭✭
    CABTools.app
    Ov (Overall) | Vo (Voyage) | Fa (Faction) | Ga (Gauntlet)
    Sb (Ship Battle) | Bt (Boss Battle Traits) | Co (Collection) | (Cd (Cadet)
  • (A) Traveling Man(A) Traveling Man ✭✭✭✭✭
    JimBerlin wrote: »
    What I'd love to see from any tool is an indication of crew in multiple nodes at once. Doesn't look like this one allows for looking at more than one node in a combo at a time. .

    It will. Working on both items for the next version!

    CABTools.app
    Ov (Overall) | Vo (Voyage) | Fa (Faction) | Ga (Gauntlet)
    Sb (Ship Battle) | Bt (Boss Battle Traits) | Co (Collection) | (Cd (Cadet)
  • JimBerlinJimBerlin ✭✭✭
    edited July 29
    It will. Working on both items for the next version!

    Great! I've already added those to my current version of Muad'Dave's. The big riddle is if there is any way to make check boxes feed info forward and be dynamic without JS. I think the answer is a big fat "No".

    The best I could come up with reasonably was ordering the traits to make it easy to track one's you should mark out because they are redundant. Here was a situation early when we were using my version where we could easily work out the pathing...

    wdrzygvn4wvj.png
    uazk8x8nscfo.png
    u40tk5anzbvk.png


    The only way I'd know to match up what all combos a crew covers and remove redundancy would be to list all of the combos and cross reference them all. That would get extremely verbose. I know I had a node where Gangster Spock hit 8 hidden traits yesterday. That would be 28 combinations, i think. Since that pool size would be variable, i would think you could run into issues on rare occasions. You would, once again, have to script a function to not have to write tons of data.

Sign In or Register to comment.