bc-stubs 117.0.1 → 118.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.
@@ -1,6 +1,35 @@
1
1
  declare namespace ElementHelp {
2
- type ElementOrId = HTMLElement | string;
2
+ type ElementOrId = HTMLElement | string;
3
3
  type AnchorY = 'top' | 'bottom';
4
4
  type AnchorX = 'left' | 'right';
5
5
  type AnchorXY = `${AnchorY}-${AnchorX}`;
6
6
  }
7
+
8
+ declare namespace ElementSwipe {
9
+ interface Options {
10
+ /**
11
+ * The direction one should swipe in.
12
+ *
13
+ * Defaults to `right`.
14
+ */
15
+ direction?: "left" | "right" | "up" | "down";
16
+ /**
17
+ * The minimum distance one should swipe in pixels.
18
+ *
19
+ * Defaults to 2.5% of the browser window's width.
20
+ */
21
+ minSwipeDistance?: number;
22
+ /**
23
+ * A callback to-be executed after succesfully swiping.
24
+ *
25
+ * Default to dispatching a `click` event.
26
+ */
27
+ onClose?: (elem: HTMLElement, ev: TouchEvent) => any;
28
+ /**
29
+ * A custom animation to play after succesfully executing a swipe
30
+ *
31
+ * Defaults to a translation + fade-out in the {@link Options.direction} direction.
32
+ */
33
+ animation?: Animation;
34
+ }
35
+ }
@@ -531,11 +531,17 @@ interface AssetDefinitionBase extends AssetCommonPropertiesGroupAsset, AssetComm
531
531
  /** A list of screens where current asset won't be shown. */
532
532
  NotVisibleOnScreen?: string[];
533
533
 
534
- /** A list of Asset Groups to overwrite. */
534
+ /** Specify body type overrides that live in the asset override folder */
535
535
  StyleOverride?: string[];
536
+ CreateLayerTypesOverride?: number[];
536
537
 
537
- /** A list of supported styles, anything not listed will be excluded */
538
- SupportedStyles?: string[];
538
+ DrawOffset?: {
539
+ Group?: AssetGroupName;
540
+ Asset?: string;
541
+ Layer?: string[]
542
+ X?: number;
543
+ Y?: number;
544
+ }[];
539
545
 
540
546
  /**
541
547
  * Whether the asset can be worn.
@@ -749,6 +755,8 @@ interface AssetDefinitionBase extends AssetCommonPropertiesGroupAsset, AssetComm
749
755
  /** The list of layers for the asset. */
750
756
  Layer?: AssetLayerDefinition[];
751
757
 
758
+ Attribution?: AttributionDefinition;
759
+
752
760
  /** A list of attributes the asset has */
753
761
  Attribute?: AssetAttribute[];
754
762
 
@@ -829,6 +837,12 @@ interface AssetLayerMaskTexureDefinition {
829
837
  ApplyToAbove?: boolean;
830
838
  }
831
839
 
840
+ interface AttributionDefinition {
841
+ Author?: string;
842
+ Email?: string;
843
+ License?: string;
844
+ }
845
+
832
846
  interface AssetLayerDefinition extends AssetCommonPropertiesGroupAssetLayer, AssetCommonPropertiesAssetLayer {
833
847
  /** The layer's name */
834
848
  Name?: string;
@@ -887,6 +901,12 @@ interface AssetLayerDefinition extends AssetCommonPropertiesGroupAssetLayer, Ass
887
901
  */
888
902
  LockLayer?: boolean;
889
903
 
904
+ /**
905
+ * Specify body type overrides that live in the asset override folder
906
+ */
907
+ StyleOverride?: string[];
908
+ CreateLayerTypesOverride?: number[];
909
+
890
910
  MirrorExpression?: AssetGroupName;
891
911
  PoseMapping?: AssetPoseMapping;
892
912
  /** Let layer inherit the asset's pose mapping on an individual pose by pose basis, rather than inheriting the pose mapping as a whole (_i.e._ all or nothing) */
@@ -775,6 +775,15 @@ interface MsgIdDictionaryEntry {
775
775
  MsgId: string;
776
776
  Tag: "MsgId";
777
777
  }
778
+
779
+ /**
780
+ * A dictionary entry for teleport events
781
+ */
782
+ interface MapViewTeleportEventDictionaryEntry {
783
+ Tag: "MapViewTeleport";
784
+ Position: ChatRoomMapPos;
785
+ }
786
+
778
787
  /**
779
788
  * A dictionary entry with metadata about the chat message transmitted.
780
789
  *
@@ -804,7 +813,8 @@ type ChatMessageDictionaryEntry =
804
813
  | ActivityNameDictionaryEntry
805
814
  | MessageEffectEntry
806
815
  | MsgIdDictionaryEntry
807
- | ReplyIdDictionaryEntry ;
816
+ | ReplyIdDictionaryEntry
817
+ | MapViewTeleportEventDictionaryEntry;
808
818
 
809
819
 
810
820
  type ChatMessageDictionary = ChatMessageDictionaryEntry[];
@@ -335,6 +335,34 @@ type DialogMenuButton = "Activity" |
335
335
  "Wardrobe" | "WardrobeDisabled" | "Reset" | "WearRandom" | "Random" | "Copy" | "Paste" | "Naked" | "Accept" | "Cancel" | "Character"
336
336
  ;
337
337
 
338
+ declare namespace ElementDOMScreen {
339
+ /** Options for customizing the {@link ElementDOMScreen.GetTemplate} output */
340
+ interface TemplateOptions {
341
+ /** The parent element of the to-be returned screen (if any) */
342
+ parent?: Node;
343
+ /** Buttons for in the header's menubar (see `.screen-header [role="menubar"]`) */
344
+ menubarButtons?: readonly HTMLButtonElement[];
345
+ /** Content for within the main section (see `.screen-main`) */
346
+ mainContent?: readonly (Node | string)[];
347
+ /** Text content for within the heading (see `.screen-hgroup h1`) */
348
+ header?: string;
349
+ /**
350
+ * Whether the main section (see `.screen-main`) is a `<main>` or `<aside>` element.
351
+ *
352
+ * As a rule of thumb: use `"main"` (aka the default) _unless_ another `<main>` element is already visible on the page,
353
+ * as the HTML spec demands that only a single non-hidden main element may be present at any time.
354
+ */
355
+ mainTag?: "main" | "aside";
356
+ /**
357
+ * Whether to content of the DOM screen root is embedded within a [shadow root](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_shadow_DOM) or not,
358
+ * storing the DOM tree in an isolated namespace with its own set of element IDs and CSS style sheets
359
+ */
360
+ asShadow?: boolean;
361
+ /** Additional CSS files to load when the `asShadow` option is specified */
362
+ cssFiles?: readonly string[];
363
+ }
364
+ }
365
+
338
366
  declare namespace DialogMenu {
339
367
  /** Customization options for {@link DialogMenu.Reload} */
340
368
  interface ReloadOptions {
@@ -423,7 +451,7 @@ type DialogStruggleActionType = "ActionUse" | "ActionSwap" | "ActionRemove" | "A
423
451
 
424
452
  type CharacterType = "player" | "online" | "npc" | "simple";
425
453
 
426
- type CharacterPronouns = "SheHer" | "HeHim";
454
+ type CharacterPronouns = "SheHer" | "HeHim" | "TheyThem";
427
455
 
428
456
  type VibratorIntensity = -1 | 0 | 1 | 2 | 3;
429
457
 
@@ -1047,7 +1075,12 @@ interface AssetGroup {
1047
1075
  readonly PreviewZone?: RectTuple;
1048
1076
  readonly DynamicGroupName: AssetGroupName;
1049
1077
  readonly StyleOverride?: string [];
1050
- readonly SupportedStyles?: string [];
1078
+ readonly CreateLayerTypesOverride?: number [];
1079
+ readonly Reposition?: {
1080
+ Group?: string;
1081
+ ShiftX?: number;
1082
+ ShiftY?: number;
1083
+ }[];
1051
1084
 
1052
1085
  readonly MirrorActivitiesFrom?: AssetGroupItemName;
1053
1086
  readonly ArousalZone?: AssetGroupItemName;
@@ -1106,7 +1139,10 @@ type AssetGroupMapping = (
1106
1139
  interface AssetLayer {
1107
1140
  /** The name of the layer - may be null if the asset only contains a single default layer */
1108
1141
  readonly Name: string | null;
1109
- /** whether or not this layer can be colored */
1142
+ /** Specify a body type to override the asset with. */
1143
+ readonly StyleOverride?: string [];
1144
+ readonly CreateLayerTypesOverride?: number [];
1145
+ /** Specify a list of CLT asset layers to override. */
1110
1146
  readonly AllowColorize: boolean;
1111
1147
  /** if not null, specifies that this layer should always copy the color of the named layer */
1112
1148
  readonly CopyLayerColor: string | null;
@@ -1239,6 +1275,14 @@ interface Asset {
1239
1275
  readonly SetPose?: readonly AssetPoseName[];
1240
1276
  readonly StyleOverride?: string[];
1241
1277
  readonly SupportedStyles?: string[];
1278
+ readonly CreateLayerTypesOverride?: number[];
1279
+ readonly DrawOffset?: {
1280
+ Group?: AssetGroupName;
1281
+ Asset?: string;
1282
+ Layer?: string[];
1283
+ X?: number;
1284
+ Y?: number;
1285
+ }[];
1242
1286
  /** @deprecated - Superceded by {@link Asset.PoseMapping} */
1243
1287
  readonly AllowPose?: never;
1244
1288
  /** @deprecated - Superceded by {@link Asset.PoseMapping} */
@@ -1392,7 +1436,7 @@ interface Pose {
1392
1436
  MovePosition?: { Group: AssetGroupName; X: number; Y: number; }[];
1393
1437
  }
1394
1438
 
1395
- type ActivityNameBasic = "Bite" | "Caress" | "Choke" | "Cuddle" | "FrenchKiss" |
1439
+ type ActivityNameBasic = "Bite" | "Brush" | "Caress" | "Choke" | "Clean" | "Cuddle" | "FrenchKiss" |
1396
1440
  "GagKiss" | "GaggedKiss" | "Grope" | "HandGag" | "Kick" |
1397
1441
  "Kiss" | "Lick" | "MassageFeet" | "MassageHands" | "MasturbateFist" |
1398
1442
  "MasturbateFoot" |"MasturbateHand" | "MasturbateTongue" |
@@ -1404,7 +1448,7 @@ type ActivityNameBasic = "Bite" | "Caress" | "Choke" | "Cuddle" | "FrenchKiss" |
1404
1448
  "SistersHug" | "BrothersHandshake" | "SiblingsCheekKiss" | "CollarGrab"
1405
1449
  ;
1406
1450
 
1407
- type ActivityNameItem = "Inject" | "MasturbateItem" | "PenetrateItem" | "PourItem" | "RollItem" | "RubItem" | "ShockItem" | "SipItem" | "SpankItem" | "TickleItem" | "EatItem" | "Scratch" | "ThrowItem";
1451
+ type ActivityNameItem = "Inject" | "MasturbateItem" | "PenetrateItem" | "PourItem" | "RollItem" | "RubItem" | "BrushItem" | "ShockItem" | "SipItem" | "SpankItem" | "TickleItem" | "EatItem" | "Scratch" | "ThrowItem";
1408
1452
 
1409
1453
  type ActivityName = ActivityNameBasic | ActivityNameItem;
1410
1454
 
@@ -1658,6 +1702,14 @@ interface DialogInfo {
1658
1702
  name: string;
1659
1703
  }
1660
1704
 
1705
+ declare namespace DialogLeave {
1706
+ /** Further options for {@link DialogLeave} */
1707
+ export interface Options {
1708
+ /** Whether to call the {@link ScreenLoadHandler} and {@link ScreenResizeHandler} functions of the current screen after leaving the dialog */
1709
+ reload?: boolean;
1710
+ }
1711
+ }
1712
+
1661
1713
  /** The packed representation of a Private Room NPC */
1662
1714
  interface PrivateCharacterData {
1663
1715
  Name: string;
@@ -1913,6 +1965,12 @@ interface Character {
1913
1965
  CanPickLocks: () => boolean;
1914
1966
  IsEdged: () => boolean;
1915
1967
  IsPlayer: () => this is PlayerCharacter;
1968
+ get X(): number | null;
1969
+ get Y(): number | null;
1970
+ set X(X: number);
1971
+ set Y(Y: number);
1972
+ get Position(): ChatRoomMapPos | null;
1973
+ set Position({ X, Y }: ChatRoomMapPos);
1916
1974
  IsBirthday: () => boolean;
1917
1975
  IsSiblingOfCharacter: (C: Character) => boolean;
1918
1976
  IsFamilyOfPlayer: () => boolean;
@@ -3816,7 +3874,11 @@ interface GameClubCardParameters {
3816
3874
  PlayerSlot?: number;
3817
3875
  Background?: string;
3818
3876
  CardBack?: number;
3819
- IsAnimation?: boolean;
3877
+ // General game settings
3878
+ Settings?: {
3879
+ AutoSpectate?: boolean;
3880
+ IsAnimation?: boolean;
3881
+ };
3820
3882
  }
3821
3883
 
3822
3884
  interface GamePrisonParameters {
@@ -792,8 +792,6 @@ declare var ClubCardHover: null | ClubCard;
792
792
  * */
793
793
  declare var ClubCardFocus: null | ClubCard;
794
794
  declare var ClubCardFocusAI: any;
795
- /** @type {null | TextCache} */
796
- declare var ClubCardTextCache: null | TextCache;
797
795
  declare var ClubCardTurnIndex: number;
798
796
  declare var ClubCardTurnCardPlayed: number;
799
797
  declare var ClubCardTurnEndDraw: boolean;
@@ -21,6 +21,23 @@ declare function ClubCardBuilderSaveName(Save: boolean): void;
21
21
  * @returns {void} - Nothing
22
22
  */
23
23
  declare function ClubCardBuilderSaveCardBack(CardBack: number): void;
24
+ /**
25
+ * Opens the deck editor and remember if we came from an online room
26
+ * @param {boolean} FromChatRoom - TRUE if we came from an online room
27
+ * @returns {void} - Nothing
28
+ */
29
+ declare function ClubCardBuilderShowScreen(FromChatRoom: boolean): void;
30
+ declare function ClubCardBuilderTagChanged(): void;
31
+ /**
32
+ * Resets the tag selection and remove the elements when we finish editing the deck
33
+ * @returns {void} - Nothing
34
+ */
35
+ declare function ClubCardBuilderFinishEdit(): void;
36
+ /**
37
+ * Handles input in the text box for cards search
38
+ * @returns {void} - Nothing
39
+ */
40
+ declare function ClubCardBuilderInputChanged(): void;
24
41
  /**
25
42
  * Loads the filtered cards
26
43
  * @returns {void} - Nothing
@@ -53,6 +70,7 @@ declare function ClubCardBuilderRun(): void;
53
70
  * @returns {void} - Nothing
54
71
  */
55
72
  declare function ClubCardBuilderClick(): void;
73
+ declare function ClubCardBuilderUnload(): void;
56
74
  declare var ClubCardBuilderBackground: string;
57
75
  declare var ClubCardBuilderDeckIndex: number;
58
76
  /** @type {null | ClubCard} */
@@ -64,13 +82,14 @@ declare var ClubCardBuilderOffset: number;
64
82
  declare var ClubCardBuilderDeckCurrent: number[];
65
83
  declare var ClubCardBuilderMinDeckSize: number;
66
84
  declare var ClubCardBuilderMaxDeckSize: number;
67
- declare var ClubCardBuilderFilterIndex: number;
85
+ declare var ClubCardBuilderSelectedTag: string;
68
86
  declare var ClubCardBuilderFilterGroup: string[];
69
87
  declare var ClubCardBuilderRenameIndex: number;
70
88
  declare var ClubCardBuilderCustomizationIndex: string;
71
89
  declare var ClubCardBuilderSelectedCardBack: number;
72
90
  declare var ClubCardBuilderCardBackFocus: any;
73
91
  declare var ClubCardBuilderCardBackCount: number;
92
+ declare var ClubCardBuilderView: ClubCard[];
74
93
  declare var ClubCardBuilderDefaultDeck: number[];
75
94
  declare var ClubCardBuilderMaidDeck: number[];
76
95
  declare var ClubCardBuilderDominantDeck: number[];
@@ -79,3 +98,5 @@ declare var ClubCardBuilderAsylumDeck: number[];
79
98
  declare var ClubCardBuilderABDLDeck: number[];
80
99
  declare var ClubCardBuilderCollegeDeck: number[];
81
100
  declare var ClubCardBuilderLiabilityDeck: number[];
101
+ /** Whether exiting the builder should return you to the chatroom or, otherwise, the club card lounge. */
102
+ declare let ClubCardBuilderReturnToChatroom: boolean;
@@ -1483,6 +1483,12 @@ declare function ChatRoomPronounSubstitutions(C: Character, key: string, hideIde
1483
1483
  * @return {ChatRoomSettings}
1484
1484
  */
1485
1485
  declare function ChatRoomGetSettings(room: ChatRoom): ChatRoomSettings;
1486
+ /**
1487
+ * Gets a character by MemberNumber or name or nickname
1488
+ * @param {string|number} spec
1489
+ * @return {Character|null}
1490
+ */
1491
+ declare function ChatRoomGetCharacter(spec: string | number): Character | null;
1486
1492
  declare namespace ChatRoomSpaceType {
1487
1493
  let MIXED: "X";
1488
1494
  let FEMALE_ONLY: "";
@@ -17,10 +17,15 @@ declare function ChatRoomMapViewInitialize(mode: ChatRoomMapType): ServerChatRoo
17
17
  declare function ChatRoomMapViewInitializeCharacter(C: Character): ChatRoomMapData;
18
18
  /**
19
19
  * Validate the passed chat room map positions.
20
- * @param {unknown} pos
20
+ * @param {unknown} position
21
21
  * @returns {ChatRoomMapPos}
22
22
  */
23
- declare function ChatRoomMapViewValidatePos(pos: unknown): ChatRoomMapPos;
23
+ declare function ChatRoomMapViewValidatePosition(position: unknown): ChatRoomMapPos;
24
+ /**
25
+ * Checks if the coordinates are out of bounds relative to the map
26
+ * @param {ChatRoomMapPos} position
27
+ */
28
+ declare function ChatRoomMapViewIsOutOfBounds(position: ChatRoomMapPos): boolean;
24
29
  /**
25
30
  * Performs cleanup when leaving the chat room map
26
31
  * @returns {void} - Nothing
@@ -275,6 +280,18 @@ declare function ChatRoomMapViewDraw(): void;
275
280
  * @returns {void} - Nothing
276
281
  */
277
282
  declare function ChatRoomMapViewDrawUi(): void;
283
+ /**
284
+ * Teleport a character to a specific tile
285
+ * @param {Character} target
286
+ * @param {ChatRoomMapPos} position
287
+ */
288
+ declare function ChatRoomMapViewTeleport(target: Character, position: ChatRoomMapPos): void;
289
+ /**
290
+ * Teleport a character to a specific tile from a hidden message
291
+ * @param {Character} sender
292
+ * @param {ServerChatRoomMessage} data
293
+ */
294
+ declare function ChatRoomMapViewTeleportHiddenMessage(sender: Character, data: ServerChatRoomMessage): void;
278
295
  /**
279
296
  * Check if a tile on the map can be entered by a player, and return the number of milliseconds required to reach it
280
297
  * @param {number} X - The X position on the map
@@ -77,14 +77,13 @@ declare function ActivityCheckPrerequisite(prereq: ActivityPrerequisite, acting:
77
77
  declare function ActivityCheckPrerequisites(activity: Activity, acting: Character | PlayerCharacter, acted: Character | PlayerCharacter, group: AssetGroup): boolean;
78
78
  /**
79
79
  *
80
- * @param {ItemActivity[]} allowed
81
80
  * @param {Character} acting
82
81
  * @param {Character} acted
83
82
  * @param {ActivityNameItem} needsItem
84
83
  * @param {Activity} activity
85
84
  * @param {AssetGroup} targetGroup
86
85
  */
87
- declare function ActivityGenerateItemActivitiesFromNeed(allowed: ItemActivity[], acting: Character, acted: Character, needsItem: ActivityNameItem, activity: Activity, targetGroup: AssetGroup): boolean;
86
+ declare function ActivityGenerateItemActivitiesFromNeed(acting: Character, acted: Character, needsItem: ActivityNameItem, activity: Activity, targetGroup: AssetGroup): any[];
88
87
  /**
89
88
  * Builds the allowed activities on a group given the character's settings.
90
89
  * @param {Character} character - The character for which to build the activity dialog options
@@ -29,11 +29,12 @@ declare function AssetAdd(Group: AssetGroup, AssetDef: AssetDefinition, Extended
29
29
  /**
30
30
  * Automatically generated pose-related asset prerequisites
31
31
  * @param {Partial<Pick<Asset, "AllowActivePose" | "SetPose" | "Prerequisite" | "Effect">>} asset The asset or any other object with the expected asset interface subset
32
- * @returns {{ Prerequisite?: AssetPrerequisite[], AllowActivePose?: AssetPoseName[] }} The newly generated prerequisites
32
+ * @returns {{ Prerequisite?: AssetPrerequisite[], AllowActivePose?: AssetPoseName[], SetPose?: AssetPoseName[] }} The newly generated prerequisites
33
33
  */
34
34
  declare function AssetParsePosePrerequisite({ SetPose, AllowActivePose, Effect, Prerequisite }: Partial<Pick<Asset, "AllowActivePose" | "SetPose" | "Prerequisite" | "Effect">>): {
35
35
  Prerequisite?: AssetPrerequisite[];
36
36
  AllowActivePose?: AssetPoseName[];
37
+ SetPose?: AssetPoseName[];
37
38
  };
38
39
  /**
39
40
  * Constructs extended item functions for an asset, if extended item configuration exists for the asset.
@@ -219,6 +220,7 @@ declare function AssetTextGet(msg: string): string;
219
220
  * Outputs all possible errors in the console log, it runs aynscronious
220
221
  */
221
222
  declare function AssetInventoryIDValidate(): Promise<void>;
223
+ declare function AssetLoadCheckActivities(): void;
222
224
  /** @type {Asset[]} */
223
225
  declare var Asset: Asset[];
224
226
  /** @type {AssetGroup[]} */
@@ -23,6 +23,12 @@ declare function CommonGetBrowser(): {
23
23
  Name: string;
24
24
  Version: string;
25
25
  };
26
+ /**
27
+ * Parses a string into a number
28
+ * @param {string} val The string to parse into a number
29
+ * @returns {number | null}
30
+ */
31
+ declare function CommonParseNumber(val: string): number | null;
26
32
  /**
27
33
  * Parse a CSV file content into an array
28
34
  * @param {string} str - Content of the CSV
@@ -9,10 +9,12 @@ declare function CommonDrawCanvasPrepare(C: Character): void;
9
9
  * @param {AssetGroup} group - The asset group
10
10
  * @param {AssetGroupName} groupName - The asset group.
11
11
  * @param {AssetPoseName | PoseType} pose - The pose the user is in.
12
+ * @param {AssetLayer} layer - the layer of the asset.
13
+ * @param {string} layerType - CLT layer name, e.g. typed3
12
14
  * @param {Asset} asset - target asset
13
15
  * @returns {string} baseURL - URL pointing to asset art to load
14
16
  */
15
- declare function AssetBaseURL(C: Character, group: AssetGroup, groupName: AssetGroupName, pose: AssetPoseName | PoseType, asset: Asset): string;
17
+ declare function AssetBaseURL(C: Character, group: AssetGroup, groupName: AssetGroupName, pose: AssetPoseName | PoseType, layer: AssetLayer, layerType: string, asset: Asset): string;
16
18
  /**
17
19
  * @typedef { Map<AssetGroupName, TextureAlphaMask[]> } MaskLayersMap
18
20
  * @param {Character} C - The character to prepare
@@ -326,9 +326,10 @@ declare function DialogIntro(C: Character): string;
326
326
  /**
327
327
  * Generic dialog function to leave conversation. De-inititalizes global variables and reverts the
328
328
  * FocusGroup of the player and the current character to null
329
+ * @param {null | DialogLeave.Options} options - Further customization options
329
330
  * @returns {void} - Nothing
330
331
  */
331
- declare function DialogLeave(): void;
332
+ declare function DialogLeave(options?: null | DialogLeave.Options): void;
332
333
  /**
333
334
  * Generic dialog function to remove a piece of the conversation that's already done
334
335
  * @returns {void} - Nothing
@@ -84,6 +84,11 @@ declare function IsReplyIdDictionaryEntry(entry: ChatMessageDictionaryEntry): en
84
84
  * @returns {entry is MsgIdDictionaryEntry}
85
85
  */
86
86
  declare function IsMsgIdDictionaryEntry(entry: ChatMessageDictionaryEntry): entry is MsgIdDictionaryEntry;
87
+ /**
88
+ * @param {ChatMessageDictionaryEntry} entry
89
+ * @returns {entry is MapViewTeleportEventDictionaryEntry}
90
+ */
91
+ declare function IsMapViewTeleportEventDictionaryEntry(entry: ChatMessageDictionaryEntry): entry is MapViewTeleportEventDictionaryEntry;
87
92
  /**
88
93
  * Build class for chat message dictionaries
89
94
  */
@@ -202,6 +207,12 @@ declare class DictionaryBuilder {
202
207
  * @returns
203
208
  */
204
209
  performActivity(name: ActivityName, group: AssetGroup, item?: Item, count?: number): this;
210
+ /**
211
+ * Adds a teleport dictionary entry
212
+ * @param {ChatRoomMapPos} position - The position to teleport to
213
+ * @returns
214
+ */
215
+ mapViewTeleport(position: ChatRoomMapPos): this;
205
216
  /**
206
217
  * Adds a dictionary entry to the builder
207
218
  * @param {ChatMessageDictionaryEntry} entry - The dictionary entry to add
@@ -511,3 +511,66 @@ declare namespace ElementCheckbox {
511
511
  */
512
512
  function Create(id?: null | string, onChange?: null | ((this: HTMLInputElement, ev: Event) => any), options?: null | ElementCheckbox.Options, htmlOptions?: null | Partial<Record<"checkbox", Omit<HTMLOptions<any>, "tag">>>): HTMLElement;
513
513
  }
514
+ declare namespace ElementSwipe {
515
+ /**
516
+ * @param {HTMLElement} elem
517
+ * @param {null | ElementSwipe.Options} options
518
+ */
519
+ function setListeners(elem: HTMLElement, options?: null | ElementSwipe.Options): void;
520
+ }
521
+ declare namespace ElementDOMScreen {
522
+ /**
523
+ * Construct and return a template for a basic DOM screen.
524
+ *
525
+ * Important points:
526
+ * * Screen dimensions of `[x, 0, y, 1000]` are generally recommended
527
+ * * The standard child elements of the to-be returned screen _may_ freely be moved around in the DOM tree as one sees fit
528
+ * * The standard child elements of the to-be returned screen _should_ not be removed; do so at your own risk. They _may_ remain unused however.
529
+ * @example
530
+ * <div id="my-fancy-id" class="screen">
531
+ * <!--
532
+ * The first row: a banner containing a menubar,
533
+ * the latter of which _should_ contain an exit button as its first entry
534
+ * -->
535
+ * <header class="screen-header">
536
+ * <div role="menubar" />
537
+ * </header>
538
+ *
539
+ * <!--
540
+ * The second row: the screen's main heading/label/description
541
+ * and a dedicated field for anyand all temporary status messages (see `ElementDOMScreen.SetStatus()`)
542
+ * -->
543
+ * <hgroup class="screen-hgroup">
544
+ * <h1 />
545
+ * <p role="status" />
546
+ * </hgroup>
547
+ *
548
+ * <!--
549
+ * The third and final row: a scrollable section with the main content of the screen.
550
+ * As a rule of thumb, it is recommended to embed the immediate child elements into some sort of
551
+ * grouping element like `<fieldset>`, `<section>` and/or `<article>`.
552
+ * -->
553
+ * <main class="screen-main" />
554
+ * </div>
555
+ * @param {string} id - The ID of the screen
556
+ * @param {null | ElementDOMScreen.TemplateOptions} options - Further customization options
557
+ * @returns {HTMLDivElement} - The newly created DOM screen
558
+ */
559
+ function getTemplate(id: string, options?: null | ElementDOMScreen.TemplateOptions): HTMLDivElement;
560
+ let _statusIDMap: WeakMap<Element, number>;
561
+ /**
562
+ * Timer handler for {@link ElementDOMScreen.SetStatus}
563
+ * @private
564
+ * @satisfies {TimerHandler}
565
+ * @param {Element} headingElem The screen's `h1` element
566
+ * @param {Element} statusElem The screen's `[role='status']` element
567
+ */
568
+ function _setStatusTimerHandler(headingElem: Element, statusElem: Element): void;
569
+ /**
570
+ * Set a temporary status message for the screen.
571
+ * @param {HTMLElement} root The screen on which the status is the be set; it _must_ contain a single `h1` and `[role='status']` element
572
+ * @param {string} status The to-be displayed status message
573
+ * @param {number} timeout How long the status message should be shown in ms; defaults to 5000 ms
574
+ */
575
+ function setStatus(root: HTMLElement, status: string, timeout?: number): void;
576
+ }
@@ -209,6 +209,7 @@ declare function ServerSendBeepMessage(target: number, msg?: string, options?: {
209
209
  * @param {string} [options.memberName]
210
210
  * @param {string} [options.chatRoomName]
211
211
  * @param {boolean} [options.silent]
212
+ * @param {string} [title]
212
213
  */
213
214
  declare function ServerShowBeep(message: string, duration: number, options?: {
214
215
  onClick?: (this: HTMLDivElement, event: MouseEvent) => void;
@@ -216,7 +217,7 @@ declare function ServerShowBeep(message: string, duration: number, options?: {
216
217
  memberName?: string;
217
218
  chatRoomName?: string;
218
219
  silent?: boolean;
219
- }): void;
220
+ }, title?: string): void;
220
221
  /** Draws the last beep sent by the server if the timer is still valid, used during the drawing process
221
222
  * @deprecated
222
223
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bc-stubs",
3
- "version": "117.0.1",
3
+ "version": "118.0.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@github.com/bananarama92/BC-stubs.git"