dead-bunny/js/plugins/Nore_Troop.js
2025-01-12 01:21:39 -06:00

182 lines
5.1 KiB
JavaScript

var __extends =
(this && this.__extends) ||
(function () {
var extendStatics = function (d, b) {
extendStatics =
Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array &&
function (d, b) {
d.__proto__ = b;
}) ||
function (d, b) {
for (var p in b)
if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];
};
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError(
"Class extends value " + String(b) + " is not a constructor or null"
);
extendStatics(d, b);
function __() {
this.constructor = d;
}
d.prototype =
b === null
? Object.create(b)
: ((__.prototype = b.prototype), new __());
};
})();
var Nore;
(function (Nore) {
Nore.TROOP_MAP = {
1: [7, 8, 9],
2: [11, 12, 13],
};
function makeAreaTroopData(areaId, clearNum) {
var result = [];
var battleId = 1;
for (var i = 0; i < Nore.TROOP_MAP[areaId].length; i++) {
if (clearNum + 1 > i) {
var troopId = Nore.TROOP_MAP[areaId][i];
var data = makeTroopData(areaId, troopId);
data.setBattleId(battleId);
result.push(data);
}
battleId++;
}
return result.reverse();
}
Nore.makeAreaTroopData = makeAreaTroopData;
function makeTroopData(areaId, troopId) {
var troop = $dataTroops[troopId];
return new TroopData(areaId, troopId);
}
Nore.makeTroopData = makeTroopData;
})(Nore || (Nore = {}));
var EnemyElement;
(function (EnemyElement) {
EnemyElement[(EnemyElement["none"] = 1)] = "none";
EnemyElement[(EnemyElement["fire"] = 2)] = "fire";
EnemyElement[(EnemyElement["water"] = 3)] = "water";
EnemyElement[(EnemyElement["forest"] = 4)] = "forest";
})(EnemyElement || (EnemyElement = {}));
var TroopData = /** @class */ (function () {
function TroopData(areaId, troopId) {
this._areaId = areaId;
this._troopId = troopId;
this.parseLevels();
this.makeEnemyList();
}
TroopData.prototype.setBattleId = function (id) {
this._battleId = id;
};
TroopData.prototype.makeEnemyList = function () {
this._enemyList = [];
var troop = $dataTroops[this._troopId];
for (var i = 0; i < troop.members.length; i++) {
var e = troop.members[i];
var level = this._levelList[i];
var enemy = new EnemyData(e.enemyId);
enemy.setLevel(level);
this._enemyList.push(enemy);
}
};
TroopData.prototype.enemyList = function () {
return this._enemyList;
};
TroopData.prototype.battleId = function () {
return this._battleId;
};
TroopData.prototype.troopId = function () {
return this._troopId;
};
TroopData.prototype.areaId = function () {
return this._areaId;
};
TroopData.prototype.levelList = function () {
return this._levelList;
};
TroopData.prototype.parseLevels = function () {
this._levelList = [];
var name = $dataTroops[this._troopId].name;
var regexp1 = /.*<([0-9,]+)>.*/g;
var result = regexp1.exec(name);
//p(result)
if (!result) {
return;
}
var match = result[1];
var list = match.split(",");
for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {
var s = list_1[_i];
this._levelList.push(parseInt(s));
}
};
return TroopData;
})();
var EnemyData = /** @class */ (function () {
function EnemyData(enemyId) {
this._enemyId = enemyId;
this._level = 0;
}
EnemyData.prototype.setLevel = function (n) {
this._level = n;
};
EnemyData.prototype.level = function () {
return this._level;
};
EnemyData.prototype.element = function () {
for (var _i = 0, _a = this.enemy().traits; _i < _a.length; _i++) {
var t = _a[_i];
if (t.code == 31) {
return t.dataId;
}
}
return EnemyElement.none;
};
EnemyData.prototype.enemy = function () {
return $dataEnemies[this._enemyId];
};
return EnemyData;
})();
var Game_Troop2 = /** @class */ (function (_super) {
__extends(Game_Troop2, _super);
function Game_Troop2() {
return (_super !== null && _super.apply(this, arguments)) || this;
}
Game_Troop2.prototype.setup = function (troopId) {
this._troopData = new TroopData(-1, troopId);
this.clear();
this._troopId = troopId;
this._enemies = [];
for (var i = 0; i < this.troop().members.length; i++) {
var member = this.troop().members[i];
var level = this._troopData.levelList()[i];
if ($dataEnemies[member.enemyId]) {
var enemyId = member.enemyId;
var x = member.x;
var y = member.y;
var enemy = new Game_Enemy2(enemyId, x, y, level);
if (member.hidden) {
enemy.hide();
}
this._enemies.push(enemy);
}
}
this.makeUniqueNames();
};
Game_Troop2.prototype.hpPer = function () {
var max = 0;
var current = 0;
for (var _i = 0, _a = this.members(); _i < _a.length; _i++) {
var enemy = _a[_i];
max += enemy.mhp;
current += enemy.hp;
}
return Math.round((current * 100) / max);
};
return Game_Troop2;
})(Game_Troop);