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

322 lines
9.5 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 Window_MilitaryDetail = /** @class */ (function (_super) {
__extends(Window_MilitaryDetail, _super);
function Window_MilitaryDetail() {
var _this = this;
var r = new Rectangle(580, 0, 520, 800 - Nore.TOP_Y);
_this = _super.call(this, r) || this;
_this._sprite1 = new Sprite_MilitaryEnemy(0);
_this.addChild(_this._sprite1);
_this._sprite2 = new Sprite_MilitaryEnemy(1);
_this.addChild(_this._sprite2);
_this._sprite1.visible = false;
_this._sprite2.visible = false;
return _this;
}
Window_MilitaryDetail.prototype.setPlace = function (place) {
if (this._place == place) {
return;
}
this._place = place;
this.refresh();
};
Window_MilitaryDetail.prototype.refresh = function () {
this.contents.clear();
this.refreshImage();
this.refreshDescription();
};
Window_MilitaryDetail.prototype.refreshImage = function () {
var enemyId = this._place.currentPlaceStage().enemyId();
var troop = $dataTroops[enemyId];
if (!troop) {
return;
}
if (troop.members[0]) {
var hero = new ClickerEnemy(troop.members[0].enemyId);
this._sprite1.setBattler(hero);
this._sprite1.visible = true;
}
if (troop.members[1]) {
var hero = new ClickerEnemy(troop.members[1].enemyId);
this._sprite2.setBattler(hero);
this._sprite2.visible = true;
} else {
this._sprite2.visible = false;
}
};
Window_MilitaryDetail.prototype.enemy = function () {
var enemyId = this._place._enemyId;
return new ClickerEnemy(enemyId);
};
Window_MilitaryDetail.prototype.refreshDescription = function () {
if (this.enemy().enemy().meta["enemyDesc"]) {
var desc = this.enemy().enemy().meta["enemyDesc"];
var text = TextManager["enemyDesc" + desc];
var texts = text.split("\n");
this.contents.textColor = ColorManager.normalColor();
this.contents.fontSize = 19;
var y = 30;
for (var _i = 0, texts_1 = texts; _i < texts_1.length; _i++) {
var t = texts_1[_i];
this.contents.drawText(t, 10, y, 480, 40, "center");
y += 26;
}
}
};
return Window_MilitaryDetail;
})(Window_Base);
var Sprite_MilitaryEnemy = /** @class */ (function (_super) {
__extends(Sprite_MilitaryEnemy, _super);
function Sprite_MilitaryEnemy(index) {
var _this = _super.call(this) || this;
_this.bitmap = new Bitmap(350, 740);
_this._index = index;
_this.addLabel();
_this._enemySprite = new Sprite_PlaceEnemy();
_this.addChild(_this._enemySprite);
_this.x = index * 236 + 22;
_this.y = 100;
return _this;
}
Sprite_MilitaryEnemy.prototype.setBattler = function (enemy) {
this.bitmap.clear();
this._enemy = enemy;
this._enemySprite.setBattler(enemy, 30);
this.refreshStatus();
this.refreshSkill();
};
Sprite_MilitaryEnemy.prototype.addLabel = function () {
var s = this.getSprite(0, 297, 56, 96);
s.x = 30;
s.y = 350;
this.addChild(s);
{
var s_1 = this.getSprite(96, 380, 200, 3);
s_1.x = 32;
s_1.y = 448;
this.addChild(s_1);
}
{
var s_2 = this.getSprite(96, 265, 100, 30);
s_2.x = 33;
s_2.y = 460;
this.addChild(s_2);
}
};
Sprite_MilitaryEnemy.prototype.refreshStatus = function () {
this.bitmap.fontSize = 20;
var enemy = this._enemy;
this.bitmap.textColor = ColorManager.normalColor();
var hpRateStr = enemy.enemy().meta["hpRate"];
var hpRate = 100;
if (hpRateStr) {
hpRate = parseInt(hpRateStr);
}
this.drawStatus("HP", enemy.mhp(), 0, hpRate);
var atkRate = 100;
if (hpRate < 100) {
atkRate = 75;
}
this.drawStatus(
"ATK",
Math.round((enemy.atk() / atkRate) * 100),
1,
atkRate
);
if (enemy.enemyId() == 53) {
// サキだけはSPDが下がったようにみせる
var rate = 0.4;
this.drawStatus("SPD", Math.round(enemy.spd() / rate), 2, rate * 100);
} else {
this.drawStatus("SPD", enemy.spd(), 2);
}
};
Sprite_MilitaryEnemy.prototype.getSprite = function (x, y, w, h) {
var baseTexture = Nore.getSystemBaseTexture("gacha");
var r = new Rectangle(x, y, w, h);
var texture = new PIXI.Texture(baseTexture, r);
var s = new PIXI.Sprite(texture);
return s;
};
Sprite_MilitaryEnemy.prototype.drawStatus = function (
label,
value,
yIndex,
rate
) {
if (rate === void 0) {
rate = 100;
}
var top = 340 + yIndex * 35;
var left = 50;
var w = 156;
this.bitmap.textColor = ColorManager.systemColor();
this.bitmap.textColor = ColorManager.normalColor();
this.bitmap.drawText(value, left, top, w, 40, "right");
if (rate < 100) {
this.bitmap.drawText(
"→ " + Math.round((value * rate) / 100),
left + 80,
top,
w,
40,
"right"
);
}
};
Sprite_MilitaryEnemy.prototype.refreshSkill = function () {
this.bitmap.textColor = ColorManager.normalColor();
var skillList = this._enemy.skills();
//p(skillList)
for (var i = 0; i < skillList.length; i++) {
this.drawSkill(skillList[i], i);
}
};
Sprite_MilitaryEnemy.prototype.drawSkill = function (skill, index) {
var top = 484 + index * 200;
var left = 34;
this.bitmap.textColor = ColorManager.normalColor();
this.bitmap.fontSize = 19;
//this.bitmap.fontBold = true;
this.bitmap.drawText(this.skillName(skill), left, top, 170, 40);
this.bitmap.fontBold = false;
this.bitmap.fontSize = 15;
var texts = this.skillDescription(skill).split("\n");
var value = this.skillValue(skill);
top += 28;
this.bitmap.drawText(texts[0].format(value), left, top, 190, 40);
if (texts.length > 1) {
this.bitmap.drawText(texts[1].format(value), left, top + 24, 190, 40);
}
this.bitmap.textColor = "#f3de67";
this.bitmap.drawText(TextManager.probability, left, top + 25 * 2, 150, 40);
this.bitmap.textColor = "#84ecff";
this.bitmap.drawText(
skill.successRate + "",
left,
top + 25 * 2,
128,
40,
"right"
);
};
Sprite_MilitaryEnemy.prototype.skillName = function (skill) {
if (ConfigManager.language == "en") {
if (skill.meta["nameEn"]) {
return skill.meta["nameEn"];
}
}
return skill.name;
};
Sprite_MilitaryEnemy.prototype.skillValue = function (skill) {
if (skill.meta["damage"]) {
return skill.meta["damage"];
}
return "";
};
Sprite_MilitaryEnemy.prototype.skillDescription = function (skill) {
if (ConfigManager.language == "en") {
if (skill.meta["descEn"]) {
return skill.meta["descEn"];
}
if (skill.meta["desc1En"]) {
if (skill.meta["desc2En"]) {
return skill.meta["desc1En"] + "\n" + skill.meta["desc2En"];
} else {
return skill.meta["desc1En"];
}
}
}
return skill.description;
};
return Sprite_MilitaryEnemy;
})(Sprite_Clickable);
var Sprite_PlaceEnemy = /** @class */ (function (_super) {
__extends(Sprite_PlaceEnemy, _super);
function Sprite_PlaceEnemy() {
return (_super !== null && _super.apply(this, arguments)) || this;
}
Sprite_PlaceEnemy.prototype.setBattler = function (enemy, offsetY) {
if (offsetY === void 0) {
offsetY = 0;
}
this._enemy = enemy;
this._offsetY = offsetY;
this._name = enemy.battlerName();
if (this._name) {
this.visible = false;
this.bitmap = ImageManager.loadEnemy(this._name);
this.updateOutline();
}
};
Sprite_PlaceEnemy.prototype.update = function () {
_super.prototype.update.call(this);
this.updateBitmap();
this.updatePosition();
};
Sprite_PlaceEnemy.prototype.updateOutline = function () {
var filter3 = new PIXI.filters.OutlineFilter(3, this.pixiColor());
this.filters = [filter3];
};
Sprite_PlaceEnemy.prototype.pixiColor = function () {
switch (this._enemy.element()) {
case MonsterElement.flame:
return MonsterElementColor.flame;
case MonsterElement.water:
return MonsterElementColor.water;
case MonsterElement.wood:
return MonsterElementColor.wood;
}
return 0x888888;
};
Sprite_PlaceEnemy.prototype.updateBitmap = function () {
if (!this._name) {
return;
}
if (!this.bitmap) {
return;
}
this.bitmap = ImageManager.loadEnemy(this._name);
if (this.bitmap.isReady() && this.bitmap.width > 10) {
this.visible = true;
}
};
Sprite_PlaceEnemy.prototype.updatePosition = function () {
if (!this.bitmap) {
return;
}
this.x = (250 - this.bitmap.width) / 2;
this.y = 300 - this.bitmap.height + this._offsetY;
};
return Sprite_PlaceEnemy;
})(Sprite_Clickable);