bc-stubs 119.0.0 → 120.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.
Files changed (32) hide show
  1. package/bc/NativeDeclarations/Commands.d.ts +33 -0
  2. package/bc/NativeDeclarations/Female3DCG_Types.d.ts +4 -1
  3. package/bc/NativeDeclarations/Messages.d.ts +27 -1
  4. package/bc/NativeDeclarations/Toasts.d.ts +5 -2
  5. package/bc/NativeDeclarations/Typedef.d.ts +41 -15
  6. package/bc/Screens/Character/FriendList/FriendList.d.ts +2 -2
  7. package/bc/Screens/Character/Preference/Preference.d.ts +6 -6
  8. package/bc/Screens/MiniGame/ClubCard/ClubCard.d.ts +29 -10
  9. package/bc/Screens/MiniGame/ClubCardBuilder/ClubCardBuilder.d.ts +6 -2
  10. package/bc/Screens/Online/ChatRoom/ChatRoom.d.ts +4 -2
  11. package/bc/Screens/Online/ChatRoom/ChatRoomMapView.d.ts +19 -0
  12. package/bc/Screens/Online/ChatRoom/Commands.d.ts +132 -8
  13. package/bc/Screens/Online/ChatRoom/CommandsDefault.d.ts +4 -0
  14. package/bc/Screens/Online/ChatSearch/ChatSearch.d.ts +104 -17
  15. package/bc/Screens/Online/ForbiddenWords/ForbiddenWords.d.ts +1 -0
  16. package/bc/Screens/Online/GameClubCard/GameClubCard.d.ts +2 -2
  17. package/bc/Screens/Room/KidnapLeague/KidnapLeague.d.ts +6 -6
  18. package/bc/Screens/Room/LARP/LARP.d.ts +2 -2
  19. package/bc/Screens/Room/MagicSchoolEscape/MagicSchoolEscape.d.ts +2 -2
  20. package/bc/Screens/Room/MagicSchoolLaboratory/MagicSchoolLaboratory.d.ts +8 -8
  21. package/bc/Screens/Room/MaidQuarters/MaidQuarters.d.ts +2 -2
  22. package/bc/Screens/Room/MainHall/MainHall.d.ts +2 -2
  23. package/bc/Screens/Room/MovieStudio/MovieStudio.d.ts +2 -2
  24. package/bc/Screens/Room/Prison/Prison.d.ts +3 -3
  25. package/bc/Scripts/Asset.d.ts +2 -2
  26. package/bc/Scripts/Common.d.ts +21 -0
  27. package/bc/Scripts/DictionaryBuilder.d.ts +11 -0
  28. package/bc/Scripts/Element.d.ts +22 -0
  29. package/bc/Scripts/MiniGame.d.ts +2 -2
  30. package/bc/Scripts/Server.d.ts +1 -1
  31. package/package.json +1 -1
  32. package/bc/Screens/Inventory/Cloth/OffTheShoulderTop/OffTheShoulderTop.d.ts +0 -1
@@ -0,0 +1,33 @@
1
+ interface ICommand {
2
+ /** Name of the command */
3
+ Tag: string;
4
+ /** Description of the command */
5
+ Description?: string | Record<ServerChatRoomLanguage | "TW", string>;
6
+ /** Reference to another command, used for aliases */
7
+ Reference?: string;
8
+ /** The function that handles the command */
9
+ Action?: (this: Optional<ICommand, 'Tag'>, argumentsString: string, message: string, arguments: string[]) => void;
10
+ /** Function that returns whether the command can be executed */
11
+ Prerequisite?: (this: Optional<ICommand, 'Tag'>) => boolean;
12
+ /** Function to execute on autocomplete key (Tab default) press if chat input matches tag */
13
+ AutoComplete?: (this: Optional<ICommand, 'Tag'>, arguments: string[], lowercaseMessage: string, message: string) => void;
14
+ /** Whether chat input should be cleared after execution of command. True if omitted */
15
+ Clear?: false;
16
+ /** Whether the case of the command should be preserved. False if omitted */
17
+ PreserveCase?: boolean;
18
+ /** Array of commands that can be used as subcommands. */
19
+ Subcommands?: Subcommand[];
20
+ /**
21
+ * Array of arguments that the command accepts.
22
+ * Can be a function to generate arguments at runtime.
23
+ * Typically used to provide additional context for users
24
+ */
25
+ Arguments?: ArgumentDef[];
26
+ }
27
+
28
+ type ArgumentDef = {
29
+ name: string;
30
+ description: string;
31
+ suggestions?: string[] | (() => string[]);
32
+ };
33
+ type Subcommand = Omit<ICommand, 'Subcommands' | 'AutoComplete'>;
@@ -145,9 +145,12 @@ interface AssetCommonPropertiesGroupAssetLayer {
145
145
 
146
146
  /**
147
147
  * A group identifier that will be used to inherit the body size.
148
+ *
148
149
  * Body sizes can be either be used for all poses (by passing a singular group) or on a pose-by-pose basis (via passing an object).
149
150
  * In the latter case {@link PoseType.DEFAULT} can be used to override the default for _all_ groups when used as key, or to disable inheritance when used as value.
150
151
  *
152
+ * A value of `undefined` means the parent group will be inherited. A value of `""` will make it size-independent.
153
+ *
151
154
  * @example
152
155
  * // Inherit from the body sizes `BodyLower` by default, but do not inherit for the `AllFours` pose
153
156
  * ParentGroup: {
@@ -155,7 +158,7 @@ interface AssetCommonPropertiesGroupAssetLayer {
155
158
  * AllFours: PoseType.DEFAULT,
156
159
  * },
157
160
  */
158
- ParentGroup?: ParentGroup.Definition | null;
161
+ ParentGroup?: ParentGroup.Definition | "";
159
162
 
160
163
  /**
161
164
  * The poses that have pose-specific assets.
@@ -77,7 +77,9 @@ interface ServerAccountData extends ServerAccountImmutableData {
77
77
  SavedExpressions?: ({ Group: ExpressionGroupName, CurrentExpression?: ExpressionName }[] | null)[];
78
78
  ConfiscatedItems?: { Group: AssetGroupName, Name: string }[];
79
79
  RoomCreateLanguage?: ServerChatRoomLanguage;
80
+ /** @deprecated */
80
81
  RoomSearchLanguage?: "" | ServerChatRoomLanguage;
82
+ ChatSearchSettings?: ChatRoomSearchSettings;
81
83
  LastMapData?: null | ChatRoomMapData;
82
84
  // Unfortunately can't @deprecated individual union members
83
85
  /** String-based values have been deprecated and are superseded by {@link ServerChatRoomSettings} objects */
@@ -457,6 +459,18 @@ interface ServerChatRoomSearchRequest {
457
459
  ShowLocked?: boolean;
458
460
  MapTypes?: string[];
459
461
  }
462
+ type ChatRoomSearchSettings = {
463
+ Language: "" | ServerChatRoomLanguage;
464
+ Query: string;
465
+ Space: ServerChatRoomSpace;
466
+ Game: ServerChatRoomGame;
467
+ FullRooms: boolean;
468
+ ShowLocked: boolean;
469
+ SearchDescriptions: boolean;
470
+ MapTypes: string;
471
+ RoomMinSize: number;
472
+ RoomMaxSize: number;
473
+ }
460
474
 
461
475
  interface ServerChatRoomSearchData {
462
476
  Name: string;
@@ -788,6 +802,17 @@ interface MapViewTeleportEventDictionaryEntry {
788
802
  Position: ChatRoomMapPos;
789
803
  }
790
804
 
805
+ /**
806
+ * A dictionary entry for change key events
807
+ */
808
+ interface MapViewChangeKeyEventDictionaryEntry {
809
+ Tag: "MapViewChangeKey";
810
+ /** The key to give or take. */
811
+ Key: "gold" | "silver" | "bronze";
812
+ /** Whether to give (true) or take the key (false) */
813
+ Bool: boolean;
814
+ }
815
+
791
816
  /**
792
817
  * A dictionary entry with metadata about the chat message transmitted.
793
818
  *
@@ -818,7 +843,8 @@ type ChatMessageDictionaryEntry =
818
843
  | MessageEffectEntry
819
844
  | MsgIdDictionaryEntry
820
845
  | ReplyIdDictionaryEntry
821
- | MapViewTeleportEventDictionaryEntry;
846
+ | MapViewTeleportEventDictionaryEntry
847
+ | MapViewChangeKeyEventDictionaryEntry;
822
848
 
823
849
 
824
850
  type ChatMessageDictionary = ChatMessageDictionaryEntry[];
@@ -46,6 +46,8 @@ declare namespace Toasts {
46
46
  iconColor?: IconColor;
47
47
  /** Optional array of action buttons to render inside the toast. */
48
48
  buttons?: ToastButton[];
49
+ /** Whether to clamp long messages to 3 lines. */
50
+ clampMessage?: boolean;
49
51
  }
50
52
  /**
51
53
  * Defines a button to be rendered inside a toast notification.
@@ -62,11 +64,12 @@ declare namespace Toasts {
62
64
 
63
65
  /**
64
66
  * Represents the DOM element for a rendered toast.
65
- * Extends HTMLDivElement and may include an internal `_dismiss` method
66
- * that can be programmatically called to close the toast with a given reason.
67
+ * Extends HTMLDivElement and may include internal methods
68
+ * that can be programmatically called.
67
69
  */
68
70
  interface ToastElement extends HTMLDivElement {
69
71
  _dismiss?: (reason: CloseReason) => void;
72
+ _timeoutTimerRemove?: () => void;
70
73
  }
71
74
 
72
75
  }
@@ -658,7 +658,7 @@ type ArousalAffectStutterName = "None" | "Arousal" | "Vibration" | "All";
658
658
  type SettingsSensDepName = "SensDepLight" | "Normal" | "SensDepNames" | "SensDepTotal" | "SensDepExtreme";
659
659
  type SettingsVFXName = "VFXInactive" | "VFXSolid" | "VFXAnimatedTemp" | "VFXAnimated";
660
660
  type SettingsVFXVibratorName = "VFXVibratorInactive" | "VFXVibratorSolid" | "VFXVibratorAnimated";
661
- type SettingsVFXFilterName = "VFXFilterLight" | "VFXFilterMedium" | "VFXFilterHeavy";
661
+ type SettingsVFXFilterName = "VFXFilterLight" | "VFXFilterMedium" | "VFXFilterHeavy" | "VFXFilterNone";
662
662
 
663
663
  type GraphicsFontName =
664
664
  "Arial" | "TimesNewRoman" | "Papyrus" | "ComicSans" | "Impact" | "HelveticaNeue" | "Verdana" |
@@ -693,7 +693,7 @@ interface PreferenceGenderSetting {
693
693
  type FetishName =
694
694
  "Bondage" | "Gagged" | "Blindness" | "Deafness" | "Chastity" | "Exhibitionist" | "Masochism" |
695
695
  "Sadism" | "Rope" | "Latex" | "Leather" | "Metal" | "Tape" | "Nylon" | "Lingerie" | "Pet" |
696
- "Pony" | "ABDL" | "Forniphilia"
696
+ "Pony" | "ABDL" | "Forniphilia" | "Spandex"
697
697
  ;
698
698
 
699
699
  type BackgroundTag =
@@ -1448,7 +1448,7 @@ type ActivityNameBasic = "Bite" | "Brush" | "Caress" | "Choke" | "Clean" | "Cudd
1448
1448
  "SistersHug" | "BrothersHandshake" | "SiblingsCheekKiss" | "CollarGrab"
1449
1449
  ;
1450
1450
 
1451
- type ActivityNameItem = "Inject" | "MasturbateItem" | "PenetrateItem" | "PourItem" | "RollItem" | "RubItem" | "BrushItem" | "ShockItem" | "SipItem" | "SpankItem" | "TickleItem" | "EatItem" | "Scratch" | "ThrowItem";
1451
+ type ActivityNameItem = "Inject" | "MasturbateItem" | "PenetrateItem" | "PourItem" | "RollItem" | "RubItem" | "BrushItem" | "ShockItem" | "SipItem" | "SpankItem" | "SqueezeItem" | "TickleItem" | "EatItem" | "Scratch" | "ThrowItem";
1452
1452
 
1453
1453
  type ActivityName = ActivityNameBasic | ActivityNameItem;
1454
1454
 
@@ -2289,6 +2289,7 @@ interface PlayerCharacter extends Character {
2289
2289
  /** The list of items we got confiscated in the Prison */
2290
2290
  ConfiscatedItems: { Group: AssetGroupName, Name: string }[];
2291
2291
  ExtensionSettings: ExtensionSettings;
2292
+ ChatSearchSettings: ChatRoomSearchSettings;
2292
2293
  }
2293
2294
 
2294
2295
  /** A type defining which genders a setting is active for */
@@ -3787,16 +3788,6 @@ interface NoArchItemData extends ExtendedItemData<NoArchItemOption> {
3787
3788
 
3788
3789
  type Optional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
3789
3790
 
3790
- interface ICommand {
3791
- Tag: string;
3792
- Description?: string;
3793
- Reference?: string;
3794
- Action?: (this: Optional<ICommand, 'Tag'>, args: string, msg: string, parsed: string[]) => void
3795
- Prerequisite?: (this: Optional<ICommand, 'Tag'>) => boolean;
3796
- AutoComplete?: (this: Optional<ICommand, 'Tag'>, parsed: string[], low: string, msg: string) => void;
3797
- Clear?: false;
3798
- }
3799
-
3800
3791
  // #region Struggle Minigame
3801
3792
 
3802
3793
  type StruggleKnownMinigames = "Strength" | "Flexibility" | "Dexterity" | "Loosen" | "LockPick";
@@ -4739,6 +4730,28 @@ interface WheelFortuneOptionType {
4739
4730
 
4740
4731
  // #region ClubCard
4741
4732
 
4733
+ type ClubCardTag =
4734
+ | "All"
4735
+ | "Selected Cards"
4736
+ | "Event"
4737
+ | "NoGroup"
4738
+ | "Liability"
4739
+ | "Staff"
4740
+ | "Police"
4741
+ | "Criminal"
4742
+ | "Fetishist"
4743
+ | "Porn"
4744
+ | "Maid"
4745
+ | "Asylum"
4746
+ | "Dominant / Mistress"
4747
+ | "ABDL"
4748
+ | "College"
4749
+ | "Shibari"
4750
+ | "Pet / Owner"
4751
+ | "Kemonomimi"
4752
+ | "Submissive / Slave"
4753
+ | "Reward";
4754
+
4742
4755
  interface ClubCard {
4743
4756
  ID: number;
4744
4757
  UniqueID?: string;
@@ -4759,7 +4772,8 @@ interface ClubCard {
4759
4772
  ExtraPlay?: number;
4760
4773
  Group?: string[];
4761
4774
  Location?: string;
4762
- Negated?: boolean;
4775
+ Negated?: boolean; // if the card's effect should not work
4776
+ Negating?: string; // the card that its effect is stopped by this card
4763
4777
  GlowTimer?: number;
4764
4778
  GlowColor?: string;
4765
4779
  EffectKey?: number;
@@ -4795,6 +4809,15 @@ interface ClubCard {
4795
4809
  onLeaveClub?: (C: ClubCardPlayer) => void;
4796
4810
  turnStart?: (C: ClubCardPlayer) => void;
4797
4811
  onLevelUp?: (C: ClubCardPlayer) => void;
4812
+ onOpponentLevelUp?: (C: ClubCardPlayer) => void;
4813
+ onDrawCard?: (C: ClubCardPlayer) => void;
4814
+ onOpponentDrawCard?: (C: ClubCardPlayer) => void;
4815
+ onDrawAction?: (C: ClubCardPlayer) => void;
4816
+ onOpponentDrawAction?: (C: ClubCardPlayer) => void;
4817
+ onSteal?: (C: ClubCardPlayer) => void;
4818
+ StreetsTurnEnd?: (C: ClubCardPlayer) => void;
4819
+ onDiscardCard?: (C: ClubCardPlayer, Card: ClubCard) => void;
4820
+ onCancelNegation?: (C: ClubCardPlayer) => void;
4798
4821
  }
4799
4822
 
4800
4823
  interface ClubCardPlayer {
@@ -4903,7 +4926,7 @@ interface PreviewDrawOptions {
4903
4926
 
4904
4927
  // #region Chat Room Maps
4905
4928
 
4906
- interface ChatRoomView extends Pick<ScreenFunctions, "Run" | "MouseDown" | "MouseUp" | "MouseMove" | "MouseWheel" | "Click" | "Draw" | "KeyDown"> {
4929
+ interface ChatRoomView extends Pick<ScreenFunctions, "Run" | "MouseDown" | "MouseUp" | "MouseMove" | "MouseWheel" | "Click" | "Draw" | "KeyDown" | "KeyUp"> {
4907
4930
  Activate?: () => void;
4908
4931
  Deactivate?: () => void;
4909
4932
  Draw: () => void;
@@ -4928,6 +4951,9 @@ type ChatRoomMapObjectType = (
4928
4951
  | "FloorDecorationAnimal"
4929
4952
  | "FloorItem"
4930
4953
  | "FloorObstacle"
4954
+ | "FloorNumber"
4955
+ | "FloorLetter"
4956
+ | "FloorIcon"
4931
4957
  | "WallDecoration"
4932
4958
  | "WallPath"
4933
4959
  );
@@ -23,12 +23,12 @@ declare function FriendListBeepMenuSend(): void;
23
23
  /**
24
24
  * Opens the friendlist from any screen
25
25
  */
26
- declare function FriendListShow(): void;
26
+ declare function FriendListShow(): Promise<void>;
27
27
  /**
28
28
  * Shows the wanted beep on click from beep list
29
29
  * @param {number} i index of the beep
30
30
  */
31
- declare function FriendListShowBeep(i: number): void;
31
+ declare function FriendListShowBeep(i: number): Promise<void>;
32
32
  /**
33
33
  * Exits the friendlist
34
34
  * @param {string} room The room to search for
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Open a specific subscreen
3
+ * @param {PreferenceSubscreenName} subscreen
4
+ * @param {number} page
5
+ */
6
+ declare function PreferenceOpenSubscreen(subscreen: PreferenceSubscreenName, page?: number): Promise<void>;
1
7
  declare function PreferenceLoad(): Promise<void>;
2
8
  /**
3
9
  * Runs the preference screen. This function is called dynamically on a repeated basis.
@@ -93,11 +99,6 @@ declare var PreferenceMessage: string;
93
99
  * @type {PreferenceSubscreen?}
94
100
  */
95
101
  declare var PreferenceSubscreen: PreferenceSubscreen | null;
96
- /**
97
- * @type {PreferenceSubscreenName[]}
98
- * @deprecated the old name. Remove after the extensions have caught up
99
- */
100
- declare var PreferenceSubscreenList: PreferenceSubscreenName[];
101
102
  /**
102
103
  * All the base settings screens
103
104
  * @type {PreferenceSubscreen[]}
@@ -111,7 +112,6 @@ declare const PreferenceSubscreens: PreferenceSubscreen[];
111
112
  declare var PreferencePageCurrent: number;
112
113
  /** @type {Record<string,PreferenceExtensionsSettingItem>} */
113
114
  declare let PreferenceExtensionsSettings: Record<string, PreferenceExtensionsSettingItem>;
114
- declare let PreferenceDidAddOldStyleScreens: boolean;
115
115
  /**
116
116
  * Private helper to quickly check boolean settings
117
117
  * @param {boolean} defaultValue
@@ -170,12 +170,6 @@ declare function ClubCardPlayerSteal(CCPlayer: ClubCardPlayer, moneyAmount: numb
170
170
  stolenMoney: number;
171
171
  stolenFame: number;
172
172
  };
173
- /**
174
- * Applies the "Sticky Fingers" effect, stealing extra resources if possible.
175
- * @param {ClubCardPlayer} CCPlayer - The club card player.
176
- * @param {ClubCardPlayer} opponent - The opponent player.
177
- */
178
- declare function ClubCardApplyStickyFingers(CCPlayer: ClubCardPlayer, opponent: ClubCardPlayer): void;
179
173
  /**
180
174
  * Raises the level of player
181
175
  * @param {ClubCardPlayer} CCPlayer - The club card player
@@ -193,16 +187,18 @@ declare function ClubCardEventNameIsInEvents(CCPlayer: ClubCardPlayer, CardName:
193
187
  * Returns TRUE if a card (by name) is currently present on a board
194
188
  * @param {ClubCardPlayer} CCPlayer - The club card player
195
189
  * @param {string} CardName - The name of the card
190
+ * @param {boolean} NegateCheck - If we need to check if the card is negated
196
191
  * @returns {boolean} - TRUE if at least one card with that name is present
197
192
  */
198
- declare function ClubCardNameIsOnBoard(CCPlayer: ClubCardPlayer, CardName: string): boolean;
193
+ declare function ClubCardNameIsOnBoard(CCPlayer: ClubCardPlayer, CardName: string, NegateCheck?: boolean): boolean;
199
194
  /**
200
195
  * Returns the amount of a card (by name) that are currently present on a board
201
- * @param {ClubCardPlayer} CCPlayer - The club card player
202
- * @param {string} CardName - The name of the card
196
+ * @param {ClubCardPlayer} CCPlayer - The club card pla
197
+ * @param {string} CardName - The name of the carder
198
+ * @param {boolean} NegateCheck - If we need to check if the card is negated
203
199
  * @returns {number} - the amount of members with that name on board
204
200
  */
205
- declare function ClubCardNameCountOnBoard(CCPlayer: ClubCardPlayer, CardName: string): number;
201
+ declare function ClubCardNameCountOnBoard(CCPlayer: ClubCardPlayer, CardName: string, NegateCheck?: boolean): number;
206
202
  /**
207
203
  * Returns TRUE if a card (by group) is currently present on a board
208
204
  * @param {ClubCardPlayer} CCPlayer - The club card player
@@ -284,6 +280,13 @@ declare function ClubCardRemoveCardsFromEventByName(CCPlayer: ClubCardPlayer, Li
284
280
  * @returns {void} - Nothing
285
281
  */
286
282
  declare function ClubCardRemoveFromEventByName(CCPlayer: ClubCardPlayer, CardName: string): void;
283
+ /**
284
+ * Removes a card from a player time events
285
+ * @param {ClubCardPlayer} CCPlayer - The club card player
286
+ * @param {ClubCard} Card - The card object to remove
287
+ * @returns {void} - Nothing
288
+ */
289
+ declare function ClubCardRemoveFromEvent(CCPlayer: ClubCardPlayer, Card: ClubCard): void;
287
290
  /**
288
291
  * Removes all cards that belong to a group (ex: Liability) from a board
289
292
  * @param {ClubCardPlayer} CCPlayer - The club card player
@@ -365,6 +368,14 @@ declare function ClubCardCheckDraw(CCPlayer: ClubCardPlayer): void;
365
368
  * @returns {void} - Nothing
366
369
  */
367
370
  declare function ClubCardOnDrawAction(CCPlayer: ClubCardPlayer): void;
371
+ /**
372
+ * Handles the remove of negate effect
373
+ * @param {ClubCardPlayer} CCPlayer
374
+ * @param {ClubCard} CardToCancel - the card to cancel its negation
375
+ * @returns {void} - Nothing
376
+ *
377
+ */
378
+ declare function ClubCardCancelNegation(CCPlayer: ClubCardPlayer, CardToCancel: ClubCard): void;
368
379
  /**
369
380
  * Common place to handle Alvins effect on kidnapping and Restrain
370
381
  * @param {ClubCardPlayer} CCPlayer
@@ -379,6 +390,14 @@ declare function ClubCardAlvinCondition(CCPlayer: ClubCardPlayer): void;
379
390
  * @returns {void} - Nothing
380
391
  */
381
392
  declare function ClubCardPlayerDiscardCard(CCPlayer: ClubCardPlayer, Amount: number): void;
393
+ /**
394
+ * Removes a card from a player hand
395
+ * @param {ClubCardPlayer} CCPlayer - The club card player that discards
396
+ * @param {number} Pos - The location of the card to discard
397
+ * @param {string} DiscardFrom - The pile to discard from
398
+ * @returns {void} - Nothing
399
+ */
400
+ declare function ClubCardDiscardCard(CCPlayer: ClubCardPlayer, Pos: number, DiscardFrom?: string): void;
382
401
  /**
383
402
  * Builds a deck array of object from a deck array of numbers
384
403
  * @param {readonly number[]} InDeck - The array of number deck
@@ -82,8 +82,12 @@ declare var ClubCardBuilderOffset: number;
82
82
  declare var ClubCardBuilderDeckCurrent: number[];
83
83
  declare var ClubCardBuilderMinDeckSize: number;
84
84
  declare var ClubCardBuilderMaxDeckSize: number;
85
- declare var ClubCardBuilderSelectedTag: string;
86
- declare var ClubCardBuilderFilterGroup: string[];
85
+ /** @type {ClubCardTag} */
86
+ declare var ClubCardBuilderSelectedTag: ClubCardTag;
87
+ /**
88
+ * @type {Record<ClubCardTag, (card: ClubCard) => boolean>}
89
+ */
90
+ declare const ClubCardBuilderFilterGroupFilters: Record<ClubCardTag, (card: ClubCard) => boolean>;
87
91
  declare var ClubCardBuilderRenameIndex: number;
88
92
  declare var ClubCardBuilderCustomizationIndex: string;
89
93
  declare var ClubCardBuilderSelectedCardBack: number;
@@ -691,6 +691,7 @@ declare function ChatRoomProcessSlowLeave(): void;
691
691
  declare function ChatRoomLeave(clearCharacters?: boolean): void;
692
692
  declare function ChatRoomCommonKeyDown(event: KeyboardEvent): boolean;
693
693
  declare function ChatRoomKeyDown(event: KeyboardEvent): boolean;
694
+ declare function ChatRoomKeyUp(event: KeyboardEvent): boolean;
694
695
  /**
695
696
  * Scroll through the chat history
696
697
  *
@@ -1021,9 +1022,9 @@ declare function ChatRoomValidateProperties(obj: unknown): obj is ChatRoom;
1021
1022
  * This only happens once per ChatRoom "lifetime".
1022
1023
  *
1023
1024
  * @param {ServerChatRoomSyncMessage} data - Room object containing the new chatroom data.
1024
- * @returns {void} - Nothing.
1025
+ * @returns {Promise<void>} - Nothing.
1025
1026
  */
1026
- declare function ChatRoomSync(data: ServerChatRoomSyncMessage): void;
1027
+ declare function ChatRoomSync(data: ServerChatRoomSyncMessage): Promise<void>;
1027
1028
  /**
1028
1029
  * Handles the reception of the character data of a single player from the server.
1029
1030
  * @param {ServerChatRoomSyncCharacterResponse} data - object containing the character's data.
@@ -1507,6 +1508,7 @@ declare let ChatRoomData: null | ServerChatRoomData;
1507
1508
  * @type {Character[]}
1508
1509
  */
1509
1510
  declare var ChatRoomCharacter: Character[];
1511
+ declare var ChatRoomJustEntered: boolean;
1510
1512
  /** @type {ChatRoomChatLogEntry[]} */
1511
1513
  declare var ChatRoomChatLog: ChatRoomChatLogEntry[];
1512
1514
  declare var ChatRoomLastMessage: string[];
@@ -280,6 +280,18 @@ declare function ChatRoomMapViewDraw(): void;
280
280
  * @returns {void} - Nothing
281
281
  */
282
282
  declare function ChatRoomMapViewDrawUi(): void;
283
+ /**
284
+ * Change the key of charachter - sender
285
+ * @param {Character} target
286
+ * @param {("gold" | "silver" | "bronze")[]} keys
287
+ */
288
+ declare function ChatRoomMapViewChangeKey(target: Character, keys: ("gold" | "silver" | "bronze")[], boolean: any): void;
289
+ /**
290
+ * Change a key from a character from a hidden message - reciver
291
+ * @param {Character} sender
292
+ * @param {ServerChatRoomMessage} data
293
+ */
294
+ declare function ChatRoomMapViewChangeKeyHiddenMessage(sender: Character, data: ServerChatRoomMessage): void;
283
295
  /**
284
296
  * Teleport a character to a specific tile
285
297
  * @param {Character} target
@@ -311,6 +323,7 @@ declare function ChatRoomMapViewMove(D: "West" | "East" | "North" | "South"): vo
311
323
  */
312
324
  declare function ChatRoomMapViewUndo(): void;
313
325
  declare function ChatRoomMapViewKeyDown(event: KeyboardEvent): boolean;
326
+ declare function ChatRoomMapViewKeyUp(event: KeyboardEvent): boolean;
314
327
  /**
315
328
  * Handles clicks the chatroom screen view.
316
329
  * @returns {void} - Nothing.
@@ -392,6 +405,12 @@ declare var ChatRoomMapViewVisibilityMask: boolean[];
392
405
  declare var ChatRoomMapViewAudibilityMask: boolean[];
393
406
  declare var ChatRoomMapViewTileFog: string;
394
407
  declare var ChatRoomMapViewObjectFog: string;
408
+ declare namespace ChatRoomMapViewKeysPressed {
409
+ let u: boolean;
410
+ let d: boolean;
411
+ let l: boolean;
412
+ let r: boolean;
413
+ }
395
414
  /** @type {ChatRoomMapTile[]} */
396
415
  declare const ChatRoomMapViewTileList: ChatRoomMapTile[];
397
416
  /** @type {ChatRoomMapObject[]} */
@@ -34,6 +34,7 @@ declare function CommandCombine(add: ICommand | ICommand[]): void;
34
34
  declare function CommandParse(msg: string): string | boolean;
35
35
  /**
36
36
  * Prints out the help for commands with tags that include `low`
37
+ * @deprecated
37
38
  * @param {string} low - lower case search keyword for tags
38
39
  * @param {number} [timeout] - total time to display the help message in ms
39
40
  * @returns {void} - Nothing
@@ -41,11 +42,22 @@ declare function CommandParse(msg: string): string | boolean;
41
42
  declare function CommandHelp(low: string, timeout?: number): void;
42
43
  /**
43
44
  * Prints out the help for commands
44
- * @param {Optional<ICommand, 'Action'>[]} CommandList - list of commands
45
- * @param {number} [Timeout] - total time to display the help message in ms
46
- * @param {boolean} [DoShowEscapeHint] - if message about message escaping should be shown
45
+ * @deprecated
46
+ * @param {Optional<ICommand, 'Action'>[]} commands - list of commands
47
+ * @param {number} [timeout] - total time to display the help message in ms
48
+ * @param {boolean} [doShowEscapeHint] - if message about message escaping should be shown
49
+ */
50
+ declare function CommandPrintHelpFor(commands: Optional<ICommand, "Action">[], timeout?: number, doShowEscapeHint?: boolean): void;
51
+ /**
52
+ * Prints out the help for commands
53
+ * @param {ICommand} cmd
54
+ * @param {{ arguments?: ArgumentDef['suggestions'], subcommands?: Subcommand[] }} options - list of commands
55
+ * @param {number} [timeout] - total time to display the help message in ms
47
56
  */
48
- declare function CommandPrintHelpFor(CommandList: Optional<ICommand, "Action">[], Timeout?: number, DoShowEscapeHint?: boolean): void;
57
+ declare function CommandPrintHelpForSubcommandsArguments(cmd: ICommand, options: {
58
+ arguments?: ArgumentDef["suggestions"];
59
+ subcommands?: Subcommand[];
60
+ }, timeout?: number): void;
49
61
  /**
50
62
  * Finds command and executes it from the message
51
63
  * @param {string} msg - User input
@@ -57,12 +69,128 @@ declare function CommandExecute(msg: string): boolean;
57
69
  * @param {string} msg - InputChat content
58
70
  */
59
71
  declare function CommandAutoComplete(msg: string): void;
72
+ /**
73
+ *
74
+ * @param {ICommand[]} candidates
75
+ * @param {string} key
76
+ */
77
+ declare function CommandHandleMultipleCandidates(candidates: ICommand[], key: string): void;
78
+ /**
79
+ *
80
+ * @param {ICommand} initialCmd
81
+ * @param {string[]} forward
82
+ * @param {string[]} parts
83
+ * @param {string} low
84
+ * @param {string} msg
85
+ * @returns
86
+ */
87
+ declare function CommandHandleSingleCandidate(initialCmd: ICommand, forward: string[], parts: string[], low: string, msg: string): void | HTMLDivElement;
88
+ /**
89
+ *
90
+ * @param {ICommand} cmd
91
+ * @returns {ICommand | undefined}
92
+ */
93
+ declare function CommandResolveReference(cmd: ICommand): ICommand | undefined;
94
+ /**
95
+ *
96
+ * @param {ICommand} cmd
97
+ * @param {string[]} remaining
98
+ * @param {string[]} parts
99
+ * @param {{setCommand?: string}} [options]
100
+ * @returns {boolean} if completion was handled
101
+ */
102
+ declare function CommandHandleSubcommandCompletion(cmd: ICommand, remaining: string[], parts: string[], options?: {
103
+ setCommand?: string;
104
+ }): boolean;
105
+ /**
106
+ *
107
+ * @param {ICommand | Subcommand} cmd
108
+ * @param {string[]} remaining
109
+ * @param {string[]} parts
110
+ * @param {{setCommand?: string}} [options]
111
+ * @returns {boolean | 'complete'} if completion was handled
112
+ */
113
+ declare function CommandHandleArgumentCompletion(cmd: ICommand | Subcommand, remaining: string[], parts: string[], options?: {
114
+ setCommand?: string;
115
+ }): boolean | "complete";
116
+ /**
117
+ *
118
+ * @param {string} setCommand
119
+ * @param {string[]} remaining
120
+ * @param {number} argumentDepth
121
+ * @param {string} completion
122
+ * @param {boolean} completed
123
+ */
124
+ declare function CommandCompleteCommand(setCommand: string, remaining: string[], argumentDepth: number, completion: string, completed?: boolean): void;
125
+ /**
126
+ *
127
+ * @param {string} msg
128
+ */
129
+ declare function CommandChangeChatInputContent(msg: string): void;
130
+ /**
131
+ * Returns the caret position of the chat input or -1 if user selected text or if there is no input
132
+ * @returns {number}
133
+ */
134
+ declare function CommandGetChatRoomCaretPosition(): number;
60
135
  /** @type {ICommand[]} */
61
136
  declare var Commands: ICommand[];
62
137
  /** @readonly */
63
138
  declare let CommandsKey: string;
64
139
  /** @type {TextCache} */
65
140
  declare let CommandText: TextCache;
141
+ declare namespace CommandsHelp {
142
+ /**
143
+ * @private
144
+ * @param {HTMLElement} help
145
+ */
146
+ function _Publish(help: HTMLElement): void;
147
+ function _BuildDelete(id: any): HTMLButtonElement;
148
+ /**
149
+ *
150
+ * @param {string} id
151
+ * @param {boolean} expanded
152
+ * @returns
153
+ */
154
+ function _BuildToggle(id: string, expanded: boolean): HTMLButtonElement;
155
+ /**
156
+ *
157
+ * @param {ICommand} command
158
+ * @returns {string}
159
+ */
160
+ function _GetDescription(command: ICommand): string;
161
+ /**
162
+ * @param {ICommand} command
163
+ * @param {string} setCommand
164
+ * @param {boolean} singleCommand
165
+ * @returns {HTMLOptions<keyof HTMLElementTagNameMap>}
166
+ */
167
+ function _BuildCommand(command: ICommand, setCommand: string, singleCommand: boolean): HTMLOptions<keyof HTMLElementTagNameMap>;
168
+ /**
169
+ * @param {ICommand[]} commands
170
+ * @param {{ setCommand?: string}} [options]
171
+ * @returns
172
+ */
173
+ function _BuildHelp(commands: ICommand[], { setCommand }?: {
174
+ setCommand?: string;
175
+ }): HTMLDivElement;
176
+ /**
177
+ * Prints out the help for commands
178
+ * @param {Optional<ICommand, 'Action'>[]} commands - list of commands
179
+ * @param {{ doShowEscapeHint?: boolean, setCommand?: string, publish?: boolean }} [options] - if message about message escaping should be shown
180
+ */
181
+ function ShowFor(commands: Optional<ICommand, "Action">[], options?: {
182
+ doShowEscapeHint?: boolean;
183
+ setCommand?: string;
184
+ publish?: boolean;
185
+ }): HTMLDivElement;
186
+ /**
187
+ * Prints out the help for commands with tags that include `low`
188
+ * @param {string} low - lower case search keyword for tags
189
+ * @returns {void} - Nothing
190
+ */
191
+ function ShowForPartial(low: string): void;
192
+ function Complete(): void;
193
+ }
66
194
  declare namespace CommandsChangelog {
67
195
  /**
68
196
  * Iterate through the passed changelog element and remove all (redundant) elements outside the `[startID, stopID)` interval.
@@ -147,7 +275,3 @@ declare namespace CommandsChangelog {
147
275
  stopID?: null | string;
148
276
  }): HTMLDivElement;
149
277
  }
150
- /**
151
- * @type {ICommand[]}
152
- */
153
- declare const CommonCommands: ICommand[];
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @type {ICommand[]}
3
+ */
4
+ declare const CommonCommands: ICommand[];
@@ -1,33 +1,37 @@
1
1
  declare function ChatSearchLoad(): Promise<void>;
2
+ declare function ChatSearchResize(load: boolean): void;
2
3
  declare function ChatSearchUnload(): void;
3
4
  declare function ChatSearchRun(time: number): void;
4
5
  declare function ChatSearchClick(event: MouseEvent | TouchEvent): void;
5
6
  /**
6
7
  * Draws buttons and text for selection of room space.
8
+ * @deprecated - deprecated after DOM-ification
7
9
  * @returns {void} - Nothing
8
10
  */
9
11
  declare function ChatSearchRoomSpaceSelectDraw(): void;
10
12
  /**
11
- * Handles clicks on selection of room space.
12
- * @returns {void} - Nothing
13
+ * Gets the pagination information for the current page.
14
+ * @returns {{currentPage: number, total: number}}
13
15
  */
14
- declare function ChatSearchRoomSpaceSelectClick(): void;
16
+ declare function ChatSearchGetPagination(): {
17
+ currentPage: number;
18
+ total: number;
19
+ };
15
20
  /**
16
- * While in normal view, called when player clicks apply or presses enter.
17
- * Saves the "temp" options into their normal variables, and sends them to the server.
18
- * @returns {void} - Nothing
21
+ * Sets the page based on the passed page number.
22
+ * @param {number} page
19
23
  */
20
- declare function ChatSearchSaveLanguageFiltering(): void;
24
+ declare function ChatSearchSetPage(page: number): void;
21
25
  /**
22
- * While in normal view, calls when player clicks revert.
23
- * Loads the "temp" options from their normal variables.
24
- * @returns {void} - Nothing
26
+ * Relatively sets the page based on the passed offsets.
27
+ * @param {number} offset
25
28
  */
26
- declare function ChatSearchLoadLanguageFiltering(): void;
29
+ declare function ChatSearchSetPageRelative(offset: number): void;
27
30
  /**
28
- * @returns {boolean} - True if the player changed the options and the apply/revert buttons should show
31
+ * Handles clicks on selection of room space.
32
+ * @returns {void} - Nothing
29
33
  */
30
- declare function ChatSearchChangedLanguageOrFilterTerms(): boolean;
34
+ declare function ChatSearchRoomSpaceSelectClick(): void;
31
35
  /**
32
36
  * While in filter view, called when player clicks apply, presses enter, or returns to the normal view.
33
37
  * Saves the "temp" options into their normal variables, and sends them to the server.
@@ -43,7 +47,13 @@ declare function ChatSearchSaveLanguageAndFilterTerms(): void;
43
47
  */
44
48
  declare function ChatSearchLoadLanguageAndFilterTerms(): void;
45
49
  declare function ChatSearchKeyDown(event: KeyboardEvent): boolean;
46
- declare function ChatSearchExit(): void;
50
+ /**
51
+ * Handles exiting from the chat search screen, removes the input.
52
+ * @type {ScreenExitHandler & { closeSubElements?: boolean }}
53
+ * @param {boolean} [exitScreen=false] - Whether to exit the screen or just menus within
54
+ */
55
+ declare function ChatSearchExit(exitScreen?: boolean): void;
56
+ declare function ChatSearchBack(): boolean;
47
57
  /**
48
58
  * Draws the filter mode help screen: just text and a back button.
49
59
  * @returns {void} - Nothing
@@ -54,11 +64,68 @@ declare function ChatSearchFilterHelpDraw(): void;
54
64
  * @returns {void} - Nothing
55
65
  */
56
66
  declare function ChatSearchFilterUnhideConfirmDraw(): void;
67
+ /**
68
+ * Returns the translated language name for the given code.
69
+ * @param {ServerChatRoomLanguage} languageCode
70
+ */
71
+ declare function ChatSearchGetLanguageName(languageCode: ServerChatRoomLanguage): string;
72
+ /**
73
+ * Returns the translated room type for the given code.
74
+ * @param {ChatRoomMapType} roomType
75
+ */
76
+ declare function ChatSearchGetRoomTypeName(roomType: ChatRoomMapType): string;
77
+ /**
78
+ * Returns the translated space for the given code.
79
+ * @param {"" | "X" | "M" | "Asylum"} space
80
+ */
81
+ declare function ChatSearchGetSpaceName(space: "" | "X" | "M" | "Asylum"): string;
57
82
  /**
58
83
  * Draws the list of rooms in normal mode.
84
+ * @deprecated - deprecated after DOM-ification
59
85
  * @returns {void} - Nothing
60
86
  */
61
87
  declare function ChatSearchNormalDraw(): void;
88
+ /**
89
+ * Updates the room grid with the given rooms
90
+ * @param {ChatRoomSearchResult[]} rooms
91
+ */
92
+ declare function ChatSearchGridUpdate(rooms: ChatRoomSearchResult[]): void;
93
+ /**
94
+ * Creates a grid button for the given room
95
+ * @param {ChatRoomSearchResult} room
96
+ * @param {number} index
97
+ */
98
+ declare function ChatSearchCreateGridRoom(room: ChatRoomSearchResult, index: number): void;
99
+ /**
100
+ * Returns the list of icons for the given room
101
+ * @param {ChatRoomSearchResult} room
102
+ * @returns {string[]}
103
+ */
104
+ declare function ChatSearchGridRoomGetIcons(room: ChatRoomSearchResult): string[];
105
+ /**
106
+ * Returns whether the given room can be joined
107
+ * @param {ChatRoomSearchResult} room
108
+ * @returns {boolean}
109
+ */
110
+ declare function ChatSearchGridRoomCanJoin(room: ChatRoomSearchResult): boolean;
111
+ /**
112
+ * Creates the tooltip for the given room
113
+ * @param {ChatRoomSearchResult} room
114
+ * @param {number} index
115
+ * @returns {HTMLDivElement}
116
+ */
117
+ declare function ChatSearchCreateGridRoomTooltip(room: ChatRoomSearchResult, index: number): HTMLDivElement;
118
+ /**
119
+ * Creates the tags for the room page
120
+ * @param {ChatRoomSearchResult} room
121
+ * @returns {HTMLElement[]}
122
+ */
123
+ declare function ChatSearchCreateRoomPageTags(room: ChatRoomSearchResult): HTMLElement[];
124
+ /**
125
+ * Shows the room page for the given room
126
+ * @param {ChatRoomSearchResult} room
127
+ */
128
+ declare function ChatSearchShowRoomPage(room: ChatRoomSearchResult): void;
62
129
  /**
63
130
  * Garbles based on immersion settings
64
131
  * @param {string} Text - The text to garble
@@ -71,10 +138,11 @@ declare function ChatSearchMuffle(Text: string): string;
71
138
  */
72
139
  declare function ChatSearchPermissionDraw(): void;
73
140
  /**
74
- * Handles the clicks related to the chatroom list when in normal mode
141
+ * Joins the room with the given name
142
+ * @param {string} RoomName - The name of the room to join
75
143
  * @returns {void} - Nothing
76
144
  */
77
- declare function ChatSearchJoin(): void;
145
+ declare function ChatSearchJoin(RoomName: string): void;
78
146
  /**
79
147
  * Switch the search screen between the normal view and the filter mode which allows hiding of rooms
80
148
  * @returns {void} - Nothing
@@ -124,6 +192,11 @@ declare function ChatSearchClickUnhideRoom(C: ChatRoomSearchResult | number, Con
124
192
  * @returns {void} - Nothing
125
193
  */
126
194
  declare function ChatSearchResponse(data: ServerChatRoomSearchResponse): void;
195
+ /**
196
+ * Sends a toast message based on the given response type
197
+ * @param {ServerChatRoomSearchResponse} type
198
+ */
199
+ declare function ChatSearchSendToast(type: ServerChatRoomSearchResponse): void;
127
200
  /**
128
201
  * Censors the chat search result name and description based on the player preference
129
202
  * @param {ServerChatRoomSearchData} searchData - The (potentially) to-be censored search result
@@ -226,7 +299,6 @@ declare var ChatSearchPageY: number;
226
299
  declare var ChatSearchListParams: CommonGenerateGridParameters;
227
300
  /** Pre-calculated. Must be updated if you change the grid parameters */
228
301
  declare var ChatSearchRoomsPerPage: number;
229
- declare var ChatSearchMessage: string;
230
302
  /** @type {ScreenSpecifier} */
231
303
  declare var ChatSearchReturnScreen: ScreenSpecifier;
232
304
  /** @type {null | Item[]} */
@@ -260,3 +332,18 @@ declare var ChatSearchFilterTermsTemp: string;
260
332
  /** @type {ChatRoomSpaceLabel[]} */
261
333
  declare var ChatSearchRoomSpaces: ChatRoomSpaceLabel[];
262
334
  declare var ChatSearchCurrentRoomSpaceIndex: number;
335
+ /** @type {HTMLDivElement} */
336
+ declare var ChatSearchRoomHeader: HTMLDivElement;
337
+ /** @type {HTMLDivElement} */
338
+ declare var ChatSearchRoomGrid: HTMLDivElement;
339
+ /** @type {HTMLFieldSetElement} */
340
+ declare var ChatSearchSearchMenu: HTMLFieldSetElement;
341
+ /** @type {HTMLDivElement} */
342
+ declare var ChatSearchPageCountElement: HTMLDivElement;
343
+ /** @type {HTMLDialogElement | null} */
344
+ declare var ChatSearchDialogElement: HTMLDialogElement | null;
345
+ /** @type {HTMLButtonElement} */
346
+ declare var ChatSearchSearchMenuButton: HTMLButtonElement;
347
+ /** @type {HTMLDivElement} */
348
+ declare var ChatSearchSearchBodyElement: HTMLDivElement;
349
+ declare function ChatSearchUpdateSearchSettings(): void;
@@ -1,4 +1,5 @@
1
1
  declare function ForbiddenWordsLoad(): Promise<void>;
2
+ declare function ForbiddenWordsUnload(): void;
2
3
  /**
3
4
  * Starts the forbidden words screen and loads it
4
5
  * @returns {void} - Nothing
@@ -97,9 +97,9 @@ declare function GameClubCardLoadBundle(CCPlayer: ClubCardPlayer, Bundle: any):
97
97
  * Assigns both club card players based on the players selection
98
98
  * @param {ServerChatRoomGameResponse} Packet - The data packet to process
99
99
  * @param {Character} Char - The character that's sending the packet
100
- * @returns {void} - Nothing
100
+ * @returns {Promise<void>} - Nothing
101
101
  */
102
- declare function GameClubCardAssignPlayers(Packet: ServerChatRoomGameResponse, Char: Character): void;
102
+ declare function GameClubCardAssignPlayers(Packet: ServerChatRoomGameResponse, Char: Character): Promise<void>;
103
103
  /**
104
104
  * Loads the club card game data
105
105
  * @param {ServerChatRoomGameResponse} Packet - The data packet to process
@@ -153,15 +153,15 @@ declare function KidnapLeagueEndKidnap(): void;
153
153
  declare function KidnapLeagueResetTrainer(): void;
154
154
  /**
155
155
  * Triggered at the start of a match, sets a random intro sequence.
156
- * @returns {void} - Nothing
156
+ * @returns {Promise<void>} - Nothing
157
157
  */
158
- declare function KidnapLeagueRandomIntro(): void;
158
+ declare function KidnapLeagueRandomIntro(): Promise<void>;
159
159
  /**
160
160
  * Triggered at the end of a match, sets a random outro sequence.
161
161
  * @param {boolean} Surrender - Whether or not the player surrendered.
162
- * @returns {void} - Nothing
162
+ * @returns {Promise<void>} - Nothing
163
163
  */
164
- declare function KidnapLeagueRandomOutro(Surrender: boolean): void;
164
+ declare function KidnapLeagueRandomOutro(Surrender: boolean): Promise<void>;
165
165
  /**
166
166
  * Triggered when a random kidnap match starts. We start the kidnap minigame with the appropriate settings.
167
167
  * @returns {void} - Nothing
@@ -216,9 +216,9 @@ declare function KidnapLeagueTransferToRoom(): void;
216
216
  declare function KidnapLeagueRandomClubCardStart(): void;
217
217
  /**
218
218
  * When the player ends a club card game
219
- * @returns {void} - Nothing
219
+ * @returns {Promise<void>} - Nothing
220
220
  */
221
- declare function KidnapLeagueRandomClubCardEnd(): void;
221
+ declare function KidnapLeagueRandomClubCardEnd(): Promise<void>;
222
222
  /**
223
223
  * Returns TRUE if the player can get the anime girl costume
224
224
  * @returns {boolean} - TRUE if it's possible
@@ -27,9 +27,9 @@ declare function LARPSelectClass(NewClass: string): void;
27
27
  declare function LARPClubCardStart(): void;
28
28
  /**
29
29
  * When the player ends a club card game
30
- * @returns {void} - Nothing
30
+ * @returns {Promise<void>} - Nothing
31
31
  */
32
- declare function LARPClubCardEnd(): void;
32
+ declare function LARPClubCardEnd(): Promise<void>;
33
33
  declare var LARPBackground: string;
34
34
  /** @type {null | NPCCharacter} */
35
35
  declare var LARPOrganiser: null | NPCCharacter;
@@ -11,9 +11,9 @@ declare function MagicSchoolEscapeRun(): void;
11
11
  declare function MagicSchoolEscapeClick(): void;
12
12
  /**
13
13
  * When the spell ends, we remove some restraints if the player succeeded
14
- * @returns {void} - Nothing
14
+ * @returns {Promise<void>} - Nothing
15
15
  */
16
- declare function MagicSchoolEscapeSpellEnd(): void;
16
+ declare function MagicSchoolEscapeSpellEnd(): Promise<void>;
17
17
  /**
18
18
  * Sets the difficulty for the escape challenge
19
19
  * @param {number} Seconds - The number of seconds before the challenge ends
@@ -24,9 +24,9 @@ declare function MagicSchoolLaboratoryClick(): void;
24
24
  declare function MagicSchoolLaboratorySpellPractice(SpellNumber: number): void;
25
25
  /**
26
26
  * When the magic spell practice puzzle ends
27
- * @returns {void} - Nothing
27
+ * @returns {Promise<void>} - Nothing
28
28
  */
29
- declare function MagicSchoolLaboratorySpellPracticeEnd(): void;
29
+ declare function MagicSchoolLaboratorySpellPracticeEnd(): Promise<void>;
30
30
  /**
31
31
  * Check if someone is a member of a magic house or not
32
32
  * @param {"" | "Maiestas" | "Vincula" | "Amplector" | "Corporis"} House - The house name
@@ -70,9 +70,9 @@ declare function MagicSchoolLaboratoryFromRivalHouse(House: MagicSchoolHouse): b
70
70
  declare function MagicSchoolLaboratoryMagicBattleStart(Difficulty: number): void;
71
71
  /**
72
72
  * When the magic battle practice ends
73
- * @returns {void} - Nothing
73
+ * @returns {Promise<void>} - Nothing
74
74
  */
75
- declare function MagicSchoolLaboratoryMagicBattleEnd(): void;
75
+ declare function MagicSchoolLaboratoryMagicBattleEnd(): Promise<void>;
76
76
  /**
77
77
  * Generates a random student from the same house as the player (sister)
78
78
  * @returns {void} - Nothing
@@ -91,9 +91,9 @@ declare function MagicSchoolLaboratoryFindStudent(): void;
91
91
  declare function MagicSchoolLaboratoryBattleStudentStart(Type: "Wage25" | "Honor" | "RainbowWand"): void;
92
92
  /**
93
93
  * When a student battle ends, we release the winner, change reputation or give some money based on the wage
94
- * @returns {void} - Nothing
94
+ * @returns {Promise<void>} - Nothing
95
95
  */
96
- declare function MagicSchoolLaboratoryBattleStudentEnd(): void;
96
+ declare function MagicSchoolLaboratoryBattleStudentEnd(): Promise<void>;
97
97
  /**
98
98
  * Sets an emote for the student when there's an activity
99
99
  * @param {ExpressionNameMap["Blush"]} Blush
@@ -143,9 +143,9 @@ declare function MagicSchoolLaboratoryPlayerMainHall(): void;
143
143
  declare function MagicSchoolLaboratoryBattleMasterStart(): void;
144
144
  /**
145
145
  * When the magic battle against the master ends
146
- * @returns {void} - Nothing
146
+ * @returns {Promise<void>} - Nothing
147
147
  */
148
- declare function MagicSchoolLaboratoryBattleMasterEnd(): void;
148
+ declare function MagicSchoolLaboratoryBattleMasterEnd(): Promise<void>;
149
149
  /**
150
150
  * When the player learns the master technique from it's house
151
151
  * @returns {void} - Nothing
@@ -176,9 +176,9 @@ declare function MaidQuartersMiniGameStart(GameType: ModuleScreens["MiniGame"],
176
176
  /**
177
177
  * Is called when the mini game ends and sends the player back to the maid quarters.
178
178
  * Depending on the choosen game, the next dialog option is selected
179
- * @returns {void} - Nothing
179
+ * @returns {Promise<void>} - Nothing
180
180
  */
181
- declare function MaidQuartersMiniGameEnd(): void;
181
+ declare function MaidQuartersMiniGameEnd(): Promise<void>;
182
182
  /**
183
183
  * Rewards the player with the latex maid outfit
184
184
  * @returns {void} - Nothing
@@ -172,9 +172,9 @@ declare function MainHallMaidPunishmentPlayer(): void;
172
172
  declare function MainHallResetClubSlave(): void;
173
173
  /**
174
174
  * Triggered when the player needs to be brought to the club management room to be expelled
175
- * @returns {void} - Nothing
175
+ * @returns {Promise<void>} - Nothing
176
176
  */
177
- declare function MainHallMistressExpulsion(): void;
177
+ declare function MainHallMistressExpulsion(): Promise<void>;
178
178
  /**
179
179
  * Sets the maid dialog stage to the introduction for new players
180
180
  * @returns {void} - Nothing
@@ -149,9 +149,9 @@ declare function MovieStudioGetMoney(): void;
149
149
  declare function MovieStudioClubCardStart(): void;
150
150
  /**
151
151
  * When the player ends a club card game
152
- * @returns {void} - Nothing
152
+ * @returns {Promise<void>} - Nothing
153
153
  */
154
- declare function MovieStudioClubCardEnd(): void;
154
+ declare function MovieStudioClubCardEnd(): Promise<void>;
155
155
  declare var MovieStudioBackground: string;
156
156
  /** @type {null | NPCCharacter} */
157
157
  declare var MovieStudioDirector: null | NPCCharacter;
@@ -53,7 +53,7 @@ declare function PrisonBecomeBadGirl(): void;
53
53
  declare function PrisonLeaveBadGirl(): void;
54
54
  declare function PrisonWearPoliceEquipment(C: any): void;
55
55
  declare function PrisonWantedPlayer(): 1 | 3 | 5 | 7;
56
- declare function PrisonMeetPoliceIntro(RoomBackground: any): void;
56
+ declare function PrisonMeetPoliceIntro(RoomBackground: any): Promise<void>;
57
57
  declare function PrisonPutHandsInTheAir(): void;
58
58
  declare function PrisonRaiseHandsHigher(): void;
59
59
  declare function PrisonCatchKneel(): void;
@@ -62,9 +62,9 @@ declare function PrisonCatchKneelingEscape(): void;
62
62
  declare function PrisonCatchComplain(): void;
63
63
  declare function PrisonCatchAdmitDefeat(): void;
64
64
  declare function PrisonFightPolice(): void;
65
- declare function PrisonFightPoliceEnd(): void;
65
+ declare function PrisonFightPoliceEnd(): Promise<void>;
66
66
  declare function PrisonFightPoliceOutro(): void;
67
- declare function PrisonCatchByPolice(): void;
67
+ declare function PrisonCatchByPolice(): Promise<void>;
68
68
  declare function PrisonSetBehavior(Behavior: any): void;
69
69
  declare function PrisonArrestHandoverDices(): void;
70
70
  declare function PrisonArrestHandoverKeys(): void;
@@ -79,11 +79,11 @@ declare function AssetParsePoseMapping(poseMapping: null | undefined | AssetPose
79
79
  declare function AssetParseAllowTypes(allowTypes: AllowTypes.Definition): AllowTypes.Data;
80
80
  /**
81
81
  * Parse the passed {@link AssetDefinition.ParentGroup}.
82
- * @param {null | undefined | ParentGroup.Definition} parentGroup - The to-be parsed parent group value
82
+ * @param {AssetDefinition["ParentGroup"]} parentGroup - The to-be parsed parent group value
83
83
  * @param {ParentGroup.Data} superParentGroup - The parsed parent group value of the layer's/asset's super-asset/group
84
84
  * @returns {ParentGroup.Data} - The parsed parent group value
85
85
  */
86
- declare function AssetParseParentGroup(parentGroup: null | undefined | ParentGroup.Definition, superParentGroup: ParentGroup.Data): ParentGroup.Data;
86
+ declare function AssetParseParentGroup(parentGroup: AssetDefinition["ParentGroup"], superParentGroup: ParentGroup.Data): ParentGroup.Data;
87
87
  /**
88
88
  * Parses and validates asset's opacity
89
89
  * @param {number|undefined} opacity
@@ -647,6 +647,27 @@ declare function ScreenFileGetDialog(npcType: string, module?: string, screen?:
647
647
  * @returns
648
648
  */
649
649
  declare function ScreenFileGetPath(file: string, module?: string, screen?: string): string;
650
+ /**
651
+ * Gets the common prefix of a list of strings
652
+ * @param {string[]} strings
653
+ * @returns {string}
654
+ */
655
+ declare function CommonGetCommonPrefix(strings: string[]): string;
656
+ /**
657
+ * Splits a string into tokens by delimiters and spaces
658
+ * @param {string} input
659
+ * @param {{
660
+ * delimiters: [string, string][];
661
+ * includeDelimiters?: boolean;
662
+ * trimTrailingSpaces?: boolean;
663
+ * }} options
664
+ * @returns {string[]}
665
+ */
666
+ declare function CommonTokenize(input: string, options?: {
667
+ delimiters: [string, string][];
668
+ includeDelimiters?: boolean;
669
+ trimTrailingSpaces?: boolean;
670
+ }): string[];
650
671
  /** @type {PlayerCharacter} */
651
672
  declare var Player: PlayerCharacter;
652
673
  /**
@@ -89,6 +89,11 @@ declare function IsMsgIdDictionaryEntry(entry: ChatMessageDictionaryEntry): entr
89
89
  * @returns {entry is MapViewTeleportEventDictionaryEntry}
90
90
  */
91
91
  declare function IsMapViewTeleportEventDictionaryEntry(entry: ChatMessageDictionaryEntry): entry is MapViewTeleportEventDictionaryEntry;
92
+ /**
93
+ * @param {ChatMessageDictionaryEntry} entry
94
+ * @returns {entry is MapViewChangeKeyEventDictionaryEntry}
95
+ */
96
+ declare function IsMapViewChangeKeyEventDictionaryEntry(entry: ChatMessageDictionaryEntry): entry is MapViewChangeKeyEventDictionaryEntry;
92
97
  /**
93
98
  * Build class for chat message dictionaries
94
99
  */
@@ -213,6 +218,12 @@ declare class DictionaryBuilder {
213
218
  * @returns
214
219
  */
215
220
  mapViewTeleport(position: ChatRoomMapPos): this;
221
+ /**
222
+ * Adds a changeKey dictionary entry
223
+ * @param {("gold" | "silver" | "bronze")[]} keys
224
+ * @returns
225
+ */
226
+ mapViewChangeKey(keys: ("gold" | "silver" | "bronze")[], giveKey: any): this;
216
227
  /**
217
228
  * Adds a dictionary entry to the builder
218
229
  * @param {ChatMessageDictionaryEntry} entry - The dictionary entry to add
@@ -201,6 +201,28 @@ declare function ElementFocus(ElementOrId: ElementHelp.ElementOrId): void;
201
201
  * @param {boolean} ShouldDisplay - TRUE if we are toggling on the elements, FALSE if we are hiding them.
202
202
  */
203
203
  declare function ElementToggleGeneratedElements(Screen: string, ShouldDisplay: boolean): void;
204
+ /**
205
+ * Create a label for a given element
206
+ * @param {string} label
207
+ * @param {'left' | 'top'} position
208
+ */
209
+ declare function ElementCreateSettingsLabel(label: string, position?: "left" | "top"): HTMLSpanElement;
210
+ /**
211
+ * Create a group of radio buttons
212
+ * @param {string} id
213
+ * @param {string} defaultValue
214
+ * @param {(this: HTMLButtonElement, ev: MouseEvent | TouchEvent) => any} onclick
215
+ * @param {{
216
+ * htmlOptions?: Partial<Record<"button" | "tooltip" | "img" | "label", Omit<HTMLOptions<any>, "tag">>>,
217
+ * options?: ElementButton.Options,
218
+ * onClick?: (this: HTMLButtonElement, ev: MouseEvent | TouchEvent, key: string) => any
219
+ * }[]} options
220
+ */
221
+ declare function ElementCreateRadioButtonGroup(id: string, onclick: (this: HTMLButtonElement, ev: MouseEvent | TouchEvent) => any, defaultValue: string, options: {
222
+ htmlOptions?: Partial<Record<"button" | "tooltip" | "img" | "label", Omit<HTMLOptions<any>, "tag">>>;
223
+ options?: ElementButton.Options;
224
+ onClick?: (this: HTMLButtonElement, ev: MouseEvent | TouchEvent, key: string) => any;
225
+ }[]): HTMLFieldSetElement;
204
226
  /**
205
227
  * Construct a search-based `<input>` element that offers suggestions based on the passed callbacks output.
206
228
  *
@@ -4,9 +4,9 @@ declare function MiniGameLoad(): Promise<void>;
4
4
  * @param {ModuleScreens["MiniGame"]} GameType - Name of the mini-game to launch
5
5
  * @param {number|string} Difficulty - Difficulty Ration for the mini-game
6
6
  * @param {string} ReturnFunction - Callback name to execute once the mini-game is over
7
- * @returns {void} - Nothing
7
+ * @returns {Promise<void>} - Nothing
8
8
  */
9
- declare function MiniGameStart(GameType: ModuleScreens["MiniGame"], Difficulty: number | string, ReturnFunction: string): void;
9
+ declare function MiniGameStart(GameType: ModuleScreens["MiniGame"], Difficulty: number | string, ReturnFunction: string): Promise<void>;
10
10
  declare function MiniGameEnd(): void;
11
11
  /**
12
12
  * @returns {boolean} - TRUE if the game has started, but not yet ended.
@@ -228,7 +228,7 @@ declare function ServerClickBeep(): void;
228
228
  * Opens the friendlist from any screen
229
229
  * @deprecated Use {@link FriendListShow()};
230
230
  */
231
- declare function ServerOpenFriendList(): void;
231
+ declare function ServerOpenFriendList(): Promise<void>;
232
232
  /**
233
233
  * Callback used to parse received information related to the player ownership data
234
234
  * @param {object} data - Data object containing the Owner name and Ownership object
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bc-stubs",
3
- "version": "119.0.0",
3
+ "version": "120.0.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@github.com/bananarama92/BC-stubs.git"
@@ -1 +0,0 @@
1
- declare function InventoryClothOffTheShoulderTopInitHook(data: ModularItemData, originalFunction: (C: Character, item: Item, push: boolean, refresh: boolean) => boolean, C: Character, item: Item, push: boolean, refresh: boolean): boolean;