Initial release for SPT 3.9
This commit is contained in:
159
types/services/SeasonalEventService.d.ts
vendored
Normal file
159
types/services/SeasonalEventService.d.ts
vendored
Normal file
@@ -0,0 +1,159 @@
|
||||
import { BotHelper } from "@spt/helpers/BotHelper";
|
||||
import { ProfileHelper } from "@spt/helpers/ProfileHelper";
|
||||
import { IConfig } from "@spt/models/eft/common/IGlobals";
|
||||
import { Inventory } from "@spt/models/eft/common/tables/IBotType";
|
||||
import { Season } from "@spt/models/enums/Season";
|
||||
import { SeasonalEventType } from "@spt/models/enums/SeasonalEventType";
|
||||
import { IHttpConfig } from "@spt/models/spt/config/IHttpConfig";
|
||||
import { IQuestConfig } from "@spt/models/spt/config/IQuestConfig";
|
||||
import { ISeasonalEvent, ISeasonalEventConfig } from "@spt/models/spt/config/ISeasonalEventConfig";
|
||||
import { IWeatherConfig } from "@spt/models/spt/config/IWeatherConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
import { GiftService } from "@spt/services/GiftService";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
import { DatabaseImporter } from "@spt/utils/DatabaseImporter";
|
||||
export declare class SeasonalEventService {
|
||||
protected logger: ILogger;
|
||||
protected databaseService: DatabaseService;
|
||||
protected databaseImporter: DatabaseImporter;
|
||||
protected giftService: GiftService;
|
||||
protected localisationService: LocalisationService;
|
||||
protected botHelper: BotHelper;
|
||||
protected profileHelper: ProfileHelper;
|
||||
protected configServer: ConfigServer;
|
||||
protected seasonalEventConfig: ISeasonalEventConfig;
|
||||
protected questConfig: IQuestConfig;
|
||||
protected httpConfig: IHttpConfig;
|
||||
protected weatherConfig: IWeatherConfig;
|
||||
protected halloweenEventActive?: boolean;
|
||||
protected christmasEventActive?: boolean;
|
||||
/** All events active at this point in time */
|
||||
protected currentlyActiveEvents: SeasonalEventType[];
|
||||
constructor(logger: ILogger, databaseService: DatabaseService, databaseImporter: DatabaseImporter, giftService: GiftService, localisationService: LocalisationService, botHelper: BotHelper, profileHelper: ProfileHelper, configServer: ConfigServer);
|
||||
protected get christmasEventItems(): string[];
|
||||
protected get halloweenEventItems(): string[];
|
||||
/**
|
||||
* Get an array of christmas items found in bots inventories as loot
|
||||
* @returns array
|
||||
*/
|
||||
getChristmasEventItems(): string[];
|
||||
/**
|
||||
* Get an array of halloween items found in bots inventories as loot
|
||||
* @returns array
|
||||
*/
|
||||
getHalloweenEventItems(): string[];
|
||||
itemIsChristmasRelated(itemTpl: string): boolean;
|
||||
itemIsHalloweenRelated(itemTpl: string): boolean;
|
||||
/**
|
||||
* Check if item id exists in christmas or halloween event arrays
|
||||
* @param itemTpl item tpl to check for
|
||||
* @returns
|
||||
*/
|
||||
itemIsSeasonalRelated(itemTpl: string): boolean;
|
||||
/**
|
||||
* Get an array of seasonal items that should not appear
|
||||
* e.g. if halloween is active, only return christmas items
|
||||
* or, if halloween and christmas are inactive, return both sets of items
|
||||
* @returns array of tpl strings
|
||||
*/
|
||||
getInactiveSeasonalEventItems(): string[];
|
||||
/**
|
||||
* Is a seasonal event currently active
|
||||
* @returns true if event is active
|
||||
*/
|
||||
seasonalEventEnabled(): boolean;
|
||||
/**
|
||||
* Is christmas event active
|
||||
* @returns true if active
|
||||
*/
|
||||
christmasEventEnabled(): boolean;
|
||||
/**
|
||||
* is halloween event active
|
||||
* @returns true if active
|
||||
*/
|
||||
halloweenEventEnabled(): boolean;
|
||||
/**
|
||||
* Is detection of seasonal events enabled (halloween / christmas)
|
||||
* @returns true if seasonal events should be checked for
|
||||
*/
|
||||
isAutomaticEventDetectionEnabled(): boolean;
|
||||
/**
|
||||
* Get a dictionary of gear changes to apply to bots for a specific event e.g. Christmas/Halloween
|
||||
* @param eventName Name of event to get gear changes for
|
||||
* @returns bots with equipment changes
|
||||
*/
|
||||
protected getEventBotGear(eventType: SeasonalEventType): Record<string, Record<string, Record<string, number>>>;
|
||||
/**
|
||||
* Get the dates each seasonal event starts and ends at
|
||||
* @returns Record with event name + start/end date
|
||||
*/
|
||||
getEventDetails(): ISeasonalEvent[];
|
||||
/**
|
||||
* Look up quest in configs/quest.json
|
||||
* @param questId Quest to look up
|
||||
* @param event event type (Christmas/Halloween/None)
|
||||
* @returns true if related
|
||||
*/
|
||||
isQuestRelatedToEvent(questId: string, event: SeasonalEventType): boolean;
|
||||
/**
|
||||
* Handle seasonal events
|
||||
* @param sessionId Players id
|
||||
*/
|
||||
enableSeasonalEvents(sessionId: string): void;
|
||||
protected cacheActiveEvents(): void;
|
||||
getActiveWeatherSeason(): Season;
|
||||
/**
|
||||
* Iterate through bots inventory and loot to find and remove christmas items (as defined in SeasonalEventService)
|
||||
* @param botInventory Bots inventory to iterate over
|
||||
* @param botRole the role of the bot being processed
|
||||
*/
|
||||
removeChristmasItemsFromBotInventory(botInventory: Inventory, botRole: string): void;
|
||||
/**
|
||||
* Make adjusted to server code based on the name of the event passed in
|
||||
* @param sessionId Player id
|
||||
* @param globalConfig globals.json
|
||||
* @param eventName Name of the event to enable. e.g. Christmas
|
||||
*/
|
||||
protected updateGlobalEvents(sessionId: string, globalConfig: IConfig, eventType: SeasonalEventType): void;
|
||||
protected adjustZryachiyMeleeChance(): void;
|
||||
protected enableHalloweenSummonEvent(): void;
|
||||
protected addEventBossesToMaps(eventType: SeasonalEventType): void;
|
||||
/**
|
||||
* Change trader icons to be more event themed (Halloween only so far)
|
||||
* @param eventType What event is active
|
||||
*/
|
||||
protected adjustTraderIcons(eventType: SeasonalEventType): void;
|
||||
/**
|
||||
* Add lootble items from backpack into patrol.ITEMS_TO_DROP difficulty property
|
||||
*/
|
||||
protected addLootItemsToGifterDropItemsList(): void;
|
||||
/**
|
||||
* Read in data from seasonalEvents.json and add found equipment items to bots
|
||||
* @param eventName Name of the event to read equipment in from config
|
||||
*/
|
||||
protected addEventGearToBots(eventType: SeasonalEventType): void;
|
||||
protected addPumpkinsToScavBackpacks(): void;
|
||||
/**
|
||||
* Set Khorovod(dancing tree) chance to 100% on all maps that support it
|
||||
*/
|
||||
protected enableDancingTree(): void;
|
||||
/**
|
||||
* Add santa to maps
|
||||
*/
|
||||
protected addGifterBotToMaps(): void;
|
||||
/**
|
||||
* Send gift to player if they'e not already received it
|
||||
* @param playerId Player to send gift to
|
||||
* @param giftKey Key of gift to give
|
||||
*/
|
||||
protected giveGift(playerId: string, giftKey: string): void;
|
||||
/**
|
||||
* Get the underlying bot type for an event bot e.g. `peacefullZryachiyEvent` will return `bossZryachiy`
|
||||
* @param eventBotRole Event bot role type
|
||||
* @returns Bot role as string
|
||||
*/
|
||||
getBaseRoleForEventBot(eventBotRole: string): string;
|
||||
enableSnow(): void;
|
||||
}
|
||||
Reference in New Issue
Block a user