bc-stubs 121.0.0 → 122.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 (64) hide show
  1. package/bc/Assets/Female3DCG/Female3DCG.d.ts +1 -0
  2. package/bc/NativeDeclarations/Commands.d.ts +5 -5
  3. package/bc/NativeDeclarations/Element.d.ts +1 -1
  4. package/bc/NativeDeclarations/Female3DCG_Types.d.ts +4 -0
  5. package/bc/NativeDeclarations/KeybindingManager.d.ts +131 -0
  6. package/bc/NativeDeclarations/Keybindings.d.ts +3 -0
  7. package/bc/NativeDeclarations/Messages.d.ts +13 -17
  8. package/bc/NativeDeclarations/Title.d.ts +16 -0
  9. package/bc/NativeDeclarations/Typedef.d.ts +143 -43
  10. package/bc/Screens/Character/Appearance/Appearance.d.ts +1 -4
  11. package/bc/Screens/Character/Cheat/Cheat.d.ts +0 -4
  12. package/bc/Screens/Character/Creation/Creation.d.ts +0 -4
  13. package/bc/Screens/Character/FriendList/FriendList.d.ts +0 -1
  14. package/bc/Screens/Character/InformationSheet/InformationSheet.d.ts +2 -4
  15. package/bc/Screens/Character/ItemColor/ItemColor.d.ts +67 -34
  16. package/bc/Screens/Character/OnlineProfile/OnlineProfile.d.ts +23 -2
  17. package/bc/Screens/Character/PasswordReset/PasswordReset.d.ts +0 -4
  18. package/bc/Screens/Character/Preference/Arousal.d.ts +0 -12
  19. package/bc/Screens/Character/Preference/General.d.ts +17 -0
  20. package/bc/Screens/Character/Preference/Keybindings.d.ts +74 -0
  21. package/bc/Screens/Character/Preference/Preference.d.ts +15 -67
  22. package/bc/Screens/Character/Relog/Relog.d.ts +0 -4
  23. package/bc/Screens/Character/Title/Title.d.ts +23 -11
  24. package/bc/Screens/Character/Title/TitleDefault.d.ts +7 -0
  25. package/bc/Screens/Character/Wardrobe/Wardrobe.d.ts +0 -4
  26. package/bc/Screens/Inventory/ItemNeck/SlaveCollar/SlaveCollar.d.ts +0 -2
  27. package/bc/Screens/Online/AdvancedRule/AdvancedRule.d.ts +0 -4
  28. package/bc/Screens/Online/ChatAdmin/ChatAdmin.d.ts +4 -5
  29. package/bc/Screens/Online/ChatAdminRoomCustomization/ChatAdminRoomCustomization.d.ts +0 -4
  30. package/bc/Screens/Online/ChatBlockItem/ChatBlockItem.d.ts +0 -4
  31. package/bc/Screens/Online/ChatRoom/ChatRoom.d.ts +24 -8
  32. package/bc/Screens/Online/ChatRoom/ChatRoomMapView.d.ts +3 -3
  33. package/bc/Screens/Online/ChatRoom/Commands.d.ts +13 -7
  34. package/bc/Screens/Online/ChatSearch/ChatSearch.d.ts +4 -65
  35. package/bc/Screens/Online/ForbiddenWords/ForbiddenWords.d.ts +0 -4
  36. package/bc/Screens/Online/GameClubCard/GameClubCard.d.ts +0 -4
  37. package/bc/Screens/Online/GameLARP/GameLARP.d.ts +17 -11
  38. package/bc/Screens/Online/GameMagicBattle/GameMagicBattle.d.ts +0 -4
  39. package/bc/Screens/Room/AsylumEntrance/AsylumEntrance.d.ts +0 -4
  40. package/bc/Screens/Room/Crafting/Crafting.d.ts +2 -0
  41. package/bc/Screens/Room/Crafting/CraftingJSON.d.ts +0 -2
  42. package/bc/Screens/Room/InfiltrationPerks/InfiltrationPerks.d.ts +0 -4
  43. package/bc/Screens/Room/PlatformProfile/PlatformProfile.d.ts +0 -4
  44. package/bc/Screens/Room/Private/Private.d.ts +0 -4
  45. package/bc/Screens/Room/PrivateBed/PrivateBed.d.ts +0 -4
  46. package/bc/Screens/Room/Shop2/Shop2.d.ts +0 -1
  47. package/bc/Scripts/Activity.d.ts +5 -0
  48. package/bc/Scripts/Asset.d.ts +13 -0
  49. package/bc/Scripts/Character.d.ts +16 -0
  50. package/bc/Scripts/ColorPicker.d.ts +115 -113
  51. package/bc/Scripts/Common.d.ts +71 -8
  52. package/bc/Scripts/Dialog.d.ts +1 -1
  53. package/bc/Scripts/Element.d.ts +160 -16
  54. package/bc/Scripts/ExtendedItem.d.ts +6 -0
  55. package/bc/Scripts/Game.d.ts +2 -1
  56. package/bc/Scripts/Inventory.d.ts +7 -7
  57. package/bc/Scripts/KeybindingDefaults.d.ts +5 -0
  58. package/bc/Scripts/KeybindingManager.d.ts +289 -0
  59. package/bc/Scripts/NPC.d.ts +1 -1
  60. package/bc/Scripts/Preference.d.ts +12 -6
  61. package/bc/Scripts/Server.d.ts +55 -0
  62. package/bc/Scripts/Struggle.d.ts +28 -0
  63. package/bc/Scripts/TextItem.d.ts +27 -0
  64. package/package.json +2 -2
@@ -17,6 +17,7 @@ declare namespace E {
17
17
  let Tethered: "Tethered";
18
18
  let Enclose: "Enclose";
19
19
  let MapImmobile: "MapImmobile";
20
+ let MapSwim: "MapSwim";
20
21
  let OneWayEnclose: "OneWayEnclose";
21
22
  let OnBed: "OnBed";
22
23
  let Lifted: "Lifted";
@@ -2,7 +2,7 @@ interface ICommand {
2
2
  /** Name of the command */
3
3
  Tag: string;
4
4
  /** Description of the command */
5
- Description?: string | Record<ServerChatRoomLanguage | "TW", string>;
5
+ Description?: string | Partial<Record<ServerChatRoomLanguage | "TW", string>>;
6
6
  /** Reference to another command, used for aliases */
7
7
  Reference?: string;
8
8
  /** The function that handles the command */
@@ -17,8 +17,8 @@ interface ICommand {
17
17
  PreserveCase?: boolean;
18
18
  /** Array of commands that can be used as subcommands. */
19
19
  Subcommands?: Subcommand[];
20
- /**
21
- * Array of arguments that the command accepts.
20
+ /**
21
+ * Array of arguments that the command accepts.
22
22
  * Can be a function to generate arguments at runtime.
23
23
  * Typically used to provide additional context for users
24
24
  */
@@ -26,8 +26,8 @@ interface ICommand {
26
26
  }
27
27
 
28
28
  type ArgumentDef = {
29
- name: string;
30
- description: string;
29
+ name: string | Partial<Record<ServerChatRoomLanguage | "TW", string>>;
30
+ description: string | Partial<Record<ServerChatRoomLanguage | "TW", string>>;
31
31
  suggestions?: string[] | (() => string[]);
32
32
  };
33
33
  type Subcommand = Omit<ICommand, 'Subcommands' | 'AutoComplete'>;
@@ -1,5 +1,5 @@
1
1
  declare namespace ElementHelp {
2
- type ElementOrId = HTMLElement | string;
2
+ type ElementOrId = Element | string;
3
3
  type AnchorY = 'top' | 'bottom';
4
4
  type AnchorX = 'left' | 'right';
5
5
  type AnchorXY = `${AnchorY}-${AnchorX}`;
@@ -1050,6 +1050,10 @@ interface ExtendedItemOptionConfig {
1050
1050
  PrerequisiteBuyGroup?: string;
1051
1051
  /** If the option has an archetype, sets the config to use */
1052
1052
  ArchetypeConfig?: null | AssetArchetypeConfig;
1053
+ DrawOptions?: {
1054
+ Mirror?: boolean;
1055
+ Invert?: boolean;
1056
+ }
1053
1057
  }
1054
1058
 
1055
1059
  /** Defines a single (fully parsed) extended item option */
@@ -0,0 +1,131 @@
1
+ declare namespace Keybindings {
2
+
3
+ type KeyCode = keyof typeof KeybindingManager.ASCIIKeyboardMap;
4
+
5
+ /**
6
+ * Represents a combination of a physical key and optional modifier keys.
7
+ *
8
+ * - `key` refers to the `code` property from `KeyboardEvent`, not `key`.
9
+ * This means the value is hardware-position-based, not character-based.
10
+ * See: https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values
11
+ * - `modifiers` is an optional set of additional keys (Shift, Alt, Ctrl)
12
+ * that must be pressed alongside the primary key.
13
+ */
14
+ type KeyCombo = {
15
+ /**
16
+ * Refer to the `code` property from `KeyboardEvent`.
17
+ * This means the value is hardware-position-based, not character-based.
18
+ * See: https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_code_values
19
+ */
20
+ key: KeyCode | null;
21
+
22
+ /**
23
+ * An optional set of additional keys (Shift, Alt, Ctrl)
24
+ * that must be pressed alongside the primary key.
25
+ */
26
+ modifiers?: Set<ModifierKey>;
27
+ } | {
28
+ /**
29
+ * A layout-dependent character.
30
+ */
31
+ char: string | null;
32
+
33
+ /**
34
+ * An optional set of additional keys (Shift, Alt, Ctrl)
35
+ * that must be pressed alongside the primary key.
36
+ */
37
+ modifiers?: Set<ModifierKey>;
38
+ };
39
+
40
+ /**
41
+ * Allowed modifier keys in this keybinding system.
42
+ * Uses human-readable names to match conceptual rather than platform-specific keys.
43
+ */
44
+ type ModifierKey = "Shift" | "Alt" | "Ctrl";
45
+
46
+ /**
47
+ * Unique identifier for a keybinding context.
48
+ * Contexts allow the same keybinding to behave differently depending
49
+ * on active UI states or modes.
50
+ */
51
+ type ContextId = Context["id"];
52
+
53
+ /**
54
+ * Groups related actions for easier navigation in a UI (e.g., "Editing", "Navigation").
55
+ */
56
+ type Category = {
57
+ /** Unique identifier */
58
+ readonly id: "chat" | "maproom" | "navigation" | "chatroom" | "unknown";
59
+
60
+ /** User-facing label */
61
+ readonly name?: string | Partial<Record<ServerChatRoomLanguage | "TW", string>>;
62
+ };
63
+
64
+ /**
65
+ * Defines a context in which keybindings can be active.
66
+ */
67
+ type Context = {
68
+ /** Unique identifier */
69
+ readonly id: "chat" | "always" | "isInChatRoom" | "isOnChatRoomScreen" | "isChatRoomCharacterMode" | "isChatRoomMapMode" | "isChatRoomChatFocused" | "isChatRoomChatNOTFocused" | "noModifiers";
70
+
71
+ /** User-facing label */
72
+ readonly name?: string | Partial<Record<ServerChatRoomLanguage | "TW", string>>;
73
+
74
+ /** Function returning true if this context should be considered active */
75
+ readonly prerequisite: (event: KeyboardEvent) => boolean;
76
+
77
+ /** Optional flag whether to show this context in the UI */
78
+ readonly showInUI?: boolean;
79
+ };
80
+
81
+ /**
82
+ * Represents a specific keybinding configuration for an action.
83
+ */
84
+ type Keybinding = {
85
+ /** Unique identifier */
86
+ readonly id: string;
87
+
88
+ /** User-facing label */
89
+ readonly name?: string | Partial<Record<ServerChatRoomLanguage | "TW", string>>;
90
+
91
+ /**
92
+ * Function executed when triggered.
93
+ * Returns `true` if handled, `false` otherwise.
94
+ */
95
+ readonly action: (event: KeyboardEvent) => boolean | void;
96
+
97
+ /** Optional description */
98
+ readonly description?: string | Partial<Record<ServerChatRoomLanguage | "TW", string>>;
99
+
100
+ /** Contexts in which the action is valid */
101
+ readonly contextIds: ContextId[];
102
+
103
+ /** Currently assigned key combo */
104
+ keyCombo?: KeyCombo;
105
+
106
+ /** Category this action belongs to */
107
+ readonly categoryId: Category['id'];
108
+
109
+ /** System’s original mapping for reset purposes */
110
+ readonly defaultKeyCombo?: KeyCombo;
111
+
112
+ /** Flag whether the binding cannot be changed by the user */
113
+ readonly readonly: boolean;
114
+ };
115
+
116
+ type UninitializedKeybinding = {
117
+ id: Keybinding['id'];
118
+ keyCombo: KeyCombo;
119
+ };
120
+
121
+ /**
122
+ * A lightweight, serialized form of a keybinding.
123
+ */
124
+ type KeybindingSerialized = {
125
+ /** Unique identifier */
126
+ actionId: string;
127
+
128
+ /** String representation of the key combination. (e.g., "KeyK ⌃⇧") */
129
+ keyCombo: string;
130
+ };
131
+ }
@@ -0,0 +1,3 @@
1
+ declare namespace KeybindingScreen {
2
+ type FilteringMode = 'action' | 'category' | 'keyCombo';
3
+ }
@@ -70,6 +70,7 @@ interface ServerAccountData extends ServerAccountImmutableData {
70
70
  AssetFamily: "Female3DCG";
71
71
  Infiltration?: InfiltrationType;
72
72
  SavedColors?: HSVColor[];
73
+ /** @deprecated */
73
74
  ChatSearchFilterTerms?: string;
74
75
  Difficulty?: { Level: DifficultyLevel; LastChange: number };
75
76
  MapData?: ChatRoomMapData;
@@ -119,6 +120,7 @@ interface ServerAccountData extends ServerAccountImmutableData {
119
120
  FriendNames?: string;
120
121
  SubmissivesList?: string;
121
122
  KinkyDungeonExploredLore?: unknown[];
123
+ KeybindingSettings?: string;
122
124
  }
123
125
 
124
126
  // TODO: Add `Lover` after figuring out why {@link ServerPlayerSync} still passes this field to the server
@@ -177,6 +179,7 @@ type ServerAccountDataSynced = Omit<ServerAccountData, "Money" | "FriendList" |
177
179
  interface ServerOwnership {
178
180
  MemberNumber?: number;
179
181
  Name?: string;
182
+ Notes?: string;
180
183
  Stage?: number;
181
184
  Start?: number;
182
185
  StartTrialOfferedByMemberNumber?: number;
@@ -249,14 +252,6 @@ type ServerChatRoomData = {
249
252
  Game: ServerChatRoomGame;
250
253
  Visibility: ServerChatRoomRole[];
251
254
  Access: ServerChatRoomRole[];
252
- /**
253
- * @deprecated Use {@link ServerChatRoomData.Visibility} instead, this is temporarily maintained for backwards compatibility
254
- */
255
- Private: boolean; // TODO: Remove following completion of migration
256
- /**
257
- * @deprecated Use {@link ServerChatRoomData.Access} instead, this is temporarily maintained for backwards compatibility
258
- */
259
- Locked: boolean; // TODO: Remove following completion of migration
260
255
  BlockCategory: ServerChatRoomBlockCategory[];
261
256
  Language: ServerChatRoomLanguage;
262
257
  Space: ServerChatRoomSpace;
@@ -408,11 +403,19 @@ interface ServerAccountLovershipComplete {
408
403
 
409
404
  type ServerAccountLovershipResponse = ServerAccountLovershipStatus | ServerAccountLovershipInfo | ServerAccountLovershipComplete;
410
405
 
411
- interface ServerAccountOwnershipRequest {
406
+ interface ServerAccountOwnershipAcquisitionRequest {
412
407
  MemberNumber: number;
413
408
  Action?: "Propose" | "Accept" | "Release" | "Break";
414
409
  }
415
410
 
411
+ interface ServerAccountOwnershipUpdateNotesRequest {
412
+ MemberNumber: number;
413
+ Action: "UpdateNotes";
414
+ Notes?: string;
415
+ }
416
+
417
+ type ServerAccountOwnershipRequest = ServerAccountOwnershipAcquisitionRequest | ServerAccountOwnershipUpdateNotesRequest;
418
+
416
419
  interface ServerAccountOwnershipStatus {
417
420
  MemberNumber: number;
418
421
  Result: "CanOfferStartTrial" | "CanStartTrial" | "CanOfferEndTrial" | "CanEndTrial";
@@ -469,6 +472,7 @@ type ChatRoomSearchSettings = {
469
472
  MapTypes: string;
470
473
  RoomMinSize: number;
471
474
  RoomMaxSize: number;
475
+ FilterTerms: string;
472
476
  }
473
477
 
474
478
  interface ServerChatRoomSearchData {
@@ -486,14 +490,6 @@ interface ServerChatRoomSearchData {
486
490
  Space: ServerChatRoomSpace;
487
491
  Visibility: ServerChatRoomRole[];
488
492
  Access: ServerChatRoomRole[];
489
- /**
490
- * @deprecated Use {@link ServerChatRoomData.Visibility} instead, this is maintained for backwards compatibility
491
- */
492
- Private?: boolean;
493
- /**
494
- * @deprecated Use {@link ServerChatRoomData.Access} instead, this is maintained for backwards compatibility
495
- */
496
- Locked?: boolean;
497
493
  CanJoin: boolean;
498
494
  MapType: string;
499
495
  }
@@ -0,0 +1,16 @@
1
+ // NOTE: `NPCArchetype` is for NPC's only
2
+ type TitleName =
3
+ NPCArchetype | "None" | "Mistress" | "Master" | "Queen" | "King" | "Goddess" | "God" | "Mistree" | "ClubSlave" |
4
+ "Maid" | "HeadMaid" | "BondageMaid" | "Kidnapper" | "MasterKidnapper" | "Patient" | "PermanentPatient" |
5
+ "EscapedPatient" | "Nurse" | "Doctor" | "AnimeBoy" | "LadyLuck" | "LordFortune" | "Patron" | "CollegeStudent" |
6
+ "Nawashi" | "Houdini" | "PonyAlicorn" | "PonyPegasus" | "PonyUnicorn" | "PonyWild" | "PonyHot" | "PonyWarm" |
7
+ "PonyCold" | "PonyFarm" | "PonyFoal" | "InfilrationMole" | "InfilrationInfiltrator" | "InfilrationAgent" |
8
+ "InfilrationOperative" | "InfilrationSuperspy" | "MagicSchoolWizard" | "MagicSchoolMagus" |
9
+ "MagicSchoolMagician" | "MagicSchoolSorcerer" | "MagicSchoolSage" | "MagicSchoolOracle" |
10
+ "MagicSchoolWitch" | "MagicSchoolWarlock" | "Duchess" | "Duke" | "LittleOne" | "Baby" | "DL" |
11
+ "BondageBaby" | "Switch" | "Princess" | "Prince" | "Liege" | "Majesty" | "Missy" | "Sissy" | "Tomboy" | "Femboy" | "GoodOne" |
12
+ "Pet" | "Dragon" | "Vampire" | "Turtle" | "Thing" | "Elf" | "Drow" | "Pixie" | "Brat" | "Kitten" | "Puppy" | "Foxy" |
13
+ "Bunny" | "Doll" | "Demon" | "Angel" | "Alien" | "Captain" | "Admiral" | "Succubus" | "Incubus" | "Concubus" |
14
+ "GoodGirl" | "GoodBoy" | "GoodSlaveGirl" | "GoodSlaveBoy" | "GoodSlave" | "Drone" | "FreeUse" |
15
+ "Archbishop" | "Bishop" | "Archjudge" | "Judge" | "Champion" | "Matron" | "Patriarch" | "Primaris"
16
+ ;