You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.5 KiB
JavaScript
73 lines
2.5 KiB
JavaScript
//=============================================================================
|
|
// Salted Fish Plugins - Objects
|
|
// SF_Objects.js
|
|
//=============================================================================
|
|
"use strict";
|
|
var Imported = Imported || {};
|
|
Imported.SF_Objects = true;
|
|
|
|
var SF_Plugins = SF_Plugins || {};
|
|
//=============================================================================
|
|
/*:
|
|
* @plugindesc objects lib for salted fish plugins
|
|
* @author Salted Fish
|
|
*/
|
|
//=============================================================================
|
|
|
|
(function () {
|
|
var SF_Objects = {};
|
|
SF_Plugins.Objects = SF_Objects;
|
|
|
|
SF_Objects.version = 1.0;
|
|
|
|
//=============================================================================
|
|
// Game_Action
|
|
//=============================================================================
|
|
|
|
SF_Objects.Game_Action_applyCritical = Game_Action.prototype.applyCritical;
|
|
Game_Action.prototype.applyCritical = function (damage) {
|
|
return damage * 2.4;
|
|
};
|
|
|
|
Game_Action.prototype.attackHit = function (target) {
|
|
return this.subject().hit;
|
|
};
|
|
|
|
Game_Action.prototype.attackCritical = function (target) {
|
|
if (!this.item().damage.critical) {
|
|
return 0;
|
|
}
|
|
return this.subject().cri - target.cev;
|
|
};
|
|
|
|
SF_Objects.Game_Action_apply = Game_Action.prototype.apply;
|
|
Game_Action.prototype.apply = function (target) {
|
|
if (this.isAttack() || this.isSkill()) {
|
|
var result = target.result();
|
|
this.subject().clearResult();
|
|
result.clear();
|
|
result.used = this.testApply(target);
|
|
result.missed = false;
|
|
result.evaded =
|
|
!result.missed &&
|
|
!this.isCertainHit() &&
|
|
Math.random() >= this.attackHit(target) - this.itemEva(target);
|
|
result.physical = this.isPhysical();
|
|
result.drain = this.isDrain();
|
|
if (result.isHit()) {
|
|
if (this.item().damage.type > 0) {
|
|
result.critical = Math.random() < this.attackCritical(target);
|
|
var value = this.makeDamageValue(target, result.critical);
|
|
this.executeDamage(target, value);
|
|
}
|
|
this.item().effects.forEach(function (effect) {
|
|
this.applyItemEffect(target, effect);
|
|
}, this);
|
|
this.applyItemUserEffect(target);
|
|
}
|
|
} else {
|
|
SF_Objects.Game_Action_apply.apply(this, arguments);
|
|
}
|
|
};
|
|
})();
|