Merge branch 'feature/weiwang' into dev
This commit is contained in:
commit
abf47d251f
17
src/api_s2c/weiwang/ApiOpen.ts
Normal file
17
src/api_s2c/weiwang/ApiOpen.ts
Normal file
@ -0,0 +1,17 @@
|
||||
import { ApiCall } from "tsrpc";
|
||||
import { ReqOpen, ResOpen } from "../../shared/protocols/weiwang/PtlOpen";
|
||||
|
||||
export default async function (call: ApiCall<ReqOpen, ResOpen>) {
|
||||
let data = await G.mongodb.collection("weiwang").findOne({ uid: call.uid });
|
||||
|
||||
if (!data) {
|
||||
// 初始化威望数据
|
||||
data = (await G.mongodb.collection("weiwang").findOneAndUpdate(
|
||||
{ uid: call.uid },
|
||||
{ $set: { hp: 0, atk: 0, def: 0 } },
|
||||
{ upsert: true, returnDocument: "after" }
|
||||
)).value;
|
||||
}
|
||||
|
||||
call.succ({ lv: { hp: data.hp, atk: data.atk, def: data.def } });
|
||||
}
|
94
src/api_s2c/weiwang/ApiUpLv.ts
Normal file
94
src/api_s2c/weiwang/ApiUpLv.ts
Normal file
@ -0,0 +1,94 @@
|
||||
import { ApiCall } from "tsrpc";
|
||||
import { ReqUpLv, ResUpLv } from "../../shared/protocols/weiwang/PtlUpLv";
|
||||
import { PlayerFun } from "../../public/player";
|
||||
|
||||
|
||||
export default async function (call: ApiCall<ReqUpLv, ResUpLv>) {
|
||||
let data = await G.mongodb.collection("weiwang").findOne({ uid: call.uid });
|
||||
|
||||
if (!data) {
|
||||
// 初始化威望数据
|
||||
data = (await G.mongodb.collection("weiwang").findOneAndUpdate(
|
||||
{ uid: call.uid },
|
||||
{ $set: { hp: 0, atk: 0, def: 0 } },
|
||||
{ upsert: true, returnDocument: "after" }
|
||||
)).value;
|
||||
}
|
||||
|
||||
let cur_lv = data[call.req.type];
|
||||
let min_lv = Math.min(data.atk, data.def, data.hp);
|
||||
|
||||
let ids = Object.keys(G.gc.renown_level).sort(
|
||||
(a, b) => Number(a) - Number(b)
|
||||
);
|
||||
|
||||
let config;
|
||||
for (let id of ids) {
|
||||
config = G.gc.renown_level[id];
|
||||
if (min_lv < config.renownlevel) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 超过档期威望的最大等级
|
||||
if (cur_lv + call.req.lv > config.maxlevel) {
|
||||
return call.error("", { code: -1, message: lng.weiwang_12 });
|
||||
}
|
||||
|
||||
let need = [{ a: config.cost[0].a, t: config.cost[0].t, n: config.cost[0].n * call.req.lv }];
|
||||
|
||||
// 检测消耗是否足够
|
||||
await PlayerFun.checkNeedIsMeet(call, need);
|
||||
|
||||
// 扣除消耗
|
||||
await PlayerFun.cutNeed(call, need);
|
||||
|
||||
data[call.req.type] += call.req.lv;
|
||||
|
||||
// 重新计算buff
|
||||
let buff = calc_weiwang_buff(data.atk, data.def, data.hp);
|
||||
G.mongodb.collection("weiwang").updateOne({ uid: call.uid }, {
|
||||
$set: { buff: buff },
|
||||
$inc: { [call.req.type]: call.req.lv },
|
||||
});
|
||||
|
||||
call.succ({ lv: { hp: data.hp, atk: data.atk, def: data.def } });
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算当前威望buff
|
||||
*/
|
||||
function calc_weiwang_buff(atk: number, def: number, hp: number) {
|
||||
let buff: k_v<number> = {
|
||||
"hp": 0, "def": 0, "atk": 0
|
||||
};
|
||||
|
||||
let ids = Object.keys(G.gc.renown_level).sort(
|
||||
(a, b) => Number(a) - Number(b)
|
||||
);
|
||||
|
||||
for (let i = 0; i < ids.length; i++) {
|
||||
let curr = G.gc.renown_level[ids[i]];
|
||||
if (i == 0) {
|
||||
buff["hp"] += curr.hp * Math.min(curr.maxlevel, hp);
|
||||
buff["atk"] += curr.atk * Math.min(curr.maxlevel, atk);
|
||||
buff["def"] += curr.def * Math.min(curr.maxlevel, def);
|
||||
} else {
|
||||
let prev = G.gc.renown_level[ids[i - 1]];
|
||||
|
||||
if (hp > prev.maxlevel) {
|
||||
buff["hp"] += curr.hp * Math.min(hp - prev.maxlevel, curr.maxlevel - prev.maxlevel);
|
||||
}
|
||||
|
||||
if (atk > prev.maxlevel) {
|
||||
buff["atk"] += curr.atk * Math.min(atk - prev.maxlevel, curr.maxlevel - prev.maxlevel);
|
||||
}
|
||||
|
||||
if (def > prev.maxlevel) {
|
||||
buff["def"] += curr.def * Math.min(def - prev.maxlevel, curr.maxlevel - prev.maxlevel);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return buff;
|
||||
}
|
@ -52,7 +52,7 @@ declare module 'tsrpc' {
|
||||
/**API 锁 */
|
||||
apiLock: k_v<number>;
|
||||
/**获取默认上阵战斗数据 */
|
||||
getDefaultFightData(def?: k_v<string>): Promise<joinFightData>;
|
||||
getDefaultFightData(def?: k_v<string>, ext_buff?: { [type: string]: k_v<number> }): Promise<joinFightData>;
|
||||
/**刷新上阵英雄战力 */
|
||||
refreshPower(): Promise<any>;
|
||||
/**玩家计算在线时长时间戳 */
|
||||
@ -125,7 +125,7 @@ Object.defineProperties(BaseConnection.prototype, {
|
||||
},
|
||||
});
|
||||
|
||||
BaseConnection.prototype.getDefaultFightData = async function (this: BaseConnection, def?: k_v<string>) {
|
||||
BaseConnection.prototype.getDefaultFightData = async function (this: BaseConnection, def?: k_v<string>, ext_buff?: { [type: string]: k_v<number> }) {
|
||||
let posObj = def || this.heroPos;
|
||||
let roles: k_v<roleDataType> = {};
|
||||
|
||||
@ -144,7 +144,11 @@ BaseConnection.prototype.getDefaultFightData = async function (this: BaseConnect
|
||||
roles[pos] = {
|
||||
...hero,
|
||||
attr: {
|
||||
...HeroShared.getHeroBasicAttr(hero, { ...this.otherBuff, allBuff: HeroShared.getAllBuff(heros) }, Number(pos))
|
||||
...HeroShared.getHeroBasicAttr(hero, {
|
||||
...ext_buff,
|
||||
...this.otherBuff,
|
||||
allBuff: HeroShared.getAllBuff(heros)
|
||||
}, Number(pos))
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -106,6 +106,18 @@ type gc_clsl_com = {
|
||||
"divide": { "day": [number, number], "group": number, [x: string]: any }[], "divideTime": number, "fightTime": [number, number], "prizeTime": number, "fightWinPrize": { "total": number, "prize": { "a": string, "t": string, "n": number, [x: string]: any }[], "star": number, [x: string]: any }[], "fightNum": number, "vipBuyFightNum": [number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number, number], "buyFightNumNeed": { "a": string, "t": string, "n": number, [x: string]: any }[], "rankPrize": { "rank": [number, number], "prize": { "a": string, "t": string, "n": number, [x: string]: any }[], "title": string, [x: string]: any }[], "danPrize": { "star": number, "prize": { "a": string, "t": string, "n": number, [x: string]: any }[], [x: string]: any }[], "email_rank": { "title": string, "content": string, [x: string]: any }, "email_dan": { "title": string, "content": string, [x: string]: any }, [x: string]: any
|
||||
}
|
||||
|
||||
type gc_renown_level = {
|
||||
[id: string]: {
|
||||
id: number,
|
||||
renownlevel: number,
|
||||
maxlevel: number,
|
||||
cost: { "a": string, "t": string, "n": number, [x: string]: any }[],
|
||||
atk: number,
|
||||
def: number,
|
||||
hp: number,
|
||||
}
|
||||
}
|
||||
|
||||
type gc_clsl_dan = k_v<{
|
||||
/** 总星级 */
|
||||
'allStar': number
|
||||
@ -1946,7 +1958,7 @@ type gcType = {
|
||||
kfcb_prize: gc_kfcb_prize
|
||||
yuyuemail: gc_yuyuemail
|
||||
tuisonglibao: gc_push_gift
|
||||
|
||||
renown_level: gc_renown_level
|
||||
}
|
||||
|
||||
|
||||
@ -1957,4 +1969,3 @@ declare global {
|
||||
export function initGcType() {
|
||||
|
||||
}
|
||||
|
@ -354,6 +354,8 @@ class Lng {
|
||||
nameyicunzai: "nameyicunzai";
|
||||
ljlibaotips_8: "ljlibaotips_8";
|
||||
|
||||
weiwang_12: "weiwang_12";
|
||||
|
||||
"11111" = "globalThis.lng.chat_1"
|
||||
// return call.error('', { code: -3, message: globalThis.lng.chat_2 });
|
||||
}
|
9
src/module/collection_weiwang.ts
Normal file
9
src/module/collection_weiwang.ts
Normal file
@ -0,0 +1,9 @@
|
||||
export type CollectionWeiwang = {
|
||||
uid: string;
|
||||
|
||||
hp: number;
|
||||
atk: number;
|
||||
def: number;
|
||||
|
||||
buff: k_v<number>;
|
||||
}
|
@ -60,6 +60,7 @@ import {CollectionRmbuse} from "./collection_rmbuse";
|
||||
import {CollectionFightLog} from "./collection_fightLog";
|
||||
import {CollectionShop} from "./collection_shop";
|
||||
import {CollectionPushGift} from "./collection_pushgift";
|
||||
import { CollectionWeiwang } from './collection_weiwang';
|
||||
|
||||
export type MongodbCollections = {
|
||||
user: CollectionUser;
|
||||
@ -136,4 +137,5 @@ export type MongodbCollections = {
|
||||
pushgift:CollectionPushGift
|
||||
|
||||
huodong_user: CollectionUser;
|
||||
weiwang: CollectionWeiwang;
|
||||
};
|
@ -101,8 +101,15 @@ export class FightFun {
|
||||
|
||||
/**挑战npc */
|
||||
static async fightNpc(call: ApiCall, npcId: string | number, type: fightType, data?: joinFightData) {
|
||||
let ext_buff = {};
|
||||
|
||||
let my = data || await call.conn.getDefaultFightData();
|
||||
if (["tanxian"].indexOf(type) != -1) {
|
||||
// 威望buff
|
||||
let weiwang = await G.mongodb.collection("weiwang").findOne({ uid: call.uid });
|
||||
ext_buff["weiwang"] = weiwang?.buff ? weiwang.buff : { "atk": 0, "def": 0, "hp": 0 };
|
||||
}
|
||||
|
||||
let my = data || await call.conn.getDefaultFightData(undefined, ext_buff);
|
||||
|
||||
if (Object.keys(my.roles).length < 1) {
|
||||
throw new TsrpcError('至少需要上阵一个英雄');
|
||||
|
@ -330,10 +330,12 @@ import { ReqRenownBuy, ResRenownBuy } from './user/PtlRenownBuy';
|
||||
import { ReqRenownGetPrize, ResRenownGetPrize } from './user/PtlRenownGetPrize';
|
||||
import { ReqRenownOpen, ResRenownOpen } from './user/PtlRenownOpen';
|
||||
import { ReqTujian, ResTujian } from './user/PtlTujian';
|
||||
import { ReqOpen as ReqOpen_61, ResOpen as ResOpen_61 } from './weiwang/PtlOpen';
|
||||
import { ReqUpLv, ResUpLv } from './weiwang/PtlUpLv';
|
||||
import { ReqDecompose, ResDecompose } from './weixiuchang/PtlDecompose';
|
||||
import { ReqExchange as ReqExchange_1, ResExchange as ResExchange_1 } from './weixiuchang/PtlExchange';
|
||||
import { ReqOpen as ReqOpen_61, ResOpen as ResOpen_61 } from './weixiuchang/PtlOpen';
|
||||
import { ReqUpLv, ResUpLv } from './weixiuchang/PtlUpLv';
|
||||
import { ReqOpen as ReqOpen_62, ResOpen as ResOpen_62 } from './weixiuchang/PtlOpen';
|
||||
import { ReqUpLv as ReqUpLv_1, ResUpLv as ResUpLv_1 } from './weixiuchang/PtlUpLv';
|
||||
import { ReqUpStar, ResUpStar } from './weixiuchang/PtlUpStar';
|
||||
import { ReqAutoBaoMing, ResAutoBaoMing } from './wzry/PtlAutoBaoMing';
|
||||
import { ReqBaoMing, ResBaoMing } from './wzry/PtlBaoMing';
|
||||
@ -343,7 +345,7 @@ import { ReqDldFight, ResDldFight } from './wzry/PtlDldFight';
|
||||
import { ReqDldRefre, ResDldRefre } from './wzry/PtlDldRefre';
|
||||
import { ReqJingCai, ResJingCai } from './wzry/PtlJingCai';
|
||||
import { ReqJingCaiOpen, ResJingCaiOpen } from './wzry/PtlJingCaiOpen';
|
||||
import { ReqOpen as ReqOpen_62, ResOpen as ResOpen_62 } from './wzry/PtlOpen';
|
||||
import { ReqOpen as ReqOpen_63, ResOpen as ResOpen_63 } from './wzry/PtlOpen';
|
||||
import { ReqUpdateFight, ResUpdateFight } from './wzry/PtlUpdateFight';
|
||||
import { ReqWzzd, ResWzzd } from './wzry/PtlWzzd';
|
||||
import { ReqZuanShiOpen, ResZuanShiOpen } from './wzry/PtlZuanShiOpen';
|
||||
@ -351,7 +353,7 @@ import { ReqAllGet, ResAllGet } from './xstask/PtlAllGet';
|
||||
import { ReqGet as ReqGet_3, ResGet as ResGet_3 } from './xstask/PtlGet';
|
||||
import { ReqLvUp as ReqLvUp_4, ResLvUp as ResLvUp_4 } from './xstask/PtlLvUp';
|
||||
import { ReqOnekeyReceive, ResOnekeyReceive } from './xstask/PtlOnekeyReceive';
|
||||
import { ReqOpen as ReqOpen_63, ResOpen as ResOpen_63 } from './xstask/PtlOpen';
|
||||
import { ReqOpen as ReqOpen_64, ResOpen as ResOpen_64 } from './xstask/PtlOpen';
|
||||
import { ReqReceive as ReqReceive_10, ResReceive as ResReceive_10 } from './xstask/PtlReceive';
|
||||
import { ReqRefresh as ReqRefresh_8, ResRefresh as ResRefresh_8 } from './xstask/PtlRefresh';
|
||||
import { ReqHandle, ResHandle } from './yongbingzhuzhan/PtlHandle';
|
||||
@ -1569,6 +1571,14 @@ export interface ServiceType {
|
||||
req: ReqTujian,
|
||||
res: ResTujian
|
||||
},
|
||||
"weiwang/Open": {
|
||||
req: ReqOpen_61,
|
||||
res: ResOpen_61
|
||||
},
|
||||
"weiwang/UpLv": {
|
||||
req: ReqUpLv,
|
||||
res: ResUpLv
|
||||
},
|
||||
"weixiuchang/Decompose": {
|
||||
req: ReqDecompose,
|
||||
res: ResDecompose
|
||||
@ -1578,12 +1588,12 @@ export interface ServiceType {
|
||||
res: ResExchange_1
|
||||
},
|
||||
"weixiuchang/Open": {
|
||||
req: ReqOpen_61,
|
||||
res: ResOpen_61
|
||||
req: ReqOpen_62,
|
||||
res: ResOpen_62
|
||||
},
|
||||
"weixiuchang/UpLv": {
|
||||
req: ReqUpLv,
|
||||
res: ResUpLv
|
||||
req: ReqUpLv_1,
|
||||
res: ResUpLv_1
|
||||
},
|
||||
"weixiuchang/UpStar": {
|
||||
req: ReqUpStar,
|
||||
@ -1622,8 +1632,8 @@ export interface ServiceType {
|
||||
res: ResJingCaiOpen
|
||||
},
|
||||
"wzry/Open": {
|
||||
req: ReqOpen_62,
|
||||
res: ResOpen_62
|
||||
req: ReqOpen_63,
|
||||
res: ResOpen_63
|
||||
},
|
||||
"wzry/UpdateFight": {
|
||||
req: ReqUpdateFight,
|
||||
@ -1654,8 +1664,8 @@ export interface ServiceType {
|
||||
res: ResOnekeyReceive
|
||||
},
|
||||
"xstask/Open": {
|
||||
req: ReqOpen_63,
|
||||
res: ResOpen_63
|
||||
req: ReqOpen_64,
|
||||
res: ResOpen_64
|
||||
},
|
||||
"xstask/Receive": {
|
||||
req: ReqReceive_10,
|
||||
@ -3488,141 +3498,151 @@ export const serviceProto: ServiceProto<ServiceType> = {
|
||||
},
|
||||
{
|
||||
"id": 331,
|
||||
"name": "weixiuchang/Decompose",
|
||||
"name": "weiwang/Open",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 332,
|
||||
"name": "weixiuchang/Exchange",
|
||||
"name": "weiwang/UpLv",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 333,
|
||||
"name": "weixiuchang/Open",
|
||||
"name": "weixiuchang/Decompose",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 334,
|
||||
"name": "weixiuchang/UpLv",
|
||||
"name": "weixiuchang/Exchange",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 335,
|
||||
"name": "weixiuchang/UpStar",
|
||||
"name": "weixiuchang/Open",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 336,
|
||||
"name": "wzry/AutoBaoMing",
|
||||
"name": "weixiuchang/UpLv",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 337,
|
||||
"name": "wzry/BaoMing",
|
||||
"name": "weixiuchang/UpStar",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 338,
|
||||
"name": "wzry/catFightLog",
|
||||
"name": "wzry/AutoBaoMing",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 339,
|
||||
"name": "wzry/CatGroup",
|
||||
"name": "wzry/BaoMing",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 340,
|
||||
"name": "wzry/DldFight",
|
||||
"name": "wzry/catFightLog",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 341,
|
||||
"name": "wzry/DldRefre",
|
||||
"name": "wzry/CatGroup",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 342,
|
||||
"name": "wzry/JingCai",
|
||||
"name": "wzry/DldFight",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 343,
|
||||
"name": "wzry/JingCaiOpen",
|
||||
"name": "wzry/DldRefre",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 344,
|
||||
"name": "wzry/Open",
|
||||
"name": "wzry/JingCai",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 345,
|
||||
"name": "wzry/UpdateFight",
|
||||
"name": "wzry/JingCaiOpen",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 346,
|
||||
"name": "wzry/Wzzd",
|
||||
"name": "wzry/Open",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 347,
|
||||
"name": "wzry/ZuanShiOpen",
|
||||
"name": "wzry/UpdateFight",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 348,
|
||||
"name": "xstask/AllGet",
|
||||
"name": "wzry/Wzzd",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 349,
|
||||
"name": "xstask/Get",
|
||||
"name": "wzry/ZuanShiOpen",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 350,
|
||||
"name": "xstask/LvUp",
|
||||
"name": "xstask/AllGet",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 351,
|
||||
"name": "xstask/OnekeyReceive",
|
||||
"name": "xstask/Get",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 352,
|
||||
"name": "xstask/Open",
|
||||
"name": "xstask/LvUp",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 353,
|
||||
"name": "xstask/Receive",
|
||||
"name": "xstask/OnekeyReceive",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 354,
|
||||
"name": "xstask/Refresh",
|
||||
"name": "xstask/Open",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 355,
|
||||
"name": "yongbingzhuzhan/Handle",
|
||||
"name": "xstask/Receive",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 356,
|
||||
"name": "zhanqianbushu/ChangePos",
|
||||
"name": "xstask/Refresh",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 357,
|
||||
"name": "zhanqianbushu/Select",
|
||||
"name": "yongbingzhuzhan/Handle",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 358,
|
||||
"name": "zhanqianbushu/ChangePos",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 359,
|
||||
"name": "zhanqianbushu/Select",
|
||||
"type": "api"
|
||||
},
|
||||
{
|
||||
"id": 360,
|
||||
"name": "zhanqianbushu/Up",
|
||||
"type": "api"
|
||||
}
|
||||
@ -22052,6 +22072,121 @@ export const serviceProto: ServiceProto<ServiceType> = {
|
||||
"user/PtlTujian/ResTujian": {
|
||||
"type": "Interface"
|
||||
},
|
||||
"weiwang/PtlOpen/ReqOpen": {
|
||||
"type": "Interface"
|
||||
},
|
||||
"weiwang/PtlOpen/ResOpen": {
|
||||
"type": "Interface",
|
||||
"properties": [
|
||||
{
|
||||
"id": 0,
|
||||
"name": "lv",
|
||||
"type": {
|
||||
"type": "Interface",
|
||||
"properties": [
|
||||
{
|
||||
"id": 0,
|
||||
"name": "hp",
|
||||
"type": {
|
||||
"type": "Number"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"name": "atk",
|
||||
"type": {
|
||||
"type": "Number"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "def",
|
||||
"type": {
|
||||
"type": "Number"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"weiwang/PtlUpLv/ReqUpLv": {
|
||||
"type": "Interface",
|
||||
"properties": [
|
||||
{
|
||||
"id": 0,
|
||||
"name": "lv",
|
||||
"type": {
|
||||
"type": "Number"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"name": "type",
|
||||
"type": {
|
||||
"type": "Union",
|
||||
"members": [
|
||||
{
|
||||
"id": 0,
|
||||
"type": {
|
||||
"type": "Literal",
|
||||
"literal": "hp"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"type": {
|
||||
"type": "Literal",
|
||||
"literal": "atk"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"type": {
|
||||
"type": "Literal",
|
||||
"literal": "def"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"weiwang/PtlUpLv/ResUpLv": {
|
||||
"type": "Interface",
|
||||
"properties": [
|
||||
{
|
||||
"id": 0,
|
||||
"name": "lv",
|
||||
"type": {
|
||||
"type": "Interface",
|
||||
"properties": [
|
||||
{
|
||||
"id": 0,
|
||||
"name": "hp",
|
||||
"type": {
|
||||
"type": "Number"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"name": "atk",
|
||||
"type": {
|
||||
"type": "Number"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "def",
|
||||
"type": {
|
||||
"type": "Number"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"weixiuchang/PtlDecompose/ReqDecompose": {
|
||||
"type": "Interface",
|
||||
"properties": [
|
||||
|
11
src/shared/protocols/weiwang/PtlOpen.ts
Normal file
11
src/shared/protocols/weiwang/PtlOpen.ts
Normal file
@ -0,0 +1,11 @@
|
||||
export interface ReqOpen {
|
||||
|
||||
}
|
||||
|
||||
export interface ResOpen {
|
||||
lv: {
|
||||
hp: number
|
||||
atk: number
|
||||
def: number
|
||||
}
|
||||
}
|
12
src/shared/protocols/weiwang/PtlUpLv.ts
Normal file
12
src/shared/protocols/weiwang/PtlUpLv.ts
Normal file
@ -0,0 +1,12 @@
|
||||
export interface ReqUpLv {
|
||||
lv: number
|
||||
type: "hp" | "atk" | "def"
|
||||
}
|
||||
|
||||
export interface ResUpLv {
|
||||
lv: {
|
||||
hp: number
|
||||
atk: number
|
||||
def: number
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user