Game_BattlerBase.prototype.skillHpCost = function(skill) {
var result = 0;
if (skill.meta.hpCost) {
result += +skill.meta.hpCost;
}
if (skill.meta.hpRateCost) {
result += +skill.meta.hpRateCost * this.mhp / 100;
}
if (skill.meta.hpCRateCost) {
result += +skill.meta.hpCRateCost * this._hp / 100;
}
return Math.floor(result);
};
Game_BattlerBase.prototype.skillMpCost = function(skill) {
var result = skill.mpCost;
if (skill.meta.mpRateCost) {
result += +skill.meta.mpRateCost * this.mmp / 100;
}
if (skill.meta.mpCRateCost) {
result += +skill.meta.mpCRateCost * this._mp / 100;
}
if (!skill.meta.mpCostNoMcr) {
result *= this.mcr;
}
return Math.floor(result);
};
Game_BattlerBase.prototype.skillItemCost = function(skill) {
if (!this.isActor() && ignoreEnemyItemCost) {
return null;
}
if (skill.meta.itemCost) {
var re = /(i|w|a)(\d+)\*(\d+)/i;
var match = re.exec(skill.meta.itemCost);
if (match) {
var itemCost = {};
var s = match[1].toUpperCase();
if (s === 'I') {
itemCost.item = $dataItems[+match[2]];
} else if (s === 'W') {
itemCost.item = $dataWeapons[+match[2]];
} else {
itemCost.item = $dataArmors[+match[2]];
}
itemCost.num = +match[3];
return itemCost;
}
}
return null;
};
Game_BattlerBase.prototype.skillVNumberCost = function(skill) {
if (skill.meta.vnCost) {
var result = {};
var vnCost = skill.meta.vnCost.split('*');
var re = /\\V\[(\d+)\]/i;
var match = re.exec(vnCost[0]);
result.index = match ? $gameVariables.value(+match[1]) : +vnCost[0];
var match = re.exec(vnCost[1]);
result.num = match ? $gameVariables.value(+match[1]) : +vnCost[1];
return result;
}
return null;
};