Add location services json

This commit is contained in:
Dev 2024-07-05 09:38:27 +01:00
parent d3357be9e6
commit 5cd919a7d7
4 changed files with 114 additions and 89 deletions

View File

@ -0,0 +1,90 @@
import { Ixyz } from "@spt/models/eft/common/Ixyz";
export interface ILocationServices
{
TraderServerSettings: ITraderServerSettings
BTRServerSettings: IBtrServerSettings
}
export interface ITraderServerSettings
{
TraderServices: TraderServices
}
export interface TraderServices
{
ExUsecLoyalty: ITraderService
ZryachiyAid: ITraderService
CultistsAid: ITraderService
PlayerTaxi: ITraderService
BtrItemsDelivery: ITraderService
BtrBotCover: ITraderService
}
export interface ITraderService
{
TraderId: string
TraderServiceType: string
Requirements: IServiceRequirements
ServiceItemCost: Record<string, IServiceItemCostDetails>
UniqueItems: string[]
}
export interface IServiceRequirements
{
CompletedQuests: ICompletedQuest[]
Standings: Record<string, IStandingRequirement>
}
export interface ICompletedQuest
{
QuestId: string
}
export interface IStandingRequirement
{
Value: number
}
export interface IServiceItemCostDetails
{
Count: number
}
export interface IBtrServerSettings
{
ChanceSpawn: number
SpawnPeriod: Ixyz
MoveSpeed: number
ReadyToDepartureTime: number
CheckTurnDistanceTime: number
TurnCheckSensitivity: number
DecreaseSpeedOnTurnLimit: number
EndSplineDecelerationDistance: number
AccelerationSpeed: number
DecelerationSpeed: number
PauseDurationRange: Ixyz
BodySwingReturnSpeed: number
BodySwingDamping: number
BodySwingIntensity: number
ServerMapBTRSettings: Record<string, IServerMapBtrsettings>
}
export interface IServerMapBtrsettings
{
MapID: string
ChanceSpawn: number
SpawnPeriod: Ixyz
MoveSpeed: number
ReadyToDepartureTime: number
CheckTurnDistanceTime: number
TurnCheckSensitivity: number
DecreaseSpeedOnTurnLimit: number
EndSplineDecelerationDistance: number
AccelerationSpeed: number
DecelerationSpeed: number
PauseDurationRange: Ixyz
BodySwingReturnSpeed: number
BodySwingDamping: number
BodySwingIntensity: number
}

View File

@ -1,99 +1,16 @@
import { ILocationBase } from "@spt/models/eft/common/ILocationBase"; import { ILocationBase } from "@spt/models/eft/common/ILocationBase";
import { Ixyz } from "../common/Ixyz"; import { IInsuredItem } from "@spt/models/eft/common/tables/IBotBase";
import { ILocationServices } from "@spt/models/eft/common/tables/ILocationServices";
export interface IStartLocalRaidResponseData export interface IStartLocalRaidResponseData
{ {
serverId: string serverId: string
serverSettings: IServerSettings serverSettings: ILocationServices
profile: any profile: IProfileInsuredItems
locationLoot: ILocationBase locationLoot: ILocationBase
} }
export interface IServerSettings export interface IProfileInsuredItems
{ {
TraderServerSettings: ITraderServerSettings insuredItems: IInsuredItem[]
BTRServerSettings: IBtrServerSettings
}
export interface ITraderServerSettings
{
TraderServices: TraderServices
}
export interface TraderServices
{
ExUsecLoyalty: ITraderService
ZryachiyAid: ITraderService
CultistsAid: ITraderService
PlayerTaxi: ITraderService
BtrItemsDelivery: ITraderService
BtrBotCover: ITraderService
}
export interface ITraderService
{
TraderId: string
TraderServiceType: string
Requirements: IServiceRequirements
ServiceItemCost: Record<string, IServiceItemCostDetails>
UniqueItems: string[]
}
export interface IServiceRequirements
{
CompletedQuests: ICompletedQuest[]
Standings: Record<string, IStandingRequirement>
}
export interface ICompletedQuest
{
QuestId: string
}
export interface IStandingRequirement
{
Value: number
}
export interface IServiceItemCostDetails
{
Count: number
}
export interface IBtrServerSettings
{
ChanceSpawn: number
SpawnPeriod: Ixyz
MoveSpeed: number
ReadyToDepartureTime: number
CheckTurnDistanceTime: number
TurnCheckSensitivity: number
DecreaseSpeedOnTurnLimit: number
EndSplineDecelerationDistance: number
AccelerationSpeed: number
DecelerationSpeed: number
PauseDurationRange: Ixyz
BodySwingReturnSpeed: number
BodySwingDamping: number
BodySwingIntensity: number
ServerMapBTRSettings: Record<string, IServerMapBtrsettings>
}
export interface IServerMapBtrsettings
{
MapID: string
ChanceSpawn: number
SpawnPeriod: Ixyz
MoveSpeed: number
ReadyToDepartureTime: number
CheckTurnDistanceTime: number
TurnCheckSensitivity: number
DecreaseSpeedOnTurnLimit: number
EndSplineDecelerationDistance: number
AccelerationSpeed: number
DecelerationSpeed: number
PauseDurationRange: Ixyz
BodySwingReturnSpeed: number
BodySwingDamping: number
BodySwingIntensity: number
} }

View File

@ -1,6 +1,7 @@
import { IAchievement } from "@spt/models/eft/common/tables/IAchievement"; import { IAchievement } from "@spt/models/eft/common/tables/IAchievement";
import { ICustomizationItem } from "@spt/models/eft/common/tables/ICustomizationItem"; import { ICustomizationItem } from "@spt/models/eft/common/tables/ICustomizationItem";
import { IHandbookBase } from "@spt/models/eft/common/tables/IHandbookBase"; import { IHandbookBase } from "@spt/models/eft/common/tables/IHandbookBase";
import { ILocationServices } from "@spt/models/eft/common/tables/ILocationServices";
import { IProfileTemplates } from "@spt/models/eft/common/tables/IProfileTemplate"; import { IProfileTemplates } from "@spt/models/eft/common/tables/IProfileTemplate";
import { IQuest } from "@spt/models/eft/common/tables/IQuest"; import { IQuest } from "@spt/models/eft/common/tables/IQuest";
import { IRepeatableQuestDatabase } from "@spt/models/eft/common/tables/IRepeatableQuests"; import { IRepeatableQuestDatabase } from "@spt/models/eft/common/tables/IRepeatableQuests";
@ -27,4 +28,7 @@ export interface ITemplates
/** Achievements */ /** Achievements */
achievements: IAchievement[] achievements: IAchievement[]
/** Location services data */
locationServices: ILocationServices
} }

View File

@ -4,6 +4,7 @@ import { ILocation } from "@spt/models/eft/common/ILocation";
import { IAchievement } from "@spt/models/eft/common/tables/IAchievement"; import { IAchievement } from "@spt/models/eft/common/tables/IAchievement";
import { ICustomizationItem } from "@spt/models/eft/common/tables/ICustomizationItem"; import { ICustomizationItem } from "@spt/models/eft/common/tables/ICustomizationItem";
import { IHandbookBase } from "@spt/models/eft/common/tables/IHandbookBase"; import { IHandbookBase } from "@spt/models/eft/common/tables/IHandbookBase";
import { ILocationServices } from "@spt/models/eft/common/tables/ILocationServices";
import { IMatch } from "@spt/models/eft/common/tables/IMatch"; import { IMatch } from "@spt/models/eft/common/tables/IMatch";
import { IProfileTemplates } from "@spt/models/eft/common/tables/IProfileTemplate"; import { IProfileTemplates } from "@spt/models/eft/common/tables/IProfileTemplate";
import { IQuest } from "@spt/models/eft/common/tables/IQuest"; import { IQuest } from "@spt/models/eft/common/tables/IQuest";
@ -297,4 +298,17 @@ export class DatabaseService
return desiredTrader!; return desiredTrader!;
} }
/**
* @returns assets/database/locationServices/
*/
public getLocationServices(): ILocationServices
{
if (!this.databaseServer.getTables().templates!.locationServices)
{
throw new Error(this.localisationService.getText("database-data_at_path_missing", "assets/database/locationServices"));
}
return this.databaseServer.getTables().templates!.locationServices!;
}
} }