356 lines
15 KiB
JavaScript
356 lines
15 KiB
JavaScript
let SkillPic = "pictures/Adv/L1_Skill/";
|
|
const PN_SkillWin = PN_Layer1 + 5;
|
|
const PN_SkillTxt = PN_SkillWin + 1;
|
|
const PN_SkillLTxt = PN_SkillTxt + 4;
|
|
const PN_SkillLGold = PN_SkillLTxt + 4;
|
|
const PN_SkillBtn = PN_SkillLGold + 1;
|
|
const PN_SkillName = PN_SkillBtn + 15;
|
|
const PN_SkillLv = PN_SkillName + 15;
|
|
const PN_skCkWin = PN_SkillLv + 15;
|
|
const PN_skCkTxt = PN_skCkWin + 1;
|
|
const SkillSpNo = 6;
|
|
let Skill保存 = Game_System.prototype.initialize;
|
|
Game_System.prototype.initialize = function () {
|
|
Skill保存.call(this);
|
|
this.SkillFZure = new Pos2D(0, 0);
|
|
this.SkillFuki = [];
|
|
}
|
|
let SkillFuki_ReSet = function () {
|
|
$gameSystem.SkillFuki = [];
|
|
}
|
|
let SkillFuki_Zure = function (_SetX, _SetY) {
|
|
_SetX = typeof _SetX !== 'undefined' ? _SetX : 0;
|
|
_SetY = typeof _SetY !== 'undefined' ? _SetY : 0;
|
|
$gameSystem.SkillFZure = new Pos2D(_SetX, _SetY);
|
|
}
|
|
let SkillFuki_Set = function (_Type, _Self1, _Self2, _吹形) {
|
|
_Self1 = typeof _Self1 !== 'undefined' ? _Self1 : "";
|
|
_Self2 = typeof _Self2 !== 'undefined' ? _Self2 : "";
|
|
_吹形 = typeof _吹形 !== 'undefined' ? _吹形 : 0;
|
|
$gameSystem.SkillFuki.push(new SFuki(_Type, _Self1, _Self2, _吹形));
|
|
}
|
|
Game_Interpreter.prototype.AllSkillReset = function () {
|
|
var actor = $gameActors.actor(1);
|
|
actor.skills().forEach(skill => {
|
|
actor.forgetSkill(skill.id);
|
|
});
|
|
$gameSystem.PL_SkillArr = [1 , 9 , 65 , 81 , 0 , 0, 0 , 0];
|
|
for (let i = 0; i <= $gameSystem.PL_SkillArr.length - 1; i++) {
|
|
$gameActors.actor(1).learnSkill($gameSystem.PL_SkillArr[i]);
|
|
}
|
|
}
|
|
let _ASkill_NoSelReset = false;
|
|
Game_Interpreter.prototype.Adv_L1SkillView_Reload = function () {
|
|
_ASkill_NoSelReset = true;
|
|
this.Adv_L1SkillView(true);
|
|
_ASkill_NoSelReset = false;
|
|
}
|
|
let skill_flame = 0;
|
|
let _skill_Layer = 0;
|
|
let _skill_SelX = 0;
|
|
let _skill_SelY = 0;
|
|
let _skill_TcPic = [];
|
|
Game_Interpreter.prototype.Adv_L1SkillView = function (_SetFlg) {
|
|
_SetFlg = typeof _SetFlg !== 'undefined' ? _SetFlg : false;
|
|
skill_flame = _skill_Layer = 0;
|
|
if (!_ASkill_NoSelReset) {
|
|
_skill_SelX = _skill_SelY = 0;
|
|
}
|
|
_shopFukiflame = 0;
|
|
_shopFukiVNo = 0;
|
|
_ShopFuki = $gameSystem.SkillFuki.slice();
|
|
_ShopFZure = $gameSystem.SkillFZure;
|
|
for (let i = 0; i <= $gameSystem.PL_SkillArr.length - 1; i++) {
|
|
$gameActors.actor(1).learnSkill($gameSystem.PL_SkillArr[i]);
|
|
}
|
|
_skill_TcPic = [];
|
|
D_Text_Cng_font = "Makinas";
|
|
let _BWPs = new Pos2D(588, 476);
|
|
for (let i = 0; i <= 3 - 1; i++) {
|
|
for (let j = 0; j <= 5 - 1; j++) {
|
|
let _skillNo = 1 + (i * (8 * 5)) + (8 * j);
|
|
let _LvNo = 0;
|
|
for (let k = 0; k <= 5 - 1; k++) {
|
|
if ($gameActors.actor(1).isLearnedSkill(_skillNo + k)) {
|
|
_LvNo = k + 1
|
|
}
|
|
}
|
|
let _ckLv = _LvNo - 1;
|
|
if (_ckLv < 0) _ckLv = 0;
|
|
let _CkSkill = $dataSkills[_skillNo + _ckLv];
|
|
let _ZureX = 274;
|
|
let _ZureY = 65;
|
|
let _opi = 255;
|
|
if (!_SetFlg) {
|
|
_opi = 0;
|
|
this.Shop_TypeSet(Ftype.初期);
|
|
}
|
|
this.SetPict(PN_SkillBtn + (i * 5) + j, BtlPic + "PN_bEmBltWin",
|
|
_BWPs._x + (_ZureX * i), _BWPs._y - (j * _ZureY), _opi);
|
|
_skill_TcPic.push(PN_SkillBtn + (i * 5) + j);
|
|
let PsvNo = MetaChecker(_CkSkill, "Psv", 0);
|
|
let _CostStr = "PN_Cost_";
|
|
if (PsvNo > 0) {
|
|
_CostStr = "PN_Cost_brank";
|
|
} else {
|
|
if (_CkSkill.mpCost > 0) {
|
|
_CostStr += "m" + _CkSkill.mpCost;
|
|
} else if (_CkSkill.tpCost > 0) {
|
|
_CostStr += "p" + _CkSkill.tpCost;
|
|
}
|
|
}
|
|
this.SetPict(PN_Cmp, BtlPic + _CostStr, 0, 0, 0);
|
|
this.CmpPict(PN_SkillBtn + (i * 5) + j, PN_Cmp, 177, 0);
|
|
this.MovePict(PN_SkillBtn + (i * 5) + j, true, true, 15);
|
|
this.SetPicStr(PN_SkillName + (i * 5) + j, "\\I[" + _CkSkill.iconIndex + "]" + _CkSkill.name,
|
|
22, _BWPs._x + 9 + (_ZureX * i), _BWPs._y + 11 - (j * _ZureY), _opi);
|
|
this.MovePict(PN_SkillName + (i * 5) + j, true, true, 15);
|
|
if (MetaChecker(_CkSkill, "MaxLv", false) != false) {
|
|
this.SetPict(PN_SkillLv + (i * 5) + j, SkillPic + "PN_ISkLv_5",
|
|
_BWPs._x + (_ZureX * i) + 161, _BWPs._y - (j * _ZureY) + 35, _opi);
|
|
} else {
|
|
this.SetPict(PN_SkillLv + (i * 5) + j, SkillPic + "PN_ISkLv_" + _LvNo,
|
|
_BWPs._x + (_ZureX * i) + 161, _BWPs._y - (j * _ZureY) + 35, _opi);
|
|
}
|
|
this.MovePict(PN_SkillLv + (i * 5) + j, true, true, 15);
|
|
if (_LvNo <= 4) {
|
|
let _CkCost = MetaChecker(_CkSkill, "Cost", 0);
|
|
_CkCost = Math.floor(_CkCost * ((100 - $gameVariables.value(VN_スキル割引)) / 100))
|
|
if ($gameParty._gold < _CkCost) {
|
|
this.MovePict(PN_SkillBtn + (i * 5) + j, true, true, 15, 150);
|
|
this.MovePict(PN_SkillName + (i * 5) + j, true, true, 15, 150);
|
|
this.MovePict(PN_SkillLv + (i * 5) + j, true, true, 15, 150);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
D_Text_Cng_font = "";
|
|
this.Adv_L1Skill_DrawTxt();
|
|
this.MovePict(PN_AdvSell, _BWPs._x - 15 + (274 * _skill_SelX), _BWPs._y + 26 - (65 * _skill_SelY), 5);
|
|
this.Adv_SpGold();
|
|
}
|
|
Game_Interpreter.prototype.Adv_L1Skill_DrawTxt = function () {
|
|
this.DelPictSpan(PN_SkillTxt, PN_SkillLGold);
|
|
D_Text_Cng_font = "Makinas";
|
|
let _skillNo = 1 + (_skill_SelX * (8 * 5)) + (8 * _skill_SelY);
|
|
let _LvNo = -1;
|
|
for (let k = 0; k <= 5 - 1; k++) {
|
|
if ($gameActors.actor(1).isLearnedSkill(_skillNo + k)) {
|
|
_LvNo = k;
|
|
}
|
|
}
|
|
let _TPs = new Pos2D(591, 622);
|
|
if (_LvNo == -1) {
|
|
this.SetPicStr(PN_SkillTxt + 0, "- Not Learned -", 25, _TPs._x, _TPs._y, 200);
|
|
} else {
|
|
let _CkSkill = $dataSkills[_skillNo + _LvNo];
|
|
let _SetTxt1 = "\\I[" + _CkSkill.iconIndex + "] " + _CkSkill.name;
|
|
this.SetPicStr(PN_SkillTxt + 0, _SetTxt1, 22, _TPs._x, _TPs._y, 255);
|
|
let _CkDescArr = _Skill_SetuGetArr(_skillNo + _LvNo);
|
|
for (let i = 0; i <= _CkDescArr.length - 1; i++) {
|
|
this.SetPicStr(PN_SkillTxt + 1 + i, _CkDescArr[i], 16, _TPs._x + 20, _TPs._y + 46 + (i * 40), 255);
|
|
}
|
|
if (MetaChecker(_CkSkill, "MaxLv", false) != false) {
|
|
this.SetPict(PN_SkillTxt + 3, SkillPic + "PN_ISkLv_5", _TPs._x + 300, _TPs._y);
|
|
D_Text_Cng_font = "";
|
|
return;
|
|
}
|
|
this.SetPict(PN_SkillTxt + 3, SkillPic + "PN_ISkLv_" + (_LvNo + 1), _TPs._x + 300, _TPs._y);
|
|
}
|
|
if (_LvNo < 4) {
|
|
_CkSkill = $dataSkills[_skillNo + _LvNo + 1];
|
|
_TPs = new Pos2D(591 + 431, 622);
|
|
let _SetTxt1 = "\\I[" + _CkSkill.iconIndex + "] " + _CkSkill.name;
|
|
this.SetPicStr(PN_SkillLTxt + 0, _SetTxt1, 22, _TPs._x, _TPs._y, 255);
|
|
let _CkDescArr = _Skill_SetuGetArr(_skillNo + _LvNo + 1);
|
|
for (let i = 0; i <= _CkDescArr.length - 1; i++) {
|
|
this.SetPicStr(PN_SkillLTxt + 1 + i, _CkDescArr[i], 16, _TPs._x + 20, _TPs._y + 46 + (i * 40), 255);
|
|
}
|
|
this.SetPict(PN_SkillLTxt + 3, SkillPic + "PN_ISkLv_" + (_LvNo + 2), _TPs._x + 300, _TPs._y);
|
|
_LearnSkillCost = MetaChecker(_CkSkill, "Cost", 0);
|
|
_LearnSkillCost = Math.floor(_LearnSkillCost * ((100 - $gameVariables.value(VN_スキル割引)) / 100))
|
|
this.SetPicStrC(PN_SkillLGold, _LearnSkillCost + "B ", 25, 992, 777);
|
|
}
|
|
D_Text_Cng_font = "";
|
|
}
|
|
let _Skill_SetuGetArr = function (_SkillNo) {
|
|
let _CkSkill = $dataSkills[_SkillNo];
|
|
let _CkDescArr = _CkSkill.description.split(/\n/);
|
|
try {
|
|
let _calc = Math.floor(eval(_CkSkill.damage.formula));
|
|
let _hit = _CkSkill.speed;
|
|
for (let i = 0; i <= _CkDescArr.length - 1; i++) {
|
|
_CkDescArr[i] = _CkDescArr[i].replace("calc", _calc);
|
|
_CkDescArr[i] = _CkDescArr[i].replace("hit", _hit);
|
|
}
|
|
} catch (e) {
|
|
}
|
|
return _CkDescArr;
|
|
}
|
|
Game_Interpreter.prototype.Adv_L1SkillUpdate = function (_ReFlg) {
|
|
_ReFlg = typeof _ReFlg !== 'undefined' ? _ReFlg : false;
|
|
if (_ShopStopFlg) {
|
|
this.Shop_FukiDel();
|
|
return;
|
|
}
|
|
if (_ShopEnd_flame > 0) {
|
|
_ShopEnd_flame--;
|
|
if (_ShopEnd_flame == 0) {
|
|
this.Adv_L0_Back();
|
|
}
|
|
return;
|
|
}
|
|
let _mvFlg = false;
|
|
let _okFlg = false;
|
|
let _BWPs = new Pos2D(588, 476);
|
|
switch (_skill_Layer) {
|
|
case 0:
|
|
if (_ReFlg) _mvFlg = true;
|
|
if (Input.isTriggered('up')) {
|
|
_skill_SelY++;
|
|
_mvFlg = true;
|
|
}
|
|
if (Input.isTriggered('down')) {
|
|
_skill_SelY--;
|
|
_mvFlg = true;
|
|
}
|
|
if (Input.isTriggered('left')) {
|
|
_skill_SelX--;
|
|
_mvFlg = true;
|
|
}
|
|
if (Input.isTriggered('right')) {
|
|
_skill_SelX++;
|
|
_mvFlg = true;
|
|
}
|
|
if (_skill_SelX < 0) _skill_SelX = 2;
|
|
if (_skill_SelX >= 3) _skill_SelX = 0;
|
|
if (_skill_SelY < 0) _skill_SelY = 4;
|
|
if (_skill_SelY >= 5) _skill_SelY = 0;
|
|
let _CNo = overPointerCkArr(_skill_TcPic);
|
|
if (_CNo != -1) {
|
|
let _PicNo = _CNo - PN_SkillBtn;
|
|
let _setSklX = Math.floor(_PicNo / 5);
|
|
let _setSklY = _PicNo % 5;
|
|
if (_skill_SelX != _setSklX || _skill_SelY != _setSklY) {
|
|
_skill_SelX = _setSklX;
|
|
_skill_SelY = _setSklY;
|
|
_mvFlg = true;
|
|
}
|
|
if (TouchInput.isTriggered()) _okFlg = true;
|
|
}
|
|
if (!_ReFlg) {
|
|
if (Input.isTriggered('ok')) _okFlg = true;
|
|
}
|
|
if (_mvFlg) {
|
|
SoundManager.playCursor();
|
|
this.MovePict(PN_AdvSell, _BWPs._x - 15 + (274 * _skill_SelX), _BWPs._y + 26 - (65 * _skill_SelY), 5);
|
|
this.Adv_L1Skill_DrawTxt();
|
|
}
|
|
if (skill_flame > 5) {
|
|
if (_okFlg) {
|
|
SoundManager.playOk();
|
|
this.Shop_TypeSet(Ftype.確認);
|
|
let _skillNo = 1 + (_skill_SelX * (8 * 5)) + (8 * _skill_SelY);
|
|
let _LvNo = 0;
|
|
for (let k = 0; k <= 5 - 1; k++) {
|
|
if ($gameActors.actor(1).isLearnedSkill(_skillNo + k)) {
|
|
_LvNo = k + 1
|
|
let _CkSkill = $dataSkills[_skillNo + k];
|
|
if (MetaChecker(_CkSkill, "MaxLv", false) != false) {
|
|
_LvNo = 5;
|
|
}
|
|
}
|
|
}
|
|
if (_LvNo >= 5) {
|
|
this.Shop_TypeSet(Ftype.最大);
|
|
} else if ($gameParty._gold < _LearnSkillCost) {
|
|
this.Shop_TypeSet(Ftype.不足);
|
|
} else {
|
|
_LearnSkillNo = _skillNo + _LvNo;
|
|
this.Adv_L1Skill_YNView();
|
|
}
|
|
}
|
|
if (Input.isTriggered('escape') || TouchInput.isCancelled()) {
|
|
SoundManager.playCancel();
|
|
this.DelPictSpan(PN_IFuki, PN_IFukiTxt + 1);
|
|
_ShopEnd_flame = 5;
|
|
_ShopStopFlg = true;
|
|
this.JN_EventLoad("スキル_退店", true);
|
|
}
|
|
}
|
|
break;
|
|
case 1:
|
|
this.Adv_L1SkillYNUpdate();
|
|
break;
|
|
}
|
|
this.Shop_FukiUpdate();
|
|
skill_flame++;
|
|
}
|
|
const VN_習得スキルNo = 25;
|
|
let _sZureX = 34;
|
|
let _sZureY = -16;
|
|
let _LearnSkillNo = 0;
|
|
let _LearnSkillCost = 0;
|
|
Game_Interpreter.prototype.Adv_L1Skill_YNView = function () {
|
|
_skill_Layer = 1;
|
|
_sYNSel = 0;
|
|
習得スキルNo = _LearnSkillNo;
|
|
_CkSkill = $dataSkills[習得スキルNo];
|
|
$gameVariables.setValue(VN_習得スキルNo, 習得スキルNo);
|
|
let _SetTxt1 = "\\I[" + _CkSkill.iconIndex + "] " + _CkSkill.name;
|
|
D_Text_Cng_font = "Makinas";
|
|
this.SetPictFIn(PN_skCkWin, SkillPic + "PN_skCkWin", 0, 0, 0, 0, 10);
|
|
this.SetPicStrC(PN_skCkTxt + 0, "Learn " + _SetTxt1 + "?", 25, 909 + 80, 348, 0);
|
|
this.SetPicStrC(PN_skCkTxt + 1, "Price: " + _LearnSkillCost + "B ", 25, 909 + 80, 348 + 30, 0);
|
|
this.MovePict(PN_skCkTxt + 0, true, true, 10);
|
|
this.MovePict(PN_skCkTxt + 1, true, true, 10);
|
|
D_Text_Cng_font = "";
|
|
this.MovePict(PN_AdvSell, 596 + _sYNSel * 163, 401 + 28, 5);
|
|
}
|
|
let 習得スキルNo = -1;
|
|
let CN_スキル習得 = 22;
|
|
Game_Interpreter.prototype.Adv_L1SkillYNUpdate = function () {
|
|
let _mvFlg = false;
|
|
if (Input.isTriggered('ok') || TouchInput.isTriggered()) {
|
|
SoundManager.playOk();
|
|
if (_sYNSel == 1) {
|
|
_skill_Layer = skill_flame = 0;
|
|
this.DelPictSpan(PN_skCkWin, PN_skCkTxt + 1);
|
|
this.Adv_L1SkillUpdate(true);
|
|
return;
|
|
}
|
|
_skill_Layer = skill_flame = 0;
|
|
$gameParty.loseGold(_LearnSkillCost);
|
|
$gameActors.actor(1).learnSkill(_LearnSkillNo);
|
|
_CkSkill = $dataSkills[_LearnSkillNo];
|
|
if (_CkSkill.name.indexOf("Lv1") == -1) {
|
|
for (let i = 0; i <= $gameSystem.PL_SkillArr.length - 1; i++) {
|
|
if ($gameSystem.PL_SkillArr[i] == _LearnSkillNo -1)
|
|
$gameSystem.PL_SkillArr[i] = _LearnSkillNo;
|
|
}
|
|
}
|
|
let PsvNo = MetaChecker(_CkSkill, "Psv", 0);
|
|
if (PsvNo > 0) {
|
|
$gameParty.gainItem($dataArmors[PsvNo], 1, true)
|
|
let _CkPowUp = MetaChecker($dataArmors[PsvNo], "PowUp", false)
|
|
if (_CkPowUp != false) {
|
|
$gameParty.gainItem($dataArmors[PsvNo - 1], -1000, true);
|
|
}
|
|
}
|
|
this.SetCmnEventSc(CN_スキル習得);
|
|
this.DelPictSpan(PN_skCkWin, PN_skCkTxt + 1);
|
|
this.Adv_L1SkillUpdate(true);
|
|
this.Shop_TypeSet(Ftype.購入);
|
|
_ShopStopFlg = true;
|
|
this.JN_EventLoad("スキル_購入", true);
|
|
}
|
|
if (Input.isTriggered('escape') || TouchInput.isCancelled()) {
|
|
SoundManager.playCancel();
|
|
_skill_Layer = skill_flame = 0;
|
|
this.DelPictSpan(PN_skCkWin, PN_skCkTxt + 1);
|
|
this.Adv_L1SkillUpdate(true);
|
|
if (!_ShopStopFlg) {
|
|
this.Shop_TypeSet(Ftype.定期);
|
|
}
|
|
}
|
|
}
|