bc-stubs 129.0.0 → 130.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 (53) hide show
  1. package/bc/NativeDeclarations/Commands.d.ts +41 -2
  2. package/bc/NativeDeclarations/DeclarationsStatic.d.ts +3 -0
  3. package/bc/NativeDeclarations/Female3DCG_Types.d.ts +5 -0
  4. package/bc/NativeDeclarations/Messages.d.ts +130 -76
  5. package/bc/NativeDeclarations/Typedef.d.ts +42 -27
  6. package/bc/Screens/Character/Appearance/Appearance.d.ts +2 -2
  7. package/bc/Screens/Inventory/ItemHead/InteractiveVRHeadset/InteractiveVRHeadset.d.ts +2 -0
  8. package/bc/Screens/Inventory/ItemHood/TechnoHelmet1/TechnoHelmet1.d.ts +1 -0
  9. package/bc/Screens/Inventory/ItemMisc/MistressTimerPadlock/MistressTimerPadlock.d.ts +10 -4
  10. package/bc/Screens/Inventory/ItemMisc/OwnerTimerPadlock/OwnerTimerPadlock.d.ts +16 -4
  11. package/bc/Screens/Inventory/ItemMisc/TimerPasswordPadlock/TimerPasswordPadlock.d.ts +10 -4
  12. package/bc/Screens/MiniGame/ClubCard/ClubCard.d.ts +19 -8
  13. package/bc/Screens/MiniGame/ClubCardBuilder/ClubCardBuilder.d.ts +5 -0
  14. package/bc/Screens/MiniGame/MagicBattle/MagicBattle.d.ts +1 -2
  15. package/bc/Screens/Online/ChatRoom/ChatRoom.d.ts +37 -26
  16. package/bc/Screens/Online/ChatRoom/ChatRoomMapView.d.ts +3 -3
  17. package/bc/Screens/Online/ChatRoom/Commands.d.ts +57 -26
  18. package/bc/Screens/Online/Game/OnlineGame.d.ts +9 -2
  19. package/bc/Screens/Online/GameClubCard/GameClubCard.d.ts +34 -8
  20. package/bc/Screens/Online/GameLARP/GameLARP.d.ts +26 -8
  21. package/bc/Screens/Online/GameMagicBattle/GameMagicBattle.d.ts +35 -8
  22. package/bc/Screens/Room/Arcade/Arcade.d.ts +1 -2
  23. package/bc/Screens/Room/AsylumEntrance/AsylumEntrance.d.ts +1 -2
  24. package/bc/Screens/Room/AsylumGGTS/AsylumGGTS.d.ts +4 -4
  25. package/bc/Screens/Room/AsylumTherapy/AsylumTherapy.d.ts +1 -2
  26. package/bc/Screens/Room/Cafe/Cafe.d.ts +1 -2
  27. package/bc/Screens/Room/ClubCardLounge/ClubCardLounge.d.ts +1 -2
  28. package/bc/Screens/Room/CollegeChess/CollegeChess.d.ts +1 -2
  29. package/bc/Screens/Room/CollegeTennis/CollegeTennis.d.ts +1 -2
  30. package/bc/Screens/Room/DailyJob/DailyJob.d.ts +3 -11
  31. package/bc/Screens/Room/Infiltration/Infiltration.d.ts +1 -2
  32. package/bc/Screens/Room/Introduction/Introduction.d.ts +1 -2
  33. package/bc/Screens/Room/MagicSchoolFindsAround/MagicSchoolFindsAround.d.ts +1 -2
  34. package/bc/Screens/Room/Pandora/Pandora.d.ts +4 -6
  35. package/bc/Screens/Room/Private/Private.d.ts +6 -3
  36. package/bc/Screens/Room/Shibari/Shibari.d.ts +1 -2
  37. package/bc/Screens/Room/SlaveMarket/SlaveMarket.d.ts +4 -5
  38. package/bc/Screens/Room/Stable/Stable.d.ts +9 -10
  39. package/bc/Scripts/Activity.d.ts +11 -4
  40. package/bc/Scripts/Character.d.ts +6 -6
  41. package/bc/Scripts/Common.d.ts +34 -22
  42. package/bc/Scripts/Dialog.d.ts +5 -6
  43. package/bc/Scripts/Drawing.d.ts +7 -9
  44. package/bc/Scripts/DynamicDraw.d.ts +41 -27
  45. package/bc/Scripts/Inventory.d.ts +21 -15
  46. package/bc/Scripts/Layering.d.ts +0 -1
  47. package/bc/Scripts/MiniGame.d.ts +4 -3
  48. package/bc/Scripts/Pose.d.ts +1 -1
  49. package/bc/Scripts/Property.d.ts +2 -2
  50. package/bc/Scripts/Server.d.ts +6 -1
  51. package/bc/Scripts/Struggle.d.ts +9 -2
  52. package/bc/Scripts/Text.d.ts +2 -2
  53. package/package.json +6 -4
@@ -26,12 +26,51 @@ interface ICommand {
26
26
  }
27
27
 
28
28
  type ArgumentDef = {
29
- name: string | Partial<Record<ServerChatRoomLanguage | "TW", string>>;
29
+ // FIXME: Make id required after some time
30
+ /** Unique identifier */
31
+ id?: string;
32
+ /** Name of the argument */
33
+ name?: string | Partial<Record<ServerChatRoomLanguage | "TW", string>>;
34
+ /** Description of the argument */
30
35
  description?: string | Partial<Record<ServerChatRoomLanguage | "TW", string>>;
31
- suggestions?: Thunk<string[]>;
36
+ /** Thunk that returns suggestions for the argument */
37
+ suggestions?: Thunk<string[], [CommandSuggestionsContext]>;
32
38
  };
33
39
  type Subcommand = Omit<ICommand, 'Subcommands' | 'AutoComplete'>;
34
40
 
41
+ /** A command or subcommand definition */
42
+ type CommandLike = ICommand | Subcommand;
43
+
44
+ /** Command properties that can be inherited through {@link Reference} aliases */
45
+ type CommandResolvableKey = Exclude<keyof ICommand, "Tag" | "Reference">;
46
+
47
+ /** Resolved value type for a given inheritable command property */
48
+ type CommandResolvedValue<K extends CommandResolvableKey> = ICommand[K];
49
+
50
+ type CommandSuggestionsContext = {
51
+ /** Root command definition */
52
+ command: ICommand;
53
+ /** Selected subcommand, if any */
54
+ subcommand?: Subcommand;
55
+ /** Command or subcommand whose arguments are being completed */
56
+ active: ICommand | Subcommand;
57
+ /** Parsed argument values keyed by argument name, or id when name is absent */
58
+ args: Record<string, string | undefined>;
59
+ /** Index of the argument currently being completed */
60
+ argIndex: number;
61
+ /** Unparsed argument tokens after the command/subcommand */
62
+ remaining: string[];
63
+ };
64
+
65
+ type CommandHelpOptions = {
66
+ doShowEscapeHint?: boolean;
67
+ setCommand?: string;
68
+ publish?: boolean;
69
+ remaining?: string[];
70
+ command?: ICommand;
71
+ subcommand?: Subcommand;
72
+ };
73
+
35
74
  type CommandsModListStatus = "ok" | "declined" | "error" | "timeout";
36
75
  type CommandsModListResult = { status: CommandsModListStatus; mods?: ModSDKModInfo[] };
37
76
  type CommandsModListRequest = {
@@ -0,0 +1,3 @@
1
+ // Statically defined types that can be swapped out for more precise, dynamically computed alternatives during the `files:csvtypescript` CI
2
+
3
+ type TextKeysInterface = string;
@@ -773,6 +773,8 @@ interface AssetDefinitionBase extends AssetCommonPropertiesGroupAsset, AssetComm
773
773
  ExpressionPrerequisite?: AssetPrerequisite[];
774
774
  }
775
775
 
776
+ type AssetAppearancePrerequisite = Extract<AssetPrerequisite, PosePrerequisite | "HasBreasts" | "HasFlatChest" | "HasVagina" | "HasPenis">;
777
+
776
778
  /** Input interface for constructing {@link Asset} objects. */
777
779
  declare namespace AssetDefinition {
778
780
  /** An {@link AssetDefinition} subtype for assets whose group is of the `Item` category. */
@@ -806,6 +808,9 @@ declare namespace AssetDefinition {
806
808
  SelfBondage?: never;
807
809
  SelfUnlock?: false;
808
810
  Time?: never;
811
+ Block?: never;
812
+ // We only allow a specific subset of those for clothing
813
+ Prerequisite?: AssetAppearancePrerequisite | AssetAppearancePrerequisite[];
809
814
  }
810
815
  /** An {@link AssetDefinition} subtype for assets whose group is of the `Script` category. */
811
816
  interface Script extends AssetDefinitionBase {
@@ -9,7 +9,13 @@ type ChatRoomMapPos = {
9
9
 
10
10
  type ChatRoomMapData = {
11
11
  Pos: ChatRoomMapPos
12
- PrivateState: Record<string, Object>
12
+ PrivateState: {
13
+ HasKeyBronze?: boolean;
14
+ HasKeySilver?: boolean;
15
+ HasKeyGold?: boolean;
16
+
17
+ [key: string]: any;
18
+ }
13
19
  }
14
20
 
15
21
  interface ServerAccountImmutableData {
@@ -874,45 +880,6 @@ interface ServerChatRoomMessage extends ServerChatRoomMessageBase {
874
880
  Timeout?: number;
875
881
  }
876
882
 
877
- interface ServerChatRoomGameStart {
878
- GameProgress: "Start" | "Next" | "Stop" | "Skip";
879
- }
880
-
881
- interface ServerChatRoomGameMagicBattleUpdateRequest {
882
- GameProgress: "Action";
883
- Action:
884
- /* MagicBattle */ "SpellSuccess" | "SpellFail" |
885
- /* LARP */ "Pass" | "Seduce" | "Struggle" | "Hide" | "Cover" |
886
- "Strip" | "Tighten" | "RestrainArms" | "RestrainLegs" | "RestrainMouth" |
887
- "Silence" | "Immobilize" | "Detain" | "Dress" | "Costume"
888
- ;
889
- Spell: number;
890
- Time: number;
891
- Target: number;
892
- }
893
-
894
- interface ServerChatRoomGameLARPUpdateRequest {
895
- GameProgress: "Action";
896
- Action: "Pass" | "Seduce" | "Struggle" | "Hide" | "Cover" |
897
- "Strip" | "Tighten" | "RestrainArms" | "RestrainLegs" | "RestrainMouth" |
898
- "Silence" | "Immobilize" | "Detain" | "Dress" | "Costume"
899
-
900
- | "";
901
- Item?: string;
902
- Target: number;
903
- }
904
-
905
- interface ServerChatRoomGameBountyUpdateRequest {
906
- OnlineBounty: {
907
- finishTime: number,
908
- target: number,
909
- }
910
- }
911
-
912
- interface ServerChatRoomGameKDUpdateRequest {
913
- KinkyDungeon: any;
914
- }
915
-
916
883
  interface ServerChatRoomGameCardGameData {
917
884
  MemberNumber: number;
918
885
  Playing: boolean;
@@ -932,54 +899,141 @@ interface ServerChatRoomGameCardGameData {
932
899
  Sleeve: number;
933
900
  }
934
901
 
935
- interface ServerChatRoomGameCardGameQueryRequest {
902
+ interface ServerGameLARPDataStart {
903
+ GameProgress: "Start";
904
+ }
905
+
906
+ interface ServerGameLARPDataStop {
907
+ GameProgress: "Stop";
908
+ }
909
+
910
+ interface ServerGameLARPDataNext {
911
+ GameProgress: "Next";
912
+ }
913
+
914
+ interface ServerGameLARPDataSkip {
915
+ GameProgress: "Skip";
916
+ }
917
+
918
+ type GameLARPActionName = "Pass" | "Seduce" | "Struggle" | "Hide" | "Cover"
919
+ | "Strip" | "Tighten" | "RestrainArms" | "RestrainLegs" | "RestrainMouth"
920
+ | "Silence" | "Immobilize" | "Detain" | "Dress" | "Costume" | "Charge" | "Support" | "Cheer"
921
+ | "Inspire" | "Control" | "Confuse"
922
+
923
+ interface ServerGameLARPDataAction {
924
+ GameProgress: "Action";
925
+ Action: GameLARPActionName;
926
+ Target: number;
927
+ Item: string;
928
+ }
929
+
930
+ interface ServerGameLARPDataQuery {
936
931
  GameProgress: "Query";
937
- CCData?: ServerChatRoomGameCardGameData[];
938
- Player1?: number;
939
- Player2?: number;
940
932
  }
941
933
 
942
- interface ServerChatRoomGameCardGameStartRequest {
934
+ type ServerGameLARPData =
935
+ | ServerGameLARPDataStart
936
+ | ServerGameLARPDataStop
937
+ | ServerGameLARPDataNext
938
+ | ServerGameLARPDataSkip
939
+ | ServerGameLARPDataAction
940
+ ;
941
+
942
+ interface ServerGameKinkyDungeonData {
943
+ KinkyDungeon: string;
944
+ }
945
+
946
+ interface ServerGameOnlineBountyData {
947
+ OnlineBounty: {
948
+ finishTime: number,
949
+ target: number,
950
+ }
951
+ }
952
+
953
+ interface ServerGameClubCardDataStart {
943
954
  GameProgress: "Start";
944
955
  Player1: number;
945
956
  Player2: number;
946
957
  }
947
958
 
948
- type ServerChatRoomGameCardGameActionRequest = { GameProgress: "Action" } & ({ CCLog: any } | { CCData: any });
959
+ interface ServerGameClubCardDataQueryRequest {
960
+ GameProgress: "Query";
961
+ }
949
962
 
950
- type ServerChatRoomGameCardGameUpdateRequest = ServerChatRoomGameCardGameStartRequest | ServerChatRoomGameCardGameQueryRequest | ServerChatRoomGameCardGameActionRequest;
963
+ interface ServerGameClubCardDataQueryResponse {
964
+ GameProgress: "Query";
965
+ CCData: ServerChatRoomGameCardGameData[];
966
+ Player1: number;
967
+ Player2: number;
968
+ }
951
969
 
952
- type ServerChatRoomGameUpdateRequest =
953
- | ServerChatRoomGameStart
954
- | ServerChatRoomGameMagicBattleUpdateRequest
955
- | ServerChatRoomGameLARPUpdateRequest
956
- | ServerChatRoomGameBountyUpdateRequest
957
- | ServerChatRoomGameKDUpdateRequest
958
- | ServerChatRoomGameCardGameUpdateRequest;
959
-
960
- interface ServerChatRoomGameResponse extends ServerChatRoomMessageBase {
961
- Data: {
962
- KinkyDungeon?: any;
963
- OnlineBounty?: any;
964
- /* LARP */
965
- GameProgress?: "Start" | "Stop" | "Next" | "Skip" | "Action" | "Query";
966
- Action?: undefined;
967
- Target?: number;
968
- Item?: string;
969
-
970
- /* MagicBattle */
971
- Spell?: string;
972
- Time?: number; /* ms */
973
-
974
- /* Club Card */
975
- Player1?: number;
976
- Player2?: number;
977
- CCData: ServerChatRoomGameCardGameData[];
978
- CCLog: ClubCardMessage;
979
- };
980
- RNG: number;
970
+ interface ServerGameClubCardDataAction {
971
+ GameProgress: "Action";
972
+ CCData?: ServerChatRoomGameCardGameData[];
973
+ CCLog?: ClubCardMessage;
981
974
  }
982
975
 
976
+ type ServerGameClubCardData =
977
+ | ServerGameClubCardDataStart
978
+ | ServerGameClubCardDataQueryRequest
979
+ | ServerGameClubCardDataQueryResponse
980
+ | ServerGameClubCardDataAction
981
+ ;
982
+
983
+ type ServerGameClubCardResponse = ServerChatRoomGameResponseBase<ServerGameClubCardData>;
984
+
985
+ interface ServerGameMagicBattleDataStart {
986
+ GameProgress: "Start";
987
+ }
988
+
989
+ interface ServerGameMagicBattleDataStop {
990
+ GameProgress: "Stop";
991
+ }
992
+
993
+ interface ServerGameMagicBattleDataNext {
994
+ GameProgress: "Next";
995
+ }
996
+
997
+ type GameMagicBattleActionName = "SpellSuccess" | "SpellFail";
998
+
999
+ interface ServerGameMagicBattleDataAction {
1000
+ GameProgress: "Action";
1001
+ Action: GameMagicBattleActionName;
1002
+ Target: number;
1003
+ Spell: number;
1004
+ Time: number;
1005
+ }
1006
+
1007
+ type ServerGameMagicBattleData =
1008
+ | ServerGameMagicBattleDataStart
1009
+ | ServerGameMagicBattleDataStop
1010
+ | ServerGameMagicBattleDataNext
1011
+ | ServerGameMagicBattleDataAction
1012
+ ;
1013
+
1014
+ type ServerGameMagicBattleResponse = ServerChatRoomGameResponseBase<ServerGameMagicBattleData>
1015
+
1016
+ interface ServerChatRoomGameResponseBase<T> extends ServerChatRoomMessageBase {
1017
+ Data: T;
1018
+ RNG: number;
1019
+ }
1020
+
1021
+ type ServerChatRoomGameResponse = ServerChatRoomGameResponseBase<
1022
+ | ServerGameClubCardData
1023
+ | ServerGameLARPData
1024
+ | ServerGameMagicBattleData
1025
+ | ServerGameOnlineBountyData
1026
+ | ServerGameKinkyDungeonData
1027
+ >;
1028
+
1029
+ type ServerChatRoomGameUpdateRequest =
1030
+ | ServerGameClubCardData
1031
+ | ServerGameLARPData
1032
+ | ServerGameMagicBattleData
1033
+ | ServerGameOnlineBountyData
1034
+ | ServerGameKinkyDungeonData
1035
+ ;
1036
+
983
1037
  interface ServerChatRoomSyncCharacterResponse {
984
1038
  SourceMemberNumber: number;
985
1039
  Character: ServerAccountDataSynced;
@@ -351,7 +351,7 @@ type DialogMenuMode = (
351
351
  );
352
352
 
353
353
  type DialogMenuButtonType = "Activity" |
354
- "ColorCancel" | "ColorChange" | "ColorChangeDisabled" | "ColorChangeMulti" | "ColorChangeMultiDisabled" | "ColorDefault" | "ColorPickDisabled" | "ColorSelect" |
354
+ "ColorCancel" | "ColorChange" | "ColorDefault" | "ColorPickDisabled" | "ColorSelect" |
355
355
  "Crafting" |
356
356
  "NormalMode" | "PermissionMode" |
357
357
  "Dismount" | "Escape" | "Remove" |
@@ -360,13 +360,18 @@ type DialogMenuButtonType = "Activity" |
360
360
  "InspectLock" | "InspectLockDisabled" |
361
361
  "Layering" |
362
362
  "Lock" | "LockDisabled" | "LockMenu" |
363
- "Swap" | "Next" | "Prev" | `PickLock${PickLockAvailability}` |
364
- "Remote" | "RemoteDisabled" | `RemoteDisabledFor${VibratorRemoteAvailability}` |
365
- "Unlock" | "Use" | "UseDisabled" | "Struggle" | "TightenLoosen" |
366
- // Wardrobe buttons
367
- "Wardrobe" | "WardrobeDisabled" | "Reset" | "WearRandom" | "Random" | "Copy" | "Paste" | "Naked" | "Accept" | "Cancel" | "Character"
363
+ `PickLock${PickLockAvailability}` |
364
+ "Remote" | "RemoteDisabled" | `RemoteDisabledFor${Exclude<VibratorRemoteAvailability, "Available" | "InvalidItem">}` |
365
+ "Unlock" | "Use" | "UseDisabled" | "Struggle" | "TightenLoosen"
368
366
  ;
369
367
 
368
+ type AppearanceMenuButtonType = (
369
+ "Wardrobe" | "WardrobeDisabled" | "Reset" | "WearRandom" | "Random" | "Copy"
370
+ | "Paste" | "Naked" | "Accept" | "Cancel" | "Character" | "Next" | "Prev" | "Swap"
371
+ | "Use" | "UseDisabled" | "PermissionMode" | "ColorChange" | "ColorChangeDisabled"
372
+ | "ColorChangeMulti" | "ColorChangeMultiDisabled"
373
+ );
374
+
370
375
  declare namespace ElementDOMScreen {
371
376
  /** Options for customizing the {@link ElementDOMScreen.GetTemplate} output */
372
377
  interface TemplateOptions {
@@ -381,7 +386,7 @@ declare namespace ElementDOMScreen {
381
386
  /** Whether an extra `aside.screen-aside-r` section should be added to the right of `.screen-main` */
382
387
  rightContent?: readonly (Node | string | HTMLOptionsUnion)[];
383
388
  /** Text content for within the heading (see `.screen-hgroup h1`) */
384
- header?: string;
389
+ header?: string | Node | readonly (Node | string)[];
385
390
  /**
386
391
  * Which section should be marked as `<main>` (if any).
387
392
  * Defaults to `center` if unspecified.
@@ -488,6 +493,7 @@ type DialogStruggleActionType = "ActionUse" | "ActionSwap" | "ActionRemove" | "A
488
493
  type CharacterType = "player" | "online" | "npc" | "simple";
489
494
 
490
495
  type CharacterPronouns = "SheHer" | "HeHim" | "TheyThem" | "ItIt";
496
+ type CharacterPronounType = "Possessive" | "Self" | "Subject" | "Object";
491
497
 
492
498
  type VibratorIntensity = -1 | 0 | 1 | 2 | 3;
493
499
 
@@ -614,7 +620,7 @@ type AssetGroupName = AssetGroupBodyName | AssetGroupItemName | AssetGroupScript
614
620
  interface AssetPoseMap {
615
621
  BodyHands: 'TapedHands',
616
622
  BodyUpper: 'BaseUpper' | 'BackBoxTie' | 'BackCuffs' | 'BackElbowTouch' | 'OverTheHead' | 'Yoked',
617
- BodyLower: 'BaseLower' | 'Kneel' | 'KneelingSpread' | 'LegsClosed' | 'LegsOpen' | 'Spread',
623
+ BodyLower: 'BaseLower' | 'Kneel' | 'KneelingSpread' | 'LegsClosed' | 'Spread',
618
624
  BodyFull: 'Hogtied' | 'AllFours',
619
625
  BodyAddon: 'Suspension',
620
626
  }
@@ -1058,7 +1064,10 @@ type Prettify<T> = {
1058
1064
  /**
1059
1065
  * A type that can be a value or a function returning that value.
1060
1066
  */
1061
- type Thunk<T> = T | (() => T);
1067
+ type Thunk<T, A extends readonly unknown[] = []> = T | ((...args: A) => T);
1068
+
1069
+ declare function CommonUnwrapThunk<T>(thunk: Thunk<T>): T;
1070
+ declare function CommonUnwrapThunk<T, A extends readonly unknown[]>(thunk: Thunk<T, A>, ...args: A): T;
1062
1071
 
1063
1072
  //#region Assets
1064
1073
 
@@ -1551,6 +1560,10 @@ interface InventoryItem extends InventoryBundle {
1551
1560
  Asset: Asset;
1552
1561
  }
1553
1562
 
1563
+ declare namespace InventoryPrerequisiteConflicts {
1564
+ type ErrMessage = "" | "CannotBeUsedOverGag" | "MustBeUsedOverGag";
1565
+ }
1566
+
1554
1567
  type SkillType = "Bondage" | "SelfBondage" | "LockPicking" | "Evasion" | "Willpower" | "Infiltration" | "Dressage";
1555
1568
 
1556
1569
  interface Skill {
@@ -2513,7 +2526,7 @@ type ChatRoomCustomizationType = 0 | 1 | 2 | 3;
2513
2526
  interface PlayerOnlineSettings {
2514
2527
  AutoBanBlackList: boolean;
2515
2528
  AutoBanGhostList: boolean;
2516
- /**
2529
+ /**
2517
2530
  * When true, respond to `/mods remote` hidden queries with your Mod SDK list and a declined reply otherwise
2518
2531
  * @default true
2519
2532
  */
@@ -3230,12 +3243,6 @@ interface AssetDefinitionProperties {
3230
3243
  */
3231
3244
  Opacity?: number | number[];
3232
3245
 
3233
- /**
3234
- * A custom background for this option that overrides the default
3235
- * @see {@link Asset.CustomBlindBackground}
3236
- */
3237
- CustomBlindBackground?: string;
3238
-
3239
3246
  /**
3240
3247
  * A list of fetishes affected by the item
3241
3248
  * @see {@link Asset.Fetish}
@@ -4007,12 +4014,8 @@ interface GameLARPParameters {
4007
4014
  }[];
4008
4015
  }
4009
4016
 
4010
- type GameLARPOptionName = "Pass" | "Seduce" | "Struggle" | "Hide" | "Cover" |
4011
- "Strip" | "Tighten" | "RestrainArms" | "RestrainLegs" | "RestrainMouth" |
4012
- "Silence" | "Immobilize" | "Detain" | "Dress" | "Costume" | "";
4013
-
4014
4017
  interface GameLARPOption {
4015
- Name: GameLARPOptionName;
4018
+ Name: GameLARPActionName;
4016
4019
  Odds: number;
4017
4020
  }
4018
4021
 
@@ -4022,8 +4025,10 @@ interface GameMagicBattleParameters {
4022
4025
  TeamType: "FreeForAll" | "House";
4023
4026
  }
4024
4027
 
4028
+ type GameGGTSLevel = 0 | 1 | 2 | 3 | 4 | 5 | 6;
4029
+
4025
4030
  interface GameGGTSParameters {
4026
- Level: number;
4031
+ Level: GameGGTSLevel;
4027
4032
  Time: number;
4028
4033
  Strike: number;
4029
4034
  Rule: string[];
@@ -4856,10 +4861,10 @@ interface WheelFortuneOptionType {
4856
4861
  // #region ClubCard
4857
4862
 
4858
4863
  type ClubCardTag =
4859
- | "All"
4864
+ | "All Cards"
4860
4865
  | "Selected Cards"
4861
- | "Event"
4862
- | "NoGroup"
4866
+ | "Event Cards"
4867
+ | "Ungrouped"
4863
4868
  | "Liability"
4864
4869
  | "Staff"
4865
4870
  | "Police"
@@ -4876,7 +4881,9 @@ type ClubCardTag =
4876
4881
  | "Kemonomimi"
4877
4882
  | "Submissive / Slave"
4878
4883
  | "Exhibitionist"
4879
- | "Reward";
4884
+ | "Latex"
4885
+ | "Online Player"
4886
+ | "Reward Cards";
4880
4887
 
4881
4888
  interface ClubCard {
4882
4889
  ID: number;
@@ -4894,7 +4901,6 @@ interface ClubCard {
4894
4901
  RequiredLevel?: number;
4895
4902
  Time?: number;
4896
4903
  ExtraTime?: number;
4897
- ExtraDraw?: number;
4898
4904
  ExtraPlay?: number;
4899
4905
  Group?: string[];
4900
4906
  Location?: string;
@@ -4935,6 +4941,8 @@ interface ClubCard {
4935
4941
  * @param C Player that owns the card
4936
4942
  */
4937
4943
  onLeaveClub?: (C: ClubCardPlayer) => void;
4944
+ onMemberLeaveClub?: (C: ClubCardPlayer, Card: ClubCard, DidntDiscard: boolean) => void;
4945
+ onRender?: (C: ClubCardPlayer, X: number, Y: number, W: number) => void;
4938
4946
  turnStart?: (C: ClubCardPlayer) => void;
4939
4947
  onLevelUp?: (C: ClubCardPlayer) => void;
4940
4948
  onOpponentLevelUp?: (C: ClubCardPlayer) => void;
@@ -4948,8 +4956,15 @@ interface ClubCard {
4948
4956
  onCancelNegation?: (C: ClubCardPlayer) => void;
4949
4957
  WhenDrawn?: (C: ClubCardPlayer) => void;
4950
4958
  OnActive?: (C: ClubCardPlayer) => void;
4959
+ OnGameStart?: (C: ClubCardPlayer) => void;
4951
4960
  }
4952
4961
 
4962
+ type ClubCardDefaultDecks =
4963
+ | "Default"
4964
+ | "Princess Treatment"
4965
+ | "Permanent Stay"
4966
+ | "Pound Town"
4967
+
4953
4968
  interface ClubCardPlayer {
4954
4969
  Character: Character;
4955
4970
  Control: string;
@@ -432,8 +432,8 @@ declare var CharacterAppearanceMode: "" | "Wardrobe" | "Cloth" | "Color" | "Perm
432
432
  declare var CharacterAppearanceMenuMode: "" | "Wardrobe" | "Cloth" | "Color" | "Permissions";
433
433
  /** @type {null | Item} */
434
434
  declare var CharacterAppearanceCloth: null | Item;
435
- /** @type {DialogMenuButtonType[]} */
436
- declare var AppearanceMenu: DialogMenuButtonType[];
435
+ /** @type {AppearanceMenuButtonType[]} */
436
+ declare var AppearanceMenu: AppearanceMenuButtonType[];
437
437
  /** @type {Character[]} */
438
438
  declare var AppearancePreviews: Character[];
439
439
  declare var AppearanceUseCharacterInPreviewsSetting: boolean;
@@ -0,0 +1,2 @@
1
+ declare function AssetsItemHeadInteractiveVRHeadsetScriptDraw(drawData: DynamicScriptCallbackData<AnimationPersistentData>): void;
2
+ declare const AssetsItemHeadInteractiveVRHeadsetBackgrounds: string[];
@@ -0,0 +1 @@
1
+ declare function AssetsItemHoodTechnoHelmet1ScriptDraw(drawData: DynamicScriptCallbackData<AnimationPersistentData>): void;
@@ -1,12 +1,18 @@
1
1
  declare function InventoryItemMiscMistressTimerPadlockDrawHook(data: NoArchItemData, originalFunction: () => void): void;
2
2
  declare function InventoryItemMiscMistressTimerPadlockClickHook(data: NoArchItemData, originalFunction: () => void): void;
3
3
  declare function InventoryItemMiscMistressTimerPadlockExitHook(data: NoArchItemData, originalFunction: (() => void) | null): void;
4
- declare const MistressTimerChooseOptions: {
4
+ declare const MistressTimerChooseOptions: ({
5
5
  unit: {
6
- label: string;
7
- seconds: number;
6
+ readonly label: "Minutes";
7
+ readonly seconds: 60;
8
8
  };
9
9
  values: number[];
10
- }[];
10
+ } | {
11
+ unit: {
12
+ readonly label: "Hours";
13
+ readonly seconds: 3600;
14
+ };
15
+ values: number[];
16
+ })[];
11
17
  declare let MistressTimerChooseOptionsIndex: number;
12
18
  declare let MistressTimerChooseIndexes: number[];
@@ -37,13 +37,25 @@ declare function InventoryItemMiscTimerPadlockAdd(C: Character, item: Item, lock
37
37
  * @param {Item} item
38
38
  */
39
39
  declare function InventoryItemMiscSendTimerPadlockChangeMessage(C: Character, item: Item): void;
40
- declare const OwnerTimerChooseOptions: {
40
+ declare const OwnerTimerChooseOptions: ({
41
41
  unit: {
42
- label: string;
43
- seconds: number;
42
+ readonly label: "Minutes";
43
+ readonly seconds: 60;
44
44
  };
45
45
  values: number[];
46
- }[];
46
+ } | {
47
+ unit: {
48
+ readonly label: "Hours";
49
+ readonly seconds: 3600;
50
+ };
51
+ values: number[];
52
+ } | {
53
+ unit: {
54
+ readonly label: "Days";
55
+ readonly seconds: 86400;
56
+ };
57
+ values: number[];
58
+ })[];
47
59
  declare let OwnerTimerChooseOptionsIndex: number;
48
60
  declare let OwnerTimerChooseIndexes: number[];
49
61
  declare let TimerPadlockAccumulatedSeconds: number;
@@ -2,12 +2,18 @@ declare function InventoryItemMiscTimerPasswordPadlockLoadHook(data: NoArchItemD
2
2
  declare function InventoryItemMiscTimerPasswordPadlockDrawHook(data: NoArchItemData, originalFunction: () => void): void;
3
3
  declare function InventoryItemMiscTimerPasswordPadlockClickHook(data: NoArchItemData, originalFunction: () => void): void;
4
4
  declare function InventoryItemMiscTimerPasswordPadlockExitHook(data: NoArchItemData, originalFunction: (() => void) | null): void;
5
- declare const PasswordTimerChooseOptions: {
5
+ declare const PasswordTimerChooseOptions: ({
6
6
  unit: {
7
- label: string;
8
- seconds: number;
7
+ readonly label: "Minutes";
8
+ readonly seconds: 60;
9
9
  };
10
10
  values: number[];
11
- }[];
11
+ } | {
12
+ unit: {
13
+ readonly label: "Hours";
14
+ readonly seconds: 3600;
15
+ };
16
+ values: number[];
17
+ })[];
12
18
  declare let PasswordTimerChooseOptionsIndex: number;
13
19
  declare let PasswordTimerChooseIndexes: number[];
@@ -8,6 +8,14 @@ declare function ClubCardIsOnline(): boolean;
8
8
  * @returns {boolean} - Nothing
9
9
  */
10
10
  declare function ClubCardIsPlaying(): boolean;
11
+ /**
12
+ * Start a ClubCard game against this opponent
13
+ * @param {Character} opponent
14
+ * @param {number[]} deck
15
+ * @param {() => void} completion
16
+ * @returns
17
+ */
18
+ declare function ClubCardStart(opponent: Character, deck: number[], completion: () => void): Promise<void>;
11
19
  /**
12
20
  * In case one of the players disconnects from the server, the other player sends a message about it to the game chat.
13
21
  * @param {number} disconnectedMemberNumber
@@ -421,6 +429,12 @@ declare function ClubCardAlvinCondition(CCPlayer: ClubCardPlayer): void;
421
429
  * @returns {void} - Nothing
422
430
  */
423
431
  declare function ClubCardTifaSelection(CCPlayer: ClubCardPlayer, Selection: string): void;
432
+ /**
433
+ * Handles Clares active effect
434
+ * @param {ClubCardPlayer} CCPlayer
435
+ * @returns {void} - Nothing
436
+ */
437
+ declare function ClubCardClareSelection(CCPlayer: ClubCardPlayer, Card: any): void;
424
438
  /**
425
439
  * Removes cards from a player hand
426
440
  * @param {ClubCardPlayer} CCPlayer - The club card player that discards
@@ -433,9 +447,9 @@ declare function ClubCardPlayerDiscardCard(CCPlayer: ClubCardPlayer, Amount: num
433
447
  * @param {ClubCardPlayer} CCPlayer - The club card player that discards
434
448
  * @param {number} Pos - The location of the card to discard
435
449
  * @param {string} DiscardFrom - The pile to discard from
436
- * @returns {void} - Nothing
450
+ * @returns {boolean} - TRUE if the card was discarded
437
451
  */
438
- declare function ClubCardDiscardCard(CCPlayer: ClubCardPlayer, Pos: number, DiscardFrom?: string): void;
452
+ declare function ClubCardDiscardCard(CCPlayer: ClubCardPlayer, Pos: number, DiscardFrom?: string): boolean;
439
453
  /**
440
454
  * Builds a deck array of object from a deck array of numbers
441
455
  * @param {readonly number[]} InDeck - The array of number deck
@@ -447,6 +461,7 @@ declare function ClubCardLoadDeck(InDeck: readonly number[]): ClubCard[];
447
461
  * @returns {number} - The array index position
448
462
  */
449
463
  declare function ClubCardGetPlayerIndex(): number;
464
+ declare function ClubCardSelectDefaultDeck(): void;
450
465
  /**
451
466
  * Builds a deck array of object from a deck array of numbers
452
467
  * @param {number} DeckNum - The array of number deck
@@ -503,12 +518,6 @@ declare function ClubCardEndGameSyncAndMessage(CCPlayer: any): void;
503
518
  * @returns {Number} - The number of cards
504
519
  */
505
520
  declare function ClubCardTurnPlayableCardCount(CCPlayer: ClubCardPlayer): number;
506
- /**
507
- * Returns the number of cards that will be drawn when the player choses to draw instead of playing
508
- * @param {ClubCardPlayer} CCPlayer - The club card player
509
- * @returns {Number} - The number of cards to draw
510
- */
511
- declare function ClubCardDrawCardCount(CCPlayer: ClubCardPlayer): number;
512
521
  /**
513
522
  * Returns the extra time in turns for event over time
514
523
  * @param {ClubCardPlayer} CCPlayer - The club card player
@@ -876,6 +885,8 @@ declare var ClubCardLiabilityLimit: number[];
876
885
  declare var ClubCardPlayer: ClubCardPlayer[];
877
886
  declare var ClubCardOnlinePlayerMemberNumber1: number;
878
887
  declare var ClubCardOnlinePlayerMemberNumber2: number;
888
+ declare var ClubCardDefaultSelection: string;
889
+ declare var ClubCardUsePrecon: boolean;
879
890
  /**
880
891
  * Counter to ensure unique ID incrementation.
881
892
  * It is used globally to prevent ID duplication.