bmh_admin/controller/aircraft.js

112 lines
3.1 KiB
JavaScript
Raw Normal View History

2025-03-20 06:16:14 +00:00
let Entity = require("./entity");
let entityMgr = require("./entityMgr");
class Aircraft extends Entity {
constructor(base) {
super(base);
}
init() {
this.insertAttackKKEvent();
this.insertStopAttackKKEvent();
this.insertAttackKDEvent();
this.insertStopAttackKDEvent();
this.insertInfraRedBombEvent();
this.insertStopInfraRedBombEvent();
}
insertAttackKKEvent() {
let event = {};
event["事件"] = "空空攻击事件";
event["类型"] = "开始";
super.bindUserEventFun(event, this.slotBeginAttack);
}
insertStopAttackKKEvent() {
let event = {};
event["事件"] = "空空攻击事件";
event["类型"] = "结束";
super.bindUserEventFun(event, this.slotStopAttack);
}
insertAttackKDEvent() {
let event = {};
event["事件"] = "空地攻击事件";
event["类型"] = "开始";
super.bindUserEventFun(event, this.slotBeginAttack);
}
insertStopAttackKDEvent() {
let event = {};
event["事件"] = "空地攻击事件";
event["类型"] = "结束";
super.bindUserEventFun(event, this.slotStopAttack);
}
insertInfraRedBombEvent() {
let event = {};
event["事件"] = "红外弹干扰事件";
event["类型"] = "开始";
super.bindUserEventFun(event, this.slotInfraRedBomb);
}
insertStopInfraRedBombEvent() {
let event = {};
event["事件"] = "红外弹干扰事件";
event["类型"] = "结束";
super.bindUserEventFun(event, this.slotStopInfraRedBomb);
}
slotBeginAttack(para) {
var hj = para["航迹"];
if (hj) {
let uid = entityMgr.createEntity("空空弹", para);
for (const [key, value] of hj) {
let t = key;
let pt = value;
entityMgr.insertAnimaPath(uid, t, pt);
}
var zdjs = para["制导结束时刻"];
if (zdjs) {
{
let eventJH = {};
eventJH["事件"] = "导弹截获事件";
eventJH["类型"] = "开始";
eventJH["参数"] = para["攻击目标"];
entityMgr.insertUserEvent(uid, zdjs, eventJH);
}
{
var endMs = para["结束时刻"];
let eventJH = {};
eventJH["事件"] = "导弹截获事件";
eventJH["类型"] = "结束";
eventJH["参数"] = para["攻击目标"];
entityMgr.insertUserEvent(uid, endMs, eventJH);
}
}
}
}
slotStopAttack(para) {
var hj = para["航迹"];
if (hj) {
let xh = para["型号"];
let bh = para["编号"];
let uid = entityMgr.getEntityUID(xh, bh);
if (uid) {
entityMgr.releaseEntity(uid);
}
}
}
slotInfraRedBomb(para) {
}
slotStopInfraRedBomb(para) {
}
}
module.exports = Aircraft;