179 lines
7.4 KiB
TypeScript
Raw Normal View History

2023-11-08 02:32:54 +08:00
import { app } from "../App";
2023-11-27 02:10:42 +08:00
import PlayerPetData from "../data/PlayerPetData";
2023-11-20 03:47:00 +08:00
import ResourceData from "../data/ResourceData";
2023-11-08 02:32:54 +08:00
import { GUI } from "../ui/UIConfig";
2024-01-08 18:55:00 +08:00
import { GAttribute } from "./entity/EntityData";
2023-11-08 02:32:54 +08:00
2023-11-17 18:29:39 +08:00
//接受到JSON消息
2023-12-28 02:56:34 +08:00
export const RData = (data:any,isTips:boolean = false) => {
2023-11-08 02:32:54 +08:00
if(data.data.state == 200){
2023-11-20 03:47:00 +08:00
//如果有 Resource 字段 表示要刷新资源
if(data.data['resources']){
//刷新资源
data.data['resources'].forEach(res => {
2023-11-27 02:10:42 +08:00
ResourceData.getIns().onUpdateOV(res.operation,res.resource); //刷新资源
PlayerPetData.getIns().onUpdateOV(res.operation,res.pet); //刷新宠物
2023-11-20 03:47:00 +08:00
})
}
2023-12-28 02:56:34 +08:00
//弹出提示
if(isTips){
app.layer.Open(GUI.Tips,{text:data.data.msg});
}
2023-11-08 02:32:54 +08:00
return data.data.data;
}else{
//弹出提示
2023-11-10 03:56:07 +08:00
if(isTips){
app.layer.Open(GUI.Tips,{text:data.data.msg});
}
return data.data.data;
2023-11-08 02:32:54 +08:00
}
}
2023-11-17 18:29:39 +08:00
//接受到Protobuf
export const RProto = (data:any,type:string) => {
try{
return app.proto
.getType(type)
.decode(new Uint8Array(data.data)) as any;;
}catch{
app.layer.Open(GUI.Tips,{text:"Protobuf 解析失败"});
}
}
2023-11-08 02:32:54 +08:00
2023-11-15 18:38:00 +08:00
/************** 请求类 *******************/
2023-11-09 04:22:04 +08:00
export interface NewsContext{
state:number,
msg:string,
data:any,
}
2023-11-15 18:38:00 +08:00
//玩家登录返回
export interface UserLoginVO{
token:string, //token
user:UserVO, //玩家信息
}
/************** 实体类 **************************/
//玩家信息
2023-11-08 02:32:54 +08:00
export interface UserVO{
userId:number, //玩家Id
userName:string, //玩家名称
userPass:string, //玩家密码
}
2023-11-15 18:38:00 +08:00
//游戏玩家信息
2023-11-10 03:56:07 +08:00
export interface PlayerInfoOV{
playerId:number, //玩家Id
userId: number, //用户Id
playerName:string, //玩家名
playerCreateTime:number, //玩家创建时间
novice: false, //是否过引导
}
2023-11-15 18:38:00 +08:00
//玩家宠物信息
2023-11-13 02:37:29 +08:00
export interface PlayerPetOV{
petId:number, //宠物唯一Id
petPlayerId:number; //宠物的玩家Id
petTbId:number; //宠物配置表Id
2023-11-28 02:13:05 +08:00
petLevel:number; //宠物等级
2023-11-26 03:06:23 +08:00
petStar:number; //宠物星级
petStarExp:number; //宠物星级经验
2023-11-13 02:37:29 +08:00
}
2023-11-15 18:38:00 +08:00
//玩家阵法信息
export interface PlayerTacticalOV{
playerId:number, //玩家Id
tacticalData:string, //阵法数据
}
2023-11-20 03:47:00 +08:00
//玩家资源
export interface ResourceOV{
resourceId:number; //资源Id
playerId:number; //玩家Id
resourceTbId:number; //资源配置表Id
resourceValue:number; //资源数量
2023-11-28 19:20:11 +08:00
version:number; //版本号
2023-11-20 03:47:00 +08:00
}
2023-11-08 02:32:54 +08:00
2024-01-04 18:58:21 +08:00
export interface ModeOnHookRankingOV{
playerId:number; //游戏玩家Id
playerName:string; //游戏玩家名称
levelId:number; //玩家关卡Id
rank:number; //玩家当前排名
mapId:number; //地图Id
}
2024-01-10 19:09:14 +08:00
2024-01-08 18:55:00 +08:00
//宠物装备
export interface PetEquip{
equipId:number; //装备唯一Id
equipCfgId:number; //装备配置表Id
equipPlayerId:number; //装备的所属玩家Id
equipLevel:number; //装备等级
2024-01-09 18:32:21 +08:00
equipPetId:number; //当前装备穿戴的宠物Id
2024-01-08 18:55:00 +08:00
equipPosition:number; //装备部位
equipBaseAttributes:GAttribute[]; //基础属性
equipHighAttributes:GAttribute[]; //高级属性
}
//宠物锻造台
export interface EquipForgingBench{
2024-01-10 19:09:14 +08:00
forgingId:number; //锻造台Id
playerId:number; //锻造台所属的玩家Id
forgingExp:number; //锻造等级经验
forgingQuality:number; //锻造品质等级
forgingPetId:number; //当前占用宠物Id
currentForgingQuality:number; //当前锻造等级经验
forgingUpTimeExcess: number; //升级剩余时间
forgingPetLevels:{[key:string]:number} //宠物等级
}
//宠物锻造OV
export interface PetEquipForgingOV{
info:EquipForgingBench;
equip:PetEquip;
2024-01-08 18:55:00 +08:00
}
2024-01-10 19:09:14 +08:00
2023-11-08 02:32:54 +08:00
export const API = {
2024-01-09 11:52:44 +08:00
/********** debugger *****************/
DebuggerAddResource : async (type:number,value:number) => RData(await app.api.post(`/debugger/add/resource/${type}/${value}`),true) as Boolean, //Debuger 添加指定资源
2023-11-10 03:56:07 +08:00
UserRegister : async () => RData(await app.api.post(`/user/register`)) as UserVO, //玩家注册
UserLogin : async (account:string,password:string) => RData(await app.api.post(`/user/login`,{userId:account,userPass:password})) as UserLoginVO, //玩家登录
2023-11-13 02:37:29 +08:00
GetPlayerInfo : async () => RData(await app.api.get(`/game/player/info`),false) as PlayerInfoOV, //获取玩家信息
2023-11-10 03:56:07 +08:00
/********** 新手引导接口 *****************/
SavePlayerInfo : async (playerName:string,novice:boolean = true) => (await app.api.post(`/game/player/info/save`,{playerName,novice})).data as NewsContext, //保存玩家信息
2023-12-28 02:56:34 +08:00
SelectNovicePet: async (petId:number) => RData(await app.api.post(`/game/novice/select/${petId}`),false), //选择新手引导宠物
2023-11-13 02:37:29 +08:00
2023-11-08 02:32:54 +08:00
2023-11-13 02:37:29 +08:00
/********** 宠物接口 ******************/
2023-11-26 03:06:23 +08:00
GetPlayerPets: async () => RData(await app.api.get(`/game/pet/list`),false) as PlayerPetOV[], //获取玩家全部宠物
//petId 需合成的Id pets 被合成的Id列表
2024-01-18 03:19:43 +08:00
PetUpStar: async (petId:number,consume:number) => RData(await app.api.post(`/game/pet/up/star/${petId}/${consume}`),true) as PlayerPetOV, //提升宠物星
2023-11-15 18:38:00 +08:00
/********** 阵法接口 ******************/
GetPlayerTactical: async () => RData(await app.api.get(`/game/tactical/get`),false) as PlayerTacticalOV, //获取玩家阵法
SetPlayerTactical: async (data:PlayerTacticalOV) => RData(await app.api.post(`/game/tactical/set`,data),false) as PlayerTacticalOV, //更新玩家阵法
2023-11-20 03:47:00 +08:00
/********** 资源接口 ******************/
GetPlayerResource: async () => RData(await app.api.get(`/game/resource/get`),false) as ResourceOV[], //获取玩家资源
2024-01-04 18:58:21 +08:00
/********** 排行榜接口(无限模式) *******************/
GOnHookRankings: async (mapId:number) => RData(await app.api.get(`/game/mode/onHook/onRankings/${mapId}`),false) as ModeOnHookRankingOV[], //获取玩家资源
2024-01-08 18:55:00 +08:00
/********** 宠物装备系统接口 ****************/
PetEquipAll: async () => RData(await app.api.get(`/game/equip/all`),false) as PetEquip[], //获取全部装备
2024-01-10 19:09:14 +08:00
PetEquipForging: async () => RData(await app.api.get(`/game/equip/forging`),true) as PetEquipForgingOV, //锻造装备
PetEquipForgingInfo: async () => RData(await app.api.get(`/game/equip/forging/info`),false) as EquipForgingBench, //锻造台
2024-01-09 18:32:21 +08:00
PetEquipForgingPetId: async (petId:number) => RData(await app.api.post(`/game/equip/forging/petId/${petId}`),true) as EquipForgingBench, //设置锻造宠
PetEquipWear: async (petId:number,equipId:number) => RData(await app.api.post(`/game/equip/wear/${petId}/${equipId}`),true) as PetEquip, //穿戴装备
2024-01-10 19:09:14 +08:00
PetEquipForgingUp: async () => RData(await app.api.post(`/game/equip/forging/up`),true) as EquipForgingBench, //升级锻造台
PetEquipUseSpeed: async (resType:number) => RData(await app.api.post(`/game/equip/use/speed/${resType}`),true) as EquipForgingBench, //加速锻造台升级
2024-01-08 18:55:00 +08:00
2023-11-08 02:32:54 +08:00
}