Recently I’ve been trying to grow my skills by modding an open source game called shattered pixel dungeon and I’ve run Into a problem I don’t quite understand (public int talentPointsAvailable(int tier){ if (lvl < (Talent.tierLevelThresholds[tier] - 1) || (tier == 3 && subClass == HeroSubClass.NONE) || (tier == 4 && armorAbility == null)) { return 0; ) ((https://github.com/00-Evan/shattered-pixel-dungeon/blob/master/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/actors/hero/Hero.java) (line 372)) This right here, especially (public int talentPointsAvailable(int tier)) I don’t quite understand It seems Its getting a returned 0 but If you look through the code this isn’t exactly defined anywhere doesn’t say where the values going or what It’s affecting but seems to mysteriously be effecting the amount of talent points (amount of stars I have In img above) when I change the returned value. initially I just wanted to challenge myself by giving myself as many talent points as I could but now I just want to know what’s causing that to change the default amount of talent points I have and how you figured It out?

  • @[email protected]
    link
    fedilink
    English
    21 year ago

    That method is called in 4 other files. Without going through the game and checking what it’s doing, I assume this is the one that’s relevant for you:

    core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui/TalentsPane.java‎ line 204:

    int openStars = Dungeon.hero.talentPointsAvailable(tier);

    To find this (and other instances), you need to search the entire repo, not just the file, for instances of this method, like so:

    (Press Enter to perform the search; the contextual item that appears in the search box as you type will only show the method definition.)

    • @NoneoOP
      link
      0
      edit-2
      1 year ago

      Yea sry I should’ve clarified there are 4 references but

      1. (Int openStars = Dungeon.hero.talentPointsAvailable(tier)) If you search the repo for (openStars) then you’ll find this Is basically an If statement checking whether there should be a star/talentpoint texture on the UI or If there shouldn’t so It doesnt exactly effect whether I can upgrade any talents at all which changing the returned value from 0 to something else does do

      numbers 2. 3. 4. Are all If statements mostly checking whether (Dungeon.hero.talentPointsAvailable(tier) is greater or less than 0.

      Maybe < > this means something different then what I thought? Idk

      • @[email protected]
        link
        fedilink
        2
        edit-2
        1 year ago

        It looks like this one:

        shattered-pixel-dungeon/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/ui /TalentButton.java

        is what affects whether you can upgrade your ability or not. The TalentsPane one governs what displays on the panel you pasted the screenshot of, and this one governs what happens when you click the button to upgrade a thing. The onClick method at line 110, In pseudocode:

        When you click the upgrade button:

        • If you’re in upgrade mode,
        • And the hero exists,
        • And the hero is alive,
        • And you have at least 1 talent point available,
        • And the talent you clicked is not maxed,

        Add a point to that talent.

        Bolded line being the one that’s influenced by the method you’re asking about.

        • @NoneoOP
          link
          -11 year ago

          Thank you I looked at that one I guess my brain kept skipping over It cause I dismissed it before I could even get the chance to see what I missed before thanks