123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564 |
- System.register(["__unresolved_0", "cc", "__unresolved_1", "__unresolved_2", "__unresolved_3", "__unresolved_4", "__unresolved_5"], function (_export, _context) {
- "use strict";
- var _reporterNs, _cclegacy, __checkObsolete__, __checkObsoleteInNamespace__, _decorator, sys, Singleton, Constants, Utils, csvMgr, stateMgr, _dec, _class, _crd, ccclass, property, UserData, userIns;
- 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 _reportPossibleCrUseOfSingleton(extras) {
- _reporterNs.report("Singleton", "../core/manager/Singleton", _context.meta, extras);
- }
- function _reportPossibleCrUseOfConstants(extras) {
- _reporterNs.report("Constants", "./Constants", _context.meta, extras);
- }
- function _reportPossibleCrUseOfUtils(extras) {
- _reporterNs.report("Utils", "../utils/Utils", _context.meta, extras);
- }
- function _reportPossibleCrUseOfcsvMgr(extras) {
- _reporterNs.report("csvMgr", "../core/csv/CsvManager", _context.meta, extras);
- }
- function _reportPossibleCrUseOfstateMgr(extras) {
- _reporterNs.report("stateMgr", "../core/manager/StateManager", _context.meta, extras);
- }
- return {
- setters: [function (_unresolved_) {
- _reporterNs = _unresolved_;
- }, function (_cc) {
- _cclegacy = _cc.cclegacy;
- __checkObsolete__ = _cc.__checkObsolete__;
- __checkObsoleteInNamespace__ = _cc.__checkObsoleteInNamespace__;
- _decorator = _cc._decorator;
- sys = _cc.sys;
- }, function (_unresolved_2) {
- Singleton = _unresolved_2.Singleton;
- }, function (_unresolved_3) {
- Constants = _unresolved_3.Constants;
- }, function (_unresolved_4) {
- Utils = _unresolved_4.Utils;
- }, function (_unresolved_5) {
- csvMgr = _unresolved_5.csvMgr;
- }, function (_unresolved_6) {
- stateMgr = _unresolved_6.stateMgr;
- }],
- execute: function () {
- _crd = true;
- _cclegacy._RF.push({}, "5c502bBHDZPy7Y4+NP+L5YS", "UserData", undefined);
- __checkObsolete__(['_decorator', 'sys', 'utils']);
- ({
- ccclass,
- property
- } = _decorator);
- UserData = (_dec = ccclass("UserData"), _dec(_class = class UserData extends (_crd && Singleton === void 0 ? (_reportPossibleCrUseOfSingleton({
- error: Error()
- }), Singleton) : Singleton) {
- constructor() {
- super(...arguments);
- //枪的属性列表
- this.gunAttrKeys = ["attack", "bulletSpeed", "stability", "magazine", "reloadingSpeed", "zoomingSpeed"];
- //玩家是否连续通关
- this.isContinuePass = false;
- //玩家数据
- this._data = null;
- //敌人表
- this._enemyTable = null;
- //敌人使用的武器表
- this._enemyWeaponTable = null;
- //扔飞票的表
- this._boomerangTable = null;
- //扔飞票商店
- this._boomerangShopTable = null;
- //商店
- this._shopTable = null;
- //玩家表
- this._playerTable = null;
- //关卡数据表
- this._levelsTable = null;
- //item数据表
- this._itemTable = null;
- //玩家所有枪
- this._playerGunsTable = null;
- //玩家所有枪的属性
- this._playerGunAttsTable = null;
- //杂物比如沙袋油漆桶数据
- this._sundriesTable = null;
- }
- get data() {
- if (!this._data) {
- this.loadFromCache();
- this._data = new Proxy(this._data, {
- set: (target, prop, value) => {
- target[prop] = value;
- if (prop === "gold") {
- //金币
- (_crd && stateMgr === void 0 ? (_reportPossibleCrUseOfstateMgr({
- error: Error()
- }), stateMgr) : stateMgr).updateAllUI((_crd && Constants === void 0 ? (_reportPossibleCrUseOfConstants({
- error: Error()
- }), Constants) : Constants).gold);
- } else if (prop === "diamond") {
- //钻石
- (_crd && stateMgr === void 0 ? (_reportPossibleCrUseOfstateMgr({
- error: Error()
- }), stateMgr) : stateMgr).updateAllUI((_crd && Constants === void 0 ? (_reportPossibleCrUseOfConstants({
- error: Error()
- }), Constants) : Constants).diamond);
- }
- this.saveToCache();
- return true;
- }
- });
- }
- return this._data;
- }
- get enemyTable() {
- if (!this._enemyTable) {
- this._enemyTable = (_crd && csvMgr === void 0 ? (_reportPossibleCrUseOfcsvMgr({
- error: Error()
- }), csvMgr) : csvMgr).getTableArr('enemy');
- }
- return this._enemyTable;
- }
- get enemyWeaponTable() {
- if (!this._enemyWeaponTable) {
- this._enemyWeaponTable = (_crd && csvMgr === void 0 ? (_reportPossibleCrUseOfcsvMgr({
- error: Error()
- }), csvMgr) : csvMgr).getTableArr('enemy_guns');
- }
- return this._enemyWeaponTable;
- }
- get boomerangTable() {
- if (!this._boomerangTable) {
- this._boomerangTable = (_crd && csvMgr === void 0 ? (_reportPossibleCrUseOfcsvMgr({
- error: Error()
- }), csvMgr) : csvMgr).getTableArr('boomerang');
- }
- return this._boomerangTable;
- }
- get boomerangShopTable() {
- if (!this._boomerangShopTable) {
- this._boomerangShopTable = (_crd && csvMgr === void 0 ? (_reportPossibleCrUseOfcsvMgr({
- error: Error()
- }), csvMgr) : csvMgr).getTableArr('boomerang_shop');
- }
- return this._boomerangShopTable;
- }
- get shopTable() {
- if (!this._shopTable) {
- this._shopTable = (_crd && csvMgr === void 0 ? (_reportPossibleCrUseOfcsvMgr({
- error: Error()
- }), csvMgr) : csvMgr).getTableArr('shop');
- }
- return this._shopTable;
- }
- get playerTable() {
- if (!this._playerTable) {
- this._playerTable = (_crd && csvMgr === void 0 ? (_reportPossibleCrUseOfcsvMgr({
- error: Error()
- }), csvMgr) : csvMgr).getTableArr('player');
- }
- return this._playerTable;
- }
- get levelsTable() {
- if (!this._levelsTable) {
- this._levelsTable = (_crd && csvMgr === void 0 ? (_reportPossibleCrUseOfcsvMgr({
- error: Error()
- }), csvMgr) : csvMgr).getTableArr('levels');
- }
- return this._levelsTable;
- }
- get itemTable() {
- if (!this._itemTable) {
- this._itemTable = (_crd && csvMgr === void 0 ? (_reportPossibleCrUseOfcsvMgr({
- error: Error()
- }), csvMgr) : csvMgr).getTableArr('item');
- }
- return this._itemTable;
- }
- get playerGunsTable() {
- if (!this._playerGunsTable) {
- this._playerGunsTable = (_crd && csvMgr === void 0 ? (_reportPossibleCrUseOfcsvMgr({
- error: Error()
- }), csvMgr) : csvMgr).getTableArr('player_guns');
- }
- return this._playerGunsTable;
- }
- get playerGunAttsTable() {
- if (!this._playerGunAttsTable) {
- this._playerGunAttsTable = (_crd && csvMgr === void 0 ? (_reportPossibleCrUseOfcsvMgr({
- error: Error()
- }), csvMgr) : csvMgr).getTableArr('player_guns_atts');
- }
- return this._playerGunAttsTable;
- }
- get sundriesTable() {
- if (!this._sundriesTable) {
- this._sundriesTable = (_crd && csvMgr === void 0 ? (_reportPossibleCrUseOfcsvMgr({
- error: Error()
- }), csvMgr) : csvMgr).getTableArr('sundries');
- }
- return this._sundriesTable;
- }
- /**
- * 读取数据缓存
- */
- loadFromCache() {
- var l = sys.localStorage.getItem((_crd && Constants === void 0 ? (_reportPossibleCrUseOfConstants({
- error: Error()
- }), Constants) : Constants).localCache.playerData);
- if (l) {
- //解密出来转成序列化JSON
- this._data = JSON.parse((_crd && Utils === void 0 ? (_reportPossibleCrUseOfUtils({
- error: Error()
- }), Utils) : Utils).decrypt(l));
- } else {
- //玩家配置数据
- var configData = (_crd && Utils === void 0 ? (_reportPossibleCrUseOfUtils({
- error: Error()
- }), Utils) : Utils).clone(this.playerTable[0]); //查询玩家所有枪
- this._data = _extends({
- gold: 88880,
- //金币
- diamond: 88880,
- //钻石
- boomerang: 0,
- //飞镖个数
- level: 1
- }, configData, {
- //转化的基础配置数据
- guns: [],
- //玩家拥有的枪
- useIdx: 0
- });
- this.getGunData(configData.defaultWeapon, true);
- }
- }
- /**
- * 查询一个枪的数据 顺带把枪的属性等级提升的部分参数带过来
- * @param id 枪的id
- * @param isSave 是否保存绑定在玩家身上
- * @returns 返回枪查询的枪的数据
- */
- getGunData(id, isSave) {
- if (isSave === void 0) {
- isSave = false;
- }
- //如果玩家已经拥有该枪 则直接返回
- var gData = this._data.guns.find(e => e.id == id);
- if (!gData) {
- gData = (_crd && Utils === void 0 ? (_reportPossibleCrUseOfUtils({
- error: Error()
- }), Utils) : Utils).clone(this.playerGunsTable).find(e => e.id == id);
- }
- if (!gData) return;
- this.gunAttrKeys.forEach((arg_name, idx) => {
- var levelKey = arg_name + "Level";
- var attrLevel = 1;
- if (gData[levelKey] != null) {
- attrLevel = gData[levelKey];
- }
- var fun = (i, l, name) => {
- var data = this.playerGunAttsTable.find(e => e.id == i && e.level == l && e.attribute_name == name);
- return data;
- };
- var glData = fun(id, attrLevel, arg_name);
- if (glData) {
- var nextGLData = fun(id, attrLevel + 1, arg_name);
- if (!nextGLData) {
- nextGLData = glData;
- }
- ; //unique_id 这个字段为了识别到时候同一个属性 升级极端情况下 材料消耗相同的时候的判断
- if (idx == 0) {
- gData.attack += glData.value; //伤害
- gData.attackUniqueId = nextGLData.unique_id; //属性等级下的唯一id
- gData.attackLevel = glData.level; //属性等级
- gData.attackExpenditure = glData.expenditure; //当前等级消耗
- gData.nextAttackExpenditure = nextGLData ? nextGLData.expenditure : null; //伤害下一个等级升级消耗
- } else if (idx == 1) {
- gData.bulletSpeed += glData.value; //射速
- gData.bulletSpeedUniqueId = nextGLData.unique_id; //属性等级下的唯一id
- gData.bulletSpeedLevel = glData.level; //属性等级
- gData.bulletSpeedExpenditure = glData.expenditure;
- gData.nextBulletSpeedExpenditure = nextGLData ? nextGLData.expenditure : null; //射速下一个等级升级消耗
- } else if (idx == 2) {
- gData.stability += glData.value; //稳定性
- gData.stabilityUniqueId = nextGLData.unique_id; //属性等级下的唯一id
- gData.stabilityLevel = glData.level; //属性等级
- gData.stabilityExpenditure = glData.expenditure;
- gData.nextStabilityExpenditure = nextGLData ? nextGLData.expenditure : null; //稳定性下一个等级升级消耗
- } else if (idx == 3) {
- gData.magazine += glData.value; //弹匣
- gData.magazineUniqueId = nextGLData.unique_id; //属性等级下的唯一id
- gData.magazineLevel = glData.level; //属性等级
- gData.magazineExpenditure = glData.expenditure;
- gData.nextMagazineExpenditure = nextGLData ? nextGLData.expenditure : null; //弹匣下一个等级升级消耗
- } else if (idx == 4) {
- gData.reloadingSpeed += glData.value; //装填速度
- gData.reloadingSpeedUniqueId = nextGLData.unique_id; //属性等级下的唯一id
- gData.reloadingSpeedLevel = glData.level; //属性等级
- gData.reloadingSpeedExpenditure = glData.expenditure;
- gData.nextReloadingSpeedExpenditure = nextGLData ? nextGLData.expenditure : null; //装填速度下一个等级升级消耗
- } else if (idx == 5) {
- gData.zoomingSpeed += glData.value; //缩放速度
- gData.zoomingSpeedUniqueId = nextGLData.unique_id; //属性等级下的唯一id
- gData.zoomingSpeedLevel = glData.level; //属性等级
- gData.zoomingSpeedExpenditure = glData.expenditure;
- gData.nextZoomingSpeedExpenditure = nextGLData ? nextGLData.expenditure : null; //缩放速度下一个等级升级消耗
- }
- }
- });
- if (isSave) {
- var indx = this._data.guns.findIndex(e => e.id == gData.id);
- if (indx == -1) {
- this._data.guns.push(gData);
- }
- this.saveToCache();
- }
- return gData;
- }
- /**
- * 查询玩家的一把武器的某个属性的总的值 和 武器某个属性升级的最大等级
- * @param gun 查询的枪
- * @param attribute_name 属性
- */
- getGunMaxValue(gun, attribute_name) {
- if (!gun) return {
- totalValue: 0,
- maxLevel: 0,
- isMaxLevel: false
- }; //过滤匹配的数据
- var filteredData = this.playerGunAttsTable.filter(e => e.id === gun.id && e.attribute_name === attribute_name); //计算总值
- var totalValue = filteredData.reduce((sum, item) => sum + item.value, 0); //计算最大等级 如果数组为空则返回0
- var maxLevel = filteredData.length > 0 ? Math.max(...filteredData.map(item => item.level)) : 0; //基础值 + 升级累加值
- var attrLevelKey = attribute_name + "Level";
- var baseData = userIns.playerGunsTable.find(e => e.id == gun.id);
- return {
- totalValue: baseData[attribute_name] + totalValue,
- maxLevel: maxLevel,
- isMaxLevel: gun[attrLevelKey] >= maxLevel
- };
- }
- /**
- * 升级某个枪的属性
- */
- upgradeGun(gun, attribute_name) {
- if (!gun) return;
- var hasGun = this.data.guns.find(e => e.id == gun.id);
- if (!hasGun) return; //查询属性的等级
- var attrLevelKey = attribute_name + "Level";
- hasGun[attrLevelKey] += 1;
- this.getGunData(gun.id, true);
- }
- /**
- * 得到当前用户使用的枪
- */
- getCurUseGun() {
- var pData = {};
- if (this.data.useIdx < this.data.guns.length) {
- var gun = this.data.guns[this.data.useIdx];
- Object.assign(pData, this._data, gun);
- }
- return pData;
- }
- /**
- * 用户切换使用的枪
- * @param id 枪的id
- */
- changeGun(id) {
- if ((_crd && Utils === void 0 ? (_reportPossibleCrUseOfUtils({
- error: Error()
- }), Utils) : Utils).isNull(id)) return;
- var idx = this.data.guns.findIndex(e => e.id == id);
- if (idx != -1) {
- this.data.useIdx = idx;
- this.getGunData(id, true);
- }
- }
- /**
- * 解锁全部枪玩家的枪
- */
- unlockAllGuns() {
- (_crd && Utils === void 0 ? (_reportPossibleCrUseOfUtils({
- error: Error()
- }), Utils) : Utils).clone(this.playerGunsTable).forEach(e => {
- this.getGunData(e.id, true);
- });
- }
- /**
- * 是否拥有这把枪
- */
- isHasGun(id) {
- if ((_crd && Utils === void 0 ? (_reportPossibleCrUseOfUtils({
- error: Error()
- }), Utils) : Utils).isNull(id)) return false;
- var gun = this.data.guns.find(e => e.id == id);
- return gun != null;
- }
- /**
- * 解锁武器
- * @param id 枪的id
- */
- unlockGun(id) {
- if ((_crd && Utils === void 0 ? (_reportPossibleCrUseOfUtils({
- error: Error()
- }), Utils) : Utils).isNull(id) || this.isHasGun(id)) return;
- this.getGunData(id, true);
- }
- /**
- * 得到当前关卡下的敌人数据
- */
- getCurLevelData() {
- var safeIndex = Math.min(this.data.level - 1, this.levelsTable.length - 1);
- return this.levelsTable[safeIndex];
- }
- /**
- * 下一个关卡
- */
- nextLevel() {
- var levels = this.levelsTable;
- var res = levels.filter(e => {
- return e.id == this.data.level + 1;
- });
- if (res) {
- this.data.level = levels.findIndex(e => e.id == res.id);
- }
- return res;
- }
- /**
- * 保存到缓存中
- */
- saveToCache() {
- var data = JSON.stringify(this.data); //序列化JSON字符串过后加密存储
- sys.localStorage.setItem((_crd && Constants === void 0 ? (_reportPossibleCrUseOfConstants({
- error: Error()
- }), Constants) : Constants).localCache.playerData, (_crd && Utils === void 0 ? (_reportPossibleCrUseOfUtils({
- error: Error()
- }), Utils) : Utils).encrypt(data));
- }
- /**
- * 删除缓存
- */
- removeData() {
- this._data = null;
- sys.localStorage.removeItem((_crd && Constants === void 0 ? (_reportPossibleCrUseOfConstants({
- error: Error()
- }), Constants) : Constants).localCache.playerData);
- this.loadFromCache();
- }
- }) || _class); //全局单例
- _export("userIns", userIns = UserData.ins());
- _cclegacy._RF.pop();
- _crd = false;
- }
- };
- });
- //# sourceMappingURL=9eddfc0e89ad6921747c967f3f36130ca21d1684.js.map
|