bc-stubs 114.0.0 → 115.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 (47) hide show
  1. package/bc/NativeDeclarations/Female3DCG_Types.d.ts +22 -1
  2. package/bc/NativeDeclarations/FriendList.d.ts +11 -1
  3. package/bc/NativeDeclarations/Messages.d.ts +18 -1
  4. package/bc/NativeDeclarations/Platform.d.ts +285 -0
  5. package/bc/NativeDeclarations/Typedef.d.ts +241 -64
  6. package/bc/Screens/Character/Appearance/Appearance.d.ts +11 -4
  7. package/bc/Screens/Character/BackgroundSelection/BackgroundSelection.d.ts +1 -1
  8. package/bc/Screens/Character/FriendList/FriendList.d.ts +28 -0
  9. package/bc/Screens/Character/Login/Login.d.ts +11 -3
  10. package/bc/Screens/Character/Preference/Arousal.d.ts +1 -0
  11. package/bc/Screens/Character/Preference/Audio.d.ts +1 -0
  12. package/bc/Screens/Character/Preference/CensoredWords.d.ts +1 -0
  13. package/bc/Screens/Character/Preference/Controller.d.ts +2 -0
  14. package/bc/Screens/Character/Preference/Extensions.d.ts +5 -1
  15. package/bc/Screens/Character/Preference/General.d.ts +7 -2
  16. package/bc/Screens/Character/Preference/Graphics.d.ts +4 -0
  17. package/bc/Screens/Character/Preference/Notifications.d.ts +4 -0
  18. package/bc/Screens/Character/Preference/Preference.d.ts +6 -1
  19. package/bc/Screens/Character/Preference/Scripts.d.ts +1 -0
  20. package/bc/Screens/Character/Preference/Security.d.ts +1 -0
  21. package/bc/Screens/Character/Preference/Visibility.d.ts +11 -1
  22. package/bc/Screens/Inventory/ItemNeckRestraints/CollarLeash/CollarLeash.d.ts +1 -0
  23. package/bc/Screens/Online/ChatRoom/ChatRoom.d.ts +77 -9
  24. package/bc/Screens/Online/ChatRoom/ChatRoomMapView.d.ts +1 -5
  25. package/bc/Screens/Online/ChatSearch/ChatSearch.d.ts +2 -1
  26. package/bc/Screens/Online/Game/OnlineGame.d.ts +2 -0
  27. package/bc/Screens/Online/NicknameManagement/NicknameManagement.d.ts +1 -1
  28. package/bc/Screens/Room/Crafting/Crafting.d.ts +7 -9
  29. package/bc/Screens/Room/Platform/Platform.d.ts +150 -1714
  30. package/bc/Screens/Room/PlatformDialog/PlatformDialog.d.ts +32 -58
  31. package/bc/Screens/Room/PlatformProfile/PlatformProfile.d.ts +7 -7
  32. package/bc/Screens/Room/Shop2/Shop2.d.ts +2 -2
  33. package/bc/Scripts/Activity.d.ts +4 -2
  34. package/bc/Scripts/Asset.d.ts +5 -5
  35. package/bc/Scripts/Character.d.ts +20 -1
  36. package/bc/Scripts/Common.d.ts +5 -0
  37. package/bc/Scripts/CommonDraw.d.ts +10 -0
  38. package/bc/Scripts/Dialog.d.ts +463 -171
  39. package/bc/Scripts/DictionaryBuilder.d.ts +10 -0
  40. package/bc/Scripts/Drawing.d.ts +15 -1
  41. package/bc/Scripts/Element.d.ts +17 -2
  42. package/bc/Scripts/GLDraw.d.ts +26 -1
  43. package/bc/Scripts/Layering.d.ts +1 -1
  44. package/bc/Scripts/Pose.d.ts +2 -1
  45. package/bc/Scripts/Preference.d.ts +21 -10
  46. package/bc/Scripts/Server.d.ts +0 -9
  47. package/package.json +1 -1
@@ -657,6 +657,7 @@ interface AssetDefinitionBase extends AssetCommonPropertiesGroupAsset, AssetComm
657
657
  AllowHideItem?: string[];
658
658
  /** @deprecated */
659
659
  AllowTypes?: never;
660
+ /** A list of {@link TypeRecord} keys for which a single layer expects multiple type-specific .png files. */
660
661
  CreateLayerTypes?: string[];
661
662
  /**
662
663
  * Whether an item can be tightened or not.
@@ -805,6 +806,12 @@ type AssetDefinition = (
805
806
  | AssetDefinition.Script
806
807
  );
807
808
 
809
+ interface AssetLayerMaskTexureDefinition {
810
+ /** The groups that will be affected */
811
+ Groups?: AssetGroupName[];
812
+ /** If true, the texture mask will apply to all layers in the groups specified, event if their priority is higher than the mask layer */
813
+ ApplyToAbove?: boolean;
814
+ }
808
815
 
809
816
  interface AssetLayerDefinition extends AssetCommonPropertiesGroupAssetLayer, AssetCommonPropertiesAssetLayer {
810
817
  /** The layer's name */
@@ -819,7 +826,7 @@ interface AssetLayerDefinition extends AssetCommonPropertiesGroupAssetLayer, Ass
819
826
  /** Whether the layer is hidden in the Color Picker UI. Defaults to false. */
820
827
  HideColoring?: boolean;
821
828
 
822
- /** A record (or a list thereof) with all screen names + option indices that should make the layer visible */
829
+ /** A record (or a list thereof) with all screen names + option indices, _i.e._ {@link TypeRecord} keys + values, that should make the layer visible */
823
830
  AllowTypes?: AllowTypes.Definition;
824
831
 
825
832
  /**
@@ -848,6 +855,15 @@ interface AssetLayerDefinition extends AssetCommonPropertiesGroupAssetLayer, Ass
848
855
  */
849
856
  BlendingMode?: GlobalCompositeOperation;
850
857
 
858
+
859
+ /**
860
+ * Mark the layer as a mask layer, which will be used to apply alpha masks to other layers.
861
+ * Only the alpha channel of the image, and positioning are concerned for a mask layer.
862
+ * The color, priority and alpha are ignored for mask layers.
863
+ * The blending mode of the mask layer must be set to "destination-in" or "destination-out".
864
+ */
865
+ TextureMask?: AssetLayerMaskTexureDefinition;
866
+
851
867
  /**
852
868
  * Specify that this is (one of) the asset's lock layer.
853
869
  *
@@ -867,6 +883,11 @@ interface AssetLayerDefinition extends AssetCommonPropertiesGroupAssetLayer, Ass
867
883
  */
868
884
  CopyLayerPoseMapping?: string;
869
885
 
886
+ /**
887
+ * A list of {@link TypeRecord} keys for which a single layer expects multiple type-specific .png files.
888
+ *
889
+ * By default files are expected for _all_ option indices associated with the key(s), unless the valid option set has been narrowed down according to {@link AssetLayerDefinition.AllowTypes}.
890
+ */
870
891
  CreateLayerTypes?: string[];
871
892
  /* Specifies that this layer should not be drawn if the character is wearing any item with the given attributes */
872
893
  HideForAttribute?: AssetAttribute[];
@@ -1,6 +1,6 @@
1
1
  type FriendListModes = FriendListMode[];
2
2
  type FriendListMode = "OnlineFriends" | "Beeps" | "AllFriends";
3
- type FriendListSortingMode = 'None' | 'MemberName' | 'MemberNickname' | 'MemberNumber' | 'ChatRoomName' | 'RelationType';
3
+ type FriendListSortingMode = 'None' | 'MemberName' | 'MemberNickname' | 'MemberNumber' | 'ChatRoomName' | 'RelationType' | 'ChatRoomType';
4
4
  type FriendListSortingDirection = 'Asc' | 'Desc';
5
5
 
6
6
  type FriendListReturn<T extends ModuleType> = { Screen: ModuleScreens[T], Module: T, IsInChatRoom?: boolean, hasScrolledChat?: boolean };
@@ -19,6 +19,7 @@ type FriendRawRoom = {
19
19
  name?: string;
20
20
  caption: string;
21
21
  canSearchRoom: boolean;
22
+ types: FriendListIcon[];
22
23
  };
23
24
 
24
25
  type FriendRawBeep = {
@@ -27,3 +28,12 @@ type FriendRawBeep = {
27
28
  hasMessage?: boolean;
28
29
  canBeep?: boolean;
29
30
  };
31
+
32
+ interface FriendListIcon {
33
+ /** The {@link HTMLImageElement.src} of the icon */
34
+ src: string;
35
+ /** The `Character/FriendList` {@link TextGet} key of the icon's tooltip */
36
+ tooltipKey: string;
37
+ /** A string to-be used for sorting the icon-containing column cells */
38
+ sortKey: string;
39
+ }
@@ -750,6 +750,20 @@ interface ActivityNameDictionaryEntry {
750
750
  ActivityName: ActivityName;
751
751
  }
752
752
 
753
+ /**
754
+ * A dictionary entry indicating the ID of a message being replied to.
755
+ */
756
+ interface ReplyIdDictionaryEntry {
757
+ ReplyId: string;
758
+ Tag: "ReplyId";
759
+ }
760
+ /**
761
+ * A dictionary entry indicating the ID of a message.
762
+ */
763
+ interface MsgIdDictionaryEntry {
764
+ MsgId: string;
765
+ Tag: "MsgId";
766
+ }
753
767
  /**
754
768
  * A dictionary entry with metadata about the chat message transmitted.
755
769
  *
@@ -777,7 +791,10 @@ type ChatMessageDictionaryEntry =
777
791
  | ActivityCounterDictionaryEntry
778
792
  | AssetGroupNameDictionaryEntry
779
793
  | ActivityNameDictionaryEntry
780
- | MessageEffectEntry;
794
+ | MessageEffectEntry
795
+ | MsgIdDictionaryEntry
796
+ | ReplyIdDictionaryEntry ;
797
+
781
798
 
782
799
  type ChatMessageDictionary = ChatMessageDictionaryEntry[];
783
800
 
@@ -0,0 +1,285 @@
1
+ declare namespace Platform {
2
+
3
+ type Perk = string;
4
+
5
+ type CharacterStatus = "Maid" | "Oracle" | "Archer" | "Thief"
6
+
7
+ type SoundCategory = string;
8
+ type SoundEffect = string;
9
+
10
+ type EffectType = "Teleport" | "Heal";
11
+
12
+ type AnimationName = "Petrified" | "Bound" | "HalfBoundWounded" | "Wounded" | "Aim" | "AimReady" | "AimFull" | "Bind" | "Jump" | "HalfBoundJump" | "Crawl" | "Stun" | "HalfBoundStun" | "Walk" | "HalfBoundWalk" | "WalkHit" | "Run" | "HalfBoundRun" | "Crouch" | "Block" | "Idle" | "HalfBoundIdle"
13
+ | "Uppercut" | "StandAttackFast" | "StandAttackSlow" | "CrouchAttackFast" | "CrouchAttackSlow" | "Scream" | "Backflip" | "FireProjectile" | "Left" | "Right";
14
+
15
+ type ItemName = "RedRose" | "PoisonApple" | "LeatherWhip" | "AnimalCollar";
16
+
17
+ interface AnimationSpec {
18
+ Name: AnimationName;
19
+ Cycle?: number[];
20
+ Speed?: number;
21
+ Audio?: SoundEffect[];
22
+ CycleLeft?: number[];
23
+ OffsetX?: number;
24
+ OffsetY?: number;
25
+ Width?: number;
26
+ Height?: number;
27
+ Image?: number;
28
+ Mirror?: boolean;
29
+ }
30
+
31
+ interface DummyTemplate {
32
+ Name: string;
33
+ Status: string;
34
+ Width: number;
35
+ Height: number;
36
+ Animation: AnimationSpec[];
37
+
38
+ OnBind?: () => void;
39
+
40
+ Loot?: { Name: ItemName, Expire: number; }[];
41
+ }
42
+
43
+ interface CharacterTemplate {
44
+ Name: string;
45
+ Status: string;
46
+
47
+ Width: number;
48
+ Height: number;
49
+
50
+ HitBox: RectTuple;
51
+ JumpHitBox?: RectTuple;
52
+
53
+ Health: number;
54
+ HealthPerLevel?: number;
55
+ ExperienceValue?: number;
56
+
57
+ Magic?: number;
58
+ MagicPerLevel?: number;
59
+
60
+ Projectile?: number;
61
+ ProjectileName?: ProjectileName;
62
+ ProjectileType?: ProjectileType;
63
+ ProjectileTime?: number;
64
+ ProjectileDamage?: number[];
65
+ ProjectileBothSides?: boolean;
66
+
67
+ Perk?: string;
68
+ PerkName?: PerkName[];
69
+
70
+ WalkSpeed: number;
71
+ RunSpeed?: number;
72
+ CrawlSpeed: number;
73
+ JumpForce?: number;
74
+ CollisionDamage?: number;
75
+
76
+ JumpOdds?: number;
77
+ LootOdds?: number;
78
+ RunOdds?: number;
79
+ ProjectileOdds?: number;
80
+ StandAttackSlowOdds?: number;
81
+
82
+ DamageBackOdds?: number;
83
+ DamageFaceOdds?: number;
84
+ DamageKnockForce?: number;
85
+
86
+ IdleAudio?: SoundEffect[];
87
+ DamageAudio?: SoundEffect[];
88
+ DownAudio?: SoundEffect[];
89
+ BindAudio?: SoundEffect[];
90
+ ProjectileHitAudio?: SoundEffect[];
91
+
92
+ RunHeight?: number;
93
+ FlyingHeight?: number;
94
+ IdleTurnToFace?: boolean;
95
+ PetrifyOnWound?: boolean;
96
+
97
+ Animation: AnimationSpec[];
98
+
99
+ Attack?: {
100
+ Name: string;
101
+ HitBox?: RectTuple;
102
+ HitAnimation?: number[];
103
+
104
+ Magic?: number;
105
+ Cooldown?: number;
106
+
107
+ StartAudio?: string[];
108
+ HitAudio?: string[];
109
+
110
+ Damage?: number[];
111
+ Speed: number;
112
+ JumpForce?: number;
113
+ }[];
114
+
115
+
116
+ OnBind?: () => void;
117
+
118
+ Loot?: { Name: ItemName, Expire: number; }[];
119
+ }
120
+
121
+ type ProjectileName = "Barrel" | "Arrow" | "Dagger";
122
+ type ProjectileType = "Wood" | "Iron";
123
+
124
+ interface Projectile {
125
+ IsProjectile: true;
126
+ Gravity: number;
127
+ ProjectileForce: number;
128
+ HitAudio: SoundEffect[];
129
+ }
130
+
131
+ interface Character extends CharacterTemplate, Projectile {
132
+ ID: number;
133
+ Camera: boolean;
134
+ X: number;
135
+ Y: number;
136
+ ForceX: number;
137
+ ForceY: number;
138
+ Experience: number;
139
+ Level: number;
140
+ BaseHealth: number;
141
+ BaseMagic?: number;
142
+ BaseProjectile?: number;
143
+ BaseProjectileTime?: number;
144
+ BaseWalkSpeed: number;
145
+ BaseRunSpeed: number;
146
+
147
+ MaxHealth: number;
148
+ MaxMagic?: number;
149
+ MaxProjectile?: number;
150
+
151
+ Fix: boolean;
152
+ Combat: boolean;
153
+ Dialog: string;
154
+
155
+ Run: boolean;
156
+ NextJump: number;
157
+
158
+ DamageBackOdds: number;
159
+ DamageFaceOdds: number;
160
+
161
+ FaceLeft: boolean;
162
+
163
+ HalfBound: boolean;
164
+ Bound: boolean;
165
+ Petrified: boolean;
166
+
167
+ OnBind?: () => void;
168
+
169
+ Immunity: number;
170
+ Damage: { Value: number, Expire: number }[];
171
+ RiseTime: number;
172
+ ProjectileAim: number;
173
+
174
+ Action: { Name: AnimationName, Start: number, Expire: number, Target?: number, Done?: boolean };
175
+ Effect?: { Name: EffectType, End: number };
176
+
177
+ Anim?: AnimationSpec;
178
+ }
179
+
180
+ interface PartyMember {
181
+ Character: string;
182
+ Status: Platform.CharacterStatus;
183
+ Level: number;
184
+ Experience: number;
185
+ Perk: string;
186
+ }
187
+
188
+ interface DialogCharacter {
189
+ Name: string;
190
+ Color: HexColor;
191
+
192
+ NickName?: string;
193
+
194
+ Love?: number;
195
+ LoverName?: string;
196
+ LoverLevel?: number;
197
+ OwnerName?: string;
198
+ OwnerLevel?: number;
199
+
200
+ Domination?: number;
201
+
202
+ IdlePose?: CharacterStatus[];
203
+ }
204
+
205
+ type RoomType = "Up" | "Down" | "Left" | "Right";
206
+
207
+ interface Room {
208
+ Name: string;
209
+ Text?: string;
210
+ Background: string;
211
+ AlternateBackground?: string;
212
+ BackgroundFilter?: string;
213
+ Music: string;
214
+ Width?: number;
215
+ Height?: number;
216
+ LimitLeft?: number | null;
217
+ LimitRight?: number | null;
218
+ Heal?: number;
219
+ Door?: {
220
+ Name: string;
221
+ FromX: number;
222
+ FromY: number;
223
+ FromW: number;
224
+ FromH: number;
225
+ FromType: RoomType;
226
+ ToX: number;
227
+ ToFaceLeft?: boolean;
228
+ }[];
229
+
230
+ Character?: {
231
+ Name: string;
232
+ Status: string;
233
+ X: number;
234
+ Fix?: boolean;
235
+ Combat?: boolean;
236
+ Battle?: boolean;
237
+ Dialog?: string;
238
+ }[];
239
+
240
+ Entry?: () => void;
241
+ }
242
+
243
+ interface Item {
244
+ Name: ItemName;
245
+ DisplayName: string;
246
+ Description: string;
247
+ OnGive: (Char: Platform.DialogCharacter) => void;
248
+ }
249
+
250
+ type EventType =
251
+ | "ThiefBossIntro" | "ThiefBossDefeat" | "ThiefBossSecondDefeat" | "ThiefBossRetreat"
252
+ | "EdlaranKey" | "EdlaranForestKey" | "EdlaranIntro" | "EdlaranCurseIntro" | "EdlaranUnlock" | "EdlaranBedroomIsabella"
253
+ | "EdlaranCountessBedroomOrgasmDom" | "EdlaranCountessBedroomOrgasmSub" | "EdlaranWineCellar" | "EdlaranJoin"
254
+ | "EdlaranForestIntro"
255
+ | "IntroForestBandit" | "ForestBanditCrate"
256
+ | "ForestCapture" | "ForestCaptureEnd" | "ForestCaptureRescueMelody"
257
+ | "BarnThiefRescueMelody"
258
+ | "CamilleEscape" | "CamilleDefeat"
259
+ | "JealousMaid" | "CursedMaid"
260
+ | "OliviaCollarKey" | "OliviaUnchain" | "OliviaBath" | "OliviaBathOrgasm"
261
+ | "OliviaCurseIntro" | "OliviaCurseRelease"
262
+ | "OliviaTerrace" | "OliviaTerraceKiss"
263
+ | "OliviaCabin" | "EdlaranCabin" | "LynCabin"
264
+ | "OliviaTent" | "EdlaranTent" | "LynTent"
265
+ | "IntroGuard" | "IntroGuardCurse"
266
+ | "DesertEntrance"
267
+ | "Curse"
268
+ | "LynJoin"
269
+ ;
270
+
271
+ interface Event {
272
+ // Doesn't appear to be used for anything, just saved and loaded
273
+ }
274
+
275
+ type PerkName = "Healthy" | "Robust" | "Vigorous" | "Spring" | "Impact" | "Block" | "Deflect" | "Seduction" | "Persuasion" | "Manipulation" | "Apprentice" | "Witch" | "Meditation" | "Scholar" | "Heal" | "Cure" | "Howl" | "Roar" | "Teleport" | "Freedom" | "Fletcher" | "Burglar" | "Athletic" | "Sprint" | "Backflip" | "Acrobat" | "Archery" | "Celerity" | "Capacity" | "Sneak" | "Backstab" | "Kidnapper" | "Rigger" | "Thief" | "Bounce" | "Inventory" | "Duplicate";
276
+
277
+ type KeyCode = string;
278
+
279
+ type CooldownType = AnimationName | EffectType;
280
+ interface Cooldown {
281
+ Type: CooldownType;
282
+ Time: number;
283
+ Delay: number;
284
+ }
285
+ }