GithubHelp home page GithubHelp logo

pad-data-pipeline's People

Contributors

akshay24anil avatar allieta avatar barkuto avatar chasehult avatar chesteripz avatar cokatrice avatar daleks-pad avatar dchang0413 avatar hhxhhxhhx avatar kary5678 avatar loopdeer avatar mushymato avatar neverdecaf avatar nurungji0715 avatar renimama avatar rheingoldriver avatar tactical-retreat avatar tsubakibotpad avatar vinkert avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

ssac tylergibson

pad-data-pipeline's Issues

Auto transliteration issue with card #6293

No. 6293 One For All, All Might has jp name 「ワン・フォー・オール」オールマイト and the automatic transliteration of the jp name is just fo which is the part between the dots, フォー. Unclear if this is a data issue with this one card and needs to be changed in the crud or a code issue where we have to change handling of special characters for a more general case.

Figure out what to do about monsters that aren't automatically found as drops

We need to figure out what to do about monsters that aren't automatically found as drops

Currently farmable status is joining monsters to drops. So we could either:

  1. Create fake rows in dropdata table
  2. Add some new column override_farmable in monsters (probably this)
  3. Make a new table with manual farmable data (not sure if there's any merit to this option vs the other two)

Start exporting separate jp and na versions of cards

I think we add a column internal_monster_id which is XXXX_na or XXXX_jp whenever there's a difference for that one card, and then we add an extra entry for that one card; otherwise this column is the normal id

then we use internal_monster_id as the PK/FK and use this in all of our joins.

Export new tables monsters_na, active_skills_na, leader_skills_na, evolutions_na, exchanges_na (maybe don't bother with drops_na)

In MonsterGraph instead of node[model] we have node[models] = { 'na': , 'jp': } and these will normally point to the same thing but may point to different. Then graph.get_monster takes an optional param of server (defaults to jp and returns the na model if we want it to.

That should be like everything needed to fill TsubakiBotPad/pad-cogs#81

Make a new table called `monster_name_overrides` with fields `name_en` and `is_translation`

Make a new table called monster_name_overrides with fields name_en and is_translation

Also foreign key monster_id

image

is_translation is expected to be true always but this anticipates the possibility of it sometimes maybe not being true just in case; and the separate table moves manual data out of monsters. Also this opens up support for a name_ko idk.

Anyway once we do this we can automate fixing stuff like Maggie automatically, see TsubakiBotPad/pad-cogs#1010

Add manual description field to awakenings

We can put in better descriptions with stats etc and use this to auto populate "advanced help" for awoken skills

Potentially we can also use this to auto generate the padglobal command statawoken

Max skill level does not match NA version

That is an ongoing issue I also reported to tactical_retreat previously. The maximum level for skills get changed from time to time. Unfortunately, that is not in sync across the JP, KR and NA version. NA usual gets these changes much later (sometimes months later). Here is a current example (20.12.2020):

Monster 2512 (Snow Star Byakko, Haku) has active skill 634 (Western Seven-Star Formation). In the database "turn_min" is 7 (Skill Level 8). Which is probably true for JP version (and maybe KR) but in the NA version the minimum turn is still 8 (Skill Level 7).

Fix old awakenings not being deleted when awakening count goes down

To fix this manually, find the offending IDs (they'll be listed in the human_fix_errors) and run this SQL to get all of the bad awakening IDs.

SELECT a1.awakening_id FROM awakenings AS a1 LEFT JOIN awakenings AS a2 ON a1.monster_id = a2.monster_id AND a1.order_idx < a2.order_idx  WHERE a1.monster_id IN (<PUT MONSTER IDS HERE>) AND a2.order_idx IS NULL;

delete old evolutions data

from aradia:

DELETE FROM evolutions WHERE evolution_id IN (30766, 30764, 30754, 30555, 30757, 30763, 30557, 30753, 30761, 30759, 30556, 30756, 30769, 30758, 30760, 30755, 30768, 30765, 30767, 30762);

When FUA is true damage write "additional true damage"

Example for Aljae:

10,000,000 additional damage when matching 4 or more colors; reduce damage taken by 50% when matching 5 orbs in an L shape; 20x ATK when matching 4 or more colors; 1.5x HP for Wood Att.

->

10,000,000 additional true damage when matching 4 or more colors; reduce damage taken by 50% when matching 5 orbs in an L shape; 20x ATK when matching 4 or more colors; 1.5x HP for Wood Att.

will need jp translation as well

Dungeon names can accidentally have more than one type prefix

Sometimes, dungeons can have more than one name prefix indicating their type. I think this has only been due to a typo by GHNA.

At one point, dungeon 4407 had this NA name, indicating (twice) that it was a quest dungeon:
#Q##Q#November Quest Dungeon-Int

This was eventually fixed, and the name is now:
#Q#November Quest Dungeon-Int
There are currently no dungeons with more than one type marker.

If the second marker is not stripped, you store the name as #Q#November Quest Dungeon-Int. Not a HUGE deal.

There is one that currently has two identical color markers, but the code doesn't break from it. It will probably be fixed at some point.
d=4429 f=7: $47ae64$$47ae64$Kaguya-Hime!-No RCV/Awoken Skills

The code which handles this:

for prefix, dungeon_type in prefix_to_dungeontype.items():
if self.clean_name.startswith(prefix):
self.dungeon_type = dungeon_type
self.clean_name = self.clean_name[len(prefix):]
break

Shikokuen (new Leilan story drop) leader skill issue

[Fixed 5 second movetime] 2x all stats for Attacker and Devil type; 2x ATK when matching 2+ Dark combos; 6.5x ATK when matching 1+ of Poison and Mortal Poison at once

should be Poison OR mortal poison

card id is 6801

image

Some exchange.py fields

https://github.com/TsubakiBotPad/pad-data-pipeline/blob/4a50f89665327814cdb69081d9255b8117ad7c8f/etl/pad/raw/exchange.py#L36-L39

[5] is level of the resulting monster.

[6] is bitflags for the resulting monster:

  • &1: Max-skilled.
  • &2: Max-awoken.

https://github.com/TsubakiBotPad/pad-data-pipeline/blob/4a50f89665327814cdb69081d9255b8117ad7c8f/etl/pad/raw/exchange.py#L68-L71
Bitflags.

  • &1: No dupes.
  • &2: "Restricted"/"One-Time Only!"
  • &4: Multiexchange. Brings up the menu where you can exchange up to 30 times at once.

Enemy Skill Additions?

In order to not need to process the raw enemy_skill data in the bot itself, the parameters for the skills must be stored in the database or the processing to emoji text needs to be done in the pipeline.
Example of the parameters:

Skill Type 105: DebuffRCV
Parameters: 1 and 2
p1: turns it is available
p2: buff/debuff amount
The parameters are super scuffed and are stored as an array of 16 parameters. Unused parameters are null. No I do not know why Gungho did it this way.

To store the processed text it should be in theory as easy as making a new converter (similar to EnESConverter) that extends the BaseConverter. Instead of outputting english/jp/kr you would output emojis/condensed text.

Regardless the skill type should probably also be stored in the enemy_skills table just in case something is missing/some weird edge case needs to be handled.

Finally (not related to Enemy Skills), MonsterBehaviors should maaaybe be stored as a JSON/XML...maybe...right now I am simply deserializing the behavior blob by copying the MonsterBehavior class from the pipeline. It might be impossible to fix this without fully restructuring how MonsterBehaviors are made.

Remove all diacritical-only monster name overrides

This code is in monster_model:

if self.name_en == self.name_ja:
    self.roma_subname = self.make_roma_subname(self.name_ja)
else:
    # Remove annoying stuff from NA names, like Jörmungandr
    self.name_en = tsutils.rmdiacritics(self.name_en)

Make Skill-leveling dungeons not skipped when dungeons are refreshed

rlr7d509/28/2020
There is a missing update in the current sqlite database file. Yian Kut-Ku (6463) is missing as encounter for the Skill Leveling Dungeon Monster Hunter (4151); *5 Monsters subdungeon (4151001).
Downloaded the sqlite file one hour ago.

rlr7d509/30/2020
I am not sure if you plan to look into this. But it sounds similar to a problem I had when I was using tactical_retreats SQL database. The issue was that they would reuse the skill leveling dungeons and add new monsters to it. In his case tactical_retreats would not touch a dungeon once was in his database. He had to fix it to make an update if they added new monsters.

rlr7d5Today at 10:01 PM
There is an "encounters" table with two foreign keys. One to dungeon and one to sub_dungeon
well and monster_id of course

Menuit leader skill starts with lowercase i

"increase combo by 1 when matching 3 or more colors; 1000000 additional damage when matching 3 or more colors; 24x ATK and reduce damage taken by 60% when matching 5 Heal orbs in a cross formation"
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.