123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397 |
- System.register(["__unresolved_0", "cc", "__unresolved_1", "__unresolved_2", "__unresolved_3", "__unresolved_4", "__unresolved_5", "__unresolved_6"], function (_export, _context) {
- "use strict";
- var _reporterNs, _cclegacy, __checkObsolete__, __checkObsoleteInNamespace__, _decorator, Component, Animation, ResUtil, Game, Utils, userIns, Enemy, GMap, _dec, _dec2, _class, _class2, _descriptor, _crd, ccclass, property, BuildEnemys;
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
- function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }
- function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
- function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }
- function _reportPossibleCrUseOfResUtil(extras) {
- _reporterNs.report("ResUtil", "../utils/ResUtil", _context.meta, extras);
- }
- function _reportPossibleCrUseOfGame(extras) {
- _reporterNs.report("Game", "./Game", _context.meta, extras);
- }
- function _reportPossibleCrUseOfUtils(extras) {
- _reporterNs.report("Utils", "../utils/Utils", _context.meta, extras);
- }
- function _reportPossibleCrUseOfuserIns(extras) {
- _reporterNs.report("userIns", "../data/UserData", _context.meta, extras);
- }
- function _reportPossibleCrUseOfEnemy(extras) {
- _reporterNs.report("Enemy", "./Enemy", _context.meta, extras);
- }
- function _reportPossibleCrUseOfGMap(extras) {
- _reporterNs.report("GMap", "./GMap", _context.meta, extras);
- }
- return {
- setters: [function (_unresolved_) {
- _reporterNs = _unresolved_;
- }, function (_cc) {
- _cclegacy = _cc.cclegacy;
- __checkObsolete__ = _cc.__checkObsolete__;
- __checkObsoleteInNamespace__ = _cc.__checkObsoleteInNamespace__;
- _decorator = _cc._decorator;
- Component = _cc.Component;
- Animation = _cc.Animation;
- }, function (_unresolved_2) {
- ResUtil = _unresolved_2.ResUtil;
- }, function (_unresolved_3) {
- Game = _unresolved_3.Game;
- }, function (_unresolved_4) {
- Utils = _unresolved_4.Utils;
- }, function (_unresolved_5) {
- userIns = _unresolved_5.userIns;
- }, function (_unresolved_6) {
- Enemy = _unresolved_6.Enemy;
- }, function (_unresolved_7) {
- GMap = _unresolved_7.GMap;
- }],
- execute: function () {
- _crd = true;
- _cclegacy._RF.push({}, "88af4GpYOpAS6rDUJ/7f1mw", "BuildEnemys", undefined);
- __checkObsolete__(['_decorator', 'Component', 'Node', 'Vec3', 'Animation']);
- ({
- ccclass,
- property
- } = _decorator);
- _export("BuildEnemys", BuildEnemys = (_dec = ccclass('BuildEnemys'), _dec2 = property({
- type: Animation,
- tooltip: "开门动画"
- }), _dec(_class = (_class2 = class BuildEnemys extends Component {
- constructor() {
- super(...arguments);
- _initializerDefineProperty(this, "openDoor", _descriptor, this);
- //所有敌人数据
- this.queueEnemys = [];
- //保存每一波临时数据定时器记录
- this.eTimeMaps = new Map();
- //当前生成的敌人
- this.allEnemys = [];
- //每连杀3个敌人的次数
- this.continuekillCount = 0;
- //map路径控制类
- this.map = null;
- //敌人排序定时器
- this.intervalId = 0;
- }
- start() {
- this.map = this.node.getComponent(_crd && GMap === void 0 ? (_reportPossibleCrUseOfGMap({
- error: Error()
- }), GMap) : GMap); //加载敌人数据
- this.allEnemys = []; //敌人排序
- if (this.intervalId != null) {
- clearInterval(this.intervalId);
- }
- this.intervalId = setInterval(dt => {
- if ((_crd && Game === void 0 ? (_reportPossibleCrUseOfGame({
- error: Error()
- }), Game) : Game).I.isGameOver || (_crd && Game === void 0 ? (_reportPossibleCrUseOfGame({
- error: Error()
- }), Game) : Game).I.isPause) return;
- this.sortEnemyList();
- }, 0.25 * 1000);
- }
- /**
- * 开始游戏创建敌人
- */
- loadLevelEnemys() {
- var _this = this;
- return _asyncToGenerator(function* () {
- if ((_crd && Game === void 0 ? (_reportPossibleCrUseOfGame({
- error: Error()
- }), Game) : Game).I.isGameOver || (_crd && Game === void 0 ? (_reportPossibleCrUseOfGame({
- error: Error()
- }), Game) : Game).I.isPause) return;
- _this.queueEnemys = _this.readLevelEnemys();
- _this.eTimeMaps.forEach((k, v) => {
- if (v) {
- clearInterval(v);
- }
- });
- _this.eTimeMaps.clear(); //总共每一个敌人延迟时间统计 0.1s检测一次
- var delay = 0;
- var interval = 0.0175; //敌人数据
- var _loop = function* _loop() {
- var eData = _this.queueEnemys[idx]; //每一种之间兵种间隔随机
- var t = (_crd && Utils === void 0 ? (_reportPossibleCrUseOfUtils({
- error: Error()
- }), Utils) : Utils).getRandomFloat(eData.min_interval, eData.max_interval); //延迟时间
- delay += t;
- var tData = {
- data: eData,
- delay: delay,
- curTime: 0,
- createComplete: false
- };
- var time_id = setInterval(() => {
- if ((_crd && Game === void 0 ? (_reportPossibleCrUseOfGame({
- error: Error()
- }), Game) : Game).I.isGameOver || (_crd && Game === void 0 ? (_reportPossibleCrUseOfGame({
- error: Error()
- }), Game) : Game).I.isPause) return;
- tData.curTime += interval; //延迟时间到了然后开始创建敌人
- if (tData.curTime >= tData.delay && !tData.createComplete) {
- tData.createComplete = true;
- _this.createEnemy(tData.data).then(() => {
- var _this$eTimeMaps;
- var timeFun = (_this$eTimeMaps = _this.eTimeMaps) == null ? void 0 : _this$eTimeMaps.get(tData);
- if (timeFun) {
- clearInterval(timeFun);
- _this.eTimeMaps.delete(tData);
- }
- });
- }
- }, interval * 1000);
- _this.eTimeMaps.set(tData, time_id);
- };
- for (var idx = 0; idx < _this.queueEnemys.length; idx++) {
- yield* _loop();
- } //敌人创建完成后 播放开门动画
- _this.scheduleOnce(() => {
- _this.openDoor.play();
- }, delay);
- })();
- }
- /**
- * 读取敌人关卡数据
- */
- readLevelEnemys() {
- var data = (_crd && userIns === void 0 ? (_reportPossibleCrUseOfuserIns({
- error: Error()
- }), userIns) : userIns).getCurLevelData();
- if (!data) return;
- (_crd && Game === void 0 ? (_reportPossibleCrUseOfGame({
- error: Error()
- }), Game) : Game).I.player.setPlayerPos(); //最终生成的敌人队列 普通敌人临时存储 BOSS敌人临时存储
- var enemyQueue = [],
- normalEnemies = [],
- bossEnemies = []; //拆分并处理每个敌人配置
- data.dispose.split('|').forEach(item => {
- var [enemyId, count] = item.split('_').map(Number);
- var enemyData = (_crd && Utils === void 0 ? (_reportPossibleCrUseOfUtils({
- error: Error()
- }), Utils) : Utils).clone((_crd && userIns === void 0 ? (_reportPossibleCrUseOfuserIns({
- error: Error()
- }), userIns) : userIns).enemyTable).find(e => e.id === enemyId); //敌人生命成长系数{生命值*(1+系数)}
- enemyData.hp = Math.floor((1 + data.coefficient) * enemyData.hp);
- if (enemyData) {
- //根据类型分类
- if (enemyData.type === 2) {
- // BOSS类型
- for (var i = 0; i < count; i++) {
- bossEnemies.push(_extends({}, enemyData));
- }
- } else {
- //小兵类型
- for (var _i = 0; _i < count; _i++) {
- normalEnemies.push(_extends({}, enemyData));
- }
- }
- }
- }); //普通敌人乱序处理
- normalEnemies.sort(() => Math.random() - 0.5); //合并队列:普通敌人在前,BOSS在后
- enemyQueue.push(...normalEnemies, ...bossEnemies);
- return enemyQueue;
- }
- /**
- * 创建敌人
- * @param data 敌人数据
- * @returns 返回敌人
- */
- createEnemy(data) {
- var _this2 = this;
- return _asyncToGenerator(function* () {
- if (!(_crd && Game === void 0 ? (_reportPossibleCrUseOfGame({
- error: Error()
- }), Game) : Game).I.map || !(_crd && Game === void 0 ? (_reportPossibleCrUseOfGame({
- error: Error()
- }), Game) : Game).I.map || !_this2.allEnemys || !data) return;
- var item = yield (_crd && ResUtil === void 0 ? (_reportPossibleCrUseOfResUtil({
- error: Error()
- }), ResUtil) : ResUtil).loadEnemyRes(data.prb_name, (_crd && Game === void 0 ? (_reportPossibleCrUseOfGame({
- error: Error()
- }), Game) : Game).I.map.node);
- var posArr = _this2.map.getPaths(data); //创建绕Y轴旋转90度的四元数
- /*const rotation = new Quat();
- Quat.fromAxisAngle(rotation, Vec3.UP, Math.PI / 2)
- e.node.rotate(rotation, NodeSpace.WORLD);*/
- var e = item.getComponent(_crd && Enemy === void 0 ? (_reportPossibleCrUseOfEnemy({
- error: Error()
- }), Enemy) : Enemy);
- yield e.init(data);
- e.walk(posArr);
- _this2.allEnemys.push(e);
- return e;
- })();
- }
- /**
- * 敌人被打死统计
- * @param enemy 敌人
- */
- subtractEnemy(enemy) {
- if (!enemy || !enemy.node) return; //删除一个敌人
- (_crd && Utils === void 0 ? (_reportPossibleCrUseOfUtils({
- error: Error()
- }), Utils) : Utils).remove(this.allEnemys, enemy);
- this.allEnemys.forEach(e => {
- e.addDiffHP();
- });
- if ((_crd && Game === void 0 ? (_reportPossibleCrUseOfGame({
- error: Error()
- }), Game) : Game).I.isGameOver) return;
- }
- /**
- * 敌人节点排序
- */
- sortEnemyList() {
- if ((_crd && Game === void 0 ? (_reportPossibleCrUseOfGame({
- error: Error()
- }), Game) : Game).I.isPause || (_crd && Game === void 0 ? (_reportPossibleCrUseOfGame({
- error: Error()
- }), Game) : Game).I.isGameOver) return;
- if (this.allEnemys.length <= 1) return;
- return;
- var minSortNum = 400;
- var k = this.allEnemys.length + 20;
- if (this.allEnemys.length == 1) {
- if (this.allEnemys[0].node.parent) {
- this.allEnemys[0].node.setSiblingIndex(k + minSortNum);
- }
- } else {
- this.allEnemys.sort(function (x, y) {
- var a = x.node.position;
- var b = y.node.position;
- if (a.y - b.y > 0.01) {
- return -1;
- } else if (a.y == b.y) {
- return 0;
- }
- return 1;
- });
- for (var i = 0; i < this.allEnemys.length; i++) {
- if (this.allEnemys[0].node.parent) {
- this.allEnemys[i].node.setSiblingIndex(i + k + minSortNum);
- }
- }
- }
- }
- /**
- * 销毁数据
- */
- recycle() {
- this.eTimeMaps.forEach((k, v) => {
- if (v != undefined && v != null) {
- clearInterval(v);
- }
- });
- this.eTimeMaps.clear();
- this.allEnemys.forEach(e => {
- e.recycle(false);
- });
- this.allEnemys = [];
- this.map.resetData();
- }
- /**
- * 当前杀敌数
- */
- getCurKillNum() {
- return this.queueEnemys.length - this.allEnemys.length;
- }
- onDisable() {
- if (this.intervalId != null) {
- clearInterval(this.intervalId);
- }
- }
- }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "openDoor", [_dec2], {
- configurable: true,
- enumerable: true,
- writable: true,
- initializer: function initializer() {
- return null;
- }
- })), _class2)) || _class));
- _cclegacy._RF.pop();
- _crd = false;
- }
- };
- });
- //# sourceMappingURL=d10ce2f08cc75137742caa9b9638c82862d0d1b9.js.map
|