I was wondering why you didn't put in the icon of the stolen item, and was about to do it myself, when I was quickly reminded why you didn't: that annoying thing where DrawTextEx doesn't easily center and DrawText does, but doesn't do much of anything else interesting.
Edit: That said, centering is not impossible with DrawTextEx... you just kinda have to do it yourself! (Well, centering Message Boxes is still kind of a pain.) May I recommend the following to those who want icons (like I do)?
Window_BattleLog.prototype.drawCenterLine = function(index) {
var text = this._lines[index].replace('<CENTER>', '');
var rect = this.itemRectForText(index);
this.contents.clearRect(rect.x, rect.y, rect.width, rect.height);
var textWidth = this.textWidthEx(text);
var centeredX = rect.x + (rect.width - textWidth) / 2
this.drawTextEx(text, centeredX, rect.y);
};
Game_Action.prototype.getStealableItem = function(target, stealable) {
stealable.isStolen = true;
var id = stealable.id;
switch (stealable.type) {
case 'item':
var item = $dataItems[id];
this.playStealSound(item.stealSound);
$gameParty.gainItem(item, 1);
var name = "\\i[" + item.iconIndex + "]" + item.name;
this.afterStealEffect(target, item);
break;
case 'weapon':
var item = $dataWeapons[id];
this.playStealSound(item.stealSound);
$gameParty.gainItem(item, 1);
var name = "\\i[" + item.iconIndex + "]" + item.name;
this.afterStealEffect(target, item);
break;
case 'armor':
var item = $dataArmors[id];
this.playStealSound(item.stealSound);
$gameParty.gainItem(item, 1);
var name = "\\i[" + item.iconIndex + "]" + item.name;
this.afterStealEffect(target, item);
break;
case 'gold':
$gameParty.gainGold(id);
this.playStealSound(Yanfly.Param.StealSEGold);
var fmt = Yanfly.Param.StealGold;
var name = fmt.format(Yanfly.Util.toGroup(id), TextManager.currencyUnit);
break;
}
var fmt = Yanfly.Param.StealSuccess;
if (fmt === '') return;
var text = fmt.format(this.subject().name(), target.name(), name);
this.displayStealText(text);
};
(The former replaces a function in BattleEngineCore.)