136 lines
3.3 KiB
JavaScript
136 lines
3.3 KiB
JavaScript
//=============================================================================
|
|
// CallCommonEventBeforeSkill.js
|
|
//=============================================================================
|
|
|
|
/*:
|
|
*
|
|
* @help
|
|
* Usage:
|
|
* skill note write on "<before:CommonEvent:1>".
|
|
* call "common event 0001" before use skill.
|
|
*
|
|
*/
|
|
|
|
/*:ja
|
|
*
|
|
* @help
|
|
* 使い方:
|
|
* Skill Note <before:CommonEvent:1>
|
|
*
|
|
*/
|
|
|
|
var Imported = Imported || {};
|
|
Imported.CallCommonEventBeforeSkill = {};
|
|
|
|
(function () {
|
|
"use strict";
|
|
|
|
var parameters = PluginManager.parameters("CallCommonEventBeforeSkill");
|
|
|
|
var IsCallCommonEvent = function (item) {
|
|
try {
|
|
var source = item.meta.before;
|
|
} catch (e) {
|
|
return false;
|
|
}
|
|
var pattern = new RegExp("CommonEvent:(\\d+)", "g");
|
|
return pattern.test(source);
|
|
};
|
|
|
|
var CallCommonEvent = function (source) {
|
|
var pattern = new RegExp("CommonEvent:(\\d+)", "g");
|
|
var targetId = new Number(pattern.exec(source)[1]);
|
|
if (targetId != NaN) {
|
|
$gameTemp.reserveCommonEvent(targetId);
|
|
if (!$gameParty.inBattle()) {
|
|
SceneManager.update();
|
|
}
|
|
}
|
|
};
|
|
|
|
var BeforeSkillUse = function (item) {
|
|
try {
|
|
var source = item.meta.before;
|
|
CallCommonEvent(source);
|
|
} catch (e) {}
|
|
};
|
|
|
|
var dummySkill = {
|
|
animationId: 0,
|
|
hitType: 0,
|
|
mpCost: 0,
|
|
tpCost: 0,
|
|
tpGain: 0,
|
|
iconIndex: 0,
|
|
scope: 0,
|
|
successRate: 100,
|
|
speed: 0,
|
|
requireWtypeId1: 0,
|
|
requireWytpeId2: 0,
|
|
reqpeats: 1,
|
|
occasion: 0,
|
|
message1: "",
|
|
message2: "",
|
|
damage: { type: 0 },
|
|
effects: [],
|
|
};
|
|
|
|
var flags = [false, false];
|
|
|
|
var Game_Battler_onAllActionsEnd = Game_Battler.prototype.onAllActionsEnd;
|
|
Game_Battler.prototype.onAllActionsEnd = function () {
|
|
flags = [false, false];
|
|
|
|
Game_Battler_onAllActionsEnd.call(this);
|
|
};
|
|
|
|
var Game_Battler_onTrunEnd = Game_Battler.prototype.onTurnEnd;
|
|
Game_Battler.prototype.onTurnEnd = function () {
|
|
flags = [false, false];
|
|
|
|
Game_Battler_onTrunEnd.call(this);
|
|
};
|
|
|
|
var Game_Battler_currentAction = Game_Battler.prototype.currentAction;
|
|
Game_Battler.prototype.currentAction = function () {
|
|
if (flags[0]) {
|
|
return Game_Battler_currentAction.call(this);
|
|
}
|
|
var action = this._actions[0];
|
|
if (action && action.isSkill() && !action.isAttack() && !action.isGuard()) {
|
|
if (!IsCallCommonEvent(action.item())) {
|
|
return Game_Battler_currentAction.call(this);
|
|
}
|
|
this._actions.unshift(action);
|
|
flags[1] = true;
|
|
var dummyAction = new Game_Action(this, true);
|
|
$dataSkills.push(dummySkill);
|
|
dummyAction.setSkill($dataSkills.length - 1);
|
|
dummyAction._item._itemId = $dataSkills.length - 1;
|
|
BeforeSkillUse(action.item());
|
|
return dummyAction;
|
|
}
|
|
|
|
return Game_Battler_currentAction.call(this);
|
|
};
|
|
|
|
var Scene_Skill_useItem = Scene_Skill.prototype.useItem;
|
|
Scene_Skill.prototype.useItem = function () {
|
|
BeforeSkillUse(this.item());
|
|
|
|
Scene_Skill_useItem.call(this);
|
|
};
|
|
|
|
var Game_Interpreter_terminate = Game_Interpreter.prototype.terminate;
|
|
Game_Interpreter.prototype.terminate = function () {
|
|
if (flags[1]) {
|
|
$dataSkills.pop();
|
|
BattleManager._subject._actions.shift();
|
|
|
|
flags[1] = false;
|
|
flags[0] = !flags[0];
|
|
}
|
|
|
|
Game_Interpreter_terminate.call(this);
|
|
};
|
|
})();
|