RogueEdit / pyRogue

Educational Project
GNU Affero General Public License v3.0
51 stars 37 forks source link

Bug: Added Genders and Toggle for Certain Pokemon #185

Closed Kishuna closed 1 month ago

Kishuna commented 1 month ago

Bug

Reproduction

Expected Behavior

Screenshots

JulianStiebler commented 1 month ago

The name is in "All Forms" - it is intended to produce all genders aswell. The game just accepts it, so figured why not - if you dont like that you can either set the code to generate values for the caughtAttr lowered by the bit amount of Male/Female needed;

class DexAttr(Enum):
    NON_SHINY = 1
    SHINY = 2
    MALE = 4
    FEMALE = 8
    VARIANT_1 = 16
    VARIANT_2 = 32
    VARIANT_3 = 64
    DEFAULT_FORM = 128

If it bothers you: -> Either edit every caughtAttr relevant in your trainer.json manually to be shifted by 4 or 8 down depending on what gender The caughtAttr is set together based on all before going variables, meaning a female+male pokemon has both 4+8 included. Reducing it by 4 or 8 respectively should remove either gender of its possibilities.

If you want a feature seen that alleviates this automatically: -> Feel free to edit the hasForms.json for me so it indicated also the Gender Status; or simply list here what pokemond should be prefixed to which gender specifically;

For example: Lets assume Gender = 0 means it can have both, gender=1 male, gender=2 female

Cresselia Gender 2 Rayquaza Gender 1 etc

Kishuna commented 1 month ago

Thank you for clarifying. I suspected this might be the case, but I wasn't entirely sure, so I listed it as a bug. This issue does bother me personally, but with this information, I can make the necessary adjustments for my own use.

I would be more than happy to list each Pokemon, but I would have to look into it. Please leave this open and expect an update in the next day or so.

Thank you again!

JulianStiebler commented 1 month ago

Alrighty, thank you very much. Once i have the appropiate data i will implement it to also ask to unlock all genders, if set to None i will try to setup the caughtAttr's to take genders in account related to each ID.

A simple list as mentioned is already enough to work with;

Gender 0 = Can have both (All that are not listed kinda) Gender 1 = Male Only Gender 2 = Female Only

Just need to list the ones that are specific;

Cresselia - Gender 2
Rayquaza - Gender 1

As the lst above is best; Im currently merging multiple .json together: For example hasForms, species, starters could all be done in one, also making code readablity and usability easier.

Kishuna commented 1 month ago

As promised, please see here. There are a lot of gender-specific species, so I had to put it into a Sheet.

A few things to note:

Please let me know if there is anything else I can do to help.

JulianStiebler commented 1 month ago

Oh time flew by, no new issues popped up and i forgot to look. How they are entried in slot*.json doesnt really matter for our purpose, if the caughtAttr is correct setly it will start the game anyway with the correct data into slot*.json.

I'll add the genders and also some other cool stuff in a upcoming update - but it might take a while

(Sneek Peek) {

    "dexData": {
        "1": {
            "name": "Bulbasaur",
            "isStarter": true,
            "hasPassive": true,
            "hasForms": null,
            "gender": 0,
            "group": 0,
            "type": [
                11,
                3
            ]
        },

I also added types to all forms, and some more data i won't display here yet, so it's getting deep 🗡️

JulianStiebler commented 1 month ago

Oh i forgot to close; gonna take a while for next update.