Files
ZYZ/shared/pubUtils/interface.ts
2023-10-10 20:47:58 +08:00

226 lines
6.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 一些通用的interface定义
import { ResonanceConnection, ResonanceEplace, ResonanceTalent } from "../db/Resonance";
import { RougelikeCardPara } from "../db/RougelikeCard";
import { RougelikeCharaPara } from "../db/RougelikeChara";
import { RougelikeCollectionType } from "../db/RougelikeCollection";
import { RandomRec } from "../db/RougelikeRecordDetail";
import { UserGuildType } from "../db/UserGuild";
export interface RewardInter {
id: number;
count: number;
expireTime?: number;
}
export interface ItemInter {
id: number;
count?: number;
seqId?: number | string;
type?: number;
isPay?: boolean;
hid?: number;
expireTime?: number;
};
// 百家学宫,布阵武将位置
export interface SclPosInter {
id: number;
hid: number;
isOpen: boolean;
}
// 百家学宫返回
export interface SclResultInter {
id: number;
position: SclPosInter[]
}
export interface pvpEndParamInter {
hid: number;
damage: number;
heal: number;
underDamage: number;
subHid?: number;
}
export interface RougeDamageInter {
charaCode: string;
hp: number;
ap: number;
shield: number;
others: string;
damage: number;
heal: number;
unserDamage: number;
isAp: boolean;
isRound: boolean;
maxHp?: number;
}
export interface Uid {
uid: string;
sid: string;
}
export interface pushMail {
route: string;
data: mailData[];
uids: Uid[];
}
export interface mailData {
id: string;
goods: RewardInter[];
sendTime: number;
endTime: number;
content: string;
status: number;
mailType: number;
sendName: string;
}
export interface guildInter {
myUserGuild: UserGuildType;
hisUserGuild: UserGuildType;
}
export interface recycleSoulFastPara {
hid: number;
count: number;
}
export class CommonCard {
cardCode: string; // 卡code
cardId: number; // 卡ID
type: number; // 卡类型
charaId: number; // 装备在哪个角色上没有装备为0
lv: number; // 卡的等级
useCount: number;
constructor(card: RougelikeCardPara) {
this.cardCode = card?.cardCode || '';
this.cardId = card?.cardId || 0;
this.type = card?.type || 0;
this.charaId = card?.charaId || 0;
this.lv = card?.lv || 0;
this.useCount = card?.useCount || 0;
}
};
export class CommonChara {
charaCode: string; // 角色卡唯一id
seqId: number; // 排序
charaId: number; // 角色卡id
cards: { // 卡槽没有那个index表示没有解锁
index: number;
cardCode: string;
cardId: number; // 当为0的时候表示没有装入卡片
}[];
hp: number; // 当前hp
maxHp: number; // 最大hp
ap: number; // 当前怒气
shield: number;
others: string;
roundSkill: number; // 玩家选择的回合技能卡
apSkill: number; // 玩家选择的怒气技能卡
constructor(chara: RougelikeCharaPara) {
this.charaCode = chara?.charaCode || '';
this.seqId = chara?.seqId || 0;
this.charaId = chara?.charaId || 0;
this.cards = chara?.cards || [];
this.hp = chara?.hp || 0;
this.maxHp = chara?.maxHp || 0;
this.ap = chara?.ap || 0;
this.shield = chara?.shield || 0;
this.others = chara?.others || '';
this.roundSkill = chara?.roundSkill || 0;
this.apSkill = chara?.apSkill || 0;
}
};
export class CollectionReturnParam {
type: number = 0; // 类型
id: number = 0; // 图鉴id
num: number = 0; // 图鉴达成数量
received: number[] = []; // 是否领取
constructor(collect: RougelikeCollectionType) {
this.type = collect?.type || 0;
this.id = collect?.id || 0;
this.num = collect?.num || 0;
this.received = collect?.received || [];
}
}
export interface layerNode {
detailCode: string;
index: number; // 索引
nodeId: number; // 关卡id
preNodeIndexs: number[]; // 连线的关卡,填上一层节点的索引
type: number; // 类型
isChoose: number; // 玩家选择,0-未选择1-选择
}
export interface CommonNode {
layer: number; // 层
layerNodes: layerNode[];
};
// export interface WeightRecord {
// originalWight?: number;
// passiveRedWight?: number;
// holyRedWight?: number;
// authorAddWeight?: number;
// passiveLableNum?: number;
// passiveLableNumAddWeight?: number;
// holyLableNum?: number;
// holyLableNumAddWeight?: number;
// finalWeight?: number;
// }
export interface RewardOption {
optionIndex: number; // 第几个选项
rewardId: number; // 角色卡的id或特性卡的id或圣物的id
optionStatus: number; // 0-没有选择这个奖励 1-选择了这个奖励
passiveCardIds?: number[]; //高级学员自带特性卡
// weightRecord?: WeightRecord //用于测试权重记录
}
export interface CommonReward {
rewards?: {
groupIndex: number; // 奖励的索引值
rewardType: number; // 奖励的类型 1-角色卡 2-特性卡 3-圣物
options?: RewardOption[]; // 奖励的选项,试炼币大概就不用了
groupStatus: number; // 组选择 0-未选择 1-已选择
chooseNum?: number; // 这一组总共能选的数量3选2
}[];
takeoutReward?: RewardInter[]; // 可以外带的奖励 id&count
score?: number; // 增加的积分
techScore?: number; // 增加的科技分
weightRecords?: RandomRec[]
}
export interface SlotCard {
index: number; //卡槽标记
cardCode: string; //安装的特性卡唯一code
}
export interface ReturnResonanceParam {
position: number; // 上阵位置,从1开始(6为鸣主配系统参数表)已解锁未上阵仅有positon
hid?: number; // 武将id
seqId?: number; // 武将表自增 id
lv?: number; //武将等级
exp?: number;
job?: number;
jobStage?: number; // 职阶
talent?: ResonanceTalent[]; // 天赋
usedTalentPoint?: number;
totalTalentPoint?: number;
connections?: ResonanceConnection[]; // 羁绊
ePlace?: ResonanceEplace[];
ce?: number; //战力
}