Simple Battle Status Faces

DreamX

Veteran
Veteran
Joined
May 30, 2015
Messages
816
Reaction score
821
First Language
English
Primarily Uses
Simple Battle Status Faces
By lolaccount

 
Introduction
This is my 2nd plugin release. I'm a beginner. I plan on updating the plugin with parameters and some other adjustments later on. I am happy to receive any constructive feedback.

Patch Notes

v.1.02 - Added support for Yanfly's ATB

v1.01 - Added some support for Ellye's Simple ATB (check parameters). The bar needs improving for the default resolution, but looks good fullscreen. Will improve default resolution ATB bar in an update. Added some support for default resolution and 3 party members. Still won't look very good with more than 3 party members with default resolution.

Features
Draws the actor's faces in the Battle Status window, the goal of not blocking the actor's faces too much.
It's designed for full screen games, but I might make an update(s) to accommodate smaller resolutions.
As such, it will probably look bad if you're not using full screen. I did my tests in 1280 x 720 full screen.
 
You can hide the TP Bar for an actor by putting <HideBattleStatusTp: 1> in their notetags and/or hide their
MP bar by putting <HideBattleStatusMp: 1> in their notetags.

Screenshots

How to Use
Create a .js file (you can do so with a text editor by saving the file with .js at the end) and paste the script into it, then put it in the js\plugins folder for your project. The filename should be something descriptive to what it is in my opinion, but it's up to you. Turn the plugin on and you are good to go.

Script
//=============================================================================// Simple Battle Status Faces// by lolaccount// Last Updated: 2015.11.26//=============================================================================/*: * @plugindesc v1.02 Draws the actor's face in battle status, with the   * goal of not blocking the actor's faces too much. * <lolaccount Simple Battle Status Faces> * * @author lolaccount * * @param ---Compatibility--- * @default * * @param Show ATB Bar * @desc Show ATB bar for ATB plugins? * Yes - true        No - false        Default: true     * @default true * * @param ATB Bar Position * @desc Options: bottomleft, bottomright Default: bottomleft * @default bottomleft * * @help This plugin does not provide plugin commands. * You can hide the tp bar for an actor by using <HideBattleStatusTp: 1> and/or * hide the mp bar for an actor by using <HideBattleStatusMp: 1> * ============================================================================ * Patch Notes * ============================================================================ * v1.02 - Added some support for Yanfly's ATB. * v1.01 - Added some support for Ellye's Simple ATB. The bar needs improving * for the default resolution, but looks good fullscreen. Will improve * default resolution ATB bar in an update. * Added some support for default resolution and 3 party members. * Still won't look very good with more than 3 party members with default * resolution. * ============================================================================ * How To Use * ============================================================================ * Plug and play. * ============================================================================ * Terms Of Use * ============================================================================ * Free to use and modify for commercial and noncommercial games, with or * without credit, as long as you do not claim the script as your own. * Credit is appreciated though. */var Imported = Imported || {};// Get parameters(function () {    var parameters = $plugins.filter(function (p) {        return p.description.contains('<lolaccount Simple Battle Status Faces>');    })[0].parameters; //Thanks to Iavra    // whether to show ATB bar if that is the battle system    var showATBbar = String(parameters['Show ATB Bar'] || 'true');    // where to draw atb bar    var atbBarPos = String(parameters['ATB Bar Position'] || 'bottomleft');    showATBbar = eval(showATBbar);    if (Imported.YEP_X_BattleSysATB) {        Window_BattleStatus.prototype.redrawATB = function () {            if (showATBbar) {                if (this.isATBGaugeStyle(0))                    return;                for (var i = 0; i < $gameParty.battleMembers().length; ++i) {                    var actor = $gameParty.battleMembers();                    var otherRect = this.itemRect(i);                    var textRect = this.itemRectForText(i);                    if (atbBarPos == 'bottomleft') {                        this.drawActorAtbGauge(actor, otherRect.x + 4, textRect.y + this.lineHeight() * 3, Window_Base._faceWidth - 6);                    }                    else if (atbBarPos == 'bottomright') {                        this.drawActorAtbGauge(actor, otherRect.x + Window_Base._faceWidth + 4, textRect.y + this.lineHeight() * 3, otherRect.width - Window_Base._faceWidth - 11);                    }                }            }        };    }// override the difficult itemRect for a window    Window_BattleStatus.prototype.itemRect = function (index) {        var rect = new Rectangle();        var maxCols = this.maxCols();        rect.width = this.itemWidth();        rect.height = this.itemHeight();        rect.x = rect.width * index;        rect.y = 0;        return rect;    };    Window_BattleStatus.prototype.itemWidth = function () {// decide the width of each "item," or the space each actor occupies in battle status, by the size of the party        return Math.floor(((this.width - this.padding * 2 +                this.spacing()) / 1 - this.spacing()) / $gameParty.battleMembers().length);    };    Window_BattleStatus.prototype.maxCols = function () {// the maximum amount of columns is the number of members in the party        return $gameParty.battleMembers().length;    };    Window_BattleStatus.prototype.itemHeight = function () {// the height of each item is the height of the battle status window minus from padding so it looks nicer        return Math.floor((this.height - this.padding * 2 +                this.spacing()) / 1 - this.spacing());    };    Window_BattleStatus.prototype.drawItem = function (index) {        // we can get the actor from the index passed to this function        var actor = $gameParty.battleMembers()[index];        // the rectangle w/dimensions from another method designed for text        var textRect = this.itemRectForText(index);        // a general rectangle from another method            var otherRect = this.itemRect(index);        // variable for deciding where to place state/buff icons, x axis            var iconPos;        // variable for deciding iconWidth        var iconWidth;        // variable for deciding where to place tp bar, y axis        // we're setting the default here        var tpBarY = otherRect.y + (this.lineHeight() * 2);        var gaugeWidth;        var gaugeX;        // decide gauge width and x        if ((SceneManager._screenWidth <= 816 && $gameParty.battleMembers().length == 3)) {            gaugeWidth = otherRect.width - (Window_Base._faceWidth * .8) - 11;            gaugeX = otherRect.x + (Window_Base._faceWidth * .8) + 4;        }        else {            gaugeWidth = otherRect.width - Window_Base._faceWidth - 11;            gaugeX = otherRect.x + Window_Base._faceWidth + 4;        }        // draw the actor's face on the bottom most "layer"        this.drawActorFace(actor, otherRect.x, otherRect.y);        // draw Mellye's Simple ATB atb bar if imported        if (Imported.Ellye_ATB == true && showATBbar) {            if (atbBarPos == 'bottomleft') {                this.drawActorATB(actor, otherRect.x + 4, textRect.y + this.lineHeight() * 3, Window_Base._faceWidth - 6);            }            else if (atbBarPos == 'bottomright') {                this.drawActorATB(actor, otherRect.x + Window_Base._faceWidth + 4, textRect.y + this.lineHeight() * 3, otherRect.width - Window_Base._faceWidth - 11);            }        }        // draw the actor's name        this.drawActorName(actor, textRect.x, textRect.y, 150);        // draw actor hp bar        this.drawActorHp(actor, gaugeX, otherRect.y + (this.lineHeight() * 0), gaugeWidth);        // draw the actor's mp if it is not set to be hidden for the actor        if ($dataActors[actor._actorId].meta.HideBattleStatusMp != 1) {            this.drawActorMp(actor, gaugeX, otherRect.y + (this.lineHeight() * 1), gaugeWidth);        }        else {            // if it was set to be hidden, we should adjust the tp bar y position            tpBarY = otherRect.y + (this.lineHeight() * 1);        }        // if tp is on, draw the actor's tp        if ($dataSystem.optDisplayTp) {            // draw the tp bar if it was not set to be hidden for the actor            if ($dataActors[actor._actorId].meta.HideBattleStatusTp != 1) {                this.drawActorTp(actor, gaugeX, tpBarY, gaugeWidth);            }        }        if (Imported.Ellye_ATB != true) {            iconWidth = otherRect.width;            // if there are many icons taking up the actor's space in the status, shove the icons to the right            if ((actor.allIcons().length * Window_Base._iconWidth - 3) > otherRect.width - Window_Base._faceWidth) {                iconPos = otherRect.x + 1 + (otherRect.width - (actor.allIcons().length * Window_Base._iconWidth) - 3);            }            // if there's not too many icons taking up the actor's space in the status, don't shove the icons all the way to the right            else {                iconPos = otherRect.x + Window_Base._faceWidth + 4;            }        }        else if (showATBbar) {            if (atbBarPos == 'bottomleft') {                iconWidth = otherRect.width - Window_Base._faceWidth - 4;                iconPos = otherRect.x + Window_Base._faceWidth + 4;            }            else if (atbBarPos == 'bottomright') {                iconWidth = Window_Base._faceWidth;                iconPos = otherRect.x + 4;            }            // the default - bottom left            else {                iconWidth = Window_Base._faceWidth + -4;            }        }        // draw the icons        this.drawActorIcons(actor, iconPos, otherRect.y + (this.lineHeight() * 3), iconWidth);    };})();
 
Credit and Thanks
- lolaccount

Author's Notes
Free to use and modify for commercial and noncommercial games, with or without credit, as long as you do not claim the script as your own. Credit is appreciated though.screen.jpg
 
Last edited by a moderator:

Neo Soul Gamer

Veteran
Veteran
Joined
Aug 10, 2012
Messages
632
Reaction score
352
First Language
English
Primarily Uses
N/A
I really like that layout, actually. And adding the ability to hide the gauges is definitely a plus. I'd like to see a little more flexibility there though. Maybe have the ability to hide the gauges but not the terms/words? So you can have a MP indicator but with no gauge behind it. 

The reason I mention this is because I've seen many games where people use TP/MP in different ways where a gauge isn't necessary. 
 

Kes

Veteran
Veteran
Joined
Aug 3, 2012
Messages
22,005
Reaction score
11,331
First Language
English
Primarily Uses
RMVXA
Would this be able to accomodate those characters who have both MP and TP? Also, how about 5 members in the active party?
 

DreamX

Veteran
Veteran
Joined
May 30, 2015
Messages
816
Reaction score
821
First Language
English
Primarily Uses
I really like that layout, actually. And adding the ability to hide the gauges is definitely a plus. I'd like to see a little more flexibility there though. Maybe have the ability to hide the gauges but not the terms/words? So you can have a MP indicator but with no gauge behind it. 

The reason I mention this is because I've seen many games where people use TP/MP in different ways where a gauge isn't necessary. 
So it would just be "MP 898/900" (for example) and no gauge?

Would this be able to accomodate those characters who have both MP and TP? Also, how about 5 members in the active party?
Yes, as you can see in the screenshot (look at Lucius), you can have both MP and TP shown. I haven't tested more than 4 members yet - what is the plugin for that?
 

Tenryuga

Villager
Member
Joined
Oct 24, 2015
Messages
12
Reaction score
2
First Language
English
does this work with Yanflys ATB system?
 

Neo Soul Gamer

Veteran
Veteran
Joined
Aug 10, 2012
Messages
632
Reaction score
352
First Language
English
Primarily Uses
N/A
So it would just be "MP 898/900" (for example) and no gauge?
Exactly. I suppose another plugin would be needed to change the "MP 890/900" to "MP 890". But that's the general idea.
 

mekka2000

Villager
Member
Joined
Apr 27, 2015
Messages
10
Reaction score
3
First Language
FRENCH
Primarily Uses
Please make it compatible with Ellye's ATB ! :)
 

mekka2000

Villager
Member
Joined
Apr 27, 2015
Messages
10
Reaction score
3
First Language
FRENCH
Primarily Uses
Or above the HP bar, why not...

Edit : sorry for the double post, it's 4am here and i'm on my phone...
 
Last edited by a moderator:

Aidensmercy

Veteran
Veteran
Joined
Oct 29, 2015
Messages
121
Reaction score
24
First Language
english
i would also love to see this work with Ellye's ATB.

i would actually love to see the atb bar vertical, would look pretty neat.

 

Sol Rising

Veteran
Veteran
Joined
Oct 25, 2015
Messages
162
Reaction score
21
First Language
English
vertical ATB/TP bar is genius! please implement with ATB system 
 
Last edited by a moderator:

Reszo

Villager
Member
Joined
May 16, 2012
Messages
5
Reaction score
0
First Language
English
Primarily Uses
Yesss, just what I needed.
 

Syltti

Devout Follower of Yuri
Veteran
Joined
Sep 2, 2013
Messages
178
Reaction score
55
First Language
English
Primarily Uses
RMMV
Looks pretty good. The only issue I see is how big the status screen is if an actor is alone:

Other than that, this'll be a good plugin to use~
 

DreamX

Veteran
Veteran
Joined
May 30, 2015
Messages
816
Reaction score
821
First Language
English
Primarily Uses
I added support for Ellye's ATB. As usual, it looks best in full screen 16:9 resolution.

Edit: I should note that you can choose whether the atb bar is on the bottom left or bottom right using parameters. You can also hide the atb bar with a parameter too, you will need to do this even if you did that for Ellye's plugin parameters if you want it hidden.

As for vertical bars, you should maybe ask Ellye if they can make a vertical bar function in an update, because I don't know how to make one because I need to access the variables in his plugin to do so, as far as I'm aware.

I also added a little support for the default resolution, although I still recommend using full screen with a larger resolution instead. More than 3 party members with the default resolution is definitely a no, and the atb bar needs work in the default res. I'll fine tune the atb bar for default resolution, but I wager that more than 3 party members in the default resolution would just defeat the purpose of the plugin since you'd have to cover the faces a lot.

Looks pretty good. The only issue I see is how big the status screen is if an actor is alone:

Other than that, this'll be a good plugin to use~
Ah, I'll work on that, seems like a good idea to just limit the gauges/bars/rectangle selection to however much length is needed to cover the min and max numbers.

Exactly. I suppose another plugin would be needed to change the "MP 890/900" to "MP 890". But that's the general idea.
I'll put that in an update sometime.

screen2.jpg
 
Last edited by a moderator:

Kes

Veteran
Veteran
Joined
Aug 3, 2012
Messages
22,005
Reaction score
11,331
First Language
English
Primarily Uses
RMVXA
The plug in for more actors is Yanfly's Battle Engine
 

nio kasgami

VampCat
Veteran
Joined
May 21, 2013
Messages
8,735
Reaction score
2,595
First Language
French
Primarily Uses
The plug in for more actors is Yanfly's Battle Engine
no it's my plugin yanfly battle engine don't offer any more actor in battle

anyways nice plugin man it's simple and yet pretty c:
 

DreamX

Veteran
Veteran
Joined
May 30, 2015
Messages
816
Reaction score
821
First Language
English
Primarily Uses
Ah, so I tested with 5 battle members, the bars are too short right now. But I can add some support for 5 battle members in the future so the bars are longer in that case, it will look fine most likely. I don't think I'll be able to do much with 6 battle members though.
 

Pumamori

Veteran
Veteran
Joined
Oct 29, 2012
Messages
109
Reaction score
21
First Language
German
Primarily Uses
RMMV
Would it also work with Yanfly's ATB? :)
It'd be neat to see it supported too, but no pressure, this already looks amazing.
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Profile Posts

Kitchen counters! I am on my second version of counters. It is slow going and I always see little details that could be done better. Have to force myself to say that's good enough for now and continue on.
I always thought I was just really, really bad at communication, then the internet proceeds to say "lol no".
Almost 100,000 Threads! We should make a celebration. Make a 100K logo? :p
Cursed problem: Multiple language switches. Say, you want to switch to EN language from JP but you have no idea where the language switch in JP menu language.
Tonight I'm finally going to start putting the dungeons my team has made on grid paper into the engine. That's the final step of making the game world.

Forum statistics

Threads
99,432
Messages
965,224
Members
131,048
Latest member
bbxpbenja
Top