bc-stubs 113.0.0 → 114.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.
- package/bc/NativeDeclarations/Female3DCG_Types.d.ts +3 -2
- package/bc/NativeDeclarations/FriendList.d.ts +1 -1
- package/bc/NativeDeclarations/Messages.d.ts +8 -7
- package/bc/NativeDeclarations/Typedef.d.ts +220 -70
- package/bc/Screens/Character/Appearance/Appearance.d.ts +4 -5
- package/bc/Screens/Character/BackgroundSelection/BackgroundSelection.d.ts +2 -3
- package/bc/Screens/Character/FriendList/FriendList.d.ts +2 -2
- package/bc/Screens/Character/InformationSheet/InformationSheet.d.ts +2 -3
- package/bc/Screens/Character/Login/Login.d.ts +3 -2
- package/bc/Screens/Character/Preference/Difficulty.d.ts +2 -2
- package/bc/Screens/Character/Preference/Preference.d.ts +167 -0
- package/bc/Screens/Character/Relog/Relog.d.ts +2 -7
- package/bc/Screens/MiniGame/WheelFortune/WheelFortune.d.ts +2 -3
- package/bc/Screens/Online/ChatBlockItem/ChatBlockItem.d.ts +2 -4
- package/bc/Screens/Online/ChatRoom/ChatRoom.d.ts +4 -3
- package/bc/Screens/Online/ChatSearch/ChatSearch.d.ts +4 -5
- package/bc/Screens/Room/Crafting/Crafting.d.ts +2 -2
- package/bc/Screens/Room/MaidQuarters/MaidQuarters.d.ts +2 -2
- package/bc/Screens/Room/MainHall/MainHall.d.ts +34 -4
- package/bc/Screens/Room/Private/Private.d.ts +2 -2
- package/bc/Screens/Room/Shop2/Shop2.d.ts +4 -4
- package/bc/Scripts/Character.d.ts +9 -2
- package/bc/Scripts/Common.d.ts +16 -7
- package/bc/Scripts/Dialog.d.ts +29 -4
- package/bc/Scripts/Element.d.ts +19 -39
- package/bc/Scripts/Inventory.d.ts +13 -15
- package/bc/Scripts/MiniGame.d.ts +2 -2
- package/bc/Scripts/Preference.d.ts +5 -8
- package/bc/Scripts/Reputation.d.ts +2 -2
- package/bc/Scripts/Server.d.ts +10 -2
- package/bc/Scripts/Skill.d.ts +2 -2
- package/bc/Scripts/Text.d.ts +2 -1
- package/bc/Scripts/Translation.d.ts +10 -2
- package/bc/Scripts/Validation.d.ts +1 -1
- package/package.json +1 -1
|
@@ -694,8 +694,10 @@ interface AssetDefinitionBase extends AssetCommonPropertiesGroupAsset, AssetComm
|
|
|
694
694
|
* When the asset is added to a character, the member number of the character using the
|
|
695
695
|
* asset will be stored along in its properties, and all subsequent modifications will
|
|
696
696
|
* only be possible for that character.
|
|
697
|
+
*
|
|
698
|
+
* @deprecated Discontinued in favor of the {@link FamilyOnly}/{@link LoverOnly}/{@link OwnerOnly} trio
|
|
697
699
|
*/
|
|
698
|
-
CharacterRestricted?:
|
|
700
|
+
CharacterRestricted?: never;
|
|
699
701
|
AllowRemoveExclusive?: boolean;
|
|
700
702
|
|
|
701
703
|
DynamicBeforeDraw?: boolean;
|
|
@@ -774,7 +776,6 @@ declare namespace AssetDefinition {
|
|
|
774
776
|
AlwaysExtend?: false;
|
|
775
777
|
AlwaysInteract?: false;
|
|
776
778
|
ArousalZone?: never;
|
|
777
|
-
CharacterRestricted?: false;
|
|
778
779
|
CraftGroup?: never;
|
|
779
780
|
CustomBlindBackground?: never;
|
|
780
781
|
Difficulty?: never;
|
|
@@ -3,7 +3,7 @@ type FriendListMode = "OnlineFriends" | "Beeps" | "AllFriends";
|
|
|
3
3
|
type FriendListSortingMode = 'None' | 'MemberName' | 'MemberNickname' | 'MemberNumber' | 'ChatRoomName' | 'RelationType';
|
|
4
4
|
type FriendListSortingDirection = 'Asc' | 'Desc';
|
|
5
5
|
|
|
6
|
-
type FriendListReturn = { Screen:
|
|
6
|
+
type FriendListReturn<T extends ModuleType> = { Screen: ModuleScreens[T], Module: T, IsInChatRoom?: boolean, hasScrolledChat?: boolean };
|
|
7
7
|
|
|
8
8
|
type FriendRawData = {
|
|
9
9
|
memberNumber?: number; /* undefined for NPCs */
|
|
@@ -52,11 +52,12 @@ interface ServerAccountData extends ServerAccountImmutableData {
|
|
|
52
52
|
/** String-based values have been deprecated as of BondageProjects/Bondage-College#2138 */
|
|
53
53
|
Inventory?: string | Partial<Record<AssetGroupName, string[]>>;
|
|
54
54
|
InventoryData?: string;
|
|
55
|
-
|
|
55
|
+
/** Initialized by {@link CharacterCreate} */
|
|
56
|
+
AssetFamily: "Female3DCG";
|
|
56
57
|
Infiltration?: InfiltrationType;
|
|
57
58
|
SavedColors?: HSVColor[];
|
|
58
59
|
ChatSearchFilterTerms?: string;
|
|
59
|
-
Difficulty?: { Level:
|
|
60
|
+
Difficulty?: { Level: DifficultyLevel; LastChange: number };
|
|
60
61
|
MapData?: ChatRoomMapData;
|
|
61
62
|
PrivateCharacter?: ServerPrivateCharacterData[];
|
|
62
63
|
SavedExpressions?: ({ Group: ExpressionGroupName, CurrentExpression?: ExpressionName }[] | null)[];
|
|
@@ -276,7 +277,7 @@ type ServerChatRoomSettings = Partial<ServerChatRoomData> & {
|
|
|
276
277
|
|
|
277
278
|
//#region Requests & Responses
|
|
278
279
|
|
|
279
|
-
type ServerLoginResponse = "InvalidNamePassword" |
|
|
280
|
+
type ServerLoginResponse = "InvalidNamePassword" | ServerAccountData;
|
|
280
281
|
|
|
281
282
|
type ServerLoginQueueResponse = number;
|
|
282
283
|
|
|
@@ -958,17 +959,17 @@ interface ServerCharacterArousalResponse {
|
|
|
958
959
|
|
|
959
960
|
interface ServerCharacterItemUpdate {
|
|
960
961
|
Target: number;
|
|
961
|
-
Group:
|
|
962
|
+
Group: AssetGroupName;
|
|
962
963
|
Name?: string;
|
|
963
964
|
Color: string | string[];
|
|
964
965
|
Difficulty: number;
|
|
965
|
-
Property
|
|
966
|
-
Craft
|
|
966
|
+
Property?: ItemProperties;
|
|
967
|
+
Craft?: CraftingItem;
|
|
967
968
|
}
|
|
968
969
|
|
|
969
970
|
interface ServerChatRoomSyncItemResponse {
|
|
970
971
|
Source: number;
|
|
971
|
-
Item:
|
|
972
|
+
Item: ServerCharacterItemUpdate;
|
|
972
973
|
}
|
|
973
974
|
|
|
974
975
|
type ServerChatRoomUpdateResponse = "RoomAlreadyExist" | "Updated" | "InvalidRoomData";
|
|
@@ -98,10 +98,18 @@ type HTMLElementScalarTagNameMap = {
|
|
|
98
98
|
type HTMLOptions<T extends keyof HTMLElementTagNameMap> = {
|
|
99
99
|
/** The elements HTML tag */
|
|
100
100
|
tag: T,
|
|
101
|
-
/**
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
101
|
+
/**
|
|
102
|
+
* Scalar-valued attributes that will be set on the HTML element.
|
|
103
|
+
*
|
|
104
|
+
* Note that booleans are interpretted as [boolean attributes](https://developer.mozilla.org/en-US/docs/Glossary/Boolean/HTML).
|
|
105
|
+
*/
|
|
106
|
+
attributes?: Partial<Record<string, number | boolean | string>>;
|
|
107
|
+
/**
|
|
108
|
+
* Data attributes that will be set on the HTML element (see {@link HTMLElement.dataset}).
|
|
109
|
+
*
|
|
110
|
+
* Note that booleans are interpretted as [boolean attributes](https://developer.mozilla.org/en-US/docs/Glossary/Boolean/HTML).
|
|
111
|
+
*/
|
|
112
|
+
dataAttributes?: Partial<Record<string, number | string | boolean>>;
|
|
105
113
|
/** CSS style declarations that will be set on the HTML element (see {@link HTMLElement.style}). */
|
|
106
114
|
style?: Record<string, string>;
|
|
107
115
|
/** Event listeners that will be attached to the HTML element (see {@link HTMLElement.addEventListener}). */
|
|
@@ -122,10 +130,23 @@ interface HTMLElementEventMap {
|
|
|
122
130
|
}
|
|
123
131
|
|
|
124
132
|
declare namespace ElementButton {
|
|
133
|
+
/** An input type for representing one or more text nodes and/or **non-interactive** DOM elements (_e.g._ `<i>` or `<code>`) */
|
|
134
|
+
type StaticNode = null | string | Node | HTMLOptions<any> | readonly (null | undefined | string | Node | HTMLOptions<any>)[];
|
|
135
|
+
|
|
136
|
+
/** Input options for creating custom button icons */
|
|
137
|
+
interface CustomIcon {
|
|
138
|
+
/** The {@link HTMLImageElement.src} of the icon */
|
|
139
|
+
iconSrc: string,
|
|
140
|
+
/** The internal ID of the icon */
|
|
141
|
+
name: string,
|
|
142
|
+
/** The tooltip component associated with the icon */
|
|
143
|
+
tooltipText?: StaticNode,
|
|
144
|
+
}
|
|
145
|
+
|
|
125
146
|
/** Various options that can be passed along to {@link ElementButton.Create} */
|
|
126
147
|
interface Options {
|
|
127
148
|
/** Optional tooltip content. If not supplied then one should manually prepend it to the tooltip later */
|
|
128
|
-
tooltip?:
|
|
149
|
+
tooltip?: StaticNode;
|
|
129
150
|
/** The position of the tooltip w.r.t. the button */
|
|
130
151
|
tooltipPosition?: "left" | "right" | "top" | "bottom";
|
|
131
152
|
/**
|
|
@@ -136,7 +157,7 @@ declare namespace ElementButton {
|
|
|
136
157
|
*/
|
|
137
158
|
tooltipRole?: "label" | "description" | "none";
|
|
138
159
|
/** A button label */
|
|
139
|
-
label?:
|
|
160
|
+
label?: StaticNode;
|
|
140
161
|
/** The position of the button label */
|
|
141
162
|
labelPosition?: "top" | "center" | "bottom";
|
|
142
163
|
/** A background image for the button */
|
|
@@ -146,7 +167,7 @@ declare namespace ElementButton {
|
|
|
146
167
|
*
|
|
147
168
|
* Alternatively, one can directly pass the icon's {@link HTMLImageElement.src} and its tooltip component.
|
|
148
169
|
*/
|
|
149
|
-
icons?: readonly (null |
|
|
170
|
+
icons?: readonly (null | undefined | InventoryIcon | CustomIcon)[];
|
|
150
171
|
/** The role of the button. All accepted values are currently special-cased in order to set role-specific event listeners and/or attributes. */
|
|
151
172
|
role?: "radio" | "checkbox" | "menuitemradio" | "menuitemcheckbox";
|
|
152
173
|
/** Whether to limit the default styling of the button's border and background */
|
|
@@ -299,7 +320,7 @@ type DialogSortOrder = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
|
|
|
299
320
|
|
|
300
321
|
type DialogStruggleActionType = "ActionUse" | "ActionSwap" | "ActionRemove" | "ActionUnlock" | "ActionUnlockAndRemove" | "ActionStruggle" | "ActionEscape" | "ActionDismount";
|
|
301
322
|
|
|
302
|
-
type CharacterType = "online" | "npc" | "simple";
|
|
323
|
+
type CharacterType = "player" | "online" | "npc" | "simple";
|
|
303
324
|
|
|
304
325
|
type CharacterPronouns = "SheHer" | "HeHim";
|
|
305
326
|
|
|
@@ -584,7 +605,101 @@ type TitleName =
|
|
|
584
605
|
|
|
585
606
|
type MagicSchoolHouse = "Maiestas" | "Vincula" | "Amplector" | "Corporis";
|
|
586
607
|
|
|
587
|
-
type ModuleType =
|
|
608
|
+
type ModuleType = keyof ModuleScreens;
|
|
609
|
+
|
|
610
|
+
interface ModuleScreens {
|
|
611
|
+
Character:
|
|
612
|
+
| "Appearance"
|
|
613
|
+
| "BackgroundSelection"
|
|
614
|
+
| "Cheat"
|
|
615
|
+
| "Creation"
|
|
616
|
+
| "Disclaimer"
|
|
617
|
+
| "FriendList"
|
|
618
|
+
| "InformationSheet"
|
|
619
|
+
| "ItemColor"
|
|
620
|
+
| "Login"
|
|
621
|
+
| "OnlineProfile"
|
|
622
|
+
| "PasswordReset"
|
|
623
|
+
| "Player"
|
|
624
|
+
| "Preference"
|
|
625
|
+
| "Relog"
|
|
626
|
+
| "Title"
|
|
627
|
+
| "Wardrobe"
|
|
628
|
+
;
|
|
629
|
+
Cutscene:
|
|
630
|
+
| "NPCCollaring"
|
|
631
|
+
| "NPCSlaveAuction"
|
|
632
|
+
| "NPCWedding"
|
|
633
|
+
| "PlayerCollaring"
|
|
634
|
+
| "PlayerMistress"
|
|
635
|
+
| "SarahIntro"
|
|
636
|
+
;
|
|
637
|
+
MiniGame:
|
|
638
|
+
| "Chess" | "ChestLockpick"
|
|
639
|
+
| "ClubCard" | "ClubCardBuilder"
|
|
640
|
+
| "DojoStruggle"
|
|
641
|
+
| "GetUp"
|
|
642
|
+
| "HorseWalk"
|
|
643
|
+
| "Kidnap"
|
|
644
|
+
| "KinkyDungeon"
|
|
645
|
+
| "Lockpick"
|
|
646
|
+
| "MagicBattle" | "MagicPuzzle"
|
|
647
|
+
| "MaidCleaning" | "MaidDrinks"
|
|
648
|
+
| "PlayerAuction"
|
|
649
|
+
| "PuppyWalker"
|
|
650
|
+
| "RhythmGame"
|
|
651
|
+
| "SlaveAuction"
|
|
652
|
+
| "Tennis"
|
|
653
|
+
| "Therapy"
|
|
654
|
+
| "WheelFortune"
|
|
655
|
+
;
|
|
656
|
+
Online:
|
|
657
|
+
| "AdvancedRule"
|
|
658
|
+
| "ChatAdmin" | "ChatAdminRoomCustomization" | "ChatBlockItem"
|
|
659
|
+
| "ChatRoom" | "ChatSearch" | "ChatSelect"
|
|
660
|
+
| "ForbiddenWords"
|
|
661
|
+
| "Game" | "GameClubCard" | "GameLARP" | "GameMagicBattle"
|
|
662
|
+
| "NicknameManagement"
|
|
663
|
+
| "WheelFortuneCustomize"
|
|
664
|
+
;
|
|
665
|
+
Room:
|
|
666
|
+
| "Arcade"
|
|
667
|
+
| "AsylumBedroom" | "AsylumEntrance" | "AsylumGGTS" | "AsylumMeeting" | "AsylumTherapy"
|
|
668
|
+
| "Cafe" | "Cell" | "ClubCardLounge"
|
|
669
|
+
| "CollegeCafeteria" | "CollegeChess" | "CollegeDetention" | "CollegeEntrance" | "CollegeTeacher" | "CollegeTennis" | "CollegeTheater"
|
|
670
|
+
| "Crafting" | "DailyJob" | "Empty" | "Gambling"
|
|
671
|
+
| "Infiltration" | "InfiltrationPerks"
|
|
672
|
+
| "Introduction"
|
|
673
|
+
| "KidnapLeague"
|
|
674
|
+
| "LARP"
|
|
675
|
+
| "Magic" | "MagicSchoolEscape" | "MagicSchoolLaboratory"
|
|
676
|
+
| "MaidQuarters" | "MainHall" | "Management" | "MovieStudio" | "Nursery"
|
|
677
|
+
| "Pandora" | "PandoraPrison"
|
|
678
|
+
| "Photographic"
|
|
679
|
+
| "Platform" | "PlatformIntro" | "PlatformDialog" | "PlatformProfile"
|
|
680
|
+
| "Poker" | "Prison"
|
|
681
|
+
| "Private" | "PrivateBed" | "PrivateRansom"
|
|
682
|
+
| "Sarah"
|
|
683
|
+
| "Shibari"
|
|
684
|
+
| "Shop" | "Shop2"
|
|
685
|
+
| "SlaveMarket" | "Stable"
|
|
686
|
+
;
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
type RoomName = ModuleScreens[ModuleType];
|
|
690
|
+
|
|
691
|
+
interface RelogDataBase<T extends ModuleType> {
|
|
692
|
+
Screen: ModuleScreens[T],
|
|
693
|
+
Module: T,
|
|
694
|
+
Character: Character,
|
|
695
|
+
ChatRoomName: string | null,
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
type _RelogDataMap<T> = T extends ModuleType ? RelogDataBase<T> : never;
|
|
699
|
+
type RelogData = _RelogDataMap<ModuleType>;
|
|
700
|
+
|
|
701
|
+
type _ScreenSpecifier<T extends ModuleType> = [module: T, screen: ModuleScreens[T]];
|
|
702
|
+
type ScreenSpecifier = _ScreenSpecifier<"Character"> | _ScreenSpecifier<"Cutscene"> | _ScreenSpecifier<"MiniGame"> | _ScreenSpecifier<"Online"> | _ScreenSpecifier<"Room">;
|
|
588
703
|
|
|
589
704
|
type AssetCategory = "Medical" | "Extreme" | "Pony" | "SciFi" | "ABDL" | "Fantasy";
|
|
590
705
|
|
|
@@ -1088,7 +1203,16 @@ interface Asset {
|
|
|
1088
1203
|
readonly DynamicGroupName: AssetGroupName;
|
|
1089
1204
|
readonly DynamicActivity: (C: Character) => ActivityName | null | undefined;
|
|
1090
1205
|
readonly DynamicAudio: ((C: Character) => string) | null;
|
|
1091
|
-
|
|
1206
|
+
/**
|
|
1207
|
+
* Whether the asset is restricted to a given character.
|
|
1208
|
+
*
|
|
1209
|
+
* When the asset is added to a character, the member number of the character using the
|
|
1210
|
+
* asset will be stored along in its properties, and all subsequent modifications will
|
|
1211
|
+
* only be possible for that character.
|
|
1212
|
+
*
|
|
1213
|
+
* @deprecated Discontinued in favor of the {@link FamilyOnly}/{@link LoverOnly}/{@link OwnerOnly} trio
|
|
1214
|
+
*/
|
|
1215
|
+
readonly CharacterRestricted?: never;
|
|
1092
1216
|
readonly AllowRemoveExclusive: boolean;
|
|
1093
1217
|
readonly InheritColor: null | AssetGroupName;
|
|
1094
1218
|
readonly DynamicBeforeDraw: boolean;
|
|
@@ -1455,15 +1579,30 @@ interface Character {
|
|
|
1455
1579
|
/** The asset family used by the character */
|
|
1456
1580
|
AssetFamily: IAssetFamily;
|
|
1457
1581
|
Name: string;
|
|
1458
|
-
Nickname?: string;
|
|
1582
|
+
Nickname?: string; // technically never as it's Online-only
|
|
1459
1583
|
Owner: string;
|
|
1460
1584
|
Lover: string;
|
|
1461
1585
|
Money: number;
|
|
1462
1586
|
Inventory: InventoryItem[];
|
|
1463
1587
|
InventoryData?: string;
|
|
1464
1588
|
Appearance: Item[];
|
|
1465
|
-
|
|
1466
|
-
|
|
1589
|
+
/**
|
|
1590
|
+
* @private
|
|
1591
|
+
* @see {@link Character.Stage}
|
|
1592
|
+
*/
|
|
1593
|
+
_Stage: string;
|
|
1594
|
+
/** Set or get the current stage, performing a dialog {@link DialogMenu.Reload} if required */
|
|
1595
|
+
get Stage(): string;
|
|
1596
|
+
set Stage(value: string);
|
|
1597
|
+
/**
|
|
1598
|
+
* @private
|
|
1599
|
+
* @see {@link Character.CurrentDialog}
|
|
1600
|
+
*/
|
|
1601
|
+
_CurrentDialog: string;
|
|
1602
|
+
ClickedOption: null | string;
|
|
1603
|
+
/** Set or get the current dialog, performing a dialog status update if required (see {@link DialogSetStatus}) */
|
|
1604
|
+
get CurrentDialog(): string;
|
|
1605
|
+
set CurrentDialog(value: string);
|
|
1467
1606
|
Dialog: DialogLine[];
|
|
1468
1607
|
Reputation: Reputation[];
|
|
1469
1608
|
Skill: Skill[];
|
|
@@ -1539,9 +1678,9 @@ interface Character {
|
|
|
1539
1678
|
WhiteList: number[];
|
|
1540
1679
|
HeightModifier: number;
|
|
1541
1680
|
MemberNumber?: number;
|
|
1542
|
-
ItemPermission
|
|
1543
|
-
Ownership
|
|
1544
|
-
Lovership
|
|
1681
|
+
ItemPermission: 0 | 1 | 2 | 3 | 4 | 5;
|
|
1682
|
+
Ownership: Ownership | null;
|
|
1683
|
+
Lovership: Lovership[];
|
|
1545
1684
|
ExpressionQueue?: ExpressionQueueItem[];
|
|
1546
1685
|
CanTalk: () => boolean;
|
|
1547
1686
|
CanWalk: () => boolean;
|
|
@@ -1659,31 +1798,29 @@ interface Character {
|
|
|
1659
1798
|
HasVagina: () => boolean;
|
|
1660
1799
|
IsFlatChested: () => boolean;
|
|
1661
1800
|
WearingCollar: () => boolean;
|
|
1801
|
+
|
|
1662
1802
|
// Properties created in other places
|
|
1663
|
-
ArousalSettings
|
|
1664
|
-
AppearanceFull?: Item[];
|
|
1803
|
+
ArousalSettings: ArousalSettingsType;
|
|
1804
|
+
AppearanceFull?: Item[]; // Private NPCs only
|
|
1665
1805
|
// Online character properties
|
|
1666
1806
|
Title?: TitleName;
|
|
1667
1807
|
LabelColor?: HexColor;
|
|
1668
|
-
Creation?: number;
|
|
1669
|
-
Description?: string;
|
|
1670
|
-
OnlineSharedSettings?: CharacterOnlineSharedSettings;
|
|
1671
|
-
Game?: CharacterGameParameters;
|
|
1808
|
+
Creation?: number; // technically never as it is Online-only
|
|
1809
|
+
Description?: string; // technically never as it is Online-only
|
|
1810
|
+
OnlineSharedSettings?: CharacterOnlineSharedSettings; // technically never as it is Online-only
|
|
1811
|
+
Game?: CharacterGameParameters; // technically never as it is Online-only
|
|
1672
1812
|
MapData?: ChatRoomMapData;
|
|
1673
1813
|
BlackList: number[];
|
|
1674
1814
|
RunScripts?: boolean;
|
|
1675
1815
|
HasScriptedAssets?: boolean;
|
|
1676
1816
|
Cage?: boolean;
|
|
1677
|
-
Difficulty?: {
|
|
1678
|
-
Level: number;
|
|
1679
|
-
LastChange?: number;
|
|
1680
|
-
};
|
|
1817
|
+
Difficulty?: { Level: number }; // technically never as it is Online-only
|
|
1681
1818
|
ArousalZoom?: boolean;
|
|
1682
1819
|
FixedImage?: string;
|
|
1683
1820
|
Rule?: LogRecord[];
|
|
1684
1821
|
Status?: string | null;
|
|
1685
1822
|
StatusTimer?: number;
|
|
1686
|
-
Crafting
|
|
1823
|
+
Crafting: (CraftingItem | null)[]; // technically never as it is Online-only
|
|
1687
1824
|
LastMapData?: ChatRoomMapData;
|
|
1688
1825
|
/**
|
|
1689
1826
|
* The custom background to use for the current room
|
|
@@ -1849,35 +1986,57 @@ interface ControllerSettingsOld {
|
|
|
1849
1986
|
ControllerDPadRight: number;
|
|
1850
1987
|
}
|
|
1851
1988
|
|
|
1989
|
+
type DifficultyLevel =
|
|
1990
|
+
| 0 // Roleplay
|
|
1991
|
+
| 1 // Regular
|
|
1992
|
+
| 2 // Hardcore
|
|
1993
|
+
| 3 // Extreme
|
|
1994
|
+
;
|
|
1995
|
+
|
|
1852
1996
|
interface PlayerCharacter extends Character {
|
|
1997
|
+
// All the following are guaranteed to be set on login
|
|
1998
|
+
MemberNumber: number;
|
|
1999
|
+
Nickname: string;
|
|
2000
|
+
LabelColor: HexColor;
|
|
2001
|
+
Game: CharacterGameParameters;
|
|
2002
|
+
Description: string;
|
|
2003
|
+
Creation: number;
|
|
2004
|
+
Difficulty: {
|
|
2005
|
+
Level: DifficultyLevel;
|
|
2006
|
+
LastChange?: number;
|
|
2007
|
+
};
|
|
2008
|
+
Crafting: (null | CraftingItem)[];
|
|
2009
|
+
ItemPermission: 0 | 1 | 2 | 3 | 4 | 5;
|
|
2010
|
+
|
|
1853
2011
|
// PreferenceInitPlayer() must be updated with defaults, when adding a new setting
|
|
1854
|
-
ChatSettings
|
|
1855
|
-
VisualSettings
|
|
1856
|
-
AudioSettings
|
|
1857
|
-
ControllerSettings
|
|
1858
|
-
GameplaySettings
|
|
1859
|
-
ImmersionSettings
|
|
2012
|
+
ChatSettings: ChatSettingsType;
|
|
2013
|
+
VisualSettings: VisualSettingsType;
|
|
2014
|
+
AudioSettings: AudioSettingsType;
|
|
2015
|
+
ControllerSettings: ControllerSettingsType;
|
|
2016
|
+
GameplaySettings: GameplaySettingsType;
|
|
2017
|
+
ImmersionSettings: ImmersionSettingsType;
|
|
1860
2018
|
/** The chat room we were previous in. Used for relog room re-creation */
|
|
1861
2019
|
// TODO: the fact that this is set *might* be used to also fold the "relog" enabled checks
|
|
1862
2020
|
// If we have a chatroom, then we relog to it. If we don't, then the player didn't have the
|
|
1863
2021
|
// setting enabled in the first place
|
|
1864
2022
|
LastChatRoom?: ChatRoomSettings;
|
|
1865
|
-
RestrictionSettings
|
|
1866
|
-
OnlineSettings
|
|
1867
|
-
GraphicsSettings
|
|
1868
|
-
NotificationSettings
|
|
2023
|
+
RestrictionSettings: RestrictionSettingsType;
|
|
2024
|
+
OnlineSettings: PlayerOnlineSettings;
|
|
2025
|
+
GraphicsSettings: GraphicsSettingsType;
|
|
2026
|
+
NotificationSettings: NotificationSettingsType;
|
|
2027
|
+
OnlineSharedSettings: CharacterOnlineSharedSettings; // technically never as it is Online-only
|
|
1869
2028
|
GhostList?: number[];
|
|
1870
|
-
Wardrobe
|
|
1871
|
-
WardrobeCharacterNames
|
|
2029
|
+
Wardrobe: ItemBundle[][];
|
|
2030
|
+
WardrobeCharacterNames: string[];
|
|
1872
2031
|
SavedExpressions?: ({ Group: ExpressionGroupName, CurrentExpression?: ExpressionName }[] | null)[];
|
|
1873
2032
|
SavedColors: HSVColor[];
|
|
1874
|
-
FriendList
|
|
1875
|
-
FriendNames
|
|
1876
|
-
SubmissivesList
|
|
1877
|
-
ChatSearchFilterTerms
|
|
2033
|
+
FriendList: number[];
|
|
2034
|
+
FriendNames: Map<number, string>;
|
|
2035
|
+
SubmissivesList: Set<number>;
|
|
2036
|
+
ChatSearchFilterTerms: string;
|
|
1878
2037
|
GenderSettings: GenderSettingsType;
|
|
1879
2038
|
/** The list of items we got confiscated in the Prison */
|
|
1880
|
-
ConfiscatedItems
|
|
2039
|
+
ConfiscatedItems: { Group: AssetGroupName, Name: string }[];
|
|
1881
2040
|
ExtensionSettings: ExtensionSettings;
|
|
1882
2041
|
}
|
|
1883
2042
|
|
|
@@ -1904,20 +2063,20 @@ interface NotificationSettingsType {
|
|
|
1904
2063
|
ChatMessage: NotificationSetting & {
|
|
1905
2064
|
/** @deprecated */
|
|
1906
2065
|
IncludeActions?: any;
|
|
1907
|
-
Mention
|
|
1908
|
-
Normal
|
|
1909
|
-
Whisper
|
|
1910
|
-
Activity
|
|
2066
|
+
Mention: boolean;
|
|
2067
|
+
Normal: boolean;
|
|
2068
|
+
Whisper: boolean;
|
|
2069
|
+
Activity: boolean;
|
|
1911
2070
|
};
|
|
1912
2071
|
/** @deprecated */
|
|
1913
2072
|
ChatActions?: any;
|
|
1914
2073
|
ChatJoin: NotificationSetting & {
|
|
1915
2074
|
/** @deprecated */
|
|
1916
2075
|
Enabled?: any;
|
|
1917
|
-
Owner
|
|
1918
|
-
Lovers
|
|
1919
|
-
Friendlist
|
|
1920
|
-
Subs
|
|
2076
|
+
Owner: boolean;
|
|
2077
|
+
Lovers: boolean;
|
|
2078
|
+
Friendlist: boolean;
|
|
2079
|
+
Subs: boolean;
|
|
1921
2080
|
};
|
|
1922
2081
|
Disconnect: NotificationSetting;
|
|
1923
2082
|
Larp: NotificationSetting;
|
|
@@ -1927,7 +2086,6 @@ interface NotificationSettingsType {
|
|
|
1927
2086
|
interface GraphicsSettingsType {
|
|
1928
2087
|
Font: GraphicsFontName;
|
|
1929
2088
|
InvertRoom: boolean;
|
|
1930
|
-
StimulationFlashes: boolean;
|
|
1931
2089
|
DoBlindFlash: boolean;
|
|
1932
2090
|
AnimationQuality: number;
|
|
1933
2091
|
StimulationFlash: boolean;
|
|
@@ -1992,16 +2150,6 @@ interface ChatSettingsType {
|
|
|
1992
2150
|
ShowChatHelp: boolean;
|
|
1993
2151
|
ShrinkNonDialogue: boolean;
|
|
1994
2152
|
WhiteSpace: "" | "Preserve";
|
|
1995
|
-
/** @deprecated */
|
|
1996
|
-
AutoBanBlackList?: any;
|
|
1997
|
-
/** @deprecated */
|
|
1998
|
-
AutoBanGhostList?: any;
|
|
1999
|
-
/** @deprecated */
|
|
2000
|
-
SearchFriendsFirst?: any;
|
|
2001
|
-
/** @deprecated */
|
|
2002
|
-
DisableAnimations?: any;
|
|
2003
|
-
/** @deprecated */
|
|
2004
|
-
SearchShowsFullRooms?: any;
|
|
2005
2153
|
CensoredWordsList: string;
|
|
2006
2154
|
CensoredWordsLevel: number;
|
|
2007
2155
|
/** Whether to preserve the chat log when switching rooms */
|
|
@@ -2031,10 +2179,10 @@ interface AudioSettingsType {
|
|
|
2031
2179
|
}
|
|
2032
2180
|
|
|
2033
2181
|
interface VisualSettingsType {
|
|
2034
|
-
ForceFullHeight
|
|
2035
|
-
UseCharacterInPreviews
|
|
2036
|
-
MainHallBackground
|
|
2037
|
-
PrivateRoomBackground
|
|
2182
|
+
ForceFullHeight: boolean;
|
|
2183
|
+
UseCharacterInPreviews: boolean;
|
|
2184
|
+
MainHallBackground: string;
|
|
2185
|
+
PrivateRoomBackground: string;
|
|
2038
2186
|
}
|
|
2039
2187
|
|
|
2040
2188
|
/**
|
|
@@ -2047,8 +2195,8 @@ interface PlayerOnlineSettings {
|
|
|
2047
2195
|
DisableAnimations: boolean;
|
|
2048
2196
|
SearchShowsFullRooms: boolean;
|
|
2049
2197
|
SearchFriendsFirst: boolean;
|
|
2050
|
-
SendStatus
|
|
2051
|
-
ShowStatus
|
|
2198
|
+
SendStatus: boolean;
|
|
2199
|
+
ShowStatus: boolean;
|
|
2052
2200
|
EnableAfkTimer: boolean;
|
|
2053
2201
|
ShowRoomCustomization: 0 | 1 | 2 | 3; // 0 - Never, 1 - No by default, 2 - Yes by default, 3 - Always
|
|
2054
2202
|
FriendListAutoRefresh: boolean;
|
|
@@ -2832,8 +2980,10 @@ interface ItemPropertiesCustom {
|
|
|
2832
2980
|
/**
|
|
2833
2981
|
* The member number of the player adding the item.
|
|
2834
2982
|
* Only set if the asset is marked as {@link AssetDefinition.CharacterRestricted}.
|
|
2983
|
+
*
|
|
2984
|
+
* @deprecated Discontinued in favor of the {@link Asset.FamilyOnly}/{@link Asset.LoverOnly}/{@link Asset.OwnerOnly} trio
|
|
2835
2985
|
*/
|
|
2836
|
-
ItemMemberNumber?:
|
|
2986
|
+
ItemMemberNumber?: never;
|
|
2837
2987
|
|
|
2838
2988
|
//#region Lock properties
|
|
2839
2989
|
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
declare function CharacterAppearanceBuildAssets(C: Character): void;
|
|
7
7
|
/**
|
|
8
8
|
* Makes sure the character appearance is valid from inventory and asset requirement. This function is called during the login process.
|
|
9
|
-
* @param {
|
|
9
|
+
* @param {PlayerCharacter} C - The character whose appearance is checked
|
|
10
10
|
* @returns {void} - Nothing
|
|
11
11
|
*/
|
|
12
|
-
declare function CharacterAppearanceValidate(C:
|
|
12
|
+
declare function CharacterAppearanceValidate(C: PlayerCharacter): void;
|
|
13
13
|
/**
|
|
14
14
|
* Resets the character to it's default appearance
|
|
15
15
|
* @param {Character} C - The character to redress to its default appearance
|
|
@@ -395,9 +395,8 @@ declare var CharacterAppearanceColorPickerRefreshTimer: any;
|
|
|
395
395
|
declare var CharacterAppearanceSelection: Character | null;
|
|
396
396
|
/** @type {(accept: boolean) => void} */
|
|
397
397
|
declare var CharacterAppearanceResultCallback: (accept: boolean) => void;
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
declare var CharacterAppearanceReturnModule: ModuleType;
|
|
398
|
+
/** @type {ScreenSpecifier} */
|
|
399
|
+
declare var CharacterAppearanceReturnScreen: ScreenSpecifier;
|
|
401
400
|
declare var CharacterAppearanceWardrobeOffset: number;
|
|
402
401
|
declare var CharacterAppearanceWardrobeText: string;
|
|
403
402
|
declare var CharacterAppearanceWardrobeName: string;
|
|
@@ -76,9 +76,8 @@ declare var BackgroundSelectionSize: number;
|
|
|
76
76
|
declare var BackgroundSelectionOffset: number;
|
|
77
77
|
/** @type {null | ((selection: string) => void)} */
|
|
78
78
|
declare var BackgroundSelectionCallback: null | ((selection: string) => void);
|
|
79
|
-
/** @type {
|
|
80
|
-
declare var
|
|
81
|
-
declare var BackgroundSelectionPreviousScreen: string;
|
|
79
|
+
/** @type {ScreenSpecifier | null} */
|
|
80
|
+
declare var BackgroundSelectionReturnScreen: ScreenSpecifier | null;
|
|
82
81
|
/** @type {{ Name: string, Description: string, Low: string }[]} */
|
|
83
82
|
declare var BackgroundSelectionAll: {
|
|
84
83
|
Name: string;
|
|
@@ -90,8 +90,8 @@ declare function FriendListToggleAutoRefresh(this: HTMLButtonElement): void;
|
|
|
90
90
|
declare var FriendListBackground: string;
|
|
91
91
|
/** @type {number[]} */
|
|
92
92
|
declare var FriendListConfirmDelete: number[];
|
|
93
|
-
/** @type {FriendListReturn | null} */
|
|
94
|
-
declare var FriendListReturn: FriendListReturn | null;
|
|
93
|
+
/** @type {FriendListReturn<any> | null} */
|
|
94
|
+
declare var FriendListReturn: FriendListReturn<any> | null;
|
|
95
95
|
/** @type {FriendListModes} */
|
|
96
96
|
declare var FriendListMode: FriendListModes;
|
|
97
97
|
declare var FriendListModeIndex: number;
|
|
@@ -29,7 +29,6 @@ declare function InformationSheetLoadCharacter(C: Character): void;
|
|
|
29
29
|
declare var InformationSheetBackground: string;
|
|
30
30
|
/** @type {null | Character | NPCCharacter} */
|
|
31
31
|
declare var InformationSheetSelection: null | Character | NPCCharacter;
|
|
32
|
-
/** @type {
|
|
33
|
-
declare var
|
|
34
|
-
declare var InformationSheetPreviousScreen: string;
|
|
32
|
+
/** @type {ScreenSpecifier | null} */
|
|
33
|
+
declare var InformationSheetReturnScreen: ScreenSpecifier | null;
|
|
35
34
|
declare var InformationSheetSecondScreen: boolean;
|
|
@@ -18,6 +18,7 @@ declare function LoginLoad(): void;
|
|
|
18
18
|
* @returns {void} Nothing
|
|
19
19
|
*/
|
|
20
20
|
declare function LoginRun(): void;
|
|
21
|
+
declare function LoginResize(load: boolean): void;
|
|
21
22
|
/**
|
|
22
23
|
* Perform the inventory fixups needed.
|
|
23
24
|
* @param {InventoryBundle[]} Inventory - The server-provided inventory object
|
|
@@ -110,9 +111,9 @@ declare function LoginQueue(Pos: number): void;
|
|
|
110
111
|
declare function LoginFixOwner(): void;
|
|
111
112
|
/**
|
|
112
113
|
* Sets the player character info from the server data
|
|
113
|
-
* @param {
|
|
114
|
+
* @param {ServerAccountData} C
|
|
114
115
|
*/
|
|
115
|
-
declare function LoginSetupPlayer(C:
|
|
116
|
+
declare function LoginSetupPlayer(C: ServerAccountData): void;
|
|
116
117
|
/**
|
|
117
118
|
* Handles player login response data
|
|
118
119
|
* @param {ServerLoginResponse} C - The Login response data - this will either be the player's character data if the
|
|
@@ -8,6 +8,6 @@ declare function PreferenceSubscreenDifficultyRun(): void;
|
|
|
8
8
|
* @returns {void} - Nothing
|
|
9
9
|
*/
|
|
10
10
|
declare function PreferenceSubscreenDifficultyClick(): void;
|
|
11
|
-
/** @type {null |
|
|
12
|
-
declare var PreferenceDifficultyLevel: null |
|
|
11
|
+
/** @type {null | DifficultyLevel} */
|
|
12
|
+
declare var PreferenceDifficultyLevel: null | DifficultyLevel;
|
|
13
13
|
declare var PreferenceDifficultyAccept: boolean;
|