Server/project/src/models/eft/itemEvent/IItemEventRouterBase.ts

99 lines
2.1 KiB
TypeScript
Raw Normal View History

import { EquipmentBuildType } from "../../../models/enums/EquipmentBuildType";
import { Health, IQuestStatus, Productive, Skills, TraderData } from "../common/tables/IBotBase";
2023-03-03 15:23:46 +00:00
import { Item, Upd } from "../common/tables/IItem";
import { IQuest } from "../common/tables/IQuest";
import { IPmcDataRepeatableQuest } from "../common/tables/IRepeatableQuests";
import { IRagfairOffer } from "../ragfair/IRagfairOffer";
export interface IItemEventRouterBase
{
warnings: Warning[]
profileChanges: TProfileChanges | ""
}
export type TProfileChanges = Record<string, ProfileChange>
export interface Warning
{
index: number
errmsg: string
code?: string
data?: any
}
export interface ProfileChange
{
_id: string
experience: number
quests: IQuest[]
ragFairOffers: IRagfairOffer[]
weaponBuilds: IWeaponBuildChange[]
equipmentBuilds: IEquipmentBuildChange[]
2023-03-03 15:23:46 +00:00
items: ItemChanges
production: Record<string, Productive>
/** Hideout area improvement id */
improvements: Record<string, Improvement>
skills: Skills
health: Health
traderRelations: Record<string, TraderData>
2023-03-03 15:23:46 +00:00
repeatableQuests?: IPmcDataRepeatableQuest[]
recipeUnlocked: Record<string, boolean>
changedHideoutStashes?: Record<string, IHideoutStashItem>
questsStatus: IQuestStatus[]
2023-03-03 15:23:46 +00:00
}
export interface IHideoutStashItem
2023-03-03 15:23:46 +00:00
{
Id: string
Tpl: string
2023-03-03 15:23:46 +00:00
}
export interface IWeaponBuildChange
2023-03-03 15:23:46 +00:00
{
id: string
name: string
root: string
items: Item[]
}
export interface IEquipmentBuildChange
{
id: string
name: string
root: string
items: Item[]
type: string
fastpanel: any[]
buildType: EquipmentBuildType
}
2023-03-03 15:23:46 +00:00
export interface ItemChanges
{
new: Product[]
change: Product[]
del: Product[]
}
export interface Improvement
{
completed: boolean,
improveCompleteTimestamp: number
}
export interface Product
{
_id: string
_tpl?: string
parentId?: string
slotId?: string
location?: ItemChangeLocation
upd?: Upd
}
export interface ItemChangeLocation
{
x: number,
y: number,
r: number,
isSearched?: boolean
}