102 lines
2.7 KiB
JavaScript
102 lines
2.7 KiB
JavaScript
var HpPanel = defineObject(BaseObject,
|
|
{
|
|
|
|
drawHpPanel: function() {
|
|
if (root.isEventSceneActived()) {
|
|
return;
|
|
}
|
|
var list = PlayerList.getAliveList();
|
|
for (var i = 0; i < list.getCount(); i++) {
|
|
var unit = list.getData(i);
|
|
this.drawUnit(unit, false);
|
|
}
|
|
list = EnemyList.getAliveList();
|
|
for (var i = 0; i < list.getCount(); i++) {
|
|
var unit = list.getData(i);
|
|
this.drawUnit(unit, true);
|
|
}
|
|
},
|
|
|
|
drawUnit: function(unit, isEnemy) {
|
|
if (unit.isInvisible()) {
|
|
return;
|
|
}
|
|
if (unit.getSortieState() == SortieType.UNSORTIE) {
|
|
return;
|
|
}
|
|
if (unit.getMapX() == 0 && unit.getMapY() == 0) {
|
|
return;
|
|
}
|
|
if (root.getMetaSession().getGlobalSwitchTable().isSwitchOn(9)) {
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
var xPixel = LayoutControl.getPixelX(unit.getMapX());
|
|
var yPixel = LayoutControl.getPixelY(unit.getMapY());
|
|
|
|
var hp = unit.getHp();
|
|
var mhp = ParamBonus.getMhp(unit);
|
|
var pic = root.queryUI('unit_gauge');
|
|
if (unit.isWait()) {
|
|
//pic.drawParts(xPixel + 19, yPixel + 13, 36, 66, 12, 12);
|
|
}
|
|
this.drawGauge(xPixel, yPixel, hp, mhp, 2, 30, pic, isEnemy);
|
|
},
|
|
|
|
drawGauge: function(x, y, curValue, maxValue, colorIndex, totalWidth, pic, isEnemy) {
|
|
var i, n, per, full;
|
|
var width = UIFormat.GAUGE_WIDTH / 3;
|
|
var height = UIFormat.GAUGE_HEIGHT / 4;
|
|
var max = totalWidth / 10;
|
|
|
|
if (pic === null) {
|
|
return;
|
|
}
|
|
|
|
per = ((curValue / maxValue) * 100);
|
|
|
|
if (per > 0 && per < 1) {
|
|
per = 0;
|
|
}
|
|
else {
|
|
// perは1より大きい。
|
|
// ゼロベースにするため、1減算する。
|
|
per -= 1;
|
|
}
|
|
|
|
pic.drawParts(x + 1, y + 25, 0, 21 + 6, 30, 5);
|
|
var offset = 10;
|
|
if (per >= 99) {
|
|
//offset -= 5;
|
|
}
|
|
if (per >= 99) {
|
|
offset += 16;
|
|
if (isEnemy) {
|
|
offset += 6;
|
|
}
|
|
} else {
|
|
if (isEnemy) {
|
|
offset += 10;
|
|
}
|
|
}
|
|
pic.drawParts(x + 2, y + 25 + 1, 1, 21 + 6 + offset, 28 * per / 100, 3);
|
|
|
|
|
|
}
|
|
}
|
|
);
|
|
|
|
|
|
var _MapLayer_prepareMapLayer = MapLayer.prepareMapLayer;
|
|
MapLayer.prepareMapLayer = function() {
|
|
_MapLayer_prepareMapLayer.call(this);
|
|
this._hpPanel = createObject(HpPanel);
|
|
};
|
|
|
|
var _MapLayer_drawUnitLayer = MapLayer.drawUnitLayer;
|
|
MapLayer.drawUnitLayer = function() {
|
|
_MapLayer_drawUnitLayer.call(this);
|
|
this._hpPanel.drawHpPanel();
|
|
};
|