-
-
Save Sanqui/640e36d8f6b5fb6d4357 to your computer and use it in GitHub Desktop.
| map | |
| "A game-specific physical instance of a location_area" | |
| * location_area | |
| * version_collection (?) | |
| * width | |
| * height | |
| map_connection | |
| "A physical connection between two maps" | |
| * map0 | |
| * map1 | |
| * side = enum(ns, ew, dive) | |
| * order | |
| map_entity | |
| "A sprite, trigger, sign, or warp somewhere on an overworld map" | |
| * map | |
| * x | |
| * y | |
| * solid (bool) | |
| * activation (enum: walk, action) | |
| * sprite (NULL=no sprite) | |
| map_entity_item | |
| "An item obtainable from a map entity" | |
| * map_entity | |
| * item | |
| * amount | |
| * method = enum(found, obtained, ?) | |
| map_entity_battle | |
| "A battle with a trainer, linked to a map entity" | |
| * map_entity | |
| * trainer_battle | |
| map_entity_pokemon | |
| "A Pokémon linked to a map entity, either directly fought, received, or being an in-game trade." | |
| * map_entity | |
| * individual_pokemon | |
| * event_type = enum(battle, receive, trade) | |
| * traded_pokemon_species (nullable) | |
| map_entity_shop | |
| "A shop linked to a map entity. Does not include item trades. Everything in a shop can be bought repeatedly." | |
| * map_entity | |
| map_entity_shop_slot | |
| "A single item/tutored move/Pokémon which can be bought in a shop." | |
| * map_entity_shop | |
| * item (nullable) | |
| * individual_pokemon (nullable) | |
| * move (nullable) | |
| * cost | |
| * slot | |
| * currency | |
| map_entity_move_tutor | |
| "An overworld move tutor" | |
| * map_entity | |
| * move | |
| map_entity_special | |
| "A special-purpose map entity, such as the name rater, or the move deleter." | |
| * map_entity | |
| * purpose = enum(name_rater, move_deleter, move_reminder) | |
| trainer_class | |
| "An in-game trainer class. This also determines the trainers' battle sprite" | |
| * name (multilang) | |
| * identifier | |
| trainer | |
| "A trainer found in the game" | |
| * trainer_class | |
| * name (multilang) | |
| * trainer_id | |
| trainer_battle | |
| "A particular battle with a trainer" | |
| * trainer | |
| * battle_style = enum(single, double, triple, rotation, sky, inverse) | |
| * payout | |
| trainer_battle_item | |
| "A trainer's usable item in a particular battle" | |
| * trainer_battle | |
| * item | |
| * amount | |
| trainer_battle_pokemon | |
| "A trainer's Pokémon in a particular battle" | |
| * trainer_battle | |
| * individual_pokemon | |
| * slot | |
| individual_pokemon | |
| "An individual Pokémon inside a game, e.g. from a trainer or given to the player" | |
| * pokemon_species | |
| * level (nullable for e.g. trades) | |
| * item | |
| * is_egg | |
| * ivs | |
| * ability | |
| * gender (nullable) | |
| * enhanced_contest_stat (gen 3 trades) | |
| * nickname (multilang) | |
| * original_trainer | |
| individual_pokemon_move | |
| "An individual Pokémon's move. If a Pokémon has no move row, they are | |
| supposed to simply know level-up moves at their level" | |
| * individual_pokemon | |
| * move | |
| * slot | |
| currency ; e.g. money, coins, ash, berrypowder, bp, pokemiles | |
| * name (multilang) | |
| * introduced_in? probably pointless |
| pokedex_media would gain: | |
| - all static maps | |
| - gen 4 and 5 maps rendered orthogonally | |
| - all front-facing overworld sprites | |
| - all trainer class sprites |
From IRC:
>map_entity_move_tutor: some tutors teach multiple moves
then there's multiple map_entity_move_tutor columns pointing to the same map_entity
much like how one map_entity can give out multiple items, or have multiple trainer battles
Oh, huh. That wasn't obvious.
If you're looking up route 2 trainers, I don't think it's so outrageous to have to go through the route 2 map.
It's a relational database; there doesn't have to be a strict hierarchy. We should keep the database as modular as possible: if i don't care about the detailed map data i should be able to ignore it.
Oh, huh. That wasn't obvious.
I can't really think of a better way.. Basically, _tutor, _trainer, _item, _shop etc. for entities are like events which the entity can emit.
If you're looking up route 2 trainers, I don't think it's so outrageous to have to go through the route 2 map.
It's a relational database; there doesn't have to be a strict hierarchy. We should keep the database as modular as possible: if i don't care about the detailed map data i should be able to ignore it.
For one, it's simply redundant. Are there other instances of redundancy like this in pokedex right now? Besides version stuff.
Also, In Red/Blue, there are different trainers on different routes, but pointing to identical parties. That's why you can't simply slap location on a trainer, because it can be pointed to from both route 24 and 25 entities.
If you're looking up route 2 trainers, I don't think it's so outrageous to have to go through the route 2 map.