bc-stubs 111.0.0 → 112.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,6 +21,7 @@ declare const BackgroundsTagClub: "Club & College";
21
21
  declare const BackgroundsTagHouse: "Regular house";
22
22
  declare const BackgroundsTagDungeon: "Dungeon";
23
23
  declare const BackgroundsTagAsylum: "Asylum";
24
+ declare const BackgroundsTagPandora: "Pandora";
24
25
  /**
25
26
  * List of all tags to create online chat rooms
26
27
  * @constant
@@ -564,7 +564,7 @@ interface AssetDefinitionBase extends AssetCommonPropertiesGroupAsset, AssetComm
564
564
  * A value of -1 makes the asset unavailable, a value of 0 makes it always available.
565
565
  */
566
566
  Value?: number;
567
-
567
+
568
568
  /**
569
569
  * Whether an item should never be able to be sold.
570
570
  *
@@ -572,40 +572,52 @@ interface AssetDefinitionBase extends AssetCommonPropertiesGroupAsset, AssetComm
572
572
  */
573
573
  NeverSell?: boolean;
574
574
 
575
- /** A measure of how hard it is to remove the asset. Defaults to 0. */
575
+ /** A measure of how hard it is to remove the restraint. Defaults to 0. */
576
576
  Difficulty?: number;
577
577
 
578
+ /** The required self bondage skill level for equipping a restraint on oneself. */
578
579
  SelfBondage?: number;
580
+ /** Whether the player can remove any applied locks to the item */
579
581
  SelfUnlock?: boolean;
582
+ /** Whether only a specific set of characters can unlock the applied lock */
580
583
  ExclusiveUnlock?: boolean;
581
584
 
582
585
  /** Whether the asset gets removed automatically when the character log in. Defaults to false. */
583
586
  RemoveAtLogin?: boolean;
584
587
 
588
+ /** The base time required for equipping an item. */
585
589
  Time?: number;
586
590
  /** Enables advanced layer visibility on the asset. See {@link AssetLayerDefinition.Visibility} for more information. */
587
591
  LayerVisibility?: boolean;
592
+ /** The base time required for removing a restraint. */
588
593
  RemoveTime?: number;
594
+ /** The default time for a timer lock */
589
595
  RemoveTimer?: number;
596
+ /** The maximum allowed time for a timer lock */
590
597
  MaxTimer?: number;
591
598
 
592
599
  Height?: number;
593
600
  Zoom?: number;
594
601
  Prerequisite?: AssetPrerequisite | AssetPrerequisite[];
595
602
  Extended?: boolean;
603
+ /** Whether the restraint's extended item menu can always be accessed, even if it would be otherwise blocked */
596
604
  AlwaysExtend?: boolean;
605
+ /** Whether the restraint's extended item menu can always be accessed, even if the player's hands are otherwise restrained */
597
606
  AlwaysInteract?: boolean;
607
+ /** Whether the restraint can be locked */
598
608
  AllowLock?: boolean;
609
+ /** Whether the restraint is a lock (see {@link AssetLockType}) */
599
610
  IsLock?: boolean;
611
+ /** The lock picking difficulty for those locks that can be picked */
600
612
  PickDifficulty?: number | null;
601
613
 
602
- /** Whether the asset is only available to owners. */
614
+ /** Whether the restraint is only available to owners. */
603
615
  OwnerOnly?: boolean;
604
616
 
605
- /** Whether the asset is only available to lovers. */
617
+ /** Whether the restraint is only available to lovers. */
606
618
  LoverOnly?: boolean;
607
619
 
608
- /** Whether the asset is only available to the family. */
620
+ /** Whether the restraint is only available to the family. */
609
621
  FamilyOnly?: boolean;
610
622
 
611
623
  /** A list of facial expression using the asset causes to the character */
@@ -731,25 +743,30 @@ declare namespace AssetDefinition {
731
743
  /** An {@link AssetDefinition} subtype for assets whose group is of the `Appearance` category. */
732
744
  interface Appearance extends AssetDefinitionBase {
733
745
  AllowLock?: false;
734
- IsLock?: false;
735
- PickDifficulty?: never;
736
- OwnerOnly?: false;
737
- LoverOnly?: false;
738
- FamilyOnly?: false;
739
- AllowTighten?: false;
740
- DrawLocks?: false;
741
- CustomBlindBackground?: never;
742
- CraftGroup?: never;
743
746
  AllowLockType?: never;
744
- CharacterRestricted?: false;
745
747
  AllowRemoveExclusive?: false;
748
+ AllowTighten?: false;
749
+ AlwaysExtend?: false;
750
+ AlwaysInteract?: false;
746
751
  ArousalZone?: never;
752
+ CharacterRestricted?: false;
753
+ CraftGroup?: never;
754
+ CustomBlindBackground?: never;
747
755
  Difficulty?: never;
756
+ DrawLocks?: false;
757
+ ExclusiveUnlock?: false;
758
+ FamilyOnly?: false;
759
+ IsLock?: false;
760
+ IsRestraint?: false;
761
+ LoverOnly?: false;
762
+ MaxTimer?: never;
763
+ OwnerOnly?: false;
764
+ PickDifficulty?: never;
765
+ RemoveTime?: never;
766
+ RemoveTimer?: never;
748
767
  SelfBondage?: never;
749
768
  SelfUnlock?: false;
750
- RemoveTime?: never;
751
- AlwaysInteract?: false;
752
- IsRestraint?: false;
769
+ Time?: never;
753
770
  }
754
771
  /** An {@link AssetDefinition} subtype for assets whose group is of the `Script` category. */
755
772
  interface Script extends AssetDefinitionBase {
@@ -128,6 +128,13 @@ declare namespace ElementButton {
128
128
  tooltip?: null | string | Node | HTMLOptions<any> | readonly (null | string | Node | HTMLOptions<any>)[]
129
129
  /** The position of the tooltip w.r.t. the button */
130
130
  tooltipPosition?: "left" | "right" | "top" | "bottom";
131
+ /**
132
+ * The aria accessibility role of the the tooltip; defaults to `description` if a {@link ElementButton.Options.label} is present and `label` otherwise:
133
+ * * `label` ([`aria-labelledby`](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-labelledby)): A compact, 1-line summary of the button
134
+ * * `description` ([`aria-describedby`](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-describedby)): A longer, potentially multi-line, button description
135
+ * * `none`: Nothing
136
+ */
137
+ tooltipRole?: "label" | "description" | "none";
131
138
  /** A button label */
132
139
  label?: string;
133
140
  /** The position of the button label */
@@ -190,6 +197,8 @@ interface CommonGenerateGridParameters {
190
197
  * @default "horizontal"
191
198
  */
192
199
  direction?: "horizontal" | "vertical";
200
+ minMarginX?: number;
201
+ minMarginY?: number;
193
202
  }
194
203
 
195
204
  type CommonGenerateGridCallback<T> = (item: T, x: number, y: number, width: number, height: number) => boolean;
@@ -392,7 +401,7 @@ type AssetGroupBodyName =
392
401
  'HairFront' | 'HandAccessoryLeft' | 'HandAccessoryRight' | 'FacialHair' | 'Hat' | 'Head' | 'Height' | 'Jewelry' | 'Mask' |
393
402
  'Necklace' | 'Nipples' | 'Panties' | 'Pronouns' |
394
403
  'Shoes' | 'Socks' | 'SocksLeft' | 'SocksRight' | 'Suit' | 'SuitLower' | 'TailStraps' | 'Wings' |
395
- 'HandsLeft' | 'HandsRight'
404
+ 'HandsLeft' | 'HandsRight' | 'FaceMarkings'
396
405
  ;
397
406
 
398
407
  type AssetGroupName = AssetGroupBodyName | AssetGroupItemName | AssetGroupScriptName;
@@ -537,7 +546,7 @@ type FetishName =
537
546
 
538
547
  type BackgroundTag =
539
548
  "Filter by tag" | "Indoor" | "Outdoor" | "Aquatic" | "Special Events" | "SciFi & Fantasy" |
540
- "Club & College" | "Regular house" | "Dungeon" | "Asylum"
549
+ "Club & College" | "Regular house" | "Dungeon" | "Asylum" | "Pandora"
541
550
  ;
542
551
 
543
552
  // NOTE: `NPCArchetype` is for NPC's only
@@ -577,6 +586,9 @@ type ChatRoomOwnershipOption = "" | "CanOfferEndTrial" | "CanOfferTrial" | "CanE
577
586
  type ChatRoom = ServerChatRoomData;
578
587
  type ChatRoomSettings = ServerChatRoomSettings;
579
588
 
589
+ /** ChatRoom results once received by the client */
590
+ type ChatRoomSearchResult = (ServerChatRoomSearchData & { DisplayName: string, Order: number });
591
+
580
592
  type StimulationAction = "Kneel" | "Walk" | "Struggle" | "StruggleFail" | "Talk";
581
593
 
582
594
  interface StimulationEvent {
@@ -3427,6 +3439,7 @@ interface GameClubCardParameters {
3427
3439
 
3428
3440
  interface GamePrisonParameters {
3429
3441
  Timer?: number;
3442
+ Role?: string;
3430
3443
  }
3431
3444
 
3432
3445
  //#endregion
@@ -25,6 +25,7 @@ declare function BackgroundSelectionSort(a: {
25
25
  * @returns {void} - Nothing
26
26
  */
27
27
  declare function BackgroundSelectionLoad(): void;
28
+ declare function BackgroundSelectionUnload(): void;
28
29
  /**
29
30
  * Handles input in the text box in the topmost row of the selection screen
30
31
  * and changes the offset of the background selection appropriately
@@ -0,0 +1 @@
1
+ declare function AssetsFaceMarkingsFaceWritingsAfterDrawHook(data: TextItemData, originalFunction: (drawData: DynamicDrawingData<Record<string, unknown>>) => void, drawData: DynamicDrawingData<Record<string, unknown>>): void;
@@ -4,8 +4,9 @@ declare function InventoryItemNeckPetSuitShockCollarResetCount(): void;
4
4
  declare function AssetsItemNeckPetSuitShockCollarBeforeDraw(drawData: DynamicDrawingData<PetSuitShockCollarPersistentData>): DynamicBeforeDrawOverrides;
5
5
  /**
6
6
  * @param {Item} Item
7
+ * @param {Character} C
7
8
  */
8
- declare function InventoryPetSuitShockCollarCheckPunish(Item: Item): "" | "Struggle" | "Activity" | "StandUp";
9
+ declare function InventoryPetSuitShockCollarCheckPunish(Item: Item, C: Character): "" | "Struggle" | "Activity" | "StandUp";
9
10
  /**
10
11
  * @param {DynamicScriptCallbackData<FuturisticChastityBeltPersistentData>} data
11
12
  * @param {number} LastTime
@@ -65,7 +65,8 @@ declare var FuturisticTrainingBeltModes: string[];
65
65
  declare var FuturisticTrainingBeltStates: string[];
66
66
  /** @type {ItemPropertiesCustom["PublicModeCurrent"]} */
67
67
  declare var FuturisticTrainingBeltSetMode: ItemPropertiesCustom["PublicModeCurrent"];
68
- declare var FuturisticTrainingBeltStandUpFlag: boolean;
68
+ /** @deprecated */
69
+ declare var FuturisticTrainingBeltStandUpFlag: never;
69
70
  declare var FuturisticTrainingBeltSpeechCharacterLimit: number;
70
71
  declare var FuturisticTrainingBeltRandomEdgeCycle: number;
71
72
  declare var FuturisticTrainingBeltRandomTeaseDurationMin: number;
@@ -66,7 +66,10 @@ declare function InventoryItemPelvisModularChastityBeltCheckPunish(Item: Item, C
66
66
  * @returns {boolean}
67
67
  */
68
68
  declare function InventoryItemPelvisModularChastityBeltCheckStanding(PunishStandup: boolean, C: Character, isPlayerInChatRoom: boolean, ShockCooldown: number): boolean;
69
- declare function InventoryItemPelvisModularChastityBeltForceKneel(): void;
69
+ /**
70
+ * @param {Character} C
71
+ */
72
+ declare function InventoryItemPelvisModularChastityBeltForceKneel(C: Character): void;
70
73
  declare var InventoryItemPelvisModularChastityBeltVoiceTriggers: string[];
71
74
  /** @type {string[]} */
72
75
  declare var InventoryItemPelvisModularChastityBeltVoiceTriggerValues: string[];
@@ -3,6 +3,7 @@
3
3
  * @returns {void} - Nothing
4
4
  */
5
5
  declare function ChatAdminLoad(): void;
6
+ declare function ChatAdminUnload(): void;
6
7
  /**
7
8
  * When the chat Admin screen runs, draws the screen
8
9
  * @returns {void} - Nothing
@@ -10,6 +10,7 @@ declare function ChatAdminRoomCustomizationCommand(Property: "Image" | "Filter"
10
10
  * @returns {void} - Nothing
11
11
  */
12
12
  declare function ChatAdminRoomCustomizationLoad(): void;
13
+ declare function ChatAdminRoomCustomizationUnload(): void;
13
14
  /**
14
15
  * Plays or stop the background music
15
16
  * @param {string} Music - The URL of the music to play
@@ -20,10 +20,6 @@ declare function ChatCreateRoom(): void;
20
20
  * @returns {void} - Nothing
21
21
  */
22
22
  declare function ChatCreateBlockItems(): void;
23
- /**
24
- * Removes all chatroom creation inputs
25
- */
26
- declare function ChatRoomCreateRemoveInput(): void;
27
23
  declare var ChatCreateBackground: string;
28
24
  declare var ChatCreateResult: any[];
29
25
  declare var ChatCreateMessage: string;
@@ -866,8 +866,11 @@ declare function ChatRoomAddCharacterToChatRoom(newCharacter: Character, newRawC
866
866
  */
867
867
  declare function ChatRoomValidateProperties(obj: unknown): obj is ChatRoom;
868
868
  /**
869
- * Handles the reception of the new room data from the server.
870
- * @param {ServerChatRoomSyncMessage} data - Room object containing the updated chatroom data.
869
+ * Handles the reception of the data for a room we've just entered.
870
+ *
871
+ * This only happens once per ChatRoom "lifetime".
872
+ *
873
+ * @param {ServerChatRoomSyncMessage} data - Room object containing the new chatroom data.
871
874
  * @returns {void} - Nothing.
872
875
  */
873
876
  declare function ChatRoomSync(data: ServerChatRoomSyncMessage): void;
@@ -114,10 +114,10 @@ declare function ChatSearchClickPermission(): void;
114
114
  * Shows a confirmation screen first, unless the only reason is "TempHidden".
115
115
  * This is called when clicking a room in the list and also, if a confirmation is shown, called again when the confirm button is clicked.
116
116
  *
117
- * @param {number} C - Index of the room within ChatSearchHiddenResult
117
+ * @param {ChatRoomSearchResult | number} C - Index of the room within ChatSearchHiddenResult
118
118
  * @param {boolean} Confirmed - False when clicking on room list, true when clicking Confirm button
119
119
  */
120
- declare function ChatSearchClickUnhideRoom(C: number, Confirmed: boolean): void;
120
+ declare function ChatSearchClickUnhideRoom(C: ChatRoomSearchResult | number, Confirmed: boolean): boolean;
121
121
  /**
122
122
  * Handles the reception of the server response when joining a room or when getting banned/kicked
123
123
  * @param {ServerChatRoomSearchResponse} data - Response from the server
@@ -195,14 +195,15 @@ declare function ChatSearchMatchesTerms(Room: {
195
195
  * @returns {number} - Starting offset for ingored rooms
196
196
  */
197
197
  declare function ChatSearchCalculateIgnoredRoomsOffset(shownRooms: number): number;
198
+ /**
199
+ * @file This file handles the chat lobby search & filter screen
200
+ */
201
+ /** Background image */
198
202
  declare var ChatSearchBackground: string;
199
- /** @type {(ServerChatRoomSearchData & { DisplayName: string, Order: number })[]} */
200
- declare var ChatSearchResult: (ServerChatRoomSearchData & {
201
- DisplayName: string;
202
- Order: number;
203
- })[];
204
- /** @type {typeof ChatSearchResult} */
205
- declare var ChatSearchHiddenResult: typeof ChatSearchResult;
203
+ /** @type {ChatRoomSearchResult[]} */
204
+ declare var ChatSearchResult: ChatRoomSearchResult[];
205
+ /** @type {ChatRoomSearchResult[]} */
206
+ declare var ChatSearchHiddenResult: ChatRoomSearchResult[];
206
207
  /** @type {null | { Query: string, Language: "" | ServerChatRoomLanguage, Space: ServerChatRoomSpace, Game: ServerChatRoomGame, FullRooms: boolean }} */
207
208
  declare var ChatSearchLastSearchDataJSON: null | {
208
209
  Query: string;
@@ -215,9 +216,17 @@ declare var ChatSearchLastQuerySearchTime: number;
215
216
  declare var ChatSearchLastQueryJoin: string;
216
217
  declare var ChatSearchLastQueryJoinTime: number;
217
218
  declare var ChatSearchResultOffset: number;
218
- declare var ChatSearchRoomsPerPage: number;
219
+ /** The room grid's left offset */
219
220
  declare var ChatSearchPageX: number;
221
+ /** The room grid's top offset */
220
222
  declare var ChatSearchPageY: number;
223
+ /**
224
+ * Layout parameters for the room grid
225
+ * @type {CommonGenerateGridParameters}
226
+ */
227
+ declare var ChatSearchListParams: CommonGenerateGridParameters;
228
+ /** Pre-calculated. Must be updated if you change the grid parameters */
229
+ declare var ChatSearchRoomsPerPage: number;
221
230
  declare var ChatSearchMessage: string;
222
231
  declare var ChatSearchLeaveRoom: string;
223
232
  /** @type {ModuleType} */
@@ -26,6 +26,12 @@ declare function ChatSelectExit(): void;
26
26
  * @returns {boolean} - Whether the genders are allowed
27
27
  */
28
28
  declare function ChatSelectGendersAllowed(space: ServerChatRoomSpace, genders: AssetGender[]): boolean;
29
+ /**
30
+ * @file This file handles the chat lobby space pre-selection screen
31
+ */
32
+ /**
33
+ * Background image
34
+ */
29
35
  declare var ChatSelectBackground: string;
30
36
  /** @type {boolean} */
31
37
  declare var ChatSelectAllowedInFemaleOnly: boolean;
@@ -207,18 +207,31 @@ declare function InfiltrationClubCardStart(): void;
207
207
  * @returns {void} - Nothing
208
208
  */
209
209
  declare function InfiltrationClubCardEnd(): void;
210
+ /**
211
+ * Checks if the role in parameter is the current player role
212
+ * @param {string} Role - The role to evaluate (I for Inmate, G for Guard)
213
+ * @returns {boolean} - TRUE if the role matches the parameter
214
+ */
215
+ declare function InfiltrationPenitentiaryRoleIs(Role: string): boolean;
210
216
  /**
211
217
  * Starts the Pandora's padlock special mission, cannot be given randomly
212
218
  * @param {string} Minutes - The number of minutes to lock the player
213
219
  * @param {string} Amount - The money amount and infiltration skill gained
220
+ * @param {string} Role - The role to take (I for Inmate or G for Guard)
214
221
  * @returns {void} - Nothing
215
222
  */
216
- declare function InfiltrationPreparePenitentiary(Minutes: string, Amount: string): void;
223
+ declare function InfiltrationPreparePenitentiary(Minutes: string, Amount: string, Role: string): void;
217
224
  /**
218
225
  * Starts the Pandora's padlock special mission, cannot be given randomly
226
+ * @param {string} Param - An optional NEW param to create a new room
227
+ * @returns {void} - Nothing
228
+ */
229
+ declare function InfiltrationStartPenitentiary(Param: string): void;
230
+ /**
231
+ * When the player asks to be costumed as a guard
219
232
  * @returns {void} - Nothing
220
233
  */
221
- declare function InfiltrationStartPenitentiary(): void;
234
+ declare function InfiltrationGuardDressUp(): void;
222
235
  declare var InfiltrationBackground: string;
223
236
  /** @type {NPCCharacter} */
224
237
  declare var InfiltrationSupervisor: NPCCharacter;
@@ -240,3 +253,4 @@ declare var InfiltrationPandoraPrisoner: NPCCharacter;
240
253
  declare var InfiltrationPartyPrisoner: NPCCharacter;
241
254
  declare var InfiltrationPenitentiaryMinutes: number;
242
255
  declare var InfiltrationPenitentiaryAmount: number;
256
+ declare var InfiltrationPenitentiaryRole: string;
@@ -278,15 +278,22 @@ declare function PandoraPenitentiaryPrepare(): void;
278
278
  /**
279
279
  * Starts the multi-player punishment
280
280
  * @param {number} Minutes - The number of minutes for the sentence
281
+ * @param {string} Role - The role to take (I for Inmate, G for guard)
281
282
  * @returns {void} - Nothing
282
283
  */
283
- declare function PandoraPenitentiaryStart(Minutes: number): void;
284
+ declare function PandoraPenitentiaryStart(Minutes: number, Role: string): void;
284
285
  /**
285
- * Checks if the current character is currently under Pandora Penitentiary sentence
286
+ * Checks if the current character is currently a Pandora Penitentiary inmate (I)
286
287
  * @param {Character} C - The character to evaluate
287
- * @returns {boolean} - TRUE if sentence is active
288
+ * @returns {boolean} - TRUE if sentence is active and role is inmate
288
289
  */
289
- declare function PandoraPenitentiaryActive(C: Character): boolean;
290
+ declare function PandoraPenitentiaryIsInmate(C: Character): boolean;
291
+ /**
292
+ * Checks if the current character is currently a Pandora Penitentiary guard (G)
293
+ * @param {Character} C - The character to evaluate
294
+ * @returns {boolean} - TRUE if shift is active and role is guard
295
+ */
296
+ declare function PandoraPenitentiaryIsGuard(C: Character): boolean;
290
297
  /**
291
298
  * Called from MainHall and ChatSearch - Checks if we must create the Pandora prison and creates it
292
299
  * @returns {void} - Nothing
@@ -298,11 +305,52 @@ declare function PandoraPenitentiaryCreate(): void;
298
305
  * @returns {void} - Nothing
299
306
  */
300
307
  declare function PandoraPenitentiaryResult(Result: object): void;
308
+ /**
309
+ * Returns TRUE if the group is available for an Onlin Pandora Prison activity
310
+ * @param {Character} C - The character to evaluate
311
+ * @param {AssetGroupItemName} Group - The item group name
312
+ * @param {boolean} SkipBlock - If we should skip the GroupIsBlocked validation
313
+ * @returns {boolean} - TRUE if the group is available
314
+ */
315
+ declare function PandoraGroupAvailable(C: Character, Group: AssetGroupItemName, SkipBlock?: boolean): boolean;
316
+ /**
317
+ * Sets a proper minimal difficulty for the new item set in Online Pandora Prison
318
+ * @param {Character} C - The character to evaluate
319
+ * @param {AssetGroupItemName} Group - The item group name
320
+ * @param {number} Level - The infiltration level, the higher it gets the harder the difficulty will be
321
+ * @returns {void} - Nothing
322
+ */
323
+ declare function PandoraPenitentiaryItemDifficulty(C: Character, Group: AssetGroupItemName, Level: number): void;
324
+ /**
325
+ * Builds a list of all valid Pandora activities for the player
326
+ * @param {Character} C - The character to build a list for
327
+ * @returns {Array} - An array of all valid activities for the player
328
+ */
329
+ declare function PandoraPenitentiaryBuildActivityList(C: Character): any[];
330
+ /**
331
+ * Runs the selected activity inmate activity for the player
332
+ * @param {string} Activity - The activity to run
333
+ * @returns {void} - Nothing
334
+ */
335
+ declare function PandoraPenitentiaryActivityRun(Activity: string): void;
301
336
  /**
302
337
  * Runs the pandora prison events
303
338
  * @returns {void} - Nothing
304
339
  */
305
340
  declare function PandoraPenitentiaryRun(): void;
341
+ /**
342
+ * Runs the pandora command from the online chat box
343
+ * @param {string} Activity - The activity to validate
344
+ * @returns {void} - Nothing
345
+ */
346
+ declare function PandoraPenitentiaryDoActivity(Activity: string): void;
347
+ /**
348
+ * Called from chat room, processes hidden Pandora Prison messages
349
+ * @param {Character} SenderCharacter - The character sending the message
350
+ * @param {String} Interaction - The message sent
351
+ * @returns {Object} - Nothing to be used
352
+ */
353
+ declare function PandoraPenitentiaryHiddenMessage(SenderCharacter: Character, Interaction: string): any;
306
354
  /**
307
355
  * When an NPC pays the player for a service
308
356
  * @param {string} Amount - The paid amount
@@ -381,5 +429,8 @@ declare var PandoraPaint: boolean;
381
429
  declare var PandoraReverseMaidDone: number;
382
430
  declare var PandoraReverseMaidTotal: number;
383
431
  declare var PandoraPenitentiaryCreateTimer: number;
432
+ declare var PandoraPenitentiaryActivityList: string[];
384
433
  declare var PandoraPenitentiaryActivityTimer: number;
385
434
  declare var PandoraPenitentiarySafewordRooms: any[];
435
+ declare var PandoraPenitentiaryCageList: string[];
436
+ declare var PandoraPenitentiaryStartNewRoom: boolean;
@@ -661,4 +661,12 @@ declare namespace CommonKey {
661
661
  * @returns {number} - The bitmask of keyboard modifiers
662
662
  */
663
663
  function GetModifiers(event: KeyboardEvent): number;
664
+ /**
665
+ * A {@link ScreenFunctions.keydown} helper function for implementing the navigation key handling of scrollable elements.
666
+ * @param {HTMLElement} scrollableElem - The scrollable element
667
+ * @param {KeyboardEvent} event - The keydown event
668
+ * @param {(scrollableElem: HTMLElement) => number} getArrowScrollDistance - A callback for computing the (absolute) scroll distance for up/down arrow key presses
669
+ * @returns {boolean} - Whether a navigation key was (successfuly pressed)
670
+ */
671
+ function NavigationKeyDown(scrollableElem: HTMLElement, event: KeyboardEvent, getArrowScrollDistance: (scrollableElem: HTMLElement) => number): boolean;
664
672
  }
@@ -1045,6 +1045,7 @@ declare class DialogMenu<ModeType extends string = string, ClickedObj extends Di
1045
1045
  _ClickDisabledButton(this: HTMLButtonElement, ev: MouseEvent): null | string;
1046
1046
  _ClickPaginatePrev(this: HTMLButtonElement, ev: MouseEvent): void;
1047
1047
  _ClickPaginateNext(this: HTMLButtonElement, ev: MouseEvent): void;
1048
+ _WheelGrid(this: HTMLDivElement, event: WheelEvent): void;
1048
1049
  };
1049
1050
  /**
1050
1051
  * The name of the mode associated with this instance (see {@link DialogMenuMode}).
@@ -336,7 +336,7 @@ declare namespace ElementButton {
336
336
  * Parse the passed icon list, returning its corresponding `<img>` grid and tooltip if non-empty
337
337
  * @param {string} id - The ID of the parent element
338
338
  * @param {readonly (InventoryIcon | { name: string, iconSrc: string, tooltipText: string | Node })[]} [icons] - The (optional) list of icons
339
- * @returns {null | { iconGrid: HTMLDivElement, tooltip: (string | HTMLElement)[] }} - `null` if the provided icon list is empty and otherwise an object containing the icon grid and a icon-specific tooltip
339
+ * @returns {null | { iconGrid: HTMLDivElement, tooltip: [string, HTMLElement, HTMLElement] }} - `null` if the provided icon list is empty and otherwise an object containing the icon grid and a icon-specific tooltip
340
340
  */
341
341
  function _ParseIcons(id: string, icons?: readonly (InventoryIcon | {
342
342
  name: string;
@@ -344,7 +344,7 @@ declare namespace ElementButton {
344
344
  tooltipText: string | Node;
345
345
  })[]): null | {
346
346
  iconGrid: HTMLDivElement;
347
- tooltip: (string | HTMLElement)[];
347
+ tooltip: [string, HTMLElement, HTMLElement];
348
348
  };
349
349
  /**
350
350
  * @private
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bc-stubs",
3
- "version": "111.0.0",
3
+ "version": "112.0.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@github.com/bananarama92/BC-stubs.git"