Expanded Status Window / potential "StatusMenuCore" base

Discussion in 'JS Plugins In Development' started by JahwsUF, Oct 27, 2015.

  1. JahwsUF

    JahwsUF Veteran Veteran

    Messages:
    65
    Likes Received:
    102
    Location:
    USA
    First Language:
    English
    Since it's something I believe will be very useful going forward, I'd like to present some in-development work on a custom plugin - the Expanded Status Window.

    Published!

    Go to the official topic under the JS Plugin Releases (RMMV) sub-form via this link.

    NOTE:  Major updates posted below. 

    v 0.10:  Added support and default formatting for "parameter" page customization + selection of params to display.

    v 0.20:  Added enhanced formatting support for the "parameter" page + a new "elemental resistances" page.

    v 0.50:  Added much more functionality to the "profile" page, now with portrait support.'

    v 0.60:  Added more polish, profile scrolling + switch-based profile swapping.  First release candidate.

    For more data on the related abilities of this plugin, please check the documentation for the corresponding link listed above.


    The original post continues below.  (v 0.01 - multi-page Status window.)

    In particular, the new Status Window has pages (or tabs) that can each contain different types of information per Actor.  Ideally, this could be linked to wholly separate windows, and I've already coded a general base "window" that can be used to rapidly create additional pages in plugin extensions.  I've already made progress on customization, as seen in the images below.

    (All images hosted in an Imgur album here, in case the links fail otherwise:  http://imgur.com/a/il26x)

    [​IMG]

    [​IMG]

    Higher resolution game?  The windows will adjust to match!  (Only partially at the moment, but that'll be remedied later.)

    [​IMG]

    (The new EXP bar is colored purple, as you can see.)

    At present, I'm developing two separate pages - one for parameters and the other for in-depth profile information.

    The core purpose behind this:  by making space and separate pages, we'll now have room to list more stats on the Parameter page - like Hit Rate, Critical Rate, etc.  If someone can get extra stats working, we'll definitely need the space.  (Something I hope to move onto after this little project.)  It'll also easily allow for more Status window content of whatever type.

    Before I continue on, as the images seen here would serve as the baseline form of the new Status window(s), do the adjustments seem reasonable/well-designed?  Of note is that the nickname won't appear everywhere by default - only in a select area - and that the total earned XP isn't being listed at present.  (One option for the nickname - if resolution is high or your Actor + class names are short enough, it's not hard to put Actor + Class on one line and Nickname on another.  That could easily be made a plugin option.)

    Also, since I do seem to be able to attach files here... I've uploaded my current *.js plugin code, inside a *.zip.  (The forum won't allow a direct *.js upload.)  It's obviously pretty rough and in development, but if you'd like to tinker with it, be my guest.  My next thing is likely to add some plugin-parameters so that any extra parameters to be reported can be specified on a per-game basis.  (This also requires allowing you to choose the in-game text for those extra parameters.)

    Edit (10/27):  updated a few details to match current development.  There's a lot more internal polish at this point than the rough version from last night, though there's little visual progress.

    JAH_StatusMenuCore.zip
     

    Attached Files:

    Last edited by a moderator: Oct 31, 2015
    #1
    crea, RetroNutcase and Amuseum like this.
  2. ksart

    ksart Artist Veteran

    Messages:
    152
    Likes Received:
    185
    First Language:
    English
    Primarily Uses:
    N/A
    Looks very promising :) I'm not very familiar with JS but do you think it would be possible to replace actor portrait with custom image on the profile page as an option? Would be super awesome if it IS possible since it would allow for a full body view or even just waist-up of the charactor. Mostly just for flavor. I think star ocean: the second story had something like that which I greatly enjoyed.... lol anyways I shall butt-out now and leave you to your work :)
     
    #2
  3. JahwsUF

    JahwsUF Veteran Veteran

    Messages:
    65
    Likes Received:
    102
    Location:
    USA
    First Language:
    English
    That'd be easy enough to enable as an option - it'd definitely make more use of the "profile" page.  The only issue would be detecting the size of the image and adjusting the page appropriately - but I could always make the plugin user responsible for the image's size.
     
    #3
  4. JahwsUF

    JahwsUF Veteran Veteran

    Messages:
    65
    Likes Received:
    102
    Location:
    USA
    First Language:
    English
    New progress - v 0.10 is ready!  (See the attachment to this post!)

    I've done a lot of work to the backend and made this thing a LOT more configurable.

    [​IMG]

    The rundown:

    • Up to 24 parameters may be specified on the "Parameter" window now!  ("Stats" in the screenshots above and below.)
    • Up to 5 status sub-windows may exist! 

      This is an artificial limitation - the menu could probably take another spot or two.  Either way, this leaves plenty of room for other plug-ins to attach to this "StatusMenuCore" plugin.

      If this plug-in really interests you, check out the help notes and the *.js code to find good example code.  (The current "Profile" tab is very simple, and I've provided a nice base class for you to base your windows upon.)
       
    • The parameters may be arranged in up to 3 columns.  You can state the exact number to be listed per column, though they'll all be listed in order from the top per common.

      Columns are filled one at a time - in an example with 10 parameters, column 1 might get 1-6 while column 2 gets 7-10.
       
    • If your selected resolution has room for it (auto-detected!) you can selectively disable/enable the equipment list on the parameter screen!
       
    • The spacing of items horizontally is automatically managed for optimal appearance.  I might should enhance vertical spacing, in time, but horizontal is all worked out.

      This being said, each parameter's name has a highly-restricted width allotment, like the original status screen.  The math would get a lot worse and more intense if it were fully and automatically calculated... which actually should be possible to do.  The current version got higher priority, though.

      When the equipment list is enabled, it is given a little extra space compared to the other columns.

    In the spoiler below are two other screenshots of the plugin's current form, with alternate configurations:

    [​IMG]

    [​IMG]
    In regard to the one suggestion I've gotten so far:  an enhanced profile page is likely to become a plugin extension for this.  I don't want it to seem required, and the design work put into this version makes such extensions very possible... and this "StatusMenuCore" does have a lot of parameters already.

    Want to return to the top for the main listing again?  Click here.

    JAH_StatusMenuCore.zip
     

    Attached Files:

    Last edited by a moderator: Oct 30, 2015
    #4
    RetroNutcase likes this.
  5. JahwsUF

    JahwsUF Veteran Veteran

    Messages:
    65
    Likes Received:
    102
    Location:
    USA
    First Language:
    English
    Further progress - now v 0.20!

    [​IMG]

    This one isn't as big as the difference from 0.01 to 0.10, but there are a few significant things...

    • Note how in the image above, the second column is wider than the first.  New parameters have been added that allow you to specify the width of each column and its values manually to fit your game, including the equipment column should you choose to enable it.  This helps avoid unsightly whitespace on the original parameters while still providing enough space for longer text names on other parameters.
       
    • One more detail of interest... is that a new menu item up there?  "Resistances"?

    [​IMG]

    That's right, a brand new tab!

    • Just like the others, you can customize its name or even choose to leave it out entirely.
       
    • All elemental names are pulled directly from game files - you don't have to name a thing!
       
    • Want to keep an element or two unlisted?  You can specify a list of elemental IDs to be ignored by this page!  (Reference the "Types" tab in the RPG Maker Database to find your IDs.)
       
    • It's left up to you how many elements are listed per column - and you can have them listed in up to 3 columns.  The one caveat is that the elements will be listed in order of their numerical IDs.

    As usual, I've attached a newly-updated version of this plugin below.

    Want to return to the top for the main listing again?  Click here.

    JAH_StatusMenuCore.zip
     

    Attached Files:

    Last edited by a moderator: Oct 30, 2015
    #5
    RetroNutcase likes this.
  6. RetroNutcase

    RetroNutcase Jolly Cooperating Sunbro Veteran

    Messages:
    63
    Likes Received:
    17
    First Language:
    English
    This is looking great so far! Vanilla status menu always felt so limited, thanks for this!
     
    #6
  7. JahwsUF

    JahwsUF Veteran Veteran

    Messages:
    65
    Likes Received:
    102
    Location:
    USA
    First Language:
    English
    And now for version 0.50! 
     
    I now feel that this plug-in is mostly feature-complete; I still need to add documentation and polish for sure, but it's mostly just a few remaining odds and ends that are preventing me from being satisfied enough to release it.  (One critical thing - there are a few parts that aren't quite integrated with options from Yanfly's Core Engine, which you'll probably want to use for higher resolution and increased space for the various Status pages.)
     
    What's new this time?
     
    [​IMG]
     
    What's any game these days without a little backstory?  As previously requested, I figured out a pretty good way to enable such enhanced profiles - and I even managed to integrate it reasonably with this plugin!
     
    With this version, we've now got a few tags.  The above profile for this actor is specified as follows:
     

    <portrait: Package1_2><portrait scale: 1.2><portrait offset: 100, 0><extended profile>Alec originally mistook her for a spy, having found herwandering in the woods behind his manor. No one knowsfrom where she hails, as her accent and garments areextremely unusual.Despite her history, she is clearly a sweet and compassionate individual. However, she is clueless when it comes to pop culture references and most idioms. She has been quickly improving at thiswith the party's help, however.</extended profile>All data for extended profiles is handled via tags within the Actor's "Note" section.  The relevant tags:
     
    <portrait: x>
     
    x.png should be your portrait's filename, as found within the /img/pictures folder.  I chose this as the location since that's where the character full-body portraits were placed within the Cover Art Characters Pack.  You'll note that the above example was done with the Package1_2 character image from said pack; I made especially sure this plugin is directly compatible with such images.
     
    Note that for any character without a portrait, a version of the profile page closer to the vanilla status window will be utilized.
     
    <portrait scale: x>
     
    Want the portrait image shrunk or scaled up?  Use this tag to control the scaling and make the image larger!  (Note that scaling occurs after any "offset" calculations.)  If this is not specified, the original dimensions of the portrait will be used.
     
    <portrait offset: x, y>
     
    Don't want the full image to be seen?  That's fine - just specify a horizontal (x) and vertical (y) adjustment for the image and it'll be repositioned on the profile page.
     
    An important note - it is impossible for the portrait to overwrite the edges of the window.  It's a technical limitation unless I rewrite way too much of the core window data, which I don't believe to be worth it.  This is responsible for the margins around the image in the screenshot above.
     
    If you don't specify an offset, the plugin will display the image at the lower-right of the profile page as tightly as possible while preserving the entire image.
     
    <extended profile>
    </extended profile>
     
    Any text between these two tags will be interpreted as an extended backstory for your characters and placed on the left side of the profile page.  Should you have also put any text data in the built-in profile textbox, said data will be displayed on top of the extended profile.  Those first two lines above?  That's the built-in profile for this actor.  (Line spacing is automatic, so be sure to use two lines of text in the built-in profile if you use the original profile box to prevent awkward spacing.)  If the built-in profile is empty, only the extended profile will be used.
     
    As usual with RPG Maker, all line breaking is manual.  While I could try to implement an automatic line-break for this page, I feel that could actually be detrimental - some of the text in the above screenshot actually overlays transparent parts of the character portrait, and I believe this is a feature reasonably worth preserving.
     
     
    A few alternate screenshots are hidden within the spoiler section below.

    Below, you can see the same scenario as above, but with default scaling and positioning of the profile image.  (That is, with no "scale" or "offset" specified.)

    [​IMG]

    What happens without a profile image?

    [​IMG]

    This is the version of the profile page that appears if you do not specify a profile image for an Actor.  This particular instance had a blank built-in profile box, meaning all text is placed within her "extended profile."  The first line seen there is the Actor's nickname, as it doesn't appear anywhere else otherwise.  (It doesn't appear within the default Status pages' header area.)

    For reference on this screenshot:

    <extended profile>This magical maiden hails from the east, having recently come to these lands in searchof rare and unusual tomes from which to learn.While highly intelligent and book-smart, she is often somewhat lacking in common sense,often getting the rest of the party into embarrasing situations due to her uncompromising and forthright nature.</extended profile>... please forgive the minor misspelling in the text and image above.  Goodness knows that happened on the most perfect word, too.  How embarrassing.
    One last feature I think would be wonderful to add, but I haven't yet fully figured out how to implement well - a changing profile.  You know how in some games, you earn a lot more background information about a character after some huge, significant plot twist?  I'd love to make that a possibility - it's just a matter of figuring out the best way to implement it.

    I suppose I could make the extended profile text a big "eval" section, but then... well... I think it'd be a lot harder and less intuitive to format, hence my struggle here.

    As usual, I've attached the current version of this plugin below as a *.zip.  Enjoy, and please feel free to give feedback!

    Want to return to the top for the main listing again?  Click here.

    JAH_StatusMenuCore.zip
     

    Attached Files:

    Last edited by a moderator: Oct 30, 2015
    #7
    ksart, Amuseum and RetroNutcase like this.
  8. RetroNutcase

    RetroNutcase Jolly Cooperating Sunbro Veteran

    Messages:
    63
    Likes Received:
    17
    First Language:
    English
    Love this addition, I've got at least one project idea that could heavily benefit from profiles that can be updated as well.

    Question though, how hard do you think it'd be to add a scrolling feature for profiles that are bigger than the status window?
     
    #8
  9. JahwsUF

    JahwsUF Veteran Veteran

    Messages:
    65
    Likes Received:
    102
    Location:
    USA
    First Language:
    English
    Hmm... a scrolling feature?  I'd have to look into that; outside of item selection and skill menus, I don't think I've seen much toward scrolling.  It does look possible, but it'd take quite a bit of work.

    Two things I could easily do in the meantime - it's trivial to allow for font-size adjustments on the profile window.  Smaller text = more text that can be displayed, though that should be used responsibly - no one likes a wall of words.  The other thing - it wouldn't take too much effort to have a second profile page for extra data, although the page would show for every Actor if included.

    I think I've figured up a strategy for changing profiles, though.  I'm thinking that <extended profile> could optionally include a numerical value corresponding to an in-game switch.  You could then specify multiple profiles; the top-most profile in the notes with a "true" switch would be displayed.  (If none are true, then the switchless one takes precedence.  Does this sound like a reasonable and intuitive way to handle changing profiles?

    Edit:

    ... and never mind.  Got a little inquisitive, realized a few tricks I could pull, and I already have scrolling implemented on my development version now.  Key detail:  the Actor's header stays permanently in place, while the rest of the text scrolls.  I could make everything scroll in that window, but it'd take extra implementation effort, and I'm presently more interested in finishing up some of the other tasks, like the changing profiles + Yanfly support.
     
    Last edited by a moderator: Oct 30, 2015
    #9
  10. JahwsUF

    JahwsUF Veteran Veteran

    Messages:
    65
    Likes Received:
    102
    Location:
    USA
    First Language:
    English
    Even more progress now - v 0.60 is here!

    Things are far enough along that I'd be willing to consider this a release candidate.  Please feel free to toy with it and find any issues.  Care is presently required with the parameters - invalid or misformatted inputs there can cause issues, which I might should look to fix.  There aren't many drastic visual changes to show this time, so I'll leave out screenshots this time.

    New Features:

    • The "Profile" page is now capable of scrolling!  Feel free to make your profiles however long you want; the page can handle it now!
       
    • Important change:  the old <extended profile> tag has been shrunk to simply <profile>.  (This includes the closing tag </profile>.)  I felt this would be less cumbersome and confusing moving forward. 

      The previous example thus becomes:

      <portrait: Package1_2><portrait scale: 1.2><portrait offset: 100, 0><profile>Alec originally mistook her for a spy, having found herwandering in the woods behind his manor. No one knowsfrom where she hails, as her accent and garments areextremely unusual.Despite her history, she is clearly a sweet and compassionate individual. However, she is clueless when it comes to pop culture references and most idioms. She has been quickly improving at thiswith the party's help, however.</profile>
      This change is also made in part because of the new tag, to prevent things from getting too big...
       
    • New tag:

      <profile switch: x>
      profile text here
      </profile switch>

      x should be a "Control Switch" identifier within the system.  Number only; this tag will not recognize the text name of any switches.

      Going from top to bottom, if the specified x - switch is marked as On, the corresponding "Profile Switch" tag will override the baseline <profile> tag and take over as the character's new profile text.  Use this to replace a character's backstory after significant plot points!

      When no "profile switch" tags have a matching "On"/activated switch, the standard <profile> tag will serve as the character's background.

      In case of conflict, the first profile switch whose matching system control switch is marked as On will override all other listed profiles.
       
    • New parameter settings exist for nickname usage - they can be added into the standard page header as a suffix to each Actor's name, either with or without quotes.  (These options are the last ones listed in the plugin.)
       
    • EXP bar settings are now somewhat configurable.
       
    • To the best of my knowledge, this plugin will use any relevant settings from Yanfly's Core Engine as its own.  This plugin is still independent from the Core Engine; the system will adapt to its presence or lack thereof.

    Please feel free to download this and test it out.  I plan to do a few more checks and give things a day or two for quality assurance before officially publishing this thing, but I believe it to be effectively complete otherwise. 

    Also, if you happen to have mobile and could test this out, that'd be great - I've taken effort to use only script elements that are compatible with mobile, but something could have very easily escaped my notice in this regard.  All my development is on PC, so I haven't done any mobile testing directly.

    Want to return to the top for the main listing again?  Click here.

    JAH_StatusMenuCore.zip
     

    Attached Files:

    Last edited by a moderator: Oct 30, 2015
    #10
  11. ARKS  STUDIO

    ARKS STUDIO Villager Member

    Messages:
    24
    Likes Received:
    4
    First Language:
    english
    So were would I put in the profile text sorry for being newbish.
     
    #11
  12. JahwsUF

    JahwsUF Veteran Veteran

    Messages:
    65
    Likes Received:
    102
    Location:
    USA
    First Language:
    English
    Use the <profile> tag as mentioned above - place that information in each Actor's "Note" box.  (Bottom-right corner of the Actor tab when editing the database.)

    In regard to the example image above, here's a screenshot with me editing the info.

    [​IMG]
     
    Last edited by a moderator: Oct 30, 2015
    #12
    ARKS STUDIO likes this.
  13. RetroNutcase

    RetroNutcase Jolly Cooperating Sunbro Veteran

    Messages:
    63
    Likes Received:
    17
    First Language:
    English
    Small question. How difficult would it be to have an option to let the profile displayed be by variable instead of switch? One variable per character would be a lot less usage than multiple switches.
     
    #13
  14. JahwsUF

    JahwsUF Veteran Veteran

    Messages:
    65
    Likes Received:
    102
    Location:
    USA
    First Language:
    English
    The tags would get complicated - there's having to note the variable as well as its values.  (Also, making sure that only the one variable is referenced across the whole tag area.)  Then, what if the variable doesn't match any of the values... I guess a lot of issues are similar, but I felt that switches were most appropriate given their design, and less prone to confusing conflict.  Maybe I'm wrong, but it seems like switches are designed to be triggered by plot, which is what I figured the average use-case would be for this - plot-based profile changes.

    It sounds like you're wanting profiles to change based on something other than plot?  Maybe by some relationship/support system like Fire Emblem or something?

    One thing that is a plus, either way - I'm writing it in such a way that a plugin extension could easily modify this Core to work in that way.  (Only one method would need to be changed; past that, it's all about interpreting the tags and figuring up the right way to code the altered method.)
     
    Last edited by a moderator: Oct 31, 2015
    #14
  15. JahwsUF

    JahwsUF Veteran Veteran

    Messages:
    65
    Likes Received:
    102
    Location:
    USA
    First Language:
    English
    Hey, so I seem to have had a few ideas since v 0.60, so I spent some time tweaking and refining a few things.  A fair bit of time was spent on internal restructuring to facilitate plugin extension for those who might be interested in the idea.  I'm still in progress on one final set of tweaks before the next version comes out, but the spoiler section below has a little taste for you of some of the other ideas I've had v 0.60.  At this point, if all goes well, I may officially publish the plugin once I get these last tweaks in.

    [​IMG]

    Use of the character portrait on the parameter and resistances pages can be disabled independently of the profile page, should you so prefer.  (Only the profile page is independent, though.  It will always show a portrait if available.)

    The HP and MP bars are still visible on the original (main) menu, so to make room for portrait use, I got rid of the redundant HP/MP bars only when the image is used.  The page header seen here is always coupled with portrait use, while the version with HP/MP bars is only used in "vanilla" mode - when there is no portrait.

    XP bar changes are permanent, and the terms used are drawn from the database's terms page - they are configurable.
    Oh yeah, and I found a few bugs since the last release, so the delay was a good thing anyway.
     
    #15
    ksart likes this.
  16. JahwsUF

    JahwsUF Veteran Veteran

    Messages:
    65
    Likes Received:
    102
    Location:
    USA
    First Language:
    English
    #16

Share This Page