diff --git a/assets/Scripts/chat18x/data/DataManager.ts b/assets/Scripts/chat18x/data/DataManager.ts index f8845c9e..04ceb0c5 100644 --- a/assets/Scripts/chat18x/data/DataManager.ts +++ b/assets/Scripts/chat18x/data/DataManager.ts @@ -14,6 +14,7 @@ import { ShopData } from "./ShopData"; import { OrderData } from "./OrderData"; import { GirlData } from "./GirlData"; import { EnvData } from "./EnvData"; +import { GlobalData } from "./GlobalData"; /** * 集中定义数据ID,避免写错字符串 @@ -35,6 +36,7 @@ export enum DataId { GirlChat = "girlChat", // 技师的聊天数据 GirlFavorability = "girlFavorability", // 技师的好感度数据 Env = "env", // 环境数据 + Global = "global", // 全局数据 } /** 构造器类型 */ @@ -78,6 +80,7 @@ export class DataManager { this.register(DataId.Order, OrderData); this.register(DataId.Girl, GirlData); this.register(DataId.Env, EnvData); + this.register(DataId.Global, GlobalData); } /** diff --git a/assets/Scripts/chat18x/data/GlobalData.ts b/assets/Scripts/chat18x/data/GlobalData.ts new file mode 100644 index 00000000..e4c72da5 --- /dev/null +++ b/assets/Scripts/chat18x/data/GlobalData.ts @@ -0,0 +1,28 @@ +/** + * 全局数据 + */ +import { BaseData } from "./BaseData"; +import proto from 'db://assets/Scripts/proto/proto.pb.js'; + +export class GlobalData extends BaseData { + + + public reset(): void { + + } + + public clear(): void { + + } + + public destroy(): void { + super.destroy(); + } + + /** 设置全局数据 */ + public set globals(res: proto.cs.ICSGetResConfigRes) { + + + console.log("设置全局数据:"); + } +} diff --git a/assets/Scripts/chat18x/data/GlobalData.ts.meta b/assets/Scripts/chat18x/data/GlobalData.ts.meta new file mode 100644 index 00000000..1f9d115d --- /dev/null +++ b/assets/Scripts/chat18x/data/GlobalData.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "cc12432f-6e2f-4190-94c6-084037af001f", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/chat18x/network/services/CommonService.ts b/assets/Scripts/chat18x/network/services/CommonService.ts new file mode 100644 index 00000000..ee98091b --- /dev/null +++ b/assets/Scripts/chat18x/network/services/CommonService.ts @@ -0,0 +1,32 @@ +import type { ApiResponse } from "../client/types"; +import proto from "db://assets/Scripts/proto/proto.pb.js"; +import type { ICommonService } from "./ICommonService"; +import { HttpCommonService } from "./HttpCommonService"; +import { MockCommonService } from "./MockCommonService"; + +// 模拟开关 +const USE_MOCK = true; + +export class CommonService implements ICommonService { + private static _I: CommonService | null = null; + public static get I(): CommonService { + if (!CommonService._I) CommonService._I = new CommonService(); + return CommonService._I; + } + + private impl: ICommonService; + + private constructor() { + this.impl = USE_MOCK ? new MockCommonService() : new HttpCommonService(); + } + + /** 运行期切换 */ + public switch(useMock: boolean) { + this.impl = useMock ? new MockCommonService() : new HttpCommonService(); + } + + // 获取配置 + public async reqResConfig(req: proto.cs.ICSGetResConfigReq): Promise> { + return this.impl.reqResConfig(req); + } +} diff --git a/assets/Scripts/chat18x/network/services/CommonService.ts.meta b/assets/Scripts/chat18x/network/services/CommonService.ts.meta new file mode 100644 index 00000000..3d907bf0 --- /dev/null +++ b/assets/Scripts/chat18x/network/services/CommonService.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "c53fc890-4e39-4c5e-bf35-ab87a8359139", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/chat18x/network/services/HttpCommonService.ts b/assets/Scripts/chat18x/network/services/HttpCommonService.ts new file mode 100644 index 00000000..4ded40e7 --- /dev/null +++ b/assets/Scripts/chat18x/network/services/HttpCommonService.ts @@ -0,0 +1,20 @@ +import { ApiClient } from "../client/ApiClient"; +import type { Endpoint } from "../client/endpoints"; +import type { ApiResponse } from "../client/types"; +import proto from "db://assets/Scripts/proto/proto.pb.js"; +import type { ICommonService } from "./ICommonService"; + +export class HttpCommonService implements ICommonService { + constructor(private api = ApiClient.I) {} + + // 获取配置 + async reqResConfig(req: proto.cs.ICSGetResConfigReq): Promise> { + const ep: Endpoint = { + path: "api/logic/getResConfig", + method: "POST", + codec: "json", + needsAuth: true, + }; + return this.api.call(ep, req); + } +} diff --git a/assets/Scripts/chat18x/network/services/HttpCommonService.ts.meta b/assets/Scripts/chat18x/network/services/HttpCommonService.ts.meta new file mode 100644 index 00000000..ae9b07af --- /dev/null +++ b/assets/Scripts/chat18x/network/services/HttpCommonService.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "612b35c8-b85f-4ac1-8cbb-e4fd58c5d3c1", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/chat18x/network/services/ICommonService.ts b/assets/Scripts/chat18x/network/services/ICommonService.ts new file mode 100644 index 00000000..7e89ae32 --- /dev/null +++ b/assets/Scripts/chat18x/network/services/ICommonService.ts @@ -0,0 +1,7 @@ +import type { ApiResponse } from "../client/types"; +import proto from "db://assets/Scripts/proto/proto.pb.js"; + +export interface ICommonService { + // 获取配置 + reqResConfig(req: proto.cs.ICSGetResConfigReq): Promise>; +} diff --git a/assets/Scripts/chat18x/network/services/ICommonService.ts.meta b/assets/Scripts/chat18x/network/services/ICommonService.ts.meta new file mode 100644 index 00000000..a43e995d --- /dev/null +++ b/assets/Scripts/chat18x/network/services/ICommonService.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "05ed90ec-18c9-42cd-ae17-4a7ea4b3875c", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/chat18x/network/services/MockCommonService.ts b/assets/Scripts/chat18x/network/services/MockCommonService.ts new file mode 100644 index 00000000..55dad99d --- /dev/null +++ b/assets/Scripts/chat18x/network/services/MockCommonService.ts @@ -0,0 +1,37 @@ +import type { ApiResponse } from "../client/types"; +import proto from "db://assets/Scripts/proto/proto.pb.js"; +import type { ICommonService } from "./ICommonService"; +import { ConfigManager, ConfigId } from "../../manager/ConfigManager"; +import { GlobalConfig } from "../../config/GlobalConfig"; + +export class MockCommonService implements ICommonService { + private delay(ms = 160) { return new Promise(r => setTimeout(r, ms)); } + private ok(data: T): ApiResponse { + return ({ code: proto.cs.EnmRetCode.SUCCESS, data } as unknown) as ApiResponse; + } + + // 获取配置 + async reqResConfig(req: proto.cs.ICSGetResConfigReq): Promise> { + // 延时 + await this.delay(); + + let data = ""; + const resName = req.resName; + if (resName === "global_config") { + // 全局配置 + data = this.getGlobalConfig(); + } + + // 返回数据 + const res: proto.cs.ICSGetResConfigRes = { data }; + return this.ok(res); + } + + // 全局配置 + private getGlobalConfig(): string { + + const configData = ConfigManager.I.getDataById(ConfigId.Global); + + return ""; + } +} diff --git a/assets/Scripts/chat18x/network/services/MockCommonService.ts.meta b/assets/Scripts/chat18x/network/services/MockCommonService.ts.meta new file mode 100644 index 00000000..ca4d7d64 --- /dev/null +++ b/assets/Scripts/chat18x/network/services/MockCommonService.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "8fd66f05-3289-4fa5-aed1-69f384223065", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/Scripts/chat18x/network/services/MockGirlService.ts b/assets/Scripts/chat18x/network/services/MockGirlService.ts index e00cc458..a444d05e 100644 --- a/assets/Scripts/chat18x/network/services/MockGirlService.ts +++ b/assets/Scripts/chat18x/network/services/MockGirlService.ts @@ -76,7 +76,7 @@ export class MockGirlService implements IGirlService { } // 每日推荐 - async reqDailyRecommend(_req: proto.cs.ICSDailyRecommendReq): Promise> { + async reqDailyRecommend(req: proto.cs.ICSDailyRecommendReq): Promise> { // 延时 await this.delay(180); // 配置数据 diff --git a/assets/Scripts/chat18x/network/services/MockThemeService.ts b/assets/Scripts/chat18x/network/services/MockThemeService.ts index a596dd8e..bd741e29 100644 --- a/assets/Scripts/chat18x/network/services/MockThemeService.ts +++ b/assets/Scripts/chat18x/network/services/MockThemeService.ts @@ -22,7 +22,7 @@ export class MockThemeService implements IThemeService { } // 获取大厅分类列表 - async reqHallTheme(_req: proto.cs.ICSHallThemeReq): Promise> { + async reqHallTheme(req: proto.cs.ICSHallThemeReq): Promise> { // 延时 await this.delay();