Код:
	//=============================================================================
// Simple Battle Status Faces
// by lolaccount
// Last Updated: 2015.11.9
//=============================================================================
/*:
 * @plugindesc v1.01 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.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);
 
// 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);
};
})();
 
Социальные закладки