• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Improved Battle Menu and Summary Screen [v17.2]

658
Posts
7
Years
  • Improved Battle Menu and Summary Screen


    Improved Battle Menu and Summary Screen [v17.2]
    Improved Battle Menu and Summary Screen [v17.2]

    (The Genesect in this battle has the Aerilate ability, that's why its Body Slam is Flying type. This was done to showcase the correct type displaying feature of the script.)


    Overview:
    This resource aims at replicating the feature in SM/SwSh which shows how effective a move is on an opponent (Super Effective, Not Very Effective etc) on the opposing Pokemon. However this resource builds upon this idea by allowing the player to see which moves receive Same Type Attack Bonus (or STAB) as well as the correct type of a move in the case of moves like Weather Ball and Abilities like Aerilate. Since with Essentials we don't have that much screen real estate to show the effectiveness with text, I've decided that highlighting the move's name based on the effectiveness is the best option for this.

    Sun Moon Type Effectiveness Display vs Essentials Equivalent:
    Improved Battle Menu and Summary Screen [v17.2]
    Improved Battle Menu and Summary Screen [v17.2]




    Features:
    1. Color Coded Type Effectiveness which can easily be customized.
      Example:
      Spoiler:
    2. Displaying the types of Moves correctly in the Fight Menu. This applies to Moves like Hidden Power, Judgement, Revelation Dance, Weather Ball, Terrain Pulse and Abilities Like Refrigerate, Liquid Voice etc.
      Example:
      Spoiler:
    3. Displaying Highlighting for Moves if they receive Same Type Attack Bonus (or STAB) from Moves. This is displayed in 2 Different Styles.
      Example:
      Spoiler:
    4. Displaying all of the above in the Summary Screen when in Battle (New Style of Summary Screen)
      Example:
      Spoiler:
    5. Switches which can easily be used to control every aspect of the script.


    Instructions[UPDATED]
    Spoiler:



    Download Linkhttps://www.mediafire.com/file/ns9hgfcyfb9ykr8/file
    Please Credit Golisopod User if you use this script.

    This script is not compatible with Luka SJ's Elite Battle System/Elite Battle DX.


    Feedback would be greatly appreciated, especially about the summary screen. Please report any bugs you may find in the script.



    Minor Issues:
    Spoiler:


    Changelog:
    Spoiler:
     
    Last edited:
    44
    Posts
    4
    Years
  • This is a great script.

    A lot of people that plays the main games, or the games that we made, have problems with the types and effectiveness, so this is a great help for them.

    In my opinion, maybe some option (a switch, as you said) for turning on/off, for those that doesn't want it could be pretty cool.

    I noticed that it doesn't display the buttons for Z moves, ultra burst or the recently added script for dynamaxing made by Lucidious89.

    Could they be added?

    Thanks for your effort and for this script, of course.
     
    658
    Posts
    7
    Years
  • I noticed that it doesn't display the buttons for Z moves, ultra burst or the recently added script for dynamaxing made by Lucidious89.

    Could they be added?

    Ironically, the project I implemented this in first did have Dynamax and Z Moves, but I removed all of that functionality just so that the script would be compatible with the base version of Pokemon Essentials.

    I'll be sure to make those edits in a later update, seeing that many people are gonna be using the new Dynamax Script.
     
    Last edited:
    286
    Posts
    5
    Years
    • Seen May 9, 2024
    This is a cool script, and I even got it to work with Reborn-style Field Effect type modifiers, which is really useful for people who don't have move type changes based on a field memorized. However, there was 1 problem I encountered (even before changing it to work with field effects). When sending out a Kyogre (in doubles) knowing Detect, Metronome, Night Shade, and Origin Pulse, a message saying "But it had no effect" just keeps playing right after I click on the "Fight" option. The opposing Pokemon were Togekiss (with Fairy type) and Cherrim. I would guess the problem is with Night Shade or Origin Pulse because Protect and Metronome worked fine on my other Pokemon and maybe there's a problem with Night Shade's fixed damage or Origin Pulse's multi-target attribute.

    EDIT: Something else I noticed was that when hovering over a grass move when the opponent has Sap Sipper raises the opponent's attack to +6 and keeps saying "Sap Sipper makes [move] ineffective". I think this is due to calling pbTypeImmunityByAbility in the effectiveness method you defined, which will display messages and make attack boosts each time it's called. I realize that this is also what is causing a problem with Kyogre's Origin Pulse, as the field I was on makes Water moves ineffective against Grass Pokemon as defined in pbTypeImmunityByAbility. I would recommend just removing this check because it also can reveal the opponent's ability in circumstances that one would normally not know at first like with figuring out whether Lanturn has Water Absorb/Volt Absorb, and whether Azumarill has Huge Power/Sap Sipper.

    EDIT 2: Also, changing the colors in customizable options doesn't work. I think this has something to do with this section of code (in def update) using the values originally defined in the customizable options section instead of the variable names (it worked when I replaced them):
    Code:
          if !PBTargets.notCheckedForType?(moves[i])
            if !battle.doublebattle || (battle.doublebattle && !PBTargets.targetsOneOpponent?(moves[i]))
              if typemod>8
                textpos.push([moves[i].name,x+96,y+8,2,Color.new(0,255,0),Color.new(0,155,0)])
              elsif typemod<8 && typemod>0
                textpos.push([moves[i].name,x+96,y+8,2,Color.new(255,0,0),Color.new(155,0,0)])
              elsif typemod==0
                textpos.push([moves[i].name,x+96,y+8,2,Color.new(164,164,164),Color.new(255,255,255)])   
              else
               textpos.push([moves[i].name,x+96,y+8,2,
                 PokeBattle_SceneConstants::MENUBASECOLOR,PokeBattle_SceneConstants::MENUSHADOWCOLOR])
               end
            else
              if typemod>8
                textpos.push([moves[i].name,x+96,y+8,2,Color.new(0,255,0),Color.new(0,155,0)])
              elsif typemod<4 && typemod>0
                textpos.push([moves[i].name,x+96,y+8,2,Color.new(255,0,0),Color.new(155,0,0)])
              elsif typemod==0
                textpos.push([moves[i].name,x+96,y+8,2,Color.new(164,164,164),Color.new(255,255,255)])   
              else
               textpos.push([moves[i].name,x+96,y+8,2,
                 PokeBattle_SceneConstants::MENUBASECOLOR,PokeBattle_SceneConstants::MENUSHADOWCOLOR])
               end
            end
          else
            textpos.push([moves[i].name,x+96,y+8,2,
               PokeBattle_SceneConstants::MENUBASECOLOR,PokeBattle_SceneConstants::MENUSHADOWCOLOR])
          end
     
    Last edited:
    658
    Posts
    7
    Years
  • EDIT 2: Also, changing the colors in customizable options doesn't work. I think this has something to do with this section of code (in def update) using the values originally defined in the customizable options section instead of the variable names (it worked when I replaced them:
    Code:
    <code>

    I was literally fixing the Customizable Options when you posted this.

    The script has been updated to v1.5.
     
    Last edited:
    21
    Posts
    4
    Years
    • Seen Nov 23, 2023
    It looks really good. Maybe just add the primordial weathers in the list of immunities but it's a detail.
     
    286
    Posts
    5
    Years
    • Seen May 9, 2024
    I found a couple more problems. At first I thought it was something that I changed about the script, but found the same problems when I put the unchanged (v1.5) code into default essentials 17.2. I took a couple of screen captures that show these problems. Firstly, it seems that non-damaging moves are still bolded for STAB if they match the user's type. Also, as shown with the Kadabra, Absorb (and all grass moves to my experience) displays as though it should be normally effective even though both opponents resist Grass. Another thing I realized was that Sky Drop doesn't seem to display type effectiveness, though it will be bolded for STAB.

    EDIT: Note that Absorb correctly displays type-effectiveness in single battles.
     

    Attachments

    • Improved Battle Menu and Summary Screen [v17.2]
      Capture.PNG
      35.7 KB · Views: 43
    • Improved Battle Menu and Summary Screen [v17.2]
      Capture1.PNG
      34.9 KB · Views: 35
    Last edited:
    658
    Posts
    7
    Years
  • I found a couple more problems. Firstly, it seems that non-damaging moves are still bolded for STAB if they match the user's type.
    That's an oversight on my part. It should be fixed in the next update.

    Also, as shown with the Kadabra, Absorb (and all grass moves to my experience) displays as though it should be normally effective even though both opponents resist Grass. Another thing I realized was that Sky Drop doesn't seem to display type effectiveness, though it will be bolded for STAB.

    EDIT: Note that Absorb correctly displays type-effectiveness in single battles.

    I just need to mention that the script behaves super weird in Double Battles. There aren't any crashes as such, just that the highlighting may be a little weird at times. I am working on fixing that though. (should be fixed in v2.0)
     
    50
    Posts
    4
    Years
    • Seen Oct 17, 2023
    It is a cool script, it works quite well. Even if you change it slightly, even in 16.2.
     
    50
    Posts
    4
    Years
    • Seen Oct 17, 2023
    Well, I only made 2 changes to make it work, almost everything is the same and the instructions are the same


    - The .fainted? changed it to .isFainted?
    - The images have different names then change it.

    With just those two things it works for me.
     
    286
    Posts
    5
    Years
    • Seen May 9, 2024
    There's 1 thing I noticed in double battles that is small, but probably easily addressed, as shown in the attached video. For some reason, the type effectiveness of the Pokemon initially selected doesn't seem to work properly, though hovering off it and back on fixes the problem (I have green for super-effective and yellow for not-very-effective). Perhaps there's an odd interaction with the move slot and Pokemon index? Confusion is in move slot 3 with Togekiss in battler index 3 (I think), while Photon Geyser is in move slot 2 with Gardevoir in battler index 2. This also matches up with Accelerock as also shown, as it's in move slot 3 which corresponds with Togekiss (therefore showing super-effective). I think the initial target battler index is always 1 unless it's like Acupressure and targets only the user or partner.

    This is consistent with your video as well, though it's harder to see:
    Genesect's Magnet Bomb is in move slot 3, while Genesect itself is also at index 3 (resisted against both Blaziken and Genesect)
    Genesect's Aerilate Body Slam is in move slot 1, while Blaziken is also at index 1
    Arceus' Judgment is in move slot 0, while Arceus itself is also at index 0 (resisted against both Arceus and Blaziken)

    Maybe this is what you were talking about in the minor errors section, but this information could possibly help? I couldn't find out where this would be happening in the script, but if there's a simple fix, do you think you could point it out to me? I would rather not have to replace everything when the next version of this code comes out.
     

    Attachments

    • Pokemon Vengeance 2020-07-30 17-00-12.mp4
      7.3 MB
    Last edited:
    658
    Posts
    7
    Years
  • v3.0 Update!: Addition of the new Summary Screen (Example in Main Post) and many bugfixes.

    Kindly update if you are using an older version of the script.
     
    21
    Posts
    4
    Years
    • Seen Nov 23, 2023
    I know i'm still on v17 of essential, but I have this error message when I load the move pages in battle.

    Exception: NoMethodError
    Message: undefined method `pbType' for nil:NilClass
    Moves Highlighting:964:in `moveTextCalc'
    Moves Highlighting:918:in `drawPageTwo'
    Moves Highlighting:913:in `each'
    Moves Highlighting:913:in `drawPageTwo'
    Moves Highlighting:1156:in `pbScene'
    Moves Highlighting:1118:in `loop'
    Moves Highlighting:1159:in `pbScene'
    Moves Highlighting:1174:in `pbStartScreen'
    Moves Highlighting:697:in `pbBattleSummary'
    Moves Highlighting:627:in `pbSwitch'
     
    658
    Posts
    7
    Years
  • I know i'm still on v17 of essential, but I have this error message when I load the move pages in battle.

    Exception: NoMethodError
    Message: undefined method `pbType' for nil:NilClass
    Moves Highlighting:964:in `moveTextCalc'
    Moves Highlighting:918:in `drawPageTwo'
    Moves Highlighting:913:in `each'
    Moves Highlighting:913:in `drawPageTwo'
    Moves Highlighting:1156:in `pbScene'
    Moves Highlighting:1118:in `loop'
    Moves Highlighting:1159:in `pbScene'
    Moves Highlighting:1174:in `pbStartScreen'
    Moves Highlighting:697:in `pbBattleSummary'
    Moves Highlighting:627:in `pbSwitch'

    That's a derp on my part. There is a small change that is to be made to PokeBattle_Battler that I forgot to include in the script. I'm sorry for the inconvenience. I'll be posting an update today. Please update your script when I post it. Till then I'd request if you didn't use the new summary screen.
     
    658
    Posts
    7
    Years

  • I don't know if this breaks the rules about spam posting but I needed the people who downloaded v3.0 of the script to uptdae to this version so...

    v3.1 Update!
    Fixes a small issue with the new Summary Screen. A small update to PokeBattle_Battler was required for the Summary Screen to function. It didn't mess with any battle testing I did so it shouldn't cause any issues
     
    21
    Posts
    4
    Years
    • Seen Nov 23, 2023
    Now it works perfectly thank you! It will be good for an easy mode.
     
    21
    Posts
    4
    Years
    • Seen Nov 23, 2023
    Or not, if my team is not full, i get this error message.

    Exception: NoMethodError
    Message: undefined method `egg?' for nil:NilClass
    Moves Highlighting:1185:in `pbInitDummyPokemon'
    Moves Highlighting:735:in `pbStartScene'
    Moves Highlighting:733:in `each'
    Moves Highlighting:733:in `pbStartScene'
    Moves Highlighting:1173:in `pbStartScreen'
    Moves Highlighting:697:in `pbBattleSummary'
    Moves Highlighting:627:in `pbSwitch'
    Moves Highlighting:602:in `loop'
    Moves Highlighting:641:in `pbSwitch'
    PokeBattle_Battle:1415:in `pbSwitchPlayer'
     
    658
    Posts
    7
    Years
  • Or not, if my team is not full, i get this error message.

    Exception: NoMethodError
    Message: undefined method `egg?' for nil:NilClass
    Moves Highlighting:1185:in `pbInitDummyPokemon'
    Moves Highlighting:735:in `pbStartScene'
    Moves Highlighting:733:in `each'
    Moves Highlighting:733:in `pbStartScene'
    Moves Highlighting:1173:in `pbStartScreen'
    Moves Highlighting:697:in `pbBattleSummary'
    Moves Highlighting:627:in `pbSwitch'
    Moves Highlighting:602:in `loop'
    Moves Highlighting:641:in `pbSwitch'
    PokeBattle_Battle:1415:in `pbSwitchPlayer'

    Thanks for reporting this bug. I'll try to fix as soon as possible.
     
    Back
    Top