dead-end-colosseum/www/js/plugins/JsScript43Set.js
2026-01-21 03:42:54 -06:00

591 lines
25 KiB
JavaScript

class _BtlEnst {
constructor() {
this.Dmg = 0;
this.CltDmgFlg = false;
this.c_atk = 0;
this.c_def = 0;
this.c_hit = 0;
this.c_avo = 0;
}
}
let 被弾コモン_命中Flg = false;
let 被弾コモン_ダメージ量 = 0;
let _Btl_PL回避成功 = false;
Game_Interpreter.prototype.N_Btl_SkillUse = function () {
被弾コモン_命中Flg = false;
被弾コモン_ダメージ量 = 0;
NPlayer.AtkRpt--;
NEnemy.AtkRpt--;
NPlayer.Enst = new _BtlEnst();
NEnemy.Enst = new _BtlEnst();
let _PlSkillNo = NPlayer.DO_Arr[KsnTurn];
let _EmSkillNo = NEnemy.DO_Arr[KsnTurn];
NPlayer.Skill = $dataSkills[_PlSkillNo];
NEnemy.Skill = $dataSkills[_EmSkillNo];
if (NPlayer.Skill != undefined) NPlayer.stype = NPlayer.Skill.stypeId;
if (NEnemy.Skill != undefined) NEnemy.stype = NEnemy.Skill.stypeId;
this.SkillTpCk();
this.Skill_StateSkillSet();
if (NPlayer.AtkRpt >= 0) {
UseTp = NPlayer.UseTp;
UseCost = NPlayer.UseCost;
if (_Btl_TutorialNo != -1) {
DmgSkillSet_強制命中Flg = _Tuto_強制命中[KsnTurn];
}
if (this.DmgSkillSet(NPlayer, NEnemy)) {
PLAllMissFlg = false;
NPlayer._tp += 1;
let _相性 = Skill相性Ck(_PlSkillNo, _EmSkillNo);
if (_相性 == _相性結果.Win) {
if ($dataSkills[_PlSkillNo].stypeId == _Stype._Atk) {
}
}
}
if (NPlayer.Skill.damage.elementId != _Zoku._通常攻撃) PLAllMissFlg = false;
}
if (NEnemy.Brns <= 0) {
EnAllMissFlg = false;
} else {
if (NEnemy.AtkRpt >= 0) {
UseTp = NEnemy.UseTp;
UseCost = NEnemy.UseCost;
if (this.DmgSkillSet(NEnemy, NPlayer)) {
被弾コモン_命中Flg = true;
EnAllMissFlg = false;
}
if (NEnemy.Skill.damage.type == _Dtype._Not) EnAllMissFlg = false;
}
}
let PLDmg = this.Dmg_StateCng(NPlayer);
let EmDmg = this.Dmg_StateCng(NEnemy);
let _位置乱数範囲 = 50;
NPlayer._hp -= PLDmg;
被弾コモン_ダメージ量 = PLDmg;
PlTotalDmg += PLDmg;
Rz_合計被ダメージ += PLDmg;
if (PLDmg > 0) {
NPlayer._回避成功 = false;
let _RndPsX = (Math.random() * _位置乱数範囲 * 2) - _位置乱数範囲;
let _RndPsY = (Math.random() * _位置乱数範囲 * 2) - _位置乱数範囲;
if (NPlayer.Enst.CltDmgFlg) PLDmg = SCol.Yel + PLDmg;
let _PsX = NPlayer.APos._x + 150 + _RndPsX;
let _PsY = NPlayer.APos._y + 50 + _RndPsY;
this.DmgPop_Set(PLDmg, _PsX, _PsY, 60, DmgPopTimer, 10);
} else {
let _相性 = Skill相性Ck(_PlSkillNo, _EmSkillNo);
if (_相性 == _相性結果.Win) NPlayer._回避成功 = true;
}
NEnemy._hp -= EmDmg;
EmTotalDmg += EmDmg;
if (EmDmg > 0) {
NEnemy._回避成功 = false;
Turn_DmgCnt += EmDmg;
let _RndPsX = (Math.random() * _位置乱数範囲 * 2) - _位置乱数範囲;
let _RndPsY = (Math.random() * _位置乱数範囲 * 2) - _位置乱数範囲;
if (NEnemy.Enst.CltDmgFlg) EmDmg = SCol.Yel + EmDmg;
let _PsX = NEnemy.APos._x - 160 + _RndPsX;
let _PsY = NEnemy.APos._y - 30 + _RndPsY;
this.DmgPop_Set(EmDmg, _PsX, _PsY, 60, DmgPopTimer, 10);
if (Rz_最大与ダメージ < Turn_DmgCnt) Rz_最大与ダメージ = Turn_DmgCnt;
NEnemy.Brns--;
this.N_バランス描画();
if (NEnemy.Brns <= 0) {
if (!_Brns_ブレイクFlg) this.N_バランスブレイク();
}
} else {
let _相性 = Skill相性Ck(_EmSkillNo, _PlSkillNo);
if (_相性 == _相性結果.Win) NEnemy._回避成功 = true;
}
if (NPlayer._hp <= 0) NPlayer._hp = 0;
if (NEnemy._hp <= 0) NEnemy._hp = 0;
if (DbgFlg) {
/* this.SpriteStr(PN_TestStr + 0, " 命中率:" + NPlayer.dbgArr[0], 22, 18, 729, 255);
this.SpriteStr(PN_TestStr + 1, "ダメージ:" + EmDmg, 22, 18, 759, 255);
this.SpriteStr(PN_TestStr + 2, " 命中率:" + NEnemy.dbgArr[0], 22, 1260, 12, 255);
this.SpriteStr(PN_TestStr + 3, "ダメージ:" + PLDmg, 22, 1260, 42, 255);*/
}
NPlayer.dbgArr = [0, 0, 0, 0, 0, 0, 0];
if (NPlayer._hp <= 0 && NEnemy._hp <= 0) NPlayer._hp = 1;
this.Btl_EnterStateDraw();
for (let i = KsnTurn; i <= 6 - 1; i++) {
let _SkillNo = NPlayer.DO_Arr[i];
let _HitStr = this._Txt命中被弾(i, _SkillNo);
let _HitPicNo = PN_bPLBltWin + Cnt_PN_bPLBltWin * i + 3;
this.CngSpriteStr(_HitPicNo, _HitStr);
}
if (NEnemy._hp == 0) {
if (KsnTurn < 5 && this.BtlPsv_ZokuCk(NEnemy, _Zoku._HPZeroTurn行動継続)) {
this.DmgPop_Set(SCol.Red + "HP0 Continue", NEnemy.APos._x + 40, NEnemy.APos._y + 0, 35, DmgPopTimer, 10);
} else {
WinLoseFlg = _BtlBranch.Win;
}
}
if (NPlayer._hp == 0) {
if (KsnTurn < 5 && this.BtlPsv_ZokuCk(NPlayer, _Zoku._HPZeroTurn行動継続)) {
this.DmgPop_Set(SCol.Red + "HP0 Continue", NPlayer.APos._x + 320, NPlayer.APos._y + 80, 35, DmgPopTimer, 10);
} else {
WinLoseFlg = _BtlBranch.Lose;
}
}
if (WinLoseFlg != _BtlBranch.Btl) {
NEnemy.AtkRpt = 0;
NPlayer.AtkRpt = 0;
} else {
let _CmnNo = MetaChecker(NPlayer.Skill, "被弾コモンNo", "");
if (_CmnNo != "") {
_Btl_StopCmnFlg = true;
this.SetCmnEvent(Number(_CmnNo));
}
}
}
Game_Interpreter.prototype.PlayerダメージPop = function (_dmgValue, _位置乱数範囲) {
_位置乱数範囲 = typeof _位置乱数範囲 !== 'undefined' ? _位置乱数範囲 : 50;
let _RndPsX = (Math.random() * _位置乱数範囲 * 2) - _位置乱数範囲;
let _RndPsY = (Math.random() * _位置乱数範囲 * 2) - _位置乱数範囲;
let _PsX = NPlayer.APos._x + 150 + _RndPsX;
let _PsY = NPlayer.APos._y + 50 + _RndPsY;
this.DmgPop_Set(_dmgValue, _PsX, _PsY, 60, DmgPopTimer, 10);
}
Game_Interpreter.prototype.EnemyダメージPop = function (_dmgValue, _位置乱数範囲) {
_位置乱数範囲 = typeof _位置乱数範囲 !== 'undefined' ? _位置乱数範囲 : 50;
let _RndPsX = (Math.random() * _位置乱数範囲 * 2) - _位置乱数範囲;
let _RndPsY = (Math.random() * _位置乱数範囲 * 2) - _位置乱数範囲;
let _PsX = NEnemy.APos._x - 160 + _RndPsX;
let _PsY = NEnemy.APos._y - 30 + _RndPsY;
this.DmgPop_Set(_dmgValue, _PsX, _PsY, 60, DmgPopTimer, 10);
}
Game_Interpreter.prototype.Btl_結果再確認 = function () {
this.Btl_EnterStateDraw();
if (NEnemy._hp == 0) {
if (KsnTurn < 5 && this.BtlPsv_ZokuCk(NEnemy, _Zoku._HPZeroTurn行動継続)) {
this.DmgPop_Set(SCol.Red + "HP0 Continue", NEnemy.APos._x + 40, NEnemy.APos._y + 0, 35, DmgPopTimer, 10);
} else {
WinLoseFlg = _BtlBranch.Win;
}
}
if (NPlayer._hp == 0) {
if (KsnTurn < 5 && this.BtlPsv_ZokuCk(NPlayer, _Zoku._HPZeroTurn行動継続)) {
this.DmgPop_Set(SCol.Red + "HP0 Continue", NPlayer.APos._x + 320, NPlayer.APos._y + 80, 35, DmgPopTimer, 10);
} else {
WinLoseFlg = _BtlBranch.Lose;
}
}
}
Game_Interpreter.prototype.Btl_EnterStateDraw = function () {
this.N_Btl_PlStView(1150, 647);
this.N_Btl_EmStView(30, 7);
}
let _Brns_ブレイク数 = 0;
let _Brns_ブレイクFlg = false;
const STN_ブレイク = 150;
Game_Interpreter.prototype.N_バランスブレイク = function () {
if (_Brns_ブレイク数 > 0) return;
_Brns_ブレイクFlg = true;
_Brns_ブレイク数 = NEnemy.Brns_崩れ数;
NEnemy.state.push(new _State(STN_ブレイク, _Brns_ブレイク数));
for (let i = KsnTurn; i <= 6 - 1; i++) {
let _CngPictNo = PN_bEmBltWin + (i * Cnt_PN_bEmBltWin);
this.CngSprite(_CngPictNo, BtlPic + "PN_bEmBltWin_Brns");
this.DelSprite(_CngPictNo + 1);
this.DelSprite(_CngPictNo + 2);
NEnemy.DO_Arr[i] = -1;
_Brns_ブレイク数--;
if (_Brns_ブレイク数 <= 0) break;
}
this.Btl_敵画像変更(true);
this.BLogAdd(120, SCol.Yel + NEnemy.Name + " has entered a break state!!");
};
Game_Interpreter.prototype.Dmg_StateCng = function (_AChara) {
let _rtDmg = _AChara.Enst.Dmg;
let _被ダメCmnNos = [];
for (let i = 0; i <= _AChara.state.length - 1; i++) {
let _ckst = $dataStates[_AChara.state[i]._No];
for (let j = 0; j <= _ckst.traits.length - 1; j++) {
switch (_ckst.traits[j].code) {
case 11:
switch (_ckst.traits[j].dataId) {
case _Zoku._被ダメージ変化:
let _val = _ckst.traits[j].value;
_rtDmg = Math.floor(_rtDmg * _val);
break;
case _Zoku._被ダメ時コモン発生:
if (_rtDmg > 0) {
_Btl_StopCmnFlg = true;
let _cmnNo = Math.floor(_ckst.traits[j].value * 100);
_被ダメCmnNos.push(_cmnNo)
}
break;
}
break;
}
}
}
if (_rtDmg == 0) return _rtDmg;
for (let i = 0; i < _被ダメCmnNos.length; i++) this.SetCmnEventSc(_被ダメCmnNos[i]);
_AChara.PsvArr.forEach(_AmmId => {
let _Armor = $dataArmors[_AmmId];
for (let i = 0; i <= _Armor.traits.length - 1; i++) {
if (_Armor.traits[i].code != 11) continue;
let _Var = Math.floor(_Armor.traits[i].value * 100) - 100;
switch (_Armor.traits[i].dataId) {
case _Zoku._オートガード:
if (_Var >= Math.random() * 100) {
_rtDmg = Math.round(_rtDmg * 0.7);
this.DmgPop_Set(SCol.Yel + "Auto Guard", _AChara.APos._x - 30, _AChara.APos._y - 40, 35, DmgPopTimer, 10);
}
break;
}
}
});
return _rtDmg;
}
Game_Interpreter.prototype.Skill_StateSkillSet = function () {
this.Skill_StateSet(NPlayer, 1);
this.Skill_StateSet(NEnemy, 1);
}
Game_Interpreter.prototype.Skill_StateTurnUp = function () {
for (let i = 0; i <= NPlayer.state.length - 1; i++) {
if (NPlayer.state[i]._Turn != -1) {
NPlayer.state[i]._Turn--;
if (NPlayer.state[i]._Turn == 0) {
NPlayer.state.splice(i, 1);
i--;
}
}
}
for (let i = 0; i <= NEnemy.state.length - 1; i++) {
if (NEnemy.state[i]._Turn != -1) {
NEnemy.state[i]._Turn--;
if (NEnemy.state[i]._Turn == 0) {
NEnemy.state.splice(i, 1);
i--;
}
}
}
}
Game_Interpreter.prototype.Skill_StateSet = function (_AChara, _優先度, _PopFlg) {
_PopFlg = typeof _PopFlg !== 'undefined' ? _PopFlg : true;
if (_AChara.Skill == undefined) return;
if (_AChara.Skill.damage.type == 1) return;
let _stList = _AChara.Skill.effects;
for (let i = 0; i <= _stList.length - 1; i++) {
if (_stList[i].code != 21) continue;
switch (_stList[i].dataId) {
case _StateDt._コスト削り:
break;
case _StateDt._デバフ解除:
if (_PopFlg) {
this.State_デバフ解除(_AChara, Math.round(_stList[i].value1 * 100 - 100));
this.Btl_Enter異常描画();
}
break;
default:
this.State_Setting(_AChara, _stList[i].dataId, _優先度, _PopFlg);
}
}
}
Game_Interpreter.prototype.State_Setting = function (_Chara, _StNo, _優先度, _PopFlg) {
let _ckst = $dataStates[_StNo];
if (_ckst.priority == _優先度) {
let _addFlg = true;
let _No = -1;
for (let j = 0; j <= _Chara.state.length - 1; j++) {
if (_ckst.id == _Chara.state[j]._No) {
_addFlg = false;
_No = j;
break;
}
}
if (_addFlg) {
_Chara.state.push(new _State(_ckst.id, _ckst.stepsToRemove));
} else { //ターンリセット(すでに追加されていた場合)
_Chara.state[_No]._Turn = _ckst.stepsToRemove;
}
let _PopXZure = 0;
let _PopYZure = _drawPlPopCnt * 51;
if (_Chara.EmFlg) {
_PopXZure = -160;
_PopYZure = _drawEmPopCnt * 51;
}
if (_PopFlg) {
this.DmgPop_Set("\\I[" + _ckst.iconIndex + "] " + _ckst.name,
_Chara.APos._x + _PopXZure, _Chara.APos._y + 100 + _PopYZure, 25, 90, 10, 150);
if (_Chara.EmFlg) _drawEmPopCnt++;
else _drawPlPopCnt++;
}
}
}
Game_Interpreter.prototype.State_デバフ解除 = function (_Chara, _Cnt) {
let _ckCnt = _Cnt;
for (let i = _Chara.state.length - 1; i >= 0; i--) {
let _ckst = $dataStates[_Chara.state[i]._No];
if (MetaChecker(_ckst, "デバフ", null) != null) {
_Chara.state.splice(i, 1);
_ckCnt--;
if (_ckCnt == 0) return;
}
}
}
Game_Interpreter.prototype.SkillTpCk = function () {
if (NPlayer.stype == NEnemy.stype) return;
switch (NPlayer.stype) {
case _Stype._Atk:
if (NEnemy.stype == _Stype._Taiki) NPlayer._tp += 2;
if (NEnemy.stype == _Stype._Def) NPlayer._tp -= 2;
break;
case _Stype._Def:
if (NEnemy.stype == _Stype._Atk) NPlayer._tp += 2;
if (NEnemy.stype == _Stype._Taiki) NPlayer._tp -= 2;
break;
case _Stype._Taiki:
if (NEnemy.stype == _Stype._Def) NPlayer._tp += 2;
if (NEnemy.stype == _Stype._Atk) NPlayer._tp -= 2;
break;
}
}
let UseCost = 0;
let DmgSkillSet_強制命中Flg = -1;
Game_Interpreter.prototype.DmgSkillSet = function (_AChara, _BChara) {
let _AtkHitFlg = false;
let _AtkSkill = _AChara.Skill;
if (_AtkSkill == undefined) return;
switch (_AtkSkill.damage.elementId) {
case _Zoku._通常攻撃:
if (_AtkSkill.damage.type == _Dtype._HPDmg) {
if (_Skill_State存在Ck(_AtkSkill.id, _StateDt._カウンター)) {
if (_BChara.Skill == undefined) return;
if (Skill相性Ck(_AtkSkill.id, _BChara.Skill.id) != _相性結果.Win) {
return;
}
}
let _命中判定 = HitKeisan(_AChara, _BChara);
let _命中Flg = (_命中判定 > Math.random() * 100);
if (DmgSkillSet_強制命中Flg != -1) _命中Flg = (DmgSkillSet_強制命中Flg == 1);
if (_命中Flg) {
let _技の威力 = Math.floor(eval(_AtkSkill.damage.formula));
let _クリティカル補正 = 1;
if (_AtkSkill.damage.critical) {
if (Math.random() * 100 < _AtkSkill.damage.variance) {
if (_Btl_TutorialNo == -1) {
_BChara.Enst.CltDmgFlg = true;
_クリティカル補正 = 1.5;
}
}
}
let _パラメータ補正 = _AChara.b_atk / _BChara.b_def;
let _攻撃力レベル = Math.floor(_AChara.b_atk / 50) + 1;
let _攻撃力レベル補正 = factorial(1.1, (_攻撃力レベル - 2));
if (_攻撃力レベル補正 < 1) _攻撃力レベル補正 = 1;
let _テンション補正 = 1;
if (TH_ModeFlg) {
let _TPar100 = (_AChara._tp / 100);
_テンション補正 = 1 + 1 * (_TPar100 * _TPar100);
}
let _Dmg1 = (((_技の威力 * _クリティカル補正) * _パラメータ補正) * _攻撃力レベル補正) * _テンション補正;
let _Dmg = Math.floor(_Dmg1 / 2);
_AChara.PsvArr.forEach(_AmmId => {
let _Armor = $dataArmors[_AmmId];
for (let i = 0; i <= _Armor.traits.length - 1; i++) {
if (_Armor.traits[i].code != 11) continue;
let _Var = Math.floor(_Armor.traits[i].value * 100) - 100;
switch (_Armor.traits[i].dataId) {
case _Zoku._連続攻撃威力Up:
if (KsnTurn > 0) {
let _ckSkill = $dataSkills[NPlayer.DO_Arr[KsnTurn - 1]];
if (_ckSkill.stypeId == _Stype._Atk) {
_Dmg = Math.ceil(_Dmg * _Armor.traits[i].value);
}
}
break;
case _Zoku._攻vs攻威力Up:
if (_BChara.Skill != undefined) {
if (Skill相性Ck(_AtkSkill.id, _BChara.Skill.id) == _相性結果.Draw) {
_Dmg = Math.ceil(_Dmg * _Armor.traits[i].value);
}
}
break;
case _Zoku._クリ時MP変化:
if (_BChara.Enst.CltDmgFlg) {
_AChara.Do_Mp += _Var;
}
break;
case _Zoku._対ハテナテンションUp:
if (!Em_DoViewArr_OpenBef[KsnTurn]) {
_AChara._tp += _Var;
this.DmgPop_Set(SCol.Yel + "Passive: TP+" + _Var, _AChara.APos._x + 300, _AChara.APos._y - 40, 35, DmgPopTimer, 10);
}
break;
}
}
});
_BChara.Enst.Dmg = _Dmg;
this.PlayAnime(_AtkSkill.animationId, _BChara.APos._x, _BChara.APos._y);
_AtkHitFlg = true;
this.Skill_Effect(_AChara, _BChara);
} else {
let _PopXZure = 0;
if (_BChara.EmFlg) _PopXZure = -160;
this.DmgPop_Set(SCol.Red + "Miss", _BChara.APos._x + _PopXZure, _BChara.APos._y, 60, DmgPopTimer, 10);
}
}
break;
}
this.Skill_StateSet(_AChara, 0);
DmgSkillSet_強制命中Flg = -1;
return _AtkHitFlg;
}
Game_Interpreter.prototype.Skill_Effect = function (_AChara, _BChara) {
let _stList = _AChara.Skill.effects;
for (let i = 0; i <= _stList.length - 1; i++) {
if (_stList[i].code != 21) continue;
switch (_stList[i].dataId) {
case _StateDt._コスト削り:
let _Cost削りVar = Math.round((_stList[i].value1 - 1) * 100);
_BChara.Do_Mp -= _Cost削りVar;
let _PopXZure = 0;
if (_BChara.EmFlg) _PopXZure = -160;
this.DmgPop_Set(SCol.Red + "Cost-" + _Cost削りVar, _BChara.APos._x + _PopXZure, _BChara.APos._y, 60, DmgPopTimer, 10);
if (_BChara.Do_Mp < 0) _BChara.Do_Mp = 0;
break;
default:
this.State_Setting(_BChara, _stList[i].dataId, 1, true);
}
}
}
//命中判定(100%分率)
let HitKeisan = function (_AChara, _BChara) {
//{30+[(命中*2)/8]-[回避/8]}+技の命中補正+(テンション/8)
let _命中 = _AChara.b_hit;
let _回避 = _BChara.b_avo;
let _テンション = _AChara._tp;
let _技の命中補正 = _AChara.Skill.speed;
let _テンション補正 = 0;
if (TH_ModeFlg) _テンション補正 = (_テンション / 8);
let _最終命中 = (50 + (_命中 / 8) - (_回避 / 8)) + _技の命中補正 + _テンション補正;
for (let i = 0; i <= _AChara.state.length - 1; i++) {
let _ckst = $dataStates[_AChara.state[i]._No];
for (let j = 0; j <= _ckst.traits.length - 1; j++) {
switch (_ckst.traits[j].code) {
case 11:
switch (_ckst.traits[j].dataId) {
case _Zoku._命中率変化:
let _val = _ckst.traits[j].value;
_最終命中 *= _val;
break;
}
break;
}
}
}
for (let i = 0; i <= _BChara.state.length - 1; i++) {
let _ckst = $dataStates[_BChara.state[i]._No];
for (let j = 0; j <= _ckst.traits.length - 1; j++) {
switch (_ckst.traits[j].code) {
case 11:
switch (_ckst.traits[j].dataId) {
case _Zoku._被命中率変化:
let _val = _ckst.traits[j].value;
_最終命中 *= _val;
break;
}
break;
}
}
}
if (_BChara.Skill != null) {
if (_BChara.Skill.stypeId == _Stype._Taiki) _最終命中 += 20;
} else {
_最終命中 += 20;
}
_AChara.PsvArr.forEach(_AmmId => {
let _Armor = $dataArmors[_AmmId];
for (let i = 0; i <= _Armor.traits.length - 1; i++) {
switch (_Armor.traits[i].code) {
case 22:
if (_Armor.traits[i].dataId == 0) {
_最終命中 += Math.floor(_Armor.traits[i].value * 100);
}
break;
}
}
});
_最終命中 -= Math.floor(_PsvVarGet(_BChara, 22, 1) * 100);
if (_最終命中 > 100) _最終命中 = 100;
_AChara.dbgArr[0] = _最終命中;
return _最終命中;
}
let _PsvVarGet = function (_AChara, _caseNo, _dataId) {
let _RtnVar = 0;
_AChara.PsvArr.forEach(_AmmId => {
let _Armor = $dataArmors[_AmmId];
for (let i = 0; i <= _Armor.traits.length - 1; i++) {
switch (_Armor.traits[i].code) {
case _caseNo:
if (_Armor.traits[i].dataId == _dataId) {
_RtnVar += _Armor.traits[i].value;
}
break;
}
}
});
return _RtnVar;
}
let DmgFormula = function (_sikiStr, _AChara, _BChara) {
let a = _AChara;
let b = _BChara;
return _Dmgvar = Math.floor(eval(_sikiStr));
}
let NB_DmgPopUpdate = Game_Interpreter.prototype.NUpdate;
Game_Interpreter.prototype.NUpdate = function () {
NB_DmgPopUpdate.call(this);
this.DmgPop_Update();
}
class _DmgPop {
constructor(_PicNo, _pX, _pY, _ViewFlame, _PopY) {
this._PicNo = _PicNo;
this._pX = _pX;
this._pY = _pY;
this._ViewFlame = _ViewFlame;
this._PopY = _PopY;
}
}
let DmgPopArr = [];
Game_Interpreter.prototype.DmgPop_Update = function () {
for (let i = 0; i <= DmgPopArr.length - 1; i++) {
DmgPopArr[i]._ViewFlame--;
if (DmgPopArr[i]._ViewFlame == 10) {
this.MoveSprite(PN_bDmgPop + DmgPopArr[i]._PicNo,
DmgPopArr[i]._pX, DmgPopArr[i]._pY, 10, 0, true, true);
}
if (DmgPopArr[i]._ViewFlame <= 0) {
this.DelSprite(PN_bDmgPop + DmgPopArr[i]._PicNo);
DmgPopArr.splice(i, 1);
i--;
}
}
}
Game_Interpreter.prototype.DmgPop_Set = function (_Str, _pX, _pY, _Size, _Time, _PopY, _mx) {
_Size = typeof _Size !== 'undefined' ? _Size : 30;
_Time = typeof _Time !== 'undefined' ? _Time : 100;
_PopY = typeof _PopY !== 'undefined' ? _PopY : 30;
_mx = typeof _mx !== 'undefined' ? _mx : 100;
let _ckArr = [];
for (let i = 0; i <= DmgPopArr.length - 1; i++) {
_ckArr.push(DmgPopArr[i]._PicNo);
}
let _PNo = 0;
for (let i = 0; i <= 9; i++) {
if (_ckArr.indexOf(i) == -1) {
_PNo = i;
}
}
D_Text_Cng_font = "Cornerstone";
let _SetDmg = new _DmgPop(_PNo, _pX, _pY, _Time, _PopY);
DmgPopArr.push(_SetDmg);
_Str = "\\ow[5]\\oc[rgba(0,0,0,1)]" + _Str;
this.SpriteStr(PN_bDmgPop + _PNo, " " + _Str + " ", _Size, _pX, _pY + 50, 0, _mx, _mx);
EasingStr = "easeOutBounce";
this.MoveSprite(PN_bDmgPop + _PNo, _pX, _pY, 50, 255, true, true);
EasingStr = "";
D_Text_Cng_font = "";
}