bc-stubs 103.0.0 → 104.0.0-Beta.2

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.
@@ -537,6 +537,7 @@ declare var ActivityFemale3DCG: Activity[];
537
537
  declare let ActivityFemale3DCGOrdering: ActivityName[];
538
538
  /**
539
539
  * 3D Custom Girl based fetishes
540
+ * Modify PreferenceArousalFetishDefaultCompressedString if you add a new fetish
540
541
  * @type {Fetish[]}
541
542
  */
542
543
  declare var FetishFemale3DCG: Fetish[];
@@ -1,6 +1,7 @@
1
1
  /** The definition of a fetish */
2
2
  interface Fetish {
3
3
  Name: FetishName;
4
+ FetishID: number;
4
5
  GetFactor(C: Character): number;
5
6
  }
6
7
 
package/bc/Messages.d.ts CHANGED
@@ -184,7 +184,7 @@ interface ServerPrivateCharacterData {
184
184
  type ServerAppearanceBundle = ServerItemBundle[];
185
185
 
186
186
  type ServerChatRoomSpace = "X" | "" | "M" | "Asylum";
187
- type ServerChatRoomLanguage = "EN" | "DE" | "FR" | "ES" | "CN" | "RU";
187
+ type ServerChatRoomLanguage = "EN" | "DE" | "FR" | "ES" | "CN" | "RU" | "UA";
188
188
  type ServerChatRoomGame = "" | "ClubCard" | "LARP" | "MagicBattle" | "GGTS";
189
189
  type ServerChatRoomBlockCategory =
190
190
  /** Those are known as AssetCategory to the client */
@@ -703,6 +703,17 @@ interface ActivityNameDictionaryEntry {
703
703
  ActivityName: ActivityName;
704
704
  }
705
705
 
706
+ /**
707
+ * A dictionary entry with metadata about the chat message transmitted.
708
+ *
709
+ * Send with Chat and Whisper-type messages to inform the other side about the
710
+ * garbling and potentially ungarbled string if provided.
711
+ */
712
+ interface MessageEffectEntry {
713
+ Effects: SpeechTransformName[];
714
+ Original: string;
715
+ }
716
+
706
717
  type ChatMessageDictionaryEntry =
707
718
  | CharacterReferenceDictionaryEntry
708
719
  | SourceCharacterDictionaryEntry
@@ -718,7 +729,8 @@ type ChatMessageDictionaryEntry =
718
729
  | AutomaticEventDictionaryEntry
719
730
  | ActivityCounterDictionaryEntry
720
731
  | AssetGroupNameDictionaryEntry
721
- | ActivityNameDictionaryEntry;
732
+ | ActivityNameDictionaryEntry
733
+ | MessageEffectEntry;
722
734
 
723
735
  type ChatMessageDictionary = ChatMessageDictionaryEntry[];
724
736
 
@@ -149,6 +149,7 @@ declare function AppearanceGroupAllowed(C: Character, GroupName: string): boolea
149
149
  * @returns {void} - Nothing
150
150
  */
151
151
  declare function AppearanceRun(): void;
152
+ declare function AppearanceResize(load: boolean): void;
152
153
  /**
153
154
  * Calculates the background color of the preview image for and item
154
155
  * @param {Character} C - The character whose appearance we are viewing
@@ -3,13 +3,6 @@
3
3
  * @returns {void} - Nothing
4
4
  */
5
5
  declare function InformationSheetLoad(): void;
6
- /**
7
- * Draw the lover for the character
8
- * @param {Character} C - The character whose information sheet should be displayed
9
- * @param {number} L - The lover index
10
- * @returns {void} - Nothing
11
- */
12
- declare function InformationSheetDrawLover(C: Character, L: number): void;
13
6
  /**
14
7
  * Main function of the character info screen. It's called continuously, so be careful
15
8
  * to add time consuming functions or loops here
@@ -38,8 +31,8 @@ declare function InformationSheetExit(): void;
38
31
  */
39
32
  declare function InformationSheetLoadCharacter(C: Character): void;
40
33
  declare var InformationSheetBackground: string;
41
- /** @type {null | Character} */
42
- declare var InformationSheetSelection: null | Character;
34
+ /** @type {null | Character | NPCCharacter} */
35
+ declare var InformationSheetSelection: null | Character | NPCCharacter;
43
36
  /** @type {"" | ModuleType} */
44
37
  declare var InformationSheetPreviousModule: "" | ModuleType;
45
38
  declare var InformationSheetPreviousScreen: string;
@@ -13,13 +13,6 @@ declare function PreferenceArousalAtLeast(C: Character, Level: ArousalActiveName
13
13
  * @returns {ArousalFactor} - Returns the love factor of the activity for the character (0 is horrible, 2 is normal, 4 is great)
14
14
  */
15
15
  declare function PreferenceGetActivityFactor(C: Character, Type: ActivityName, Self: boolean): ArousalFactor;
16
- /**
17
- * Gets the factor of a fetish for the player
18
- * @param {Character} C - The character to query
19
- * @param {FetishName} Type - The name of the fetish
20
- * @returns {ArousalFactor} - Returns the love factor of the fetish for the character (0 is horrible, 2 is normal, 4 is great)
21
- */
22
- declare function PreferenceGetFetishFactor(C: Character, Type: FetishName): ArousalFactor;
23
16
  /**
24
17
  * Sets the love factor of a sexual activity for the character
25
18
  * @param {Character} C - The character for whom the activity factor should be set
@@ -28,12 +21,35 @@ declare function PreferenceGetFetishFactor(C: Character, Type: FetishName): Arou
28
21
  * @param {ArousalFactor} Factor - The factor of the sexual activity (0 is horrible, 2 is normal, 4 is great)
29
22
  */
30
23
  declare function PreferenceSetActivityFactor(C: Character, Type: ActivityName, Self: boolean, Factor: ArousalFactor): void;
24
+ /**
25
+ * Gets the factor of a fetish for the player, "2" for normal is default if factor isn't found
26
+ * @param {Character} C - The character to query
27
+ * @param {FetishName} Type - The name of the fetish
28
+ * @returns {ArousalFactor} - Returns the love factor of the fetish for the character (0 is horrible, 2 is normal, 4 is great)
29
+ */
30
+ declare function PreferenceGetFetishFactor(C: Character, Type: FetishName): ArousalFactor;
31
+ /**
32
+ * Sets the arousal factor of a fetish for a character
33
+ * @param {Character} C - The character to set
34
+ * @param {FetishName} Type - The name of the fetish
35
+ * @param {ArousalFactor} Type - New arousal factor for that fetish (0 is horrible, 2 is normal, 4 is great)
36
+ * @returns {void} - Nothing
37
+ */
38
+ declare function PreferenceSetFetishFactor(C: Character, Type: FetishName, Factor: any): void;
39
+ /**
40
+ * Validates the character arousal object and converts it's objects to compressed string if needed
41
+ * @param {number} Factor - The factor of enjoyability from 0 (turn off) to 4 (very high)
42
+ * @param {boolean} Orgasm - Whether the zone can give an orgasm
43
+ * @returns {string} - A string of 1 char that represents the compressed zone
44
+ */
45
+ declare function PreferenceArousalFactorToChar(Factor?: number, Orgasm?: boolean): string;
31
46
  /**
32
47
  * Validates the character arousal object and converts it's objects to compressed string if needed
33
- * @param {number} Factor - The
48
+ * @param {number} Factor1 - The first factor of enjoyability from 0 (turn off) to 4 (very high)
49
+ * @param {number} Factor2 - The second factor of enjoyability from 0 (turn off) to 4 (very high)
34
50
  * @returns {string} - A string of 1 char that represents the compressed zone
35
51
  */
36
- declare function PreferenceArousalZoneToChar(Factor: number, Orgasm: any): string;
52
+ declare function PreferenceArousalTwoFactorToChar(Factor1?: number, Factor2?: number): string;
37
53
  /**
38
54
  * Gets the corresponding arousal zone definition from a player's preferences (if the group's activities are mirrored,
39
55
  * returns the arousal zone definition for the mirrored group).
@@ -616,8 +632,9 @@ declare var PreferenceArousalActivityFactorSelf: ArousalFactor;
616
632
  declare var PreferenceArousalActivityFactorOther: ArousalFactor;
617
633
  /** @type {ArousalFactor} */
618
634
  declare var PreferenceArousalZoneFactor: ArousalFactor;
619
- declare var PreferenceArousalZoneCount: number;
635
+ declare var PreferenceArousalActivityDefaultCompressedString: string;
620
636
  declare var PreferenceArousalZoneDefaultCompressedString: string;
637
+ declare var PreferenceArousalFetishDefaultCompressedString: string;
621
638
  /** @type {null | FetishName[]} */
622
639
  declare var PreferenceArousalFetishList: null | FetishName[];
623
640
  declare var PreferenceArousalFetishIndex: number;
@@ -755,9 +772,9 @@ declare var PreferenceArousalSettingsValidate: {
755
772
  ProgressTimer: (arg: number, C: Character) => number;
756
773
  VibratorLevel: (arg: 0 | 2 | 1 | 3 | 4, C: Character) => 0 | 2 | 1 | 3 | 4;
757
774
  ChangeTime: (arg: number, C: Character) => number;
758
- Activity: (arg: ActivityEnjoyment[], C: Character) => ActivityEnjoyment[];
775
+ Activity: (arg: string, C: Character) => string;
759
776
  Zone: (arg: string, C: Character) => string;
760
- Fetish: (arg: ArousalFetish[], C: Character) => ArousalFetish[];
777
+ Fetish: (arg: string, C: Character) => string;
761
778
  OrgasmTimer: (arg: number, C: Character) => number;
762
779
  OrgasmStage: (arg: 0 | 2 | 1, C: Character) => 0 | 2 | 1;
763
780
  OrgasmCount: (arg: number, C: Character) => number;
@@ -778,6 +795,7 @@ declare var PreferenceOnlineSharedSettingsValidate: {
778
795
  AllowFullWardrobeAccess: (arg: boolean, C: Character) => boolean;
779
796
  BlockBodyCosplay: (arg: boolean, C: Character) => boolean;
780
797
  AllowPlayerLeashing: (arg: boolean, C: Character) => boolean;
798
+ AllowRename: (arg: boolean, C: Character) => boolean;
781
799
  DisablePickingLocksOnSelf: (arg: boolean, C: Character) => boolean;
782
800
  GameVersion: (arg: string, C: Character) => string;
783
801
  ItemsAffectExpressions: (arg: boolean, C: Character) => boolean;
@@ -258,6 +258,11 @@ declare function ChatRoomCanAttemptKneel(): boolean;
258
258
  * @returns {boolean} - TRUE if the current character is slowed down and can be interacted with.
259
259
  */
260
260
  declare function ChatRoomCanStopSlowPlayer(): boolean;
261
+ /**
262
+ * Checks if the player can interrupt another character from struggling.
263
+ * @returns {boolean} - TRUE if the player can do it
264
+ */
265
+ declare function ChatRoomCanInterruptOnlineStruggle(): boolean;
261
266
  /**
262
267
  * Checks if the player can grab the targeted player's leash
263
268
  * @returns {boolean} - TRUE if the player can interact and is allowed to interact with the current character.
@@ -381,12 +386,14 @@ declare function ChatRoomCheckRelationships(): void;
381
386
  declare function ChatRoomFirstTimeHelp(): void;
382
387
  /**
383
388
  * Sets the current whisper target and flags a target update
384
- * @param {number} MemberNumber - The target member number to set
389
+ * @param {number} MemberNumber - The target member number to set. -1 to unselect
385
390
  * @returns {void} - Nothing
386
391
  */
387
392
  declare function ChatRoomSetTarget(MemberNumber: number): void;
388
393
  /**
389
394
  * Updates the chat input's placeholder text to reflect the current whisper target
395
+ *
396
+ * @deprecated No-oped in R104, automatically handled when the target is set
390
397
  * @returns {void} - Nothing.
391
398
  */
392
399
  declare function ChatRoomTarget(): void;
@@ -494,6 +501,11 @@ declare function ChatRoomRun(): void;
494
501
  * @returns {boolean} - Returns true if the orgasm overlay is active and false otherwise.
495
502
  */
496
503
  declare function ChatRoomDrawArousalOverlay(): boolean;
504
+ /**
505
+ * Draws the chat room struggle progress bar and buttons
506
+ * @returns {void} - Nothing
507
+ */
508
+ declare function ChatRoomStruggleDraw(): void;
497
509
  /**
498
510
  * Draws the chat room menu buttons
499
511
  * @returns {void} - Nothing
@@ -602,6 +614,32 @@ declare function ChatRoomScrollHistory(up: boolean): void;
602
614
  * @returns {void} - Nothing.
603
615
  */
604
616
  declare function ChatRoomSendChat(): void;
617
+ /**
618
+ * Send a player message to the server
619
+ *
620
+ * This function automatically formats and sends the message with all the information
621
+ * needed to reconstruct it on the receiver.
622
+ *
623
+ * @param {"Chat"|"Whisper"} type
624
+ * @param {string} msg
625
+ */
626
+ declare function ChatRoomGenerateChatRoomChatMessage(type: "Chat" | "Whisper", msg: string): {
627
+ Content: string;
628
+ Type: "Whisper" | "Chat";
629
+ Dictionary: ChatMessageDictionary;
630
+ };
631
+ /**
632
+ * Send a specific chat message to the room
633
+ * @param {string} msg
634
+ * @returns
635
+ */
636
+ declare function ChatRoomSendChatMessage(msg: string): boolean;
637
+ /**
638
+ * Send a whisper to a specific character
639
+ * @param {number} targetNumber
640
+ * @param {string} msg
641
+ */
642
+ declare function ChatRoomSendWhisper(targetNumber: number, msg: string): boolean | "target-gone" | "target-out-of-range";
605
643
  /**
606
644
  * Sends message to user with HTML tags
607
645
  * @param {string} Content - InnerHTML for the message
@@ -969,6 +1007,11 @@ declare function ChatRoomKneelStandAssist(): void;
969
1007
  * @returns {void} - Nothing
970
1008
  */
971
1009
  declare function ChatRoomStopLeave(): void;
1010
+ /**
1011
+ * Triggered when a character interrupt online struggles on another character.
1012
+ * @returns {void} - Nothing
1013
+ */
1014
+ declare function ChatRoomOnlineStruggleInterrupt(): void;
972
1015
  /**
973
1016
  * Sends an administrative command to the server for the chat room from the character dialog.
974
1017
  * @param {"Move"|"Kick"|"Ban"} ActionType - Type of action performed.
@@ -1075,6 +1118,16 @@ declare function ChatRoomGetLoverRule(RuleType: LogNameType["LoverRule"]): boole
1075
1118
  * @returns {boolean}
1076
1119
  */
1077
1120
  declare function ChatRoomGetOwnerRule(RuleType: LogNameType["OwnerRule"]): boolean;
1121
+ /**
1122
+ * Return TRUE if the current character allows to change her own nickname by her owner
1123
+ * @returns {boolean}
1124
+ */
1125
+ declare function ChatRoomCanChangeNickname(): boolean;
1126
+ /**
1127
+ * Enters the submissive character nickname edit/lock screen
1128
+ * @returns {void}
1129
+ */
1130
+ declare function ChatRoomChangeNickname(): void;
1078
1131
  /**
1079
1132
  * Gets a rule from the current character
1080
1133
  * @param {LogNameType["OwnerRule" | "LoverRule"]} RuleType - The name of the rule to retrieve.
@@ -1283,8 +1336,8 @@ declare var ChatRoomCharacter: Character[];
1283
1336
  declare var ChatRoomChatLog: ChatRoomChatLogEntry[];
1284
1337
  declare var ChatRoomLastMessage: string[];
1285
1338
  declare var ChatRoomLastMessageIndex: number;
1286
- /** @type {null | number} */
1287
- declare var ChatRoomTargetMemberNumber: null | number;
1339
+ /** @type {number} */
1340
+ declare var ChatRoomTargetMemberNumber: number;
1288
1341
  /** @type {ChatRoomOwnershipOption} */
1289
1342
  declare var ChatRoomOwnershipOption: ChatRoomOwnershipOption;
1290
1343
  /** @type {ChatRoomLovershipOption} */
@@ -1301,6 +1354,7 @@ declare var ChatRoomHelpSeen: boolean;
1301
1354
  declare var ChatRoomAllowCharacterUpdate: boolean;
1302
1355
  declare var ChatRoomStruggleAssistBonus: number;
1303
1356
  declare var ChatRoomStruggleAssistTimer: number;
1357
+ declare var ChatRoomStruggleData: any;
1304
1358
  /**
1305
1359
  * The timer started when a slowed player attempts to leave
1306
1360
  * @type {number}
@@ -1356,7 +1410,6 @@ declare var ChatRoomLeashPlayer: number | null;
1356
1410
  * @type {string}
1357
1411
  */
1358
1412
  declare var ChatRoomJoinLeash: string;
1359
- declare var ChatRoomTargetDirty: boolean;
1360
1413
  declare var ChatRoomCustomized: boolean;
1361
1414
  declare var ChatRoomCustomBackground: string;
1362
1415
  declare var ChatRoomCustomFilter: string;
@@ -1462,6 +1515,7 @@ declare namespace ChatRoomResizeManager {
1462
1515
  function ChatRoomResizeEvent(): void;
1463
1516
  function ChatRoomResizeEventsEnd(): void;
1464
1517
  }
1518
+ declare const ChatRoomUIElementNames: string[];
1465
1519
  declare let ChatRoomStatusDeadKeys: string[];
1466
1520
  /** When slowed, we can't leave quicker than this */
1467
1521
  declare const ChatRoomSlowLeaveMinTime: 5000;
@@ -337,6 +337,7 @@ declare function ChatRoomMapViewCopy(): void;
337
337
  declare function ChatRoomMapViewPaste(Param: string): void;
338
338
  /**
339
339
  * Make sure the whisper target is still valid on the map, and leave whipser mode if needed
340
+ * @deprecated Unused
340
341
  * @returns {void} - Nothing
341
342
  */
342
343
  declare function ChatRoomMapViewWhisperValid(): void;
@@ -28,8 +28,10 @@ declare function CommandCombine(add: ICommand | ICommand[]): void;
28
28
  /**
29
29
  * Parse the input chat message
30
30
  * @param {string} msg - Input string, cannot be empty
31
+ * @returns {string|boolean} a de-escaped string if msg looks like an escaped
32
+ * command, true if a command successfully executed, false otherwise.
31
33
  */
32
- declare function CommandParse(msg: string): void;
34
+ declare function CommandParse(msg: string): string | boolean;
33
35
  /**
34
36
  * Prints out the help for commands with tags that include `low`
35
37
  * @param {string} low - lower case search keyword for tags
@@ -47,9 +49,9 @@ declare function CommandPrintHelpFor(CommandList: Optional<ICommand, 'Action'>[]
47
49
  /**
48
50
  * Finds command and executes it from the message
49
51
  * @param {string} msg - User input
50
- * @returns {void} - Nothing
52
+ * @returns {boolean} - true if a command was executed, false otherwise
51
53
  */
52
- declare function CommandExecute(msg: string): void;
54
+ declare function CommandExecute(msg: string): boolean;
53
55
  /**
54
56
  * Tries to complete the message to a command or print help about it
55
57
  * @param {string} msg - InputChat content
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Loads the Nickname Management screen
3
+ * @returns {void} - Nothing
4
+ */
5
+ declare function NicknameManagementLoad(): void;
6
+ /**
7
+ * Draws the Nickname Management controls
8
+ * @returns {void} - Nothing
9
+ */
10
+ declare function NicknameManagementRun(): void;
11
+ /**
12
+ * Handles the click events. Is called from CommonClick()
13
+ * @returns {void} - Nothing
14
+ */
15
+ declare function NicknameManagementClick(): void;
16
+ /**
17
+ * Handles exiting from the screen, updates the sub rules
18
+ * @param {boolean} Save - Received rule data object.
19
+ * @returns {void} - Nothing
20
+ */
21
+ declare function NicknameManagementExit(Save?: boolean): void;
22
+ declare var NicknameManagementBackground: string;
23
+ /** @type {null | Character | NPCCharacter} */
24
+ declare var NicknameManagementTarget: null | Character | NPCCharacter;
25
+ declare var NicknameManagementLock: boolean;
@@ -102,12 +102,11 @@ declare function AsylumGGTSSetTimer(): void;
102
102
  /**
103
103
  * Returns TRUE if the query was answered by character number M
104
104
  * @param {number} Level - The player GGTS level, at level 4 or more, capital letters and punctuation matters
105
- * @param {number} M - The member number to evaluate
106
105
  * @param {string} TextEasy - The text to evaluate
107
106
  * @param {string} TextHard - The text to evaluate
108
107
  * @returns {boolean} - TRUE if the is done
109
108
  */
110
- declare function AsylumGGTSQueryDone(Level: number, M: number, TextEasy: string, TextHard: string): boolean;
109
+ declare function AsylumGGTSQueryDone(Level: number, TextEasy: string, TextHard: string): boolean;
111
110
  /**
112
111
  * Returns TRUE if the task T is currently done by character C
113
112
  * @param {Character} C - The character to evaluate
@@ -334,6 +333,7 @@ declare var AsylumGGTSTaskTarget: null | Character;
334
333
  declare var AsylumGGTSLastTask: string;
335
334
  declare var AsylumGGTSTaskStart: number;
336
335
  declare var AsylumGGTSTaskEnd: number;
336
+ declare var AsylumGGTSChatToParse: string;
337
337
  /**
338
338
  * The list of available tasks, partitioned by level.
339
339
  */
@@ -33,6 +33,7 @@ declare function CraftingUpdatePreview(): void;
33
33
  * @returns {void} - Nothing
34
34
  */
35
35
  declare function CraftingRun(): void;
36
+ declare function CraftingResize(load: boolean): void;
36
37
  /**
37
38
  * Update {@link CraftingSelectedItem.ItemProperties} with a select few properties from the passed item.
38
39
  * @param {Item} item - The item whose properties should be coppied.
@@ -45,21 +46,18 @@ declare function CraftingUpdateFromItem(item: Item): void;
45
46
  * @returns {void} - Nothing
46
47
  */
47
48
  declare function CraftingModeSet(NewMode: CraftingMode): void;
48
- /**
49
- * @this {HTMLInputElement}
50
- * @returns {void};
51
- */
52
- declare function CraftingPriorityKeyUp(this: HTMLInputElement): void;
53
49
  /**
54
50
  * When the color or type field is updated manually, we update the preview image
51
+ * @param {Event} ev
55
52
  * @returns {void} - Nothing
56
53
  */
57
- declare function CraftingKeyUp(): void;
54
+ declare function CraftingKeyUp(ev: Event): void;
58
55
  /**
59
56
  * Helper function for parsing the `InputPriority` HTML element.
60
- * @returns {number | null}
57
+ * @param {Event} ev
58
+ * @returns {number | undefined}
61
59
  */
62
- declare function CraftingParsePriorityElement(): number | null;
60
+ declare function CraftingParsePriorityElement(ev: Event): number | undefined;
63
61
  /**
64
62
  * Serialize a single crafted item into a string in order to prepare it for server saving
65
63
  * @param {CraftingItem} craft The crafted item
@@ -96,11 +94,7 @@ declare function CraftingLoadServer(Packet: string | (null | CraftingItem)[]): v
96
94
  * @param {CraftingReorderType} newmode - The mode to set. If null, advance to next mode.
97
95
  */
98
96
  declare function CraftingReorderModeSet(newmode?: CraftingReorderType): void;
99
- /**
100
- * Handles clicks in the crafting room.
101
- * @returns {void} - Nothing
102
- */
103
- declare function CraftingClick(): void;
97
+ declare function CraftingClick(event: MouseEvent | TouchEvent): void;
104
98
  /**
105
99
  * Refreshes the preview model with a slight delay so the item color process is done
106
100
  * @returns {void} - Nothing
@@ -181,18 +175,12 @@ declare let CraftingPreview: Character | null;
181
175
  declare let CraftingNakedPreview: boolean;
182
176
  /** Whether exiting the crafting menu should return you to the chatroom or, otherwise, the main hall. */
183
177
  declare let CraftingReturnToChatroom: boolean;
184
- /** Pagination offset used for the `Priority` {@link CraftingMode}. */
185
- declare let CraftingOverridePriorityOffset: number;
186
178
  /** List of item indices collected for swapping.
187
179
  * @type {number[]}
188
180
  */
189
181
  declare let CraftingReorderList: number[];
190
182
  /** @type {CraftingReorderType} */
191
183
  declare let CraftingReorderMode: CraftingReorderType;
192
- /**
193
- * @type {null | TextCache}
194
- */
195
- declare let CraftingLayerNames: null | TextCache;
196
184
  /**
197
185
  * A record mapping all crafting-valid asset names to a list of matching elligble assets.
198
186
  *
@@ -389,6 +389,7 @@ declare function ManagementContactOwner(): void;
389
389
  declare function ManagementReleaseFromOwner(RepChange: number): void;
390
390
  /**
391
391
  * Break ownership by another player
392
+ * @deprecated
392
393
  * @returns {void} - Nothing.
393
394
  */
394
395
  declare function ManagementBreakOnlineOwnership(): void;
@@ -385,6 +385,12 @@ declare function PlatformHasPerk(C: any, Perk: any): boolean;
385
385
  * @returns {boolean} - TRUE if active
386
386
  */
387
387
  declare function PlatformCooldownActive(Name: string): boolean;
388
+ /**
389
+ * Sets Bondage Brawl in standalone mode, not requiring any login from BC
390
+ * @returns {void} - Nothing
391
+ */
392
+ declare function PlatformRunStandalone(): void;
393
+ declare var PlatformRunStandaloneMode: boolean;
388
394
  declare var PlatformChar: any[];
389
395
  declare var PlatformFocusCharacter: any;
390
396
  declare var PlatformPlayer: any;
@@ -560,11 +560,6 @@ declare function PrivateShowTrialHours(): void;
560
560
  * @returns {void} - Nothing.
561
561
  */
562
562
  declare function PrivateActivityRun(LoveFactor: number): void;
563
- /**
564
- * Checks if the player is owned. (In general)
565
- * @returns {boolean} - Returns TRUE if the player has an owner.
566
- */
567
- declare function PrivatePlayerIsOwned(): boolean;
568
563
  /**
569
564
  * Checks if an NPC in the private room can be restrained by another.
570
565
  * @returns {boolean} - Returns TRUE if someone else in the room can be restrained by the player's owner, keep that target in a variable to be used later
@@ -1,9 +1,16 @@
1
1
  declare function Shop2Load(): void;
2
2
  declare function Shop2Click(event: MouseEvent | TouchEvent): void;
3
+ declare function Shop2Draw(): void;
3
4
  declare function Shop2Run(time: number): void;
5
+ declare function Shop2Resize(load: boolean): void;
4
6
  declare function Shop2Unload(): void;
5
7
  declare function Shop2Exit(): void;
6
8
  declare var Shop2Background: string;
9
+ declare namespace ShopDropdownState {
10
+ let NONE: "None";
11
+ let GROUP: "Group";
12
+ let POSE: "Pose";
13
+ }
7
14
  /**
8
15
  * Namespace with shop-specific variables that are expected to mutate over the course of the (sub-)screens lifetime
9
16
  * @namespace
@@ -50,10 +57,10 @@ declare const Shop2Vars: VariableContainer<{
50
57
  */
51
58
  PreviewItems: ShopItem[];
52
59
  /**
53
- * Whether the group-selection dropdown menu should be displayed
54
- * @type {boolean}
60
+ * The currently active dropdown menu
61
+ * @type {ShopDropdownState}
55
62
  */
56
- DisplayDropdown: boolean;
63
+ DropdownState: ShopDropdownState;
57
64
  /**
58
65
  * A record mapping filter ID to filter callbacks.
59
66
  * Each callback is expected to return a list denoting for which modes the item is to-be shown.
@@ -135,11 +142,13 @@ declare namespace Shop2 {
135
142
  function _PopulateBuyGroups(): void;
136
143
  function _PopulateGroupDescriptions(assets: readonly ShopItem[]): void;
137
144
  function _PopulateKeysAndRemotes(): void;
138
- function _AssetElementRun(time: number, x: number, y: number, w: number, h: number, assetIndex: number): void;
145
+ function _AssetElementDraw(x: number, y: number, w: number, h: number, assetIndex: number): void;
139
146
  function _AssetElementClick(event: MouseEvent | TouchEvent, assetIndex: number): void;
140
147
  function _GenerateAssetElements(): Record<string, ShopScreenFunctions>;
141
148
  function ApplyItemFilters(): void;
142
149
  function _SetCheckboxFilters(): void;
150
+ function _UpdatePoseButtons(): void;
151
+ function _ClickDropdown(): void;
143
152
  let DrawPriceRibbon: (label: string, x: number, y: number, w: number, color?: string) => void;
144
153
  function ParseAssets(assets: readonly Asset[]): ShopItem[];
145
154
  let Elements: Record<string, ShopScreenFunctions>;
@@ -37,10 +37,10 @@ declare function ActivityGetAllMirrorGroups(family: IAssetFamily, groupName: Ass
37
37
  /**
38
38
  * Check if any activities are possible for a character's given group.
39
39
  * @param {Character} C - The character on which the check is done
40
- * @param {AssetGroupName} GroupName - The group to check access on
40
+ * @param {AssetGroupItemName} GroupName - The group to check access on
41
41
  * @returns {boolean} Whether any activity is possible
42
42
  */
43
- declare function ActivityPossibleOnGroup(C: Character, GroupName: AssetGroupName): boolean;
43
+ declare function ActivityPossibleOnGroup(C: Character, GroupName: AssetGroupItemName): boolean;
44
44
  /**
45
45
  * Check whether a given activity can be performed on a group
46
46
  * @param {Character} char - The character being targeted
@@ -51,12 +51,12 @@ declare function ActivityPossibleOnGroup(C: Character, GroupName: AssetGroupName
51
51
  declare function ActivityHasValidTarget(char: Character, act: Activity, group: AssetGroup): boolean;
52
52
  /**
53
53
  * Check that an activity is permitted by an actor's settings.
54
- * @param {Activity} activity - The activity to consider
55
- * @param {Character|PlayerCharacter} character - The character to check with
56
- * @param {boolean} onOther - Whether we look at doing to or being done on
54
+ * @param {Activity} A - The activity to consider
55
+ * @param {Character|PlayerCharacter} C - The character to check with
56
+ * @param {boolean} Other - Whether we look at doing to or being done on
57
57
  * @returns {boolean} whether the activity is permitted
58
58
  */
59
- declare function ActivityCheckPermissions(activity: Activity, character: Character | PlayerCharacter, onOther: boolean): boolean;
59
+ declare function ActivityCheckPermissions(A: Activity, C: Character | PlayerCharacter, Other: boolean): boolean;
60
60
  /**
61
61
  * Check that that a given prerequisite is met.
62
62
  * @param {ActivityPrerequisite} prereq - The prerequisite to consider
@@ -193,6 +193,12 @@ declare function AssetLayerSort(layers: AssetLayer[]): AssetLayer[];
193
193
  * @returns {string[]} See {@link Asset.DefaultColor}
194
194
  */
195
195
  declare function AssetParseDefaultColor(colorableLayerCount: number, fillValue: string, color?: string | readonly string[]): string[];
196
+ /**
197
+ * Get the translated string for an asset-specific message
198
+ * @param {string} msg
199
+ * @returns {string}
200
+ */
201
+ declare function AssetTextGet(msg: string): string;
196
202
  /** @type {Asset[]} */
197
203
  declare var Asset: Asset[];
198
204
  /** @type {AssetGroup[]} */
@@ -243,4 +249,5 @@ declare namespace AssetResolveCopyConfig {
243
249
  export { AssetDefinition_1 as AssetDefinition };
244
250
  export function ExtendedItemConfig(asset: Asset, config: AssetArchetypeConfig, extendedConfig: Partial<Record<AssetGroupName, ExtendedItemGroupConfig>>): AssetArchetypeConfig;
245
251
  }
252
+ declare const AssetStringsPath: "Assets/Female3DCG/AssetStrings.csv";
246
253
  type AssetCopyConfigValidator<T> = (config: T, superConfig: T, key: string, superKey: string) => boolean;
@@ -377,11 +377,16 @@ declare function CharacterTransferItem(FromC: Character, ToC: Character, Group:
377
377
  */
378
378
  declare function CharacterHasArousalEnabled(C: Character): boolean;
379
379
  /**
380
- * Removes all ownership and owner-only data
380
+ * Clears a character's ownership.
381
+ *
382
+ * If the character is the player, this will also cleanup rules,
383
+ * owner-locked items, and trigger a server ownership break-up.
384
+ *
381
385
  * @param {Character} C - The character breaking from their owner
386
+ * @param {boolean} push - Whether to push the data to the server
382
387
  * @returns {void} - Nothing.
383
388
  */
384
- declare function CharacterClearOwnership(C: Character): void;
389
+ declare function CharacterClearOwnership(C: Character, push?: boolean): void;
385
390
  /**
386
391
  * Returns the nickname of a character, or the name if the nickname isn't valid
387
392
  * Also validates if the character is a GGTS drone to alter her name
@@ -517,9 +517,10 @@ declare function DialogDrawSavedExpressionsMenu(): void;
517
517
  declare function DialogClickSavedExpressionsMenu(): void;
518
518
  /**
519
519
  * Build the initial state of the pose menu
520
+ * @param {Character} [C] The character for whom {@link DialogActivePoses} whill be constructed; defaults to {@link CurrentCharacter}
520
521
  * @returns {void} - Nothing
521
522
  */
522
- declare function DialogLoadPoseMenu(): void;
523
+ declare function DialogLoadPoseMenu(C?: Character): void;
523
524
  /**
524
525
  * Handles the Click events in the Dialog Screen
525
526
  * @returns {boolean} - Whether a button was clicked
@@ -739,6 +740,15 @@ declare function DialogSelfMenuDraw(C: Character): void;
739
740
  * @param {Character} C - The currently focused character
740
741
  */
741
742
  declare function DialogSelfMenuClick(C: Character): void;
743
+ /**
744
+ * Draw the pagination buttons to the side of the inventory grid
745
+ */
746
+ declare function DialogPaginateDraw(): void;
747
+ /**
748
+ * Handle clicks of the pagination buttons
749
+ * @returns {boolean} - Whether a pgination button was clicked
750
+ */
751
+ declare function DialogPaginateClick(): boolean;
742
752
  /**
743
753
  * Draws the initial Dialog screen.
744
754
  *
@@ -69,6 +69,11 @@ declare function IsAssetGroupNameDictionaryEntry(entry: ChatMessageDictionaryEnt
69
69
  * @returns {entry is ActivityNameDictionaryEntry}
70
70
  */
71
71
  declare function IsActivityNameDictionaryEntry(entry: ChatMessageDictionaryEntry): entry is ActivityNameDictionaryEntry;
72
+ /**
73
+ * @param {ChatMessageDictionaryEntry} entry
74
+ * @returns {entry is MessageEffectEntry}
75
+ */
76
+ declare function IsMessageEffectDictionaryEntry(entry: ChatMessageDictionaryEntry): entry is MessageEffectEntry;
72
77
  /**
73
78
  * Build class for chat message dictionaries
74
79
  */