//=============================================================================
// Doka_ChangeClassWithEquip.js
// by 多卡多卡 on 2019/7/28
//=============================================================================
/*:
* @plugindesc 换装切换职业
* @author 多卡多卡
*
* @param 装备-1
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @param 装备-2
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @param 装备-3
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @param 装备-4
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @param 装备-5
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @param 装备-6
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @param 装备-7
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @param 装备-8
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @param 装备-9
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @param 装备-10
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @param 装备-11
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @param 装备-12
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @param 装备-13
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @param 装备-14
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @param 装备-15
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @param 装备-16
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @param 装备-17
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @param 装备-18
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @param 装备-19
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @param 装备-20
* @type struct<Equip>
* @desc 装备的详细配置信息。
* @default
*
* @help
* 切换装备可以同时切换职业
* 当换上一件装备时,如果可以变更职业,
* 那么职业将会转变成装备对应的职业。
* 如果脱下装备或换上一件普通的装备,
* 那么职业将会切换会原来的职业
*/
/*~struct~Equip:
*
* @param 切换职业
* @desc 切换装备后的职业
* @type class
* @default 0
*
* @param 装备类型
* @type boolean
* @on 武器
* @off 防具
* @desc 装备的类型
* @default true
*
* @param ----装备Id----
* @default
*
* @param 武器Id
* @parent ----装备Id----
* @type weapon
* @desc 武器的Id(仅当装备类型为武器时生效)
* @default 0
*
* @param 防具Id
* @parent ----装备Id----
* @type armor
* @desc 防具的Id(仅当装备类型为防具时生效)
* @default 0
*/
var Imported = Imported || {};
Imported.Doka_ChangeClassWithEquip = true;
var Doka_ChangeClassWithEquip = Doka_ChangeClassWithEquip || {};
Doka_ChangeClassWithEquip.parameters = PluginManager.parameters('Doka_ChangeClassWithEquip');
Doka_ChangeClassWithEquip.MaxEquip = 20;
Doka_ChangeClassWithEquip.Equips = [];
for (var i = 0; i < Doka_ChangeClassWithEquip.MaxEquip; i++) {
if (Doka_ChangeClassWithEquip.parameters['装备-' + String(i + 1)] != "") {
Doka_ChangeClassWithEquip.Equips[i] = JSON.parse(Doka_ChangeClassWithEquip.parameters['装备-' + String(i + 1)]); //不知道这个有什么用,先抄下来
Doka_ChangeClassWithEquip.Equips[i]['Later Class'] = Number(Doka_ChangeClassWithEquip.Equips[i]['切换职业']);
Doka_ChangeClassWithEquip.Equips[i]['Type'] = String(Doka_ChangeClassWithEquip.Equips[i]["装备类型"] || "true") == "true";
Doka_ChangeClassWithEquip.Equips[i]['Weapon Id'] = Number(Doka_ChangeClassWithEquip.Equips[i]['武器Id']);
Doka_ChangeClassWithEquip.Equips[i]['Armor Id'] = Number(Doka_ChangeClassWithEquip.Equips[i]['防具Id']);
}
else {
Doka_ChangeClassWithEquip.Equips[i] = [];
}
}
var Doka_Game_Actor_initMembers = Game_Actor.prototype.initMembers;
Game_Actor.prototype.initMembers = function () {
Doka_Game_Actor_initMembers.call(this);
this.initOriginClass();
};
Game_Actor.prototype.initOriginClass = function () {
if (!this._originClass) {
this._originClass = 0;
}
};
var Doka_Game_Actor_changeEquip = Game_Actor.prototype.changeEquip;
Game_Actor.prototype.changeEquip = function (slotId, item) {
for (var i = 0; i <= Doka_ChangeClassWithEquip.MaxEquip; i++) {
if (i < Doka_ChangeClassWithEquip.MaxEquip && this.equips()[slotId] != null && Doka_ChangeClassWithEquip.Equips[i]['Type'] != undefined) {
if ((Doka_ChangeClassWithEquip.Equips[i]['Type'] && (this.equips()[slotId].wtypeId != undefined && this.equips()[slotId].id != Doka_ChangeClassWithEquip.Equips[i]['Weapon Id']))
|| (!Doka_ChangeClassWithEquip.Equips[i]['Type'] && (this.equips()[slotId].atypeId != undefined && this.equips()[slotId].id != Doka_ChangeClassWithEquip.Equips[i]['Armor Id'])))
this._originClass = this._classId;
}
}
Doka_Game_Actor_changeEquip.call(this, slotId, item);
for (var i = 0; i <= Doka_ChangeClassWithEquip.MaxEquip; i++) {
if (i < Doka_ChangeClassWithEquip.MaxEquip && this.equips()[slotId] != null && Doka_ChangeClassWithEquip.Equips[i]['Type'] != undefined)
{
if ((Doka_ChangeClassWithEquip.Equips[i]['Type'] && this.equips()[slotId].wtypeId != undefined && this.equips()[slotId].id == Doka_ChangeClassWithEquip.Equips[i]['Weapon Id'])
|| (!Doka_ChangeClassWithEquip.Equips[i]['Type'] && this.equips()[slotId].atypeId != undefined && this.equips()[slotId].id == Doka_ChangeClassWithEquip.Equips[i]['Armor Id']))
{
this._originClass = this._classId;
this._classId = Doka_ChangeClassWithEquip.Equips[i]['Later Class']; break;
}
}
Doka_ChangeClassWithEquip.MaxEquip == i ? this._classId = this._originClass : 0;
}
}