bc-stubs 96.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/LICENSE +21 -0
- package/README.md +2 -0
- package/bc/Assets/Female3DCG/Female3DCG.d.ts +41 -0
- package/bc/Assets/Female3DCG/Female3DCGExtended.d.ts +29 -0
- package/bc/Backgrounds/Backgrounds.d.ts +37 -0
- package/bc/Female3DCG_Types.d.ts +875 -0
- package/bc/Screens/Character/Appearance/Appearance.d.ts +392 -0
- package/bc/Screens/Character/BackgroundSelection/BackgroundSelection.d.ts +98 -0
- package/bc/Screens/Character/Cheat/Cheat.d.ts +54 -0
- package/bc/Screens/Character/Creation/Creation.d.ts +40 -0
- package/bc/Screens/Character/Disclaimer/Disclaimer.d.ts +21 -0
- package/bc/Screens/Character/FriendList/FriendList.d.ts +102 -0
- package/bc/Screens/Character/InformationSheet/InformationSheet.d.ts +46 -0
- package/bc/Screens/Character/ItemColor/ItemColor.d.ts +232 -0
- package/bc/Screens/Character/Login/Login.d.ts +194 -0
- package/bc/Screens/Character/OnlineProfile/OnlineProfile.d.ts +27 -0
- package/bc/Screens/Character/PasswordReset/PasswordReset.d.ts +28 -0
- package/bc/Screens/Character/Preference/Preference.d.ts +658 -0
- package/bc/Screens/Character/Relog/Relog.d.ts +36 -0
- package/bc/Screens/Character/Title/Title.d.ts +68 -0
- package/bc/Screens/Character/Wardrobe/Wardrobe.d.ts +93 -0
- package/bc/Screens/Cutscene/NPCCollaring/NPCCollaring.d.ts +26 -0
- package/bc/Screens/Cutscene/NPCSlaveAuction/NPCSlaveAuction.d.ts +27 -0
- package/bc/Screens/Cutscene/NPCWedding/NPCWedding.d.ts +35 -0
- package/bc/Screens/Cutscene/PlayerCollaring/PlayerCollaring.d.ts +26 -0
- package/bc/Screens/Cutscene/PlayerMistress/PlayerMistress.d.ts +24 -0
- package/bc/Screens/Cutscene/SarahIntro/SarahIntro.d.ts +22 -0
- package/bc/Screens/Inventory/Cloth/CheerleaderTop/CheerleaderTop.d.ts +33 -0
- package/bc/Screens/Inventory/Cloth/FrilledShirt/FrilledShirt.d.ts +10 -0
- package/bc/Screens/Inventory/ClothAccessory/Bib/Bib.d.ts +2 -0
- package/bc/Screens/Inventory/EyeShadow/EyeShadow.d.ts +60 -0
- package/bc/Screens/Inventory/Futuristic/Futuristic.d.ts +60 -0
- package/bc/Screens/Inventory/ItemArms/FullLatexSuit/FullLatexSuit.d.ts +6 -0
- package/bc/Screens/Inventory/ItemArms/HempRope/HempRope.d.ts +2 -0
- package/bc/Screens/Inventory/ItemArms/NylonRope/NylonRope.d.ts +2 -0
- package/bc/Screens/Inventory/ItemArms/PrisonLockdownSuit/PrisonLockdownSuit.d.ts +4 -0
- package/bc/Screens/Inventory/ItemArms/TransportJacket/TransportJacket.d.ts +10 -0
- package/bc/Screens/Inventory/ItemBreast/ForbiddenChastityBra/ForbiddenChastityBra.d.ts +32 -0
- package/bc/Screens/Inventory/ItemBreast/FuturisticBra/FuturisticBra.d.ts +24 -0
- package/bc/Screens/Inventory/ItemButt/AnalBeads2/AnalBeads2.d.ts +2 -0
- package/bc/Screens/Inventory/ItemButt/InflVibeButtPlug/InflVibeButtPlug.d.ts +2 -0
- package/bc/Screens/Inventory/ItemDevices/DollBox/DollBox.d.ts +2 -0
- package/bc/Screens/Inventory/ItemDevices/FuckMachine/FuckMachine.d.ts +16 -0
- package/bc/Screens/Inventory/ItemDevices/FuturisticCrate/FuturisticCrate.d.ts +8 -0
- package/bc/Screens/Inventory/ItemDevices/KabeshiriWall/KabeshiriWall.d.ts +13 -0
- package/bc/Screens/Inventory/ItemDevices/Kennel/Kennel.d.ts +18 -0
- package/bc/Screens/Inventory/ItemDevices/LuckyWheel/LuckyWheel.d.ts +48 -0
- package/bc/Screens/Inventory/ItemDevices/PetBowl/PetBowl.d.ts +6 -0
- package/bc/Screens/Inventory/ItemDevices/VacBedDeluxe/VacBedDeluxe.d.ts +2 -0
- package/bc/Screens/Inventory/ItemDevices/WheelFortune/WheelFortune.d.ts +10 -0
- package/bc/Screens/Inventory/ItemDevices/WoodenBox/WoodenBox.d.ts +13 -0
- package/bc/Screens/Inventory/ItemFeet/HempRope/HempRope.d.ts +2 -0
- package/bc/Screens/Inventory/ItemFeet/NylonRope/NylonRope.d.ts +2 -0
- package/bc/Screens/Inventory/ItemHandhelds/PortalTablet/PortalTablet.d.ts +10 -0
- package/bc/Screens/Inventory/ItemHead/DroneMask/DroneMask.d.ts +2 -0
- package/bc/Screens/Inventory/ItemHood/CanvasHood/CanvasHood.d.ts +6 -0
- package/bc/Screens/Inventory/ItemMisc/CombinationPadlock/CombinationPadlock.d.ts +16 -0
- package/bc/Screens/Inventory/ItemMisc/ExclusivePadlock/ExclusivePadlock.d.ts +6 -0
- package/bc/Screens/Inventory/ItemMisc/FamilyPadlock/FamilyPadlock.d.ts +6 -0
- package/bc/Screens/Inventory/ItemMisc/HighSecurityPadlock/HighSecurityPadlock.d.ts +15 -0
- package/bc/Screens/Inventory/ItemMisc/IntricatePadlock/IntricatePadlock.d.ts +6 -0
- package/bc/Screens/Inventory/ItemMisc/LoversPadlock/LoversPadlock.d.ts +6 -0
- package/bc/Screens/Inventory/ItemMisc/LoversTimerPadlock/LoversTimerPadlock.d.ts +17 -0
- package/bc/Screens/Inventory/ItemMisc/MetalPadlock/MetalPadlock.d.ts +6 -0
- package/bc/Screens/Inventory/ItemMisc/MistressPadlock/MistressPadlock.d.ts +6 -0
- package/bc/Screens/Inventory/ItemMisc/MistressTimerPadlock/MistressTimerPadlock.d.ts +13 -0
- package/bc/Screens/Inventory/ItemMisc/OwnerPadlock/OwnerPadlock.d.ts +6 -0
- package/bc/Screens/Inventory/ItemMisc/OwnerTimerPadlock/OwnerTimerPadlock.d.ts +22 -0
- package/bc/Screens/Inventory/ItemMisc/PandoraPadlock/PandoraPadlock.d.ts +6 -0
- package/bc/Screens/Inventory/ItemMisc/PasswordPadlock/PasswordPadlock.d.ts +17 -0
- package/bc/Screens/Inventory/ItemMisc/PortalLinkPadlock/PortalLinkPadlock.d.ts +6 -0
- package/bc/Screens/Inventory/ItemMisc/SafewordPadlock/SafewordPadlock.d.ts +12 -0
- package/bc/Screens/Inventory/ItemMisc/TimerPadlock/TimerPadlock.d.ts +13 -0
- package/bc/Screens/Inventory/ItemMisc/TimerPasswordPadlock/TimerPasswordPadlock.d.ts +13 -0
- package/bc/Screens/Inventory/ItemMisc/WoodenSign/WoodenSign.d.ts +2 -0
- package/bc/Screens/Inventory/ItemMouth/FuturisticPanelGag/FuturisticPanelGag.d.ts +49 -0
- package/bc/Screens/Inventory/ItemNeck/AutoShockCollar/AutoShockCollar.d.ts +4 -0
- package/bc/Screens/Inventory/ItemNeck/FuturisticCollar/FuturisticCollar.d.ts +59 -0
- package/bc/Screens/Inventory/ItemNeck/PetSuitShockCollar/PetSuitShockCollar.d.ts +4 -0
- package/bc/Screens/Inventory/ItemNeck/ShockCollar/ShockCollar.d.ts +4 -0
- package/bc/Screens/Inventory/ItemNeck/SlaveCollar/SlaveCollar.d.ts +25 -0
- package/bc/Screens/Inventory/ItemNeckAccessories/CollarAutoShockUnit/CollarAutoShockUnit.d.ts +15 -0
- package/bc/Screens/Inventory/ItemNeckAccessories/CollarNameTag/CollarNameTag.d.ts +8 -0
- package/bc/Screens/Inventory/ItemNeckAccessories/CollarShockUnit/CollarShockUnit.d.ts +17 -0
- package/bc/Screens/Inventory/ItemNeckAccessories/CustomCollarTag/CustomCollarTag.d.ts +2 -0
- package/bc/Screens/Inventory/ItemNeckAccessories/ElectronicTag/ElectronicTag.d.ts +2 -0
- package/bc/Screens/Inventory/ItemNeckRestraints/CollarLeash/CollarLeash.d.ts +4 -0
- package/bc/Screens/Inventory/ItemNeckRestraints/PetPost/PetPost.d.ts +2 -0
- package/bc/Screens/Inventory/ItemNipples/LactationPump/LactationPump.d.ts +2 -0
- package/bc/Screens/Inventory/ItemPelvis/ForbiddenChastityBelt/ForbiddenChastityBelt.d.ts +32 -0
- package/bc/Screens/Inventory/ItemPelvis/FuturisticChastityBelt/FuturisticChastityBelt.d.ts +28 -0
- package/bc/Screens/Inventory/ItemPelvis/FuturisticTrainingBelt/FuturisticTrainingBelt.d.ts +103 -0
- package/bc/Screens/Inventory/ItemPelvis/LoveChastityBelt/LoveChastityBelt.d.ts +8 -0
- package/bc/Screens/Inventory/ItemPelvis/ObedienceBelt/ObedienceBelt.d.ts +29 -0
- package/bc/Screens/Inventory/ItemPelvis/PortalPanties/PortalPanties.d.ts +10 -0
- package/bc/Screens/Inventory/ItemPelvis/SciFiPleasurePanties/SciFiPleasurePanties.d.ts +6 -0
- package/bc/Screens/Inventory/ItemTorso/FuturisticHarness/FuturisticHarness.d.ts +8 -0
- package/bc/Screens/Inventory/ItemVulva/ClitAndDildoVibratorbelt/ClitAndDildoVibratorbelt.d.ts +4 -0
- package/bc/Screens/Inventory/ItemVulva/FuturisticVibrator/FuturisticVibrator.d.ts +65 -0
- package/bc/Screens/Inventory/ItemVulva/LoversVibrator/LoversVibrator.d.ts +2 -0
- package/bc/Screens/Inventory/Wings/SteampunkWings/SteampunkWings.d.ts +16 -0
- package/bc/Screens/MiniGame/Chess/BondageChess.d.ts +30 -0
- package/bc/Screens/MiniGame/Chess/chess.d.ts +7 -0
- package/bc/Screens/MiniGame/ChestLockpick/ChestLockpick.d.ts +27 -0
- package/bc/Screens/MiniGame/ClubCard/ClubCard.d.ts +373 -0
- package/bc/Screens/MiniGame/ClubCardBuilder/ClubCardBuilder.d.ts +66 -0
- package/bc/Screens/MiniGame/DojoStruggle/DojoStruggle.d.ts +25 -0
- package/bc/Screens/MiniGame/GetUp/GetUp.d.ts +31 -0
- package/bc/Screens/MiniGame/HorseWalk/HorseWalk.d.ts +85 -0
- package/bc/Screens/MiniGame/Kidnap/Kidnap.d.ts +165 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KDAutoStruggle.d.ts +99 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KDClasses.d.ts +11 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KDDelayedActions.d.ts +17 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KDFixForBC.d.ts +11 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KDModUtils.d.ts +93 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KDParticles.d.ts +37 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KDTypeDefs.d.ts +2161 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KDWardrobe.d.ts +84 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeon.d.ts +653 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonAlt.d.ts +481 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonBones.d.ts +16 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonBoss.d.ts +119 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonBuffs.d.ts +33 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonBuffsList.d.ts +865 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonConsumables.d.ts +36 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonConsumablesList.d.ts +66 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonCurse.d.ts +44 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonDialogue.d.ts +171 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonDialogueList.d.ts +45 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonDialogueTriggers.d.ts +48 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonDraw.d.ts +738 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonDress.d.ts +62 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonDressList.d.ts +33 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonEditor.d.ts +1124 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonEditorGen.d.ts +113 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonEditorTiles.d.ts +4 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonEffectTiles.d.ts +6 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonEnemies.d.ts +544 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonEnemiesList.d.ts +22 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonEnemyEventList.d.ts +18 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonErrors.d.ts +59 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonEvents.d.ts +151 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonFactions.d.ts +53 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonFactionsList.d.ts +650 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonFight.d.ts +453 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonFurniture.d.ts +28 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonGame.d.ts +429 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonHUD.d.ts +134 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonInput.d.ts +23 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonInventory.d.ts +178 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonItem.d.ts +33 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonJail.d.ts +142 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonJailList.d.ts +105 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonLoot.d.ts +66 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonLootList.d.ts +866 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonLore.d.ts +37 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonMagic.d.ts +113 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonMagicCode.d.ts +23 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonMagicList.d.ts +62 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonMapMods.d.ts +5 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonMistress.d.ts +10 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonMultiplayer.d.ts +26 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonMusic.d.ts +28 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonObject.d.ts +42 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonParams.d.ts +4 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonPathfinding.d.ts +36 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonPerks.d.ts +147 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonPersonality.d.ts +83 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonPlayerEffects.d.ts +35 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonQuest.d.ts +10 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonReputation.d.ts +229 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonRestraints.d.ts +766 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonRestraintsList.d.ts +55 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonSetpiece.d.ts +91 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonShrine.d.ts +89 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonSpawns.d.ts +49 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonStats.d.ts +282 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonTests.d.ts +5 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonTiles.d.ts +160 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonTilesList.d.ts +72 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonTraps.d.ts +34 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonVibe.d.ts +98 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonVision.d.ts +24 -0
- package/bc/Screens/MiniGame/KinkyDungeon/KinkyDungeonWeaponList.d.ts +5 -0
- package/bc/Screens/MiniGame/MagicBattle/MagicBattle.d.ts +73 -0
- package/bc/Screens/MiniGame/MagicPuzzle/MagicPuzzle.d.ts +75 -0
- package/bc/Screens/MiniGame/MaidCleaning/MaidCleaning.d.ts +51 -0
- package/bc/Screens/MiniGame/MaidDrinks/MaidDrinks.d.ts +82 -0
- package/bc/Screens/MiniGame/PlayerAuction/PlayerAuction.d.ts +36 -0
- package/bc/Screens/MiniGame/PuppyWalker/PuppyWalker.d.ts +39 -0
- package/bc/Screens/MiniGame/RhythmGame/RhythmGame.d.ts +76 -0
- package/bc/Screens/MiniGame/SlaveAuction/SlaveAuction.d.ts +39 -0
- package/bc/Screens/MiniGame/Tennis/Tennis.d.ts +52 -0
- package/bc/Screens/MiniGame/Therapy/Therapy.d.ts +39 -0
- package/bc/Screens/MiniGame/WheelFortune/WheelFortune.d.ts +105 -0
- package/bc/Screens/Online/AdvancedRule/AdvancedRule.d.ts +32 -0
- package/bc/Screens/Online/ChatAdmin/ChatAdmin.d.ts +59 -0
- package/bc/Screens/Online/ChatBlockItem/ChatBlockItem.d.ts +30 -0
- package/bc/Screens/Online/ChatCreate/ChatCreate.d.ts +66 -0
- package/bc/Screens/Online/ChatRoom/ChatRoom.d.ts +1342 -0
- package/bc/Screens/Online/ChatRoom/Commands.d.ts +66 -0
- package/bc/Screens/Online/ChatSearch/ChatSearch.d.ts +241 -0
- package/bc/Screens/Online/ChatSelect/ChatSelect.d.ts +33 -0
- package/bc/Screens/Online/ForbiddenWords/ForbiddenWords.d.ts +33 -0
- package/bc/Screens/Online/Game/OnlineGame.d.ts +69 -0
- package/bc/Screens/Online/GameClubCard/GameClubCard.d.ts +131 -0
- package/bc/Screens/Online/GameLARP/GameLARP.d.ts +279 -0
- package/bc/Screens/Online/GameMagicBattle/GameMagicBattle.d.ts +159 -0
- package/bc/Screens/Online/WheelFortuneCustomize/WheelFortuneCustomize.d.ts +24 -0
- package/bc/Screens/Room/Arcade/Arcade.d.ts +94 -0
- package/bc/Screens/Room/AsylumBedroom/AsylumBedroom.d.ts +16 -0
- package/bc/Screens/Room/AsylumEntrance/AsylumEntrance.d.ts +265 -0
- package/bc/Screens/Room/AsylumGGTS/AsylumGGTS.d.ts +330 -0
- package/bc/Screens/Room/AsylumMeeting/AsylumMeeting.d.ts +110 -0
- package/bc/Screens/Room/AsylumTherapy/AsylumTherapy.d.ts +117 -0
- package/bc/Screens/Room/Cafe/Cafe.d.ts +144 -0
- package/bc/Screens/Room/Cell/Cell.d.ts +32 -0
- package/bc/Screens/Room/ClubCardLounge/ClubCardLounge.d.ts +28 -0
- package/bc/Screens/Room/CollegeCafeteria/CollegeCafeteria.d.ts +57 -0
- package/bc/Screens/Room/CollegeChess/CollegeChess.d.ts +75 -0
- package/bc/Screens/Room/CollegeDetention/CollegeDetention.d.ts +98 -0
- package/bc/Screens/Room/CollegeEntrance/CollegeEntrance.d.ts +54 -0
- package/bc/Screens/Room/CollegeTeacher/CollegeTeacher.d.ts +71 -0
- package/bc/Screens/Room/CollegeTennis/CollegeTennis.d.ts +47 -0
- package/bc/Screens/Room/CollegeTheater/CollegeTheater.d.ts +100 -0
- package/bc/Screens/Room/Crafting/Crafting.d.ts +213 -0
- package/bc/Screens/Room/DailyJob/DailyJob.d.ts +111 -0
- package/bc/Screens/Room/Empty/Empty.d.ts +84 -0
- package/bc/Screens/Room/Gambling/Gambling.d.ts +269 -0
- package/bc/Screens/Room/Infiltration/Infiltration.d.ts +223 -0
- package/bc/Screens/Room/InfiltrationPerks/InfiltrationPerks.d.ts +42 -0
- package/bc/Screens/Room/Introduction/Introduction.d.ts +195 -0
- package/bc/Screens/Room/KidnapLeague/KidnapLeague.d.ts +253 -0
- package/bc/Screens/Room/LARP/LARP.d.ts +39 -0
- package/bc/Screens/Room/Magic/Magic.d.ts +199 -0
- package/bc/Screens/Room/MagicSchoolEscape/MagicSchoolEscape.d.ts +36 -0
- package/bc/Screens/Room/MagicSchoolLaboratory/MagicSchoolLaboratory.d.ts +170 -0
- package/bc/Screens/Room/MaidQuarters/MaidQuarters.d.ts +305 -0
- package/bc/Screens/Room/MainHall/MainHall.d.ts +255 -0
- package/bc/Screens/Room/Management/Management.d.ts +544 -0
- package/bc/Screens/Room/MovieStudio/MovieStudio.d.ts +178 -0
- package/bc/Screens/Room/Nursery/Nursery.d.ts +85 -0
- package/bc/Screens/Room/Pandora/Pandora.d.ts +348 -0
- package/bc/Screens/Room/PandoraPrison/PandoraPrison.d.ts +180 -0
- package/bc/Screens/Room/Photographic/Photographic.d.ts +53 -0
- package/bc/Screens/Room/Platform/Platform.d.ts +1730 -0
- package/bc/Screens/Room/PlatformDialog/PlatformDialog.d.ts +3966 -0
- package/bc/Screens/Room/PlatformIntro/PlatformIntro.d.ts +21 -0
- package/bc/Screens/Room/PlatformProfile/PlatformProfile.d.ts +62 -0
- package/bc/Screens/Room/Poker/Poker.d.ts +141 -0
- package/bc/Screens/Room/Poker/PokerHandValue.d.ts +65 -0
- package/bc/Screens/Room/Prison/Prison.d.ts +118 -0
- package/bc/Screens/Room/Private/Private.d.ts +781 -0
- package/bc/Screens/Room/PrivateBed/PrivateBed.d.ts +78 -0
- package/bc/Screens/Room/PrivateRansom/PrivateRansom.d.ts +28 -0
- package/bc/Screens/Room/Sarah/Sarah.d.ts +162 -0
- package/bc/Screens/Room/Shibari/Shibari.d.ts +162 -0
- package/bc/Screens/Room/Shop/Shop.d.ts +162 -0
- package/bc/Screens/Room/SlaveMarket/SlaveMarket.d.ts +90 -0
- package/bc/Screens/Room/Stable/Stable.d.ts +236 -0
- package/bc/Scripts/Activity.d.ts +270 -0
- package/bc/Scripts/AfkTimer.d.ts +43 -0
- package/bc/Scripts/Animation.d.ts +81 -0
- package/bc/Scripts/Asset.d.ts +216 -0
- package/bc/Scripts/Audio.d.ts +105 -0
- package/bc/Scripts/Character.d.ts +495 -0
- package/bc/Scripts/CharacterName.d.ts +1 -0
- package/bc/Scripts/ColorPicker.d.ts +155 -0
- package/bc/Scripts/Common.d.ts +499 -0
- package/bc/Scripts/CommonDraw.d.ts +34 -0
- package/bc/Scripts/ControllerSupport.d.ts +107 -0
- package/bc/Scripts/Dialog.d.ts +970 -0
- package/bc/Scripts/DictionaryBuilder.d.ts +210 -0
- package/bc/Scripts/Drawing.d.ts +581 -0
- package/bc/Scripts/Drawing3D.d.ts +21 -0
- package/bc/Scripts/DynamicDraw.d.ts +310 -0
- package/bc/Scripts/Element.d.ts +154 -0
- package/bc/Scripts/ExtendedItem.d.ts +339 -0
- package/bc/Scripts/GLDraw.d.ts +223 -0
- package/bc/Scripts/Game.d.ts +61 -0
- package/bc/Scripts/GameLog.d.ts +87 -0
- package/bc/Scripts/Graph.d.ts +46 -0
- package/bc/Scripts/Import.d.ts +7 -0
- package/bc/Scripts/Inventory.d.ts +509 -0
- package/bc/Scripts/MiniGame.d.ts +30 -0
- package/bc/Scripts/ModularItem.d.ts +286 -0
- package/bc/Scripts/Mouse.d.ts +34 -0
- package/bc/Scripts/NPC.d.ts +105 -0
- package/bc/Scripts/Notification.d.ts +120 -0
- package/bc/Scripts/PortalLink.d.ts +159 -0
- package/bc/Scripts/Property.d.ts +98 -0
- package/bc/Scripts/Reputation.d.ts +36 -0
- package/bc/Scripts/Server.d.ts +239 -0
- package/bc/Scripts/Skill.d.ts +107 -0
- package/bc/Scripts/Speech.d.ts +145 -0
- package/bc/Scripts/Struggle.d.ts +357 -0
- package/bc/Scripts/Testing.d.ts +30 -0
- package/bc/Scripts/Text.d.ts +92 -0
- package/bc/Scripts/TextItem.d.ts +65 -0
- package/bc/Scripts/TightenLoosenItem.d.ts +31 -0
- package/bc/Scripts/Timer.d.ts +62 -0
- package/bc/Scripts/Translation.d.ts +101 -0
- package/bc/Scripts/TypedItem.d.ts +242 -0
- package/bc/Scripts/Validation.d.ts +324 -0
- package/bc/Scripts/VariableHeight.d.ts +108 -0
- package/bc/Scripts/VibratorMode.d.ts +209 -0
- package/bc/Scripts/lib/LZString.d.ts +12 -0
- package/bc/Scripts/lib/three/FBXLoader.d.ts +0 -0
- package/bc/Scripts/lib/three/GLTFLoader.d.ts +0 -0
- package/bc/Scripts/lib/webgl/resources/m4.d.ts +0 -0
- package/bc/Typedef.d.ts +3933 -0
- package/package.json +19 -0
|
@@ -0,0 +1,2161 @@
|
|
|
1
|
+
declare type Named = {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
4
|
+
/** Kinky Dungeon Typedefs*/
|
|
5
|
+
interface item extends Named {
|
|
6
|
+
id: number;
|
|
7
|
+
/** Contains string data */
|
|
8
|
+
dataString?: Record<string, string>;
|
|
9
|
+
/** Contains numeric data */
|
|
10
|
+
dataNumber?: Record<string, number>;
|
|
11
|
+
/** Used in order to boost performance */
|
|
12
|
+
linkCache?: string[];
|
|
13
|
+
/** If the item has a different curse from the base curse */
|
|
14
|
+
curse?: string;
|
|
15
|
+
/** Name of the item*/
|
|
16
|
+
name: string;
|
|
17
|
+
/** Type of the item*/
|
|
18
|
+
type?: string;
|
|
19
|
+
/** Faction of the applied item */
|
|
20
|
+
faction?: string;
|
|
21
|
+
/** Events associated with the item*/
|
|
22
|
+
events?: KinkyDungeonEvent[];
|
|
23
|
+
/** Number of consumables in the inventory*/
|
|
24
|
+
quantity?: number;
|
|
25
|
+
/** Type of lock, Red, Blue, or Gold (potentially more in future)*/
|
|
26
|
+
lock?: string;
|
|
27
|
+
/** Bool to describe if the item is tethered to the leashing enemy*/
|
|
28
|
+
tetherToLeasher?: boolean;
|
|
29
|
+
/** Bool to describe if the item is tethered to KinkyDungeonJailGuard()*/
|
|
30
|
+
tetherToGuard?: boolean;
|
|
31
|
+
/** ID of leashing enemy*/
|
|
32
|
+
tetherEntity?: number;
|
|
33
|
+
/** Leashing location*/
|
|
34
|
+
tetherLocation?: {
|
|
35
|
+
x: number;
|
|
36
|
+
y: number;
|
|
37
|
+
};
|
|
38
|
+
/** Location of the tether*/
|
|
39
|
+
tx?: number;
|
|
40
|
+
/** Location of the tether*/
|
|
41
|
+
ty?: number;
|
|
42
|
+
/** Length of the tether*/
|
|
43
|
+
tetherLength?: number;
|
|
44
|
+
/** Used for Gold locks only, determines which floor the lock will release*/
|
|
45
|
+
lockTimer?: number;
|
|
46
|
+
/** Stores the previously linked item*/
|
|
47
|
+
dynamicLink?: item;
|
|
48
|
+
/** Generic item data, able to be manipulated thru events*/
|
|
49
|
+
data?: Record<string, any>;
|
|
50
|
+
/** Escape progress tracking*/
|
|
51
|
+
pickProgress?: number;
|
|
52
|
+
/** Escape progress tracking*/
|
|
53
|
+
struggleProgress?: number;
|
|
54
|
+
/** Escape progress tracking*/
|
|
55
|
+
cutProgress?: number;
|
|
56
|
+
/** Escape progress tracking*/
|
|
57
|
+
unlockProgress?: number;
|
|
58
|
+
/** Number of escape attempts, integer*/
|
|
59
|
+
attempts?: number;
|
|
60
|
+
/** Can be used to make an item tighter and harder to escape, reduces with each escape attempt*/
|
|
61
|
+
tightness?: number;
|
|
62
|
+
/** Determines the current trap attached to the restraint*/
|
|
63
|
+
trap?: string;
|
|
64
|
+
}
|
|
65
|
+
interface consumable {
|
|
66
|
+
name: string;
|
|
67
|
+
rarity: number;
|
|
68
|
+
type: string;
|
|
69
|
+
shop?: boolean;
|
|
70
|
+
spell?: string;
|
|
71
|
+
potion?: boolean;
|
|
72
|
+
noHands?: boolean;
|
|
73
|
+
/** Data var */
|
|
74
|
+
data?: Record<string, string | number>;
|
|
75
|
+
/** Requirement that overrides all other requirements */
|
|
76
|
+
prereq?: string;
|
|
77
|
+
/** Requirement in addition to all other requirements such as not being gagged for potions, bound, etc */
|
|
78
|
+
postreq?: string;
|
|
79
|
+
/** Minimum effectiveness when gagged */
|
|
80
|
+
gagFloor?: number;
|
|
81
|
+
/** Max gag amount to use */
|
|
82
|
+
gagMax?: number;
|
|
83
|
+
/** delay before use */
|
|
84
|
+
delay?: number;
|
|
85
|
+
needMouth?: boolean;
|
|
86
|
+
/** Max strictness allowed before the item cant be used */
|
|
87
|
+
maxStrictness?: number;
|
|
88
|
+
mp_instant?: number;
|
|
89
|
+
mpool_instant?: number;
|
|
90
|
+
wp_instant?: number;
|
|
91
|
+
sp_instant?: number;
|
|
92
|
+
ap_instant?: number;
|
|
93
|
+
mp_gradual?: number;
|
|
94
|
+
wp_gradual?: number;
|
|
95
|
+
sp_gradual?: number;
|
|
96
|
+
ap_gradual?: number;
|
|
97
|
+
arousalRatio?: number;
|
|
98
|
+
scaleWithMaxMP?: boolean;
|
|
99
|
+
scaleWithMaxSP?: boolean;
|
|
100
|
+
scaleWithMaxAP?: boolean;
|
|
101
|
+
scaleWithMaxWP?: boolean;
|
|
102
|
+
duration?: number;
|
|
103
|
+
power?: number;
|
|
104
|
+
amount?: number;
|
|
105
|
+
rechargeCost?: number;
|
|
106
|
+
aura?: string;
|
|
107
|
+
buff?: string;
|
|
108
|
+
costMod?: number;
|
|
109
|
+
shrine?: string;
|
|
110
|
+
sfx?: string;
|
|
111
|
+
noConsumeOnUse?: boolean;
|
|
112
|
+
useQuantity?: number;
|
|
113
|
+
/** Support for multiple effects */
|
|
114
|
+
sideEffects?: string[];
|
|
115
|
+
}
|
|
116
|
+
declare type KDHasTags = {
|
|
117
|
+
tags: any;
|
|
118
|
+
};
|
|
119
|
+
interface KDRestraintProps extends KDRestraintPropsBase {
|
|
120
|
+
name: string;
|
|
121
|
+
Group: AssetGroupName;
|
|
122
|
+
Asset: string;
|
|
123
|
+
}
|
|
124
|
+
interface KDRestraintPropsBase {
|
|
125
|
+
/** Used in standalone to replace Color */
|
|
126
|
+
Filters?: Record<string, LayerFilter>;
|
|
127
|
+
/** This item is unaffected by shrines */
|
|
128
|
+
noShrine?: boolean;
|
|
129
|
+
/** This item is beneficial and player wont try to struggle from it */
|
|
130
|
+
good?: boolean;
|
|
131
|
+
inventory?: boolean;
|
|
132
|
+
power?: number;
|
|
133
|
+
weight?: number;
|
|
134
|
+
minLevel?: number;
|
|
135
|
+
allFloors?: boolean;
|
|
136
|
+
escapeChance?: any;
|
|
137
|
+
events?: KinkyDungeonEvent[];
|
|
138
|
+
enemyTags?: Record<string, number>;
|
|
139
|
+
playerTags?: Record<string, number>;
|
|
140
|
+
shrine?: string[];
|
|
141
|
+
debris?: string;
|
|
142
|
+
debrisChance?: number;
|
|
143
|
+
/** These items can only be applied if an enemy has the items in her inventory or the unlimited enemy tag */
|
|
144
|
+
limited?: boolean;
|
|
145
|
+
/** Forced to allow these, mainly leashes and collars */
|
|
146
|
+
unlimited?: boolean;
|
|
147
|
+
/** Security levels for chastity. Non-tech belts should have a Tech security of undefined. Magic belts should have undefined for key and tech.
|
|
148
|
+
* KEY can be circumvented by having a key. Normally you cant remove a plug but you can spend a key to unlock a plug slot for 30 turns or until you are hit or a restraint is removed in that slot.
|
|
149
|
+
* Key difficulty of 1 can simply be lockpicked, taking a bit of time.
|
|
150
|
+
* Key difficulty of 3 becomes a blue key.
|
|
151
|
+
* MAGIC can be circumvented thru CMD: Unlock
|
|
152
|
+
* Tech cannot be circumvented by the player. TODO add keycard to allow this.
|
|
153
|
+
* Undefined means the specified method can not be used
|
|
154
|
+
* Chastity without Security ignores the security system
|
|
155
|
+
* NPC ability to unlock is OR. Having the ability to unlock just one of the security levels means the NPC can unlock.
|
|
156
|
+
*/
|
|
157
|
+
Security?: {
|
|
158
|
+
/** Key security level, for low-tech non-mage factions */
|
|
159
|
+
level_key?: number;
|
|
160
|
+
/** Tech security level, for robots and wolfgirls */
|
|
161
|
+
level_tech?: number;
|
|
162
|
+
/** Magic security level, for mage factions */
|
|
163
|
+
level_magic?: number;
|
|
164
|
+
};
|
|
165
|
+
/** Affinity type: Hook, Edge, or Sharp, Sticky, defaults are Hook (struggle), Sharp (Cut), Edge (Pick), Sticky (Unlock), and none (Pick)*/
|
|
166
|
+
affinity?: {
|
|
167
|
+
Struggle?: string[];
|
|
168
|
+
Cut?: string[];
|
|
169
|
+
Remove?: string[];
|
|
170
|
+
Pick?: string[];
|
|
171
|
+
Unlock?: string[];
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* Makes it so its never impossible to struggle with these methods, usually best combined with struggleMinSpeed
|
|
175
|
+
*/
|
|
176
|
+
alwaysEscapable?: string[];
|
|
177
|
+
/**
|
|
178
|
+
* Makes it so enemies, if they would remove this item to place another restraint on, will simply remove this item instead
|
|
179
|
+
* Higher number means resistance to multibind
|
|
180
|
+
*/
|
|
181
|
+
protection?: number;
|
|
182
|
+
/**
|
|
183
|
+
* This item only provides protection if its group is being targeted
|
|
184
|
+
*/
|
|
185
|
+
protectionCursed?: boolean;
|
|
186
|
+
/** Determines if the item appears in aroused mode only */
|
|
187
|
+
arousalMode?: boolean;
|
|
188
|
+
/** This item lets you access linked items under it */
|
|
189
|
+
accessible?: boolean;
|
|
190
|
+
/** This item lets you CANT access linked items under it */
|
|
191
|
+
inaccessible?: boolean;
|
|
192
|
+
/** This item lets you ignore its inaccessibility for the sake of trussing up the player */
|
|
193
|
+
deepAccessible?: boolean;
|
|
194
|
+
/** WIP, does nothing yet. Should allow you to access the item under even inaccessible stuff */
|
|
195
|
+
alwaysAccessible?: boolean;
|
|
196
|
+
/** This item can be rendered when linked */
|
|
197
|
+
renderWhenLinked?: string[];
|
|
198
|
+
requireSingleTagToEquip?: string[];
|
|
199
|
+
/** This item always renders when linked */
|
|
200
|
+
alwaysRender?: boolean;
|
|
201
|
+
/** When the mentioned items are rendered, changes the type */
|
|
202
|
+
changeRenderType?: Record<string, string>;
|
|
203
|
+
/** Stacking category, used to determine if you can have multiple of these items in a stack */
|
|
204
|
+
linkCategory?: string;
|
|
205
|
+
/** Stacking size, can't exceed 1 */
|
|
206
|
+
linkSize?: number;
|
|
207
|
+
/** Enemies ignore you while you are wearing it */
|
|
208
|
+
ignoreNear?: boolean;
|
|
209
|
+
/** Enemies wont cast spells or ranged attacks while you are wearing it */
|
|
210
|
+
ignoreSpells?: boolean;
|
|
211
|
+
/** Can always struggle even if it's blocked */
|
|
212
|
+
alwaysStruggleable?: boolean;
|
|
213
|
+
/** Model to use in standalone. Defaults to Asset */
|
|
214
|
+
Model?: string;
|
|
215
|
+
/** Used for when the visual asset in BC is different from the actual group of the item*/
|
|
216
|
+
AssetGroup?: AssetGroupName;
|
|
217
|
+
Color?: ItemColor;
|
|
218
|
+
/** Maximum level, wont be used at this or higher. Inclusive. */
|
|
219
|
+
maxLevel?: number;
|
|
220
|
+
/** Determines the floors the restraint can appear on */
|
|
221
|
+
floors?: Record<string, boolean>;
|
|
222
|
+
/** Overrides escapeChance when you have a ghost helping*/
|
|
223
|
+
helpChance?: {
|
|
224
|
+
Struggle?: number;
|
|
225
|
+
Cut?: number;
|
|
226
|
+
Remove?: number;
|
|
227
|
+
Pick?: number;
|
|
228
|
+
Unlock?: number;
|
|
229
|
+
};
|
|
230
|
+
/** Determines the penalty to the escape chance at the limit--full struggle progress when struggling, and 0 for cut/remove/unlock/pick*/
|
|
231
|
+
limitChance?: {
|
|
232
|
+
Struggle?: number;
|
|
233
|
+
Cut?: number;
|
|
234
|
+
Remove?: number;
|
|
235
|
+
Pick?: number;
|
|
236
|
+
Unlock?: number;
|
|
237
|
+
};
|
|
238
|
+
struggleMinSpeed?: {
|
|
239
|
+
Struggle?: number;
|
|
240
|
+
Cut?: number;
|
|
241
|
+
Remove?: number;
|
|
242
|
+
Pick?: number;
|
|
243
|
+
Unlock?: number;
|
|
244
|
+
};
|
|
245
|
+
struggleMaxSpeed?: {
|
|
246
|
+
Struggle?: number;
|
|
247
|
+
Cut?: number;
|
|
248
|
+
Remove?: number;
|
|
249
|
+
Pick?: number;
|
|
250
|
+
Unlock?: number;
|
|
251
|
+
};
|
|
252
|
+
/** Multiplier to struggle power */
|
|
253
|
+
struggleMult?: {
|
|
254
|
+
Struggle?: number;
|
|
255
|
+
Cut?: number;
|
|
256
|
+
Remove?: number;
|
|
257
|
+
Pick?: number;
|
|
258
|
+
Unlock?: number;
|
|
259
|
+
};
|
|
260
|
+
/** Sound when using an escape method*/
|
|
261
|
+
sfxEscape?: {
|
|
262
|
+
Struggle?: string;
|
|
263
|
+
Cut?: string;
|
|
264
|
+
Remove?: string;
|
|
265
|
+
Pick?: string;
|
|
266
|
+
Unlock?: string;
|
|
267
|
+
NoStamina?: string;
|
|
268
|
+
NoWill?: string;
|
|
269
|
+
NoMagic?: string;
|
|
270
|
+
MagicCut?: string;
|
|
271
|
+
PickBreak?: string;
|
|
272
|
+
KnifeBreak?: string;
|
|
273
|
+
KnifeDrop?: string;
|
|
274
|
+
KeyDrop?: string;
|
|
275
|
+
PickDrop?: string;
|
|
276
|
+
};
|
|
277
|
+
sfxFinishEscape?: {
|
|
278
|
+
Struggle?: string;
|
|
279
|
+
Cut?: string;
|
|
280
|
+
Remove?: string;
|
|
281
|
+
Pick?: string;
|
|
282
|
+
Unlock?: string;
|
|
283
|
+
Destroy?: string;
|
|
284
|
+
};
|
|
285
|
+
/** Remove sound */
|
|
286
|
+
sfxRemove?: string;
|
|
287
|
+
/** Equip sound */
|
|
288
|
+
sfx?: string;
|
|
289
|
+
/** The vibrator will start vibing whenever another linked vibe starts */
|
|
290
|
+
linkedVibeTags?: string[];
|
|
291
|
+
vibeLocation?: string;
|
|
292
|
+
showInQuickInv?: boolean;
|
|
293
|
+
/** The item is a chastity belt */
|
|
294
|
+
chastity?: boolean;
|
|
295
|
+
/** The item is a chastity bra */
|
|
296
|
+
chastitybra?: boolean;
|
|
297
|
+
/** The item is a piercing */
|
|
298
|
+
piercing?: boolean;
|
|
299
|
+
/** The item rubs against the crotch when you move or struggle*/
|
|
300
|
+
crotchrope?: boolean;
|
|
301
|
+
/** The item provides distraction when you walk around*/
|
|
302
|
+
plugSize?: number;
|
|
303
|
+
/** Binding arms hurts a lot of things but isn't as punishing as hands */
|
|
304
|
+
bindarms?: boolean;
|
|
305
|
+
/** Hands count as bound for struggling purposes */
|
|
306
|
+
restricthands?: number;
|
|
307
|
+
/** Binding hands prevents use of weapons and picks */
|
|
308
|
+
bindhands?: number;
|
|
309
|
+
/** harnesses allow enemies to grab you and slow you */
|
|
310
|
+
harness?: boolean;
|
|
311
|
+
/** hobble is the simplest kind of slowing restraint, increasing slow by 1*/
|
|
312
|
+
hobble?: boolean;
|
|
313
|
+
/** Blocking feet is for restraints that tie the legs together, forcing the player into SLow Level 2 or higher */
|
|
314
|
+
blockfeet?: boolean;
|
|
315
|
+
/** Your total gag level is the sum of the gag values of all your variables. Ball gags have 0.3-0.75 based on size and harness, muzzles are 1.0 */
|
|
316
|
+
gag?: number;
|
|
317
|
+
/** Higher value = higher vision loss */
|
|
318
|
+
blindfold?: number;
|
|
319
|
+
/** Maximum stamina percentage the player can have in order for the restraint to be applied. 0.25-0.35 for really strict stuff, 0.9 for stuff like ball gags, none for quick restraints like cuffs */
|
|
320
|
+
maxwill?: number;
|
|
321
|
+
Type?: string;
|
|
322
|
+
/** Item is removed when the wearer goes to prison */
|
|
323
|
+
removePrison?: boolean;
|
|
324
|
+
/** Changes the dialogue text when you fail to remove the item */
|
|
325
|
+
failSuffix?: Record<string, string>;
|
|
326
|
+
/** Changes the dialogue text when you try to struggle completely */
|
|
327
|
+
specStruggleTypes?: string[];
|
|
328
|
+
/** List of Groups removed */
|
|
329
|
+
remove?: AssetGroupName[];
|
|
330
|
+
/** List of tags removed */
|
|
331
|
+
removeShrine?: string[];
|
|
332
|
+
slimeLevel?: number;
|
|
333
|
+
addTag?: string[];
|
|
334
|
+
addPose?: string[];
|
|
335
|
+
forbidPose?: string[];
|
|
336
|
+
removePose?: string[];
|
|
337
|
+
OverridePriority?: number;
|
|
338
|
+
Modules?: number[];
|
|
339
|
+
/** When added to the inventory, is added as a different item instead. Good for multiple stages of the same item, like cuffs */
|
|
340
|
+
inventoryAs?: string;
|
|
341
|
+
/** When added to the inventory by self, is added as a different item instead. Good for multiple stages of the same item, like cuffs */
|
|
342
|
+
inventoryAsSelf?: string;
|
|
343
|
+
/** The item is always kept in your inventory no matter how it gets removed, so long as you don't cut it */
|
|
344
|
+
alwaysKeep?: boolean;
|
|
345
|
+
/** The jailer won't remove these */
|
|
346
|
+
noJailRemove?: boolean;
|
|
347
|
+
/** Increases the difficulty of other items */
|
|
348
|
+
strictness?: number;
|
|
349
|
+
/** Overrides the existing strictness zones for the item's group */
|
|
350
|
+
strictnessZones?: string[];
|
|
351
|
+
/** Can be linked by items with this shrine category */
|
|
352
|
+
LinkableBy?: string[];
|
|
353
|
+
DefaultLock?: string;
|
|
354
|
+
HideDefaultLock?: boolean;
|
|
355
|
+
Link?: string;
|
|
356
|
+
UnLink?: string;
|
|
357
|
+
/** Removes when the player is leashed */
|
|
358
|
+
removeOnLeash?: boolean;
|
|
359
|
+
/** player is enclosed */
|
|
360
|
+
enclose?: boolean;
|
|
361
|
+
/** ignore the player if player is 0 stamina and the enemy is non leashing */
|
|
362
|
+
ignoreIfNotLeash?: boolean;
|
|
363
|
+
/** Default tether length */
|
|
364
|
+
tether?: number;
|
|
365
|
+
leash?: boolean;
|
|
366
|
+
/** The vibe can be remote controlled by enemies */
|
|
367
|
+
allowRemote?: boolean;
|
|
368
|
+
/** Multiplies the escape chance */
|
|
369
|
+
escapeMult?: number;
|
|
370
|
+
/** Clothes for dressing */
|
|
371
|
+
alwaysDress?: overrideDisplayItem[];
|
|
372
|
+
/** The item always bypasses covering items, such as dresses and chastity belts */
|
|
373
|
+
bypass?: boolean;
|
|
374
|
+
/** The item can only be cut with magical implements */
|
|
375
|
+
magic?: boolean;
|
|
376
|
+
/** The item is regarded as a non-binding item, so the game knows how to handle it. Used for stuff like cuffs which are not binding by default */
|
|
377
|
+
nonbinding?: boolean;
|
|
378
|
+
/** Instantly forces a high slow level, for stuff like slime */
|
|
379
|
+
freeze?: boolean;
|
|
380
|
+
/** Immobilizes the player */
|
|
381
|
+
immobile?: boolean;
|
|
382
|
+
/** The item CAN be trapped, which triggers when you struggle out */
|
|
383
|
+
trappable?: boolean;
|
|
384
|
+
/** The item can only be removed through a special condition known as a curse */
|
|
385
|
+
curse?: string;
|
|
386
|
+
/** The extra difficulty the item adds to the global difficulty var */
|
|
387
|
+
difficultyBonus?: number;
|
|
388
|
+
/** Whether or not the angels will take it off when you call them */
|
|
389
|
+
divine?: boolean;
|
|
390
|
+
/** If this is enabled, then you can spend ancient energy to use a potion at no reduction to potion effectiveness while gagged */
|
|
391
|
+
potionCollar?: boolean;
|
|
392
|
+
/** Always allows potions while this restraint is on */
|
|
393
|
+
allowPotions?: boolean;
|
|
394
|
+
/** Allows the user to walk across slime */
|
|
395
|
+
slimeWalk?: boolean;
|
|
396
|
+
/** Amount of ancient energy it draws per turn */
|
|
397
|
+
enchantedDrain?: number;
|
|
398
|
+
/** Whether or not this is an Ancient item, prison respects it */
|
|
399
|
+
enchanted?: boolean;
|
|
400
|
+
/** Faction color index */
|
|
401
|
+
factionColor?: number[][];
|
|
402
|
+
/** Determines if it gets hidden by the 'Hide Armor' option */
|
|
403
|
+
armor?: boolean;
|
|
404
|
+
/** Power to display, not actual power */
|
|
405
|
+
displayPower?: number;
|
|
406
|
+
}
|
|
407
|
+
interface restraint extends KDRestraintProps {
|
|
408
|
+
power: number;
|
|
409
|
+
/** Base weight of the restraint, required */
|
|
410
|
+
weight: number;
|
|
411
|
+
minLevel: number;
|
|
412
|
+
Color: string[] | string;
|
|
413
|
+
escapeChance: any;
|
|
414
|
+
enemyTags: Record<string, number>;
|
|
415
|
+
playerTags: Record<string, number>;
|
|
416
|
+
shrine: string[];
|
|
417
|
+
}
|
|
418
|
+
interface KDEscapeChanceList {
|
|
419
|
+
Struggle?: number;
|
|
420
|
+
Cut?: number;
|
|
421
|
+
Remove?: number;
|
|
422
|
+
Pick?: number;
|
|
423
|
+
Unlock?: number;
|
|
424
|
+
}
|
|
425
|
+
declare type outfitKey = string;
|
|
426
|
+
declare type mapKey = string;
|
|
427
|
+
interface floorParams {
|
|
428
|
+
/** List of factions allowed to be primary or secondary here */
|
|
429
|
+
factionList?: string[];
|
|
430
|
+
/** This code is run after a worldgen */
|
|
431
|
+
worldGenCode?: () => void;
|
|
432
|
+
tagModifiers?: Record<string, number>;
|
|
433
|
+
globalTags?: Record<string, boolean>;
|
|
434
|
+
shadowColor?: number;
|
|
435
|
+
lightColor?: number;
|
|
436
|
+
background: string;
|
|
437
|
+
openness: number;
|
|
438
|
+
density: number;
|
|
439
|
+
torchchance?: number;
|
|
440
|
+
torchlitchance?: number;
|
|
441
|
+
music: Record<string, number>;
|
|
442
|
+
/** Will add more/less torches on the main path */
|
|
443
|
+
torchchanceboring?: number;
|
|
444
|
+
torchreplace?: {
|
|
445
|
+
sprite: string;
|
|
446
|
+
unlitsprite?: string;
|
|
447
|
+
brightness: number;
|
|
448
|
+
};
|
|
449
|
+
/** These tiles wont alter wall tiles in this tileset */
|
|
450
|
+
noReplace?: string;
|
|
451
|
+
/** Chance of shrine having mana */
|
|
452
|
+
manaChance?: number;
|
|
453
|
+
crackchance: number;
|
|
454
|
+
foodChance?: number;
|
|
455
|
+
barchance: number;
|
|
456
|
+
brightness: number;
|
|
457
|
+
chestcount: number;
|
|
458
|
+
shrinecount: number;
|
|
459
|
+
shrinechance: number;
|
|
460
|
+
ghostchance: number;
|
|
461
|
+
doorchance: number;
|
|
462
|
+
nodoorchance: number;
|
|
463
|
+
doorlockchance: number;
|
|
464
|
+
doorlocktrapchance?: number;
|
|
465
|
+
minortrapChance?: number;
|
|
466
|
+
chargerchance?: number;
|
|
467
|
+
litchargerchance?: number;
|
|
468
|
+
chargercount?: number;
|
|
469
|
+
trapchance: number;
|
|
470
|
+
barrelChance?: number;
|
|
471
|
+
grateChance: number;
|
|
472
|
+
rubblechance: number;
|
|
473
|
+
brickchance: number;
|
|
474
|
+
cacheInterval: number;
|
|
475
|
+
cageChance?: number;
|
|
476
|
+
wallhookchance?: number;
|
|
477
|
+
ceilinghookchance?: number;
|
|
478
|
+
hallopenness?: number;
|
|
479
|
+
/** FOrces all setpieces to use POIs, useful for tunnel type maps with thick walls to prevent entombe pieces*/
|
|
480
|
+
forcePOI?: boolean;
|
|
481
|
+
gaschance?: number;
|
|
482
|
+
gasdensity?: number;
|
|
483
|
+
gastype?: string;
|
|
484
|
+
wallRubblechance?: number;
|
|
485
|
+
lockmult?: number;
|
|
486
|
+
floodchance?: number;
|
|
487
|
+
forbiddenChance: number;
|
|
488
|
+
forbiddenGreaterChance: number;
|
|
489
|
+
setpieces?: {
|
|
490
|
+
Type: string;
|
|
491
|
+
Weight: number;
|
|
492
|
+
}[];
|
|
493
|
+
shortcuts: {
|
|
494
|
+
Level: number;
|
|
495
|
+
checkpoint: string;
|
|
496
|
+
chance: number;
|
|
497
|
+
}[];
|
|
498
|
+
mainpath: {
|
|
499
|
+
Level: number;
|
|
500
|
+
checkpoint: string;
|
|
501
|
+
chance?: number;
|
|
502
|
+
}[];
|
|
503
|
+
traps: {
|
|
504
|
+
Name: string;
|
|
505
|
+
Enemy?: string;
|
|
506
|
+
Spell?: string;
|
|
507
|
+
extraTag?: string;
|
|
508
|
+
Level: number;
|
|
509
|
+
Power: number;
|
|
510
|
+
Weight: number;
|
|
511
|
+
strict?: true;
|
|
512
|
+
}[];
|
|
513
|
+
min_width: number;
|
|
514
|
+
max_width: number;
|
|
515
|
+
min_height: number;
|
|
516
|
+
max_height: number;
|
|
517
|
+
ShopExclusives?: string[];
|
|
518
|
+
enemyTags: string[];
|
|
519
|
+
"defeat_outfit": outfitKey;
|
|
520
|
+
/**
|
|
521
|
+
* key required for jailers INSTEAD of "jailer"
|
|
522
|
+
*/
|
|
523
|
+
jailType?: string;
|
|
524
|
+
guardType?: string;
|
|
525
|
+
"shrines": {
|
|
526
|
+
Type: string;
|
|
527
|
+
Weight: number;
|
|
528
|
+
}[];
|
|
529
|
+
}
|
|
530
|
+
interface overrideDisplayItem {
|
|
531
|
+
/** Bondage club asset */
|
|
532
|
+
Item: string;
|
|
533
|
+
/** Group */
|
|
534
|
+
Group: AssetGroupName;
|
|
535
|
+
/** Color */
|
|
536
|
+
Color: string[] | string;
|
|
537
|
+
/** Filters */
|
|
538
|
+
Filters?: Record<string, LayerFilter>;
|
|
539
|
+
/** Faction color index */
|
|
540
|
+
factionColor?: number[][];
|
|
541
|
+
/** Whether or not it overrides items already on */
|
|
542
|
+
override?: boolean;
|
|
543
|
+
/** Uses the player's hair color as the item color */
|
|
544
|
+
useHairColor?: boolean;
|
|
545
|
+
/** Used for overriding BC priority */
|
|
546
|
+
OverridePriority?: AssetLayerOverridePriority;
|
|
547
|
+
}
|
|
548
|
+
interface KDLoadout {
|
|
549
|
+
name: string;
|
|
550
|
+
tags?: string[];
|
|
551
|
+
singletag: string[];
|
|
552
|
+
singletag2?: string[];
|
|
553
|
+
forbidtags: string[];
|
|
554
|
+
chance: number;
|
|
555
|
+
items?: string[];
|
|
556
|
+
restraintMult?: number;
|
|
557
|
+
multiplier?: number;
|
|
558
|
+
}
|
|
559
|
+
interface enemy extends KDHasTags {
|
|
560
|
+
/** This enemy will always kite the player even if player is harmless*/
|
|
561
|
+
alwaysKite?: boolean;
|
|
562
|
+
/** These enemies always carry these items at the start */
|
|
563
|
+
startingItems?: string[];
|
|
564
|
+
/** Restraint filters */
|
|
565
|
+
RestraintFilter?: {
|
|
566
|
+
/** Starts with more restraints!! */
|
|
567
|
+
bonusRestraints?: number;
|
|
568
|
+
/** This enemy can apply restraints without needing them in her pockets */
|
|
569
|
+
unlimitedRestraints?: boolean;
|
|
570
|
+
/** Restraints applied must all be from inventory */
|
|
571
|
+
invRestraintsOnly?: boolean;
|
|
572
|
+
/** Restraints applied must all be limited */
|
|
573
|
+
limitedRestraintsOnly?: boolean;
|
|
574
|
+
/** Restraints with more power than this must be in inventory. Default is 3*/
|
|
575
|
+
powerThresh?: number;
|
|
576
|
+
/** These wont be added to the initial inventory 3*/
|
|
577
|
+
ignoreInitial?: string[];
|
|
578
|
+
/** These wont be added to the initial inventory 3*/
|
|
579
|
+
ignoreInitialTag?: string[];
|
|
580
|
+
/** This enemy won't restock restraints out of sight */
|
|
581
|
+
noRestock?: boolean;
|
|
582
|
+
/** Enemy will restock to this percentage */
|
|
583
|
+
restockPercent?: number;
|
|
584
|
+
/** These enemies always restock these restraint items if they dont have them */
|
|
585
|
+
requiredItems?: string[];
|
|
586
|
+
};
|
|
587
|
+
/** Security levels for accessing chastity */
|
|
588
|
+
Security?: {
|
|
589
|
+
/** Key security level, for low-tech non-mage factions */
|
|
590
|
+
level_key?: number;
|
|
591
|
+
/** Tech security level, for robots and wolfgirls */
|
|
592
|
+
level_tech?: number;
|
|
593
|
+
/** Magic security level, for mage factions */
|
|
594
|
+
level_magic?: number;
|
|
595
|
+
};
|
|
596
|
+
/** Graphical peculiarities */
|
|
597
|
+
GFX?: {
|
|
598
|
+
/** Custom sprite while lying in wait */
|
|
599
|
+
AmbushSprite?: string;
|
|
600
|
+
};
|
|
601
|
+
/** Behavior tags */
|
|
602
|
+
Behavior?: {
|
|
603
|
+
/** This enemy will always want to add more restraints~ */
|
|
604
|
+
thorough?: number;
|
|
605
|
+
/** Can't play */
|
|
606
|
+
noPlay?: boolean;
|
|
607
|
+
/** Wont stop tying you until these groups are bound */
|
|
608
|
+
ensureGroupTied?: string[];
|
|
609
|
+
/** Wont stop tying you until these playertags are fulfilled */
|
|
610
|
+
ensurePlayerTag?: string[];
|
|
611
|
+
/** Wont stop tying you until these groups are bound (arousal mode only)*/
|
|
612
|
+
ensureGroupTiedArousal?: string[];
|
|
613
|
+
/** Wont stop tying you until these playertags are fulfilled (arousal mode only)*/
|
|
614
|
+
ensurePlayerTagArousal?: string[];
|
|
615
|
+
};
|
|
616
|
+
/** This enemy wont appear outside of its designated floors even if it shares the tag */
|
|
617
|
+
noOverrideFloor?: boolean;
|
|
618
|
+
/** This tag will be added to the selection tags if the enemy has it, for loot and ambush spawning purposes */
|
|
619
|
+
summonTags?: string[];
|
|
620
|
+
/** This tag will be added to the selection tags if the enemy has it, for loot and ambush spawning purposes. Multiple copies will be pushed*/
|
|
621
|
+
summonTagsMulti?: string[];
|
|
622
|
+
/** If true, this enemy will always be bound to the enemy that summons it */
|
|
623
|
+
alwaysBound?: boolean;
|
|
624
|
+
/** These enemies wont appear in distracted mode */
|
|
625
|
+
arousalMode?: boolean;
|
|
626
|
+
name: string;
|
|
627
|
+
/** Special dialogue played when clicked on instead of standard ally dialogue */
|
|
628
|
+
specialdialogue?: string;
|
|
629
|
+
/** Overrides the default weight reduction for being outside of a miniboss/boss/minor/elite box */
|
|
630
|
+
outOfBoxWeightMult?: number;
|
|
631
|
+
/** Tags, used for determining weaknesses, spawning, restraints applied, and rank*/
|
|
632
|
+
tags: Record<string, boolean>;
|
|
633
|
+
/** Spell resist, formula is spell damage taken = 1 / (1 + spell resist) */
|
|
634
|
+
spellResist?: number;
|
|
635
|
+
/** Whether or not the enemy is friendly to the player and attacks enemies */
|
|
636
|
+
allied?: boolean;
|
|
637
|
+
/** Enemies will prioritize this enemy less than other enemies. Used by allies only. */
|
|
638
|
+
lowpriority?: boolean;
|
|
639
|
+
/** Hit chance = 1 / (1 + evasion) */
|
|
640
|
+
evasion?: number;
|
|
641
|
+
/** */
|
|
642
|
+
armor?: number;
|
|
643
|
+
/** Starting data */
|
|
644
|
+
data?: Record<string, string>;
|
|
645
|
+
/** HIde timer */
|
|
646
|
+
hidetimerbar?: boolean;
|
|
647
|
+
Attack?: {
|
|
648
|
+
mustBindorFail?: boolean;
|
|
649
|
+
};
|
|
650
|
+
/** Contains data pertaining to the creature's awareness */
|
|
651
|
+
Awareness?: {
|
|
652
|
+
/** Optional tag to override chase radius */
|
|
653
|
+
chaseradius?: number;
|
|
654
|
+
};
|
|
655
|
+
/** Contains data pertaining to the creature's effect on reputation and its behaviors from it */
|
|
656
|
+
Reputation?: {
|
|
657
|
+
/** Optional tag to make an enemy not give up rep when killed */
|
|
658
|
+
noRepLoss?: boolean;
|
|
659
|
+
};
|
|
660
|
+
/** */
|
|
661
|
+
followRange?: number;
|
|
662
|
+
/** wander = wanders randomly
|
|
663
|
+
* hunt = wanders, then follows the player
|
|
664
|
+
* guard = follows a specific point
|
|
665
|
+
* ambush = waits for the player to come near before becoming active
|
|
666
|
+
* patrol = walks between predefined global points on the map
|
|
667
|
+
*/
|
|
668
|
+
AI?: string;
|
|
669
|
+
/** HP regen per turn*/
|
|
670
|
+
regen?: number;
|
|
671
|
+
/** */
|
|
672
|
+
visionRadius?: number;
|
|
673
|
+
/** Max enemy hp*/
|
|
674
|
+
maxhp?: number;
|
|
675
|
+
/** HP the enemy starts at */
|
|
676
|
+
startinghp?: number;
|
|
677
|
+
/** */
|
|
678
|
+
minLevel?: number;
|
|
679
|
+
/** */
|
|
680
|
+
maxLevel?: number;
|
|
681
|
+
/** */
|
|
682
|
+
weight?: number;
|
|
683
|
+
/** */
|
|
684
|
+
movePoints?: number;
|
|
685
|
+
/** */
|
|
686
|
+
attackPoints?: number;
|
|
687
|
+
/** String declaring what types of attacks this unit has */
|
|
688
|
+
attack?: string;
|
|
689
|
+
/** */
|
|
690
|
+
attackRange?: number;
|
|
691
|
+
/** */
|
|
692
|
+
terrainTags?: Record<string, number>;
|
|
693
|
+
/** */
|
|
694
|
+
floors?: Record<string, boolean>;
|
|
695
|
+
/** Enemy events */
|
|
696
|
+
events?: KinkyDungeonEvent[];
|
|
697
|
+
/** */
|
|
698
|
+
allFloors?: boolean;
|
|
699
|
+
/** */
|
|
700
|
+
noblockplayer?: boolean;
|
|
701
|
+
/** */
|
|
702
|
+
triggersTraps?: boolean;
|
|
703
|
+
/** The enemy follows the player at the end of the level */
|
|
704
|
+
keepLevel?: boolean;
|
|
705
|
+
/** Boost to accuracy, 1 + (1 + accuracy)*/
|
|
706
|
+
accuracy?: number;
|
|
707
|
+
/** Blindsight toward the player but not other enemies. Mainly used by allies so they know where the player is. */
|
|
708
|
+
playerBlindSight?: number;
|
|
709
|
+
/** */
|
|
710
|
+
attackWidth?: number;
|
|
711
|
+
/** */
|
|
712
|
+
power?: number;
|
|
713
|
+
/** */
|
|
714
|
+
dmgType?: string;
|
|
715
|
+
/** */
|
|
716
|
+
bound?: string;
|
|
717
|
+
/** */
|
|
718
|
+
color?: string;
|
|
719
|
+
/** counts toward the player's permanent summmon limit */
|
|
720
|
+
CountLimit?: boolean;
|
|
721
|
+
/** Does not target silenced enemies */
|
|
722
|
+
noTargetSilenced?: boolean;
|
|
723
|
+
/** */
|
|
724
|
+
silenceTime?: number;
|
|
725
|
+
/** List of spells*/
|
|
726
|
+
spells?: string[];
|
|
727
|
+
/** This enemy will not miscast spells when distracted*/
|
|
728
|
+
noMiscast?: boolean;
|
|
729
|
+
/** Sound effect when miscasting */
|
|
730
|
+
miscastsfx?: string;
|
|
731
|
+
/** Message when miscasting */
|
|
732
|
+
miscastmsg?: string;
|
|
733
|
+
/** This enemy knows the unlock command up to this level*/
|
|
734
|
+
unlockCommandLevel?: number;
|
|
735
|
+
/** This enemy must wait this long between unlock command attempts. Default is 90*/
|
|
736
|
+
unlockCommandCD?: number;
|
|
737
|
+
/** */
|
|
738
|
+
spellCooldownMult?: number;
|
|
739
|
+
/** */
|
|
740
|
+
spellCooldownMod?: number;
|
|
741
|
+
/** */
|
|
742
|
+
kite?: number;
|
|
743
|
+
/** */
|
|
744
|
+
playerFollowRange?: number;
|
|
745
|
+
/** */
|
|
746
|
+
minSpellRange?: number;
|
|
747
|
+
/** */
|
|
748
|
+
stopToCast?: boolean;
|
|
749
|
+
/** Shows a marker when the creature has a spell ready */
|
|
750
|
+
spellRdy?: boolean;
|
|
751
|
+
/** Casts while moving */
|
|
752
|
+
castWhileMoving?: boolean;
|
|
753
|
+
/** Enemy does not attack */
|
|
754
|
+
noAttack?: boolean;
|
|
755
|
+
/** Disarm counter increased by this fraction when attacked. When it reaches 1, the player's next attack will miss, otherweise it will reduce by this amount per turn */
|
|
756
|
+
disarm?: number;
|
|
757
|
+
/** Boost to power when target is not the player or when the enemy cant tie up the player */
|
|
758
|
+
fullBoundBonus?: number;
|
|
759
|
+
/** Loot*/
|
|
760
|
+
dropTable?: any[];
|
|
761
|
+
/** */
|
|
762
|
+
attackWhileMoving?: boolean;
|
|
763
|
+
/** Doesnt cast spells when the player is out of stamina */
|
|
764
|
+
noSpellsLowSP?: boolean;
|
|
765
|
+
/** Rep changes on death */
|
|
766
|
+
rep?: Record<string, number>;
|
|
767
|
+
/** Rep changes on death */
|
|
768
|
+
factionrep?: Record<string, number>;
|
|
769
|
+
/** Chance to generate as a guard instead */
|
|
770
|
+
guardChance?: number;
|
|
771
|
+
/** When generating clusters of enemies, the clustering units must have this tag*/
|
|
772
|
+
clusterWith?: string;
|
|
773
|
+
/** Chance to ignore the player if the enemy has an ignore tag like ignorenoSP */
|
|
774
|
+
ignorechance?: number;
|
|
775
|
+
/** The enemy count is incremented by this amount when the enemy is spawned during map gen*/
|
|
776
|
+
difficulty?: number;
|
|
777
|
+
/** The enemy will not attack if the path to the player is blocked, and will move closer*/
|
|
778
|
+
projectileAttack?: boolean;
|
|
779
|
+
/** The enemy will use 'buff' tagged spells on allies*/
|
|
780
|
+
buffallies?: boolean;
|
|
781
|
+
/** Special attack property*/
|
|
782
|
+
stunTime?: number;
|
|
783
|
+
/** Special attack property. Cooldown of the special attack.*/
|
|
784
|
+
specialCD?: number;
|
|
785
|
+
/** Special attack property. Added to the special attack in addition to the enemy's default attack*/
|
|
786
|
+
specialAttack?: string;
|
|
787
|
+
/** Special attacks ignore stamina requirements */
|
|
788
|
+
specialIgnoreStam?: boolean;
|
|
789
|
+
/** Special attack property. Removed these types from the main attack when special attacking.*/
|
|
790
|
+
specialRemove?: string;
|
|
791
|
+
/** Adds additional restraint tags when special attacking*/
|
|
792
|
+
specialExtraTags?: string[];
|
|
793
|
+
/** removes the specified restraint tags when special attacking*/
|
|
794
|
+
specialRemoveTags?: string[];
|
|
795
|
+
/** Uses a special message for Special attacks */
|
|
796
|
+
specialMsg?: boolean;
|
|
797
|
+
/** specifies a condition for using a special attack*/
|
|
798
|
+
specialCondition?: string;
|
|
799
|
+
/** Special attack property*/
|
|
800
|
+
specialPower?: number;
|
|
801
|
+
/** Special attack property*/
|
|
802
|
+
specialDamage?: string;
|
|
803
|
+
/** Special attack property. Special attack will go on CD when the enemy uses it, not when it hits*/
|
|
804
|
+
specialCDonAttack?: boolean;
|
|
805
|
+
/** Special attack property*/
|
|
806
|
+
specialWidth?: number;
|
|
807
|
+
/** Special attack property*/
|
|
808
|
+
specialRange?: number;
|
|
809
|
+
/** Which shrines the enemy is associated with*/
|
|
810
|
+
shrines?: string[];
|
|
811
|
+
/** */
|
|
812
|
+
followLeashedOnly?: boolean;
|
|
813
|
+
/** */
|
|
814
|
+
blindSight?: number;
|
|
815
|
+
/** */
|
|
816
|
+
specialCharges?: number;
|
|
817
|
+
/** */
|
|
818
|
+
strictAttackLOS?: boolean;
|
|
819
|
+
/** */
|
|
820
|
+
specialAttackPoints?: number;
|
|
821
|
+
/** */
|
|
822
|
+
specialMinrange?: number;
|
|
823
|
+
/** */
|
|
824
|
+
stealth?: number;
|
|
825
|
+
/** After being seen the enemy can go back into stealth if the player moves away*/
|
|
826
|
+
noReveal?: boolean;
|
|
827
|
+
/** */
|
|
828
|
+
ambushRadius?: number;
|
|
829
|
+
/** For AI = 'ambush', this enemy will wander until it sees the player and triggers the ambush. Mostly used for invisible enemies. */
|
|
830
|
+
wanderTillSees?: boolean;
|
|
831
|
+
/** For kiting enemies, this enemy moves in to attack Only When the player is Disabled. Used on enemies like the Maidforce stalker who stay away from the enemy but have powerful disabling effects like flash bombs*/
|
|
832
|
+
dontKiteWhenDisabled?: boolean;
|
|
833
|
+
/** The special attack only binds on kneeling players*/
|
|
834
|
+
bindOnDisableSpecial?: boolean;
|
|
835
|
+
/** The regular attack only binds on kneeling players*/
|
|
836
|
+
bindOnDisable?: boolean;
|
|
837
|
+
/** Sfx when an attack lands*/
|
|
838
|
+
hitsfx?: string;
|
|
839
|
+
/** All lockable restraints will use this lock*/
|
|
840
|
+
useLock?: string;
|
|
841
|
+
/** Uses this lock when using the lock attack */
|
|
842
|
+
attackLock?: string;
|
|
843
|
+
/** Minimum range for attack warning tiles, used to prevent high range enemies from attacking all around them*/
|
|
844
|
+
tilesMinRange?: number;
|
|
845
|
+
/** Minimum range to try attacking */
|
|
846
|
+
attackMinRange?: number;
|
|
847
|
+
/** Minimum range to try attacking */
|
|
848
|
+
specialMinRange?: number;
|
|
849
|
+
/** */
|
|
850
|
+
noKiteWhenHarmless?: boolean;
|
|
851
|
+
/** */
|
|
852
|
+
noSpellsWhenHarmless?: boolean;
|
|
853
|
+
/** */
|
|
854
|
+
ignoreStaminaForBinds?: boolean;
|
|
855
|
+
/** */
|
|
856
|
+
sneakThreshold?: number;
|
|
857
|
+
RemoteControl?: {
|
|
858
|
+
/** */
|
|
859
|
+
remote?: number;
|
|
860
|
+
/** */
|
|
861
|
+
remoteAmount?: number;
|
|
862
|
+
/** If the enemy has a remote that can control punishing items (e.g. shock collars), the range that they can control items from */
|
|
863
|
+
punishRemote?: number;
|
|
864
|
+
/** The chance per tick that the enemy will use their remote remote to punish the player when they are within range */
|
|
865
|
+
punishRemoteChance?: number;
|
|
866
|
+
};
|
|
867
|
+
/** */
|
|
868
|
+
bypass?: boolean;
|
|
869
|
+
/** */
|
|
870
|
+
multiBind?: number;
|
|
871
|
+
/** */
|
|
872
|
+
noLeashUnlessExhausted?: boolean;
|
|
873
|
+
/** */
|
|
874
|
+
ethereal?: boolean;
|
|
875
|
+
/** This enemy always dodges regular attacks */
|
|
876
|
+
alwaysEvade?: boolean;
|
|
877
|
+
/** This enemy always blocks regular attacks */
|
|
878
|
+
alwaysBlock?: boolean;
|
|
879
|
+
/** Info for enemy resistance */
|
|
880
|
+
Resistance?: {
|
|
881
|
+
/** This enemy cannot dodge if the attacking weapon is magical */
|
|
882
|
+
alwaysHitByMagic?: boolean;
|
|
883
|
+
/** This enemy cannot BLOCK if the attacking weapon is magical */
|
|
884
|
+
alwaysBypassedByMagic?: boolean;
|
|
885
|
+
};
|
|
886
|
+
/** */
|
|
887
|
+
summonRage?: boolean;
|
|
888
|
+
/** */
|
|
889
|
+
noAlert?: boolean;
|
|
890
|
+
/** The enemy will follow enemies defined by this block*/
|
|
891
|
+
master?: {
|
|
892
|
+
type: string;
|
|
893
|
+
range: number;
|
|
894
|
+
loose?: boolean;
|
|
895
|
+
aggressive?: boolean;
|
|
896
|
+
dependent?: boolean;
|
|
897
|
+
};
|
|
898
|
+
/** */
|
|
899
|
+
pullTowardSelf?: boolean;
|
|
900
|
+
/** */
|
|
901
|
+
pullDist?: number;
|
|
902
|
+
/** */
|
|
903
|
+
summon?: any[];
|
|
904
|
+
/** */
|
|
905
|
+
sneakthreshold?: number;
|
|
906
|
+
/** */
|
|
907
|
+
blockVisionWhileStationary?: boolean;
|
|
908
|
+
/** */
|
|
909
|
+
squeeze?: boolean;
|
|
910
|
+
/** Enemy will not chase player for being unrestrained. Use on enemies like drones who have lines but dont bind readily */
|
|
911
|
+
noChaseUnrestrained?: boolean;
|
|
912
|
+
/** */
|
|
913
|
+
suicideOnSpell?: boolean;
|
|
914
|
+
/** */
|
|
915
|
+
suicideOnAdd?: boolean;
|
|
916
|
+
/** */
|
|
917
|
+
suicideOnEffect?: boolean;
|
|
918
|
+
/** */
|
|
919
|
+
suicideOnLock?: boolean;
|
|
920
|
+
/** Hostile even on parole */
|
|
921
|
+
alwaysHostile?: boolean;
|
|
922
|
+
/** */
|
|
923
|
+
specialsfx?: string;
|
|
924
|
+
/** Stuns the enemy when the special attack goes on CD without a hit */
|
|
925
|
+
stunOnSpecialCD?: number;
|
|
926
|
+
/** Dash info */
|
|
927
|
+
Dash?: {
|
|
928
|
+
/** Does not dash to the player if the dash is stepped out of the way of*/
|
|
929
|
+
noDashOnSidestep?: boolean;
|
|
930
|
+
/** Does not dash to the player if the dash is dodged*/
|
|
931
|
+
noDashOnMiss?: boolean;
|
|
932
|
+
/** Does not dash to the player if the dash is blocked*/
|
|
933
|
+
noDashOnBlock?: boolean;
|
|
934
|
+
/** Forces the event to play when a dash misses, even if there are no eventable attack types*/
|
|
935
|
+
EventOnDashMiss?: boolean;
|
|
936
|
+
/** Forces the event to play when a dash is blocked, even if there are no eventable attack types*/
|
|
937
|
+
EventOnDashBlock?: boolean;
|
|
938
|
+
};
|
|
939
|
+
/** */
|
|
940
|
+
cohesion?: number;
|
|
941
|
+
/** */
|
|
942
|
+
noSpellLeashing?: boolean;
|
|
943
|
+
/** */
|
|
944
|
+
projectileTargeting?: boolean;
|
|
945
|
+
/** */
|
|
946
|
+
ondeath?: any[];
|
|
947
|
+
/** */
|
|
948
|
+
blindTime?: number;
|
|
949
|
+
/** */
|
|
950
|
+
tilesMinRangeSpecial?: number;
|
|
951
|
+
/** */
|
|
952
|
+
convertTiles?: any[];
|
|
953
|
+
/** the enemy sends a special message when pulling the player */
|
|
954
|
+
pullMsg?: boolean;
|
|
955
|
+
/** */
|
|
956
|
+
dashThruWalls?: boolean;
|
|
957
|
+
/** */
|
|
958
|
+
dashThrough?: boolean;
|
|
959
|
+
/** */
|
|
960
|
+
cohesionRange?: number;
|
|
961
|
+
/** */
|
|
962
|
+
kiteChance?: number;
|
|
963
|
+
/** this enemy ignores the player when these flags are set*/
|
|
964
|
+
ignoreflag?: string[];
|
|
965
|
+
/** flags set when the player is hit but no binding occurs*/
|
|
966
|
+
failAttackflag?: string[];
|
|
967
|
+
/** How long to set the flag for */
|
|
968
|
+
failAttackflagDuration?: number;
|
|
969
|
+
/** */
|
|
970
|
+
visionSummoned?: number;
|
|
971
|
+
/** */
|
|
972
|
+
dependent?: boolean;
|
|
973
|
+
/** */
|
|
974
|
+
nopickpocket?: boolean;
|
|
975
|
+
/** */
|
|
976
|
+
attackThruBars?: boolean;
|
|
977
|
+
/** */
|
|
978
|
+
noCancelAttack?: boolean;
|
|
979
|
+
/** */
|
|
980
|
+
keys?: boolean;
|
|
981
|
+
/** If this enemy is always enraged */
|
|
982
|
+
rage?: boolean;
|
|
983
|
+
/** Starting lifetime of enemy*/
|
|
984
|
+
lifespan?: number;
|
|
985
|
+
/** This enemy cant be swapped */
|
|
986
|
+
noDisplace?: boolean;
|
|
987
|
+
/** The enemy will cast spells even if you are in parole */
|
|
988
|
+
spellWhileParole?: boolean;
|
|
989
|
+
/** This line is a suffic to the line they say when they want to play with you */
|
|
990
|
+
playLine?: string;
|
|
991
|
+
/** Blocks vision */
|
|
992
|
+
blockVision?: boolean;
|
|
993
|
+
/** Hit SFX for enemy special attack */
|
|
994
|
+
hitsfxSpecial?: string;
|
|
995
|
+
/** Effect when the enemy misses */
|
|
996
|
+
misssfx?: string;
|
|
997
|
+
/** Effect when the enemy blocks */
|
|
998
|
+
blocksfx?: string;
|
|
999
|
+
/** SFX on certain cues */
|
|
1000
|
+
cueSfx?: {
|
|
1001
|
+
/** When the enemy takes no damage from a melee attack */
|
|
1002
|
+
Block?: string;
|
|
1003
|
+
/** When the enemy takes no damage from a magic attack */
|
|
1004
|
+
Resist?: string;
|
|
1005
|
+
/** When the enemy takes damage in general */
|
|
1006
|
+
Damage?: string;
|
|
1007
|
+
/** When the player misses it */
|
|
1008
|
+
Miss?: string;
|
|
1009
|
+
};
|
|
1010
|
+
/** The enemyeffect when player is hit */
|
|
1011
|
+
effect?: any;
|
|
1012
|
+
/** Cant cast spells while winding up an attack */
|
|
1013
|
+
noSpellDuringAttack?: boolean;
|
|
1014
|
+
/** Base faction of this enemy, overridden by the entity faction */
|
|
1015
|
+
faction?: string;
|
|
1016
|
+
/** This enemy does not channel its spells */
|
|
1017
|
+
noChannel?: boolean;
|
|
1018
|
+
/** Focuses player over summmons, ignores decoys */
|
|
1019
|
+
focusPlayer?: boolean;
|
|
1020
|
+
/** Cant be swapped by another enemy pathing */
|
|
1021
|
+
immobile?: boolean;
|
|
1022
|
+
/** Stops casting spells after there are this many enemies */
|
|
1023
|
+
enemyCountSpellLimit?: number;
|
|
1024
|
+
}
|
|
1025
|
+
interface shopItem {
|
|
1026
|
+
cost: any;
|
|
1027
|
+
rarity: any;
|
|
1028
|
+
costMod?: any;
|
|
1029
|
+
shoptype: string;
|
|
1030
|
+
consumable?: string;
|
|
1031
|
+
quantity?: number;
|
|
1032
|
+
name: any;
|
|
1033
|
+
}
|
|
1034
|
+
interface weapon {
|
|
1035
|
+
name: string;
|
|
1036
|
+
dmg: number;
|
|
1037
|
+
chance: number;
|
|
1038
|
+
type: string;
|
|
1039
|
+
bind?: number;
|
|
1040
|
+
bindType?: string;
|
|
1041
|
+
distract?: number;
|
|
1042
|
+
bindEff?: number;
|
|
1043
|
+
distractEff?: number;
|
|
1044
|
+
light?: boolean;
|
|
1045
|
+
heavy?: boolean;
|
|
1046
|
+
boundBonus?: number;
|
|
1047
|
+
tease?: boolean;
|
|
1048
|
+
rarity: number;
|
|
1049
|
+
staminacost?: number;
|
|
1050
|
+
magic?: boolean;
|
|
1051
|
+
cutBonus?: number;
|
|
1052
|
+
playSelfBonus?: number;
|
|
1053
|
+
playSelfMsg?: string;
|
|
1054
|
+
playSelfSound?: string;
|
|
1055
|
+
unarmed: boolean;
|
|
1056
|
+
shop: boolean;
|
|
1057
|
+
noequip?: boolean;
|
|
1058
|
+
sfx: string;
|
|
1059
|
+
events?: KinkyDungeonEvent[];
|
|
1060
|
+
noHands?: boolean;
|
|
1061
|
+
silent?: boolean;
|
|
1062
|
+
novulnerable?: boolean;
|
|
1063
|
+
special?: {
|
|
1064
|
+
type: string;
|
|
1065
|
+
spell?: string;
|
|
1066
|
+
selfCast?: boolean;
|
|
1067
|
+
requiresEnergy?: boolean;
|
|
1068
|
+
energyCost?: number;
|
|
1069
|
+
range?: number;
|
|
1070
|
+
};
|
|
1071
|
+
}
|
|
1072
|
+
interface KinkyDungeonEvent {
|
|
1073
|
+
cost?: number;
|
|
1074
|
+
tags?: string[];
|
|
1075
|
+
duration?: number;
|
|
1076
|
+
always?: boolean;
|
|
1077
|
+
type: string;
|
|
1078
|
+
trigger: string;
|
|
1079
|
+
restraint?: string;
|
|
1080
|
+
sfx?: string;
|
|
1081
|
+
power?: number;
|
|
1082
|
+
count?: number;
|
|
1083
|
+
player?: boolean;
|
|
1084
|
+
bind?: number;
|
|
1085
|
+
distract?: number;
|
|
1086
|
+
mult?: number;
|
|
1087
|
+
kind?: string;
|
|
1088
|
+
variance?: number;
|
|
1089
|
+
damage?: string;
|
|
1090
|
+
buffTypes?: string[];
|
|
1091
|
+
damageTrigger?: string;
|
|
1092
|
+
dist?: number;
|
|
1093
|
+
aoe?: number;
|
|
1094
|
+
buffType?: string;
|
|
1095
|
+
time?: number;
|
|
1096
|
+
bindType?: string;
|
|
1097
|
+
chance?: number;
|
|
1098
|
+
buff?: any;
|
|
1099
|
+
lock?: string;
|
|
1100
|
+
msg?: string;
|
|
1101
|
+
prereq?: string;
|
|
1102
|
+
color?: string;
|
|
1103
|
+
/** Vibe */
|
|
1104
|
+
edgeOnly?: boolean;
|
|
1105
|
+
/** Vibe */
|
|
1106
|
+
cooldown?: Record<string, number>;
|
|
1107
|
+
/** A required enemy tag */
|
|
1108
|
+
requiredTag?: string;
|
|
1109
|
+
/** Generic required tags */
|
|
1110
|
+
requireTags?: string[];
|
|
1111
|
+
/** Generic filtered tags */
|
|
1112
|
+
filterTags?: string[];
|
|
1113
|
+
/** Type of struggle that this event triggers on */
|
|
1114
|
+
StruggleType?: string;
|
|
1115
|
+
requireEnergy?: boolean;
|
|
1116
|
+
/** Limit of whatever thius event modifies */
|
|
1117
|
+
limit?: number;
|
|
1118
|
+
energyCost?: number;
|
|
1119
|
+
/** The event gets copied to any restraint if the item is linked */
|
|
1120
|
+
inheritLinked?: boolean;
|
|
1121
|
+
/** Spell to cast at the target */
|
|
1122
|
+
spell?: string;
|
|
1123
|
+
/** Chance to trigger is 1+(submissive % * subMult)*/
|
|
1124
|
+
subMult?: number;
|
|
1125
|
+
/** Won't trigger while being leashed */
|
|
1126
|
+
noLeash?: boolean;
|
|
1127
|
+
/** Stun duration */
|
|
1128
|
+
stun?: number;
|
|
1129
|
+
/** Chance the player will get warned instead of punshed */
|
|
1130
|
+
warningchance?: number;
|
|
1131
|
+
/** triggers from this component */
|
|
1132
|
+
punishComponent?: string;
|
|
1133
|
+
/** List of restraints or other string params */
|
|
1134
|
+
list?: string[];
|
|
1135
|
+
/** Whether or not the event only triggers on human targets */
|
|
1136
|
+
humanOnly?: boolean;
|
|
1137
|
+
/** Distance having to do with stealth */
|
|
1138
|
+
distStealth?: number;
|
|
1139
|
+
/** Dialogue key an enemy should send */
|
|
1140
|
+
enemyDialogue?: string;
|
|
1141
|
+
prevSlowLevel?: number;
|
|
1142
|
+
}
|
|
1143
|
+
interface entity {
|
|
1144
|
+
visual_hp?: number;
|
|
1145
|
+
visual_boundlevel?: number;
|
|
1146
|
+
visual_distraction?: number;
|
|
1147
|
+
visual_lifetime?: number;
|
|
1148
|
+
/** Spawn location */
|
|
1149
|
+
spawnX?: number;
|
|
1150
|
+
/** Spawn location */
|
|
1151
|
+
spawnY?: number;
|
|
1152
|
+
/** Opinion of you. Positive is good. */
|
|
1153
|
+
opinion?: number;
|
|
1154
|
+
/** Determines if an enemy can be dommed or not */
|
|
1155
|
+
domVariance?: number;
|
|
1156
|
+
hideTimer?: boolean;
|
|
1157
|
+
Enemy: enemy;
|
|
1158
|
+
/** List an enemy ID. Enemy will be bound to this one and dies if not found. BoundTo of -1 indicates bound to the player, and will expire if the player is jailed or passes out*/
|
|
1159
|
+
boundTo?: number;
|
|
1160
|
+
/** This enemy is weakly bound and simply stunning the caster will delete it */
|
|
1161
|
+
weakBinding?: boolean;
|
|
1162
|
+
player?: boolean;
|
|
1163
|
+
/** This enemy has keys to red locked doors */
|
|
1164
|
+
keys?: boolean;
|
|
1165
|
+
/** Additional Ondeath, e.g quest markers or rep */
|
|
1166
|
+
ondeath?: any[];
|
|
1167
|
+
/** Used for misc data */
|
|
1168
|
+
data?: Record<string, string>;
|
|
1169
|
+
/** Rep changes on death */
|
|
1170
|
+
rep?: Record<string, number>;
|
|
1171
|
+
/** Rep changes on death */
|
|
1172
|
+
factionrep?: Record<string, number>;
|
|
1173
|
+
dialogue?: string;
|
|
1174
|
+
dialogueDuration?: number;
|
|
1175
|
+
dialogueColor?: string;
|
|
1176
|
+
dialoguePriority?: number;
|
|
1177
|
+
CustomName?: string;
|
|
1178
|
+
CustomSprite?: string;
|
|
1179
|
+
CustomNameColor?: string;
|
|
1180
|
+
rescue?: boolean;
|
|
1181
|
+
personality?: string;
|
|
1182
|
+
patrolIndex?: number;
|
|
1183
|
+
flags?: Record<string, number>;
|
|
1184
|
+
noDrop?: boolean;
|
|
1185
|
+
droppedItems?: boolean;
|
|
1186
|
+
specialdialogue?: string;
|
|
1187
|
+
aggro?: number;
|
|
1188
|
+
id?: number;
|
|
1189
|
+
hp: number;
|
|
1190
|
+
AI?: string;
|
|
1191
|
+
moved?: boolean;
|
|
1192
|
+
playerdmg?: number;
|
|
1193
|
+
idle?: boolean;
|
|
1194
|
+
summoned?: boolean;
|
|
1195
|
+
boundLevel?: number;
|
|
1196
|
+
specialBoundLevel?: Record<string, number>;
|
|
1197
|
+
distraction?: number;
|
|
1198
|
+
lifetime?: number;
|
|
1199
|
+
maxlifetime?: number;
|
|
1200
|
+
attackPoints?: number;
|
|
1201
|
+
movePoints?: number;
|
|
1202
|
+
aware?: boolean;
|
|
1203
|
+
vp?: number;
|
|
1204
|
+
tracking?: boolean;
|
|
1205
|
+
revealed?: boolean;
|
|
1206
|
+
ambushtrigger?: boolean;
|
|
1207
|
+
castCooldown?: number;
|
|
1208
|
+
castCooldownSpecial?: number;
|
|
1209
|
+
specialCharges?: number;
|
|
1210
|
+
usingSpecial?: boolean;
|
|
1211
|
+
specialCD?: number;
|
|
1212
|
+
disarmflag?: number;
|
|
1213
|
+
channel?: number;
|
|
1214
|
+
items?: string[];
|
|
1215
|
+
tempitems?: string[];
|
|
1216
|
+
x: number;
|
|
1217
|
+
y: number;
|
|
1218
|
+
lastx?: number;
|
|
1219
|
+
lasty?: number;
|
|
1220
|
+
fx?: number;
|
|
1221
|
+
fy?: number;
|
|
1222
|
+
path?: {
|
|
1223
|
+
x: number;
|
|
1224
|
+
y: number;
|
|
1225
|
+
}[];
|
|
1226
|
+
gx?: number;
|
|
1227
|
+
gy?: number;
|
|
1228
|
+
gxx?: number;
|
|
1229
|
+
gyy?: number;
|
|
1230
|
+
rage?: number;
|
|
1231
|
+
hostile?: number;
|
|
1232
|
+
faction?: string;
|
|
1233
|
+
allied?: number;
|
|
1234
|
+
ceasefire?: number;
|
|
1235
|
+
bind?: number;
|
|
1236
|
+
blind?: number;
|
|
1237
|
+
disarm?: number;
|
|
1238
|
+
slow?: number;
|
|
1239
|
+
freeze?: number;
|
|
1240
|
+
stun?: number;
|
|
1241
|
+
silence?: number;
|
|
1242
|
+
vulnerable?: number;
|
|
1243
|
+
buffs?: any;
|
|
1244
|
+
warningTiles?: any;
|
|
1245
|
+
visual_x?: number;
|
|
1246
|
+
visual_y?: number;
|
|
1247
|
+
Analyze?: boolean;
|
|
1248
|
+
/** Number of turns the enemy is temporarily hostile for */
|
|
1249
|
+
playWithPlayer?: number;
|
|
1250
|
+
playWithPlayerCD?: number;
|
|
1251
|
+
IntentAction?: string;
|
|
1252
|
+
IntentLeashPoint?: {
|
|
1253
|
+
x: number;
|
|
1254
|
+
y: number;
|
|
1255
|
+
type: string;
|
|
1256
|
+
radius: number;
|
|
1257
|
+
};
|
|
1258
|
+
CurrentAction?: string;
|
|
1259
|
+
RemainingJailLeashTourWaypoints?: number;
|
|
1260
|
+
NextJailLeashTourWaypointX?: number;
|
|
1261
|
+
NextJailLeashTourWaypointY?: number;
|
|
1262
|
+
KinkyDungeonJailTourInfractions?: number;
|
|
1263
|
+
}
|
|
1264
|
+
declare type KDAssetGroupName = AssetGroupName | "Body" | "Brows" | "Costume" | "Apron" | "Catsuit";
|
|
1265
|
+
declare type KinkyDungeonDress = {
|
|
1266
|
+
Item: string;
|
|
1267
|
+
Group: KDAssetGroupName;
|
|
1268
|
+
Color: ItemColor;
|
|
1269
|
+
Filters?: Record<string, LayerFilter>;
|
|
1270
|
+
Lost: boolean;
|
|
1271
|
+
NoLose?: boolean;
|
|
1272
|
+
Property?: any;
|
|
1273
|
+
OverridePriority?: number;
|
|
1274
|
+
Skirt?: boolean;
|
|
1275
|
+
}[];
|
|
1276
|
+
interface KinkyDialogueTrigger {
|
|
1277
|
+
dialogue: string;
|
|
1278
|
+
allowedPrisonStates?: string[];
|
|
1279
|
+
/** Only allows the following personalities to do it */
|
|
1280
|
+
allowedPersonalities?: string[];
|
|
1281
|
+
blockDuringPlaytime?: boolean;
|
|
1282
|
+
noAlly?: boolean;
|
|
1283
|
+
/** Exclude if enemy has one of these tags */
|
|
1284
|
+
excludeTags?: string[];
|
|
1285
|
+
/** Require all of these tags */
|
|
1286
|
+
requireTags?: string[];
|
|
1287
|
+
/** Require one of these tags */
|
|
1288
|
+
requireTagsSingle?: string[];
|
|
1289
|
+
/** Require play to be POSSIBLE */
|
|
1290
|
+
playRequired?: boolean;
|
|
1291
|
+
/** Require play to be ONGOING */
|
|
1292
|
+
onlyDuringPlay?: boolean;
|
|
1293
|
+
/** Allow this to happen even out of playtime if the player is submissive enough */
|
|
1294
|
+
allowPlayExceptionSub?: boolean;
|
|
1295
|
+
/** If any NPC is in combat in last 3 turns this wont happen */
|
|
1296
|
+
noCombat?: boolean;
|
|
1297
|
+
/** Prevents this from happening if the target is hostile */
|
|
1298
|
+
nonHostile?: boolean;
|
|
1299
|
+
prerequisite: (enemy: entity, dist: number, AIData: any) => boolean;
|
|
1300
|
+
weight: (enemy: entity, dist: number) => number;
|
|
1301
|
+
}
|
|
1302
|
+
interface effectTile {
|
|
1303
|
+
x?: number;
|
|
1304
|
+
y?: number;
|
|
1305
|
+
lightColor?: number;
|
|
1306
|
+
yoffset?: number;
|
|
1307
|
+
xoffset?: number;
|
|
1308
|
+
name: string;
|
|
1309
|
+
/** Has all the functions of this one */
|
|
1310
|
+
functionName?: string;
|
|
1311
|
+
duration: number;
|
|
1312
|
+
priority: number;
|
|
1313
|
+
data?: any;
|
|
1314
|
+
/** For tiles which can be used to help escape */
|
|
1315
|
+
affinities?: string[];
|
|
1316
|
+
/** For tiles which can be used to help escape, but only while standing */
|
|
1317
|
+
affinitiesStanding?: string[];
|
|
1318
|
+
drawOver?: boolean;
|
|
1319
|
+
tags: string[];
|
|
1320
|
+
pauseDuration?: number;
|
|
1321
|
+
pauseSprite?: string;
|
|
1322
|
+
brightness?: number;
|
|
1323
|
+
skin?: string;
|
|
1324
|
+
/** random = basic effect where it fades in and has a chance to fade out again */
|
|
1325
|
+
fade?: string;
|
|
1326
|
+
statuses?: Record<string, number>;
|
|
1327
|
+
}
|
|
1328
|
+
/** For spells */
|
|
1329
|
+
interface effectTileRef {
|
|
1330
|
+
name: string;
|
|
1331
|
+
duration?: number;
|
|
1332
|
+
data?: any;
|
|
1333
|
+
pauseDuration?: number;
|
|
1334
|
+
pauseSprite?: string;
|
|
1335
|
+
skin?: string;
|
|
1336
|
+
statuses?: Record<string, number>;
|
|
1337
|
+
}
|
|
1338
|
+
declare type KDPerk = {
|
|
1339
|
+
/** Determines if this one goes in the debuffs tree */
|
|
1340
|
+
debuff?: boolean;
|
|
1341
|
+
/** Determines if this one goes in the buffs tree */
|
|
1342
|
+
buff?: boolean;
|
|
1343
|
+
category: string;
|
|
1344
|
+
id: string | number;
|
|
1345
|
+
cost: number;
|
|
1346
|
+
block?: string[];
|
|
1347
|
+
tags?: string[];
|
|
1348
|
+
blocktags?: string[];
|
|
1349
|
+
blockclass?: string[];
|
|
1350
|
+
locked?: boolean;
|
|
1351
|
+
outfit?: string;
|
|
1352
|
+
require?: string;
|
|
1353
|
+
costGroup?: string;
|
|
1354
|
+
startPriority?: number;
|
|
1355
|
+
requireArousal?: boolean;
|
|
1356
|
+
};
|
|
1357
|
+
interface spell {
|
|
1358
|
+
/** This spell doesnt hurt the target upon directly hitting, only the AoE */
|
|
1359
|
+
noDirectDamage?: true;
|
|
1360
|
+
/** This spell does not leave a warning to the player */
|
|
1361
|
+
hideWarnings?: boolean;
|
|
1362
|
+
/** This spell does leave a warning to the player */
|
|
1363
|
+
alwaysWarn?: boolean;
|
|
1364
|
+
/** Marks a spell as non-magical, so traps dont leave a rune on the ground */
|
|
1365
|
+
nonmagical?: boolean;
|
|
1366
|
+
/** Marks the spell as a command word spell to enemies */
|
|
1367
|
+
commandword?: boolean;
|
|
1368
|
+
/** The spell is used to buff allies */
|
|
1369
|
+
buffallies?: boolean;
|
|
1370
|
+
/** caster will also target themselves */
|
|
1371
|
+
selfbuff?: boolean;
|
|
1372
|
+
/** Type of binding applied to the power */
|
|
1373
|
+
bindType?: string;
|
|
1374
|
+
/** Stops the spell from moving more than 1 tile */
|
|
1375
|
+
slowStart?: boolean;
|
|
1376
|
+
/** Spinrate of the bullet */
|
|
1377
|
+
bulletSpin?: number;
|
|
1378
|
+
/** Spinrate of the bullet hit */
|
|
1379
|
+
hitSpin?: number;
|
|
1380
|
+
/** Forces spell to move more than 1 tile at beginning */
|
|
1381
|
+
fastStart?: boolean;
|
|
1382
|
+
/** Affects aoe type
|
|
1383
|
+
* acceptable values are:
|
|
1384
|
+
* vert - creates a vertical line
|
|
1385
|
+
* horiz - creates a horizontal line
|
|
1386
|
+
* box - uses chebyshev distance
|
|
1387
|
+
* cross - creates a vertical and horizontal line
|
|
1388
|
+
*/
|
|
1389
|
+
aoetype?: string;
|
|
1390
|
+
aoetypetrail?: string;
|
|
1391
|
+
secondaryhit?: string;
|
|
1392
|
+
upcastFrom?: string;
|
|
1393
|
+
upcastLevel?: number;
|
|
1394
|
+
hitColor?: number;
|
|
1395
|
+
bulletColor?: number;
|
|
1396
|
+
trailColor?: number;
|
|
1397
|
+
hitLight?: number;
|
|
1398
|
+
bulletLight?: number;
|
|
1399
|
+
trailLight?: number;
|
|
1400
|
+
goToPage?: number;
|
|
1401
|
+
tags?: string[];
|
|
1402
|
+
effectTile?: effectTileRef;
|
|
1403
|
+
effectTileAoE?: number;
|
|
1404
|
+
effectTileDurationMod?: number;
|
|
1405
|
+
effectTilePre?: effectTileRef;
|
|
1406
|
+
effectTileDurationModPre?: number;
|
|
1407
|
+
effectTileLinger?: effectTileRef;
|
|
1408
|
+
effectTileDurationModLinger?: number;
|
|
1409
|
+
effectTileDensityLinger?: number;
|
|
1410
|
+
effectTileTrail?: effectTileRef;
|
|
1411
|
+
effectTileDurationModTrail?: number;
|
|
1412
|
+
effectTileDensityTrail?: number;
|
|
1413
|
+
effectTileTrailAoE?: number;
|
|
1414
|
+
effectTileDoT?: effectTileRef;
|
|
1415
|
+
effectTileDurationModDoT?: number;
|
|
1416
|
+
effectTileDensityDoT?: number;
|
|
1417
|
+
effectTileDensity?: number;
|
|
1418
|
+
/** Hides this spell in the spell screen */
|
|
1419
|
+
hide?: boolean;
|
|
1420
|
+
shotgunCount?: number;
|
|
1421
|
+
shotgunSpread?: number;
|
|
1422
|
+
shotgunDistance?: number;
|
|
1423
|
+
shotgunSpeedBonus?: number;
|
|
1424
|
+
distractEff?: number;
|
|
1425
|
+
bindEff?: number;
|
|
1426
|
+
damageFlags?: string[];
|
|
1427
|
+
/** Wont spawn a trail on the player, ever */
|
|
1428
|
+
noTrailOnPlayer?: boolean;
|
|
1429
|
+
/** Wont spawn a trail on any entity, ever */
|
|
1430
|
+
noTrailOnEntity?: boolean;
|
|
1431
|
+
/** Wont spawn a trail on any allied entity, ever */
|
|
1432
|
+
noTrailOnAlly?: boolean;
|
|
1433
|
+
/** Color of the spell and bullet warningsd */
|
|
1434
|
+
color?: string;
|
|
1435
|
+
/** Buffs applied by the hit will effect everyone */
|
|
1436
|
+
buffAll?: boolean;
|
|
1437
|
+
name: string;
|
|
1438
|
+
/** spell required to unlock this one */
|
|
1439
|
+
prerequisite?: string | string[];
|
|
1440
|
+
/** blocked if you have this spell */
|
|
1441
|
+
blockedBy?: string[];
|
|
1442
|
+
/** Spell is hidden if you didnt learn it */
|
|
1443
|
+
hideUnlearnable?: boolean;
|
|
1444
|
+
/** Spell is hidden if you didnt learn this spell */
|
|
1445
|
+
hideWithout?: string;
|
|
1446
|
+
/** Spell is hidden if you DID learn it */
|
|
1447
|
+
hideLearned?: boolean;
|
|
1448
|
+
/** Automatically learns the spells when you learn it (thru magic screen) */
|
|
1449
|
+
autoLearn?: string[];
|
|
1450
|
+
/** This spell wont trigger an aggro action */
|
|
1451
|
+
noAggro?: boolean;
|
|
1452
|
+
/** Whether the spell defaults to the Player faction */
|
|
1453
|
+
allySpell?: boolean;
|
|
1454
|
+
/** Spell overrides the faction */
|
|
1455
|
+
faction?: string;
|
|
1456
|
+
/** Whether the spell defaults to the Enemy faction */
|
|
1457
|
+
enemySpell?: boolean;
|
|
1458
|
+
/** Hide the spell if arousal mode is off */
|
|
1459
|
+
arousalMode?: boolean;
|
|
1460
|
+
/** Conjure, Illusion, Elements */
|
|
1461
|
+
school?: string;
|
|
1462
|
+
/** if the type is special, this is the special type */
|
|
1463
|
+
special?: string;
|
|
1464
|
+
/** Damage of the spell */
|
|
1465
|
+
power?: number;
|
|
1466
|
+
/** Damage type */
|
|
1467
|
+
damage?: string;
|
|
1468
|
+
/** size of sprite */
|
|
1469
|
+
size?: number;
|
|
1470
|
+
/** Prevents multiple instances of the spell from doing damage on the same turn from the same bullet to the same enemy */
|
|
1471
|
+
noUniqueHits?: boolean;
|
|
1472
|
+
/** AoE */
|
|
1473
|
+
aoe?: number;
|
|
1474
|
+
/** bind */
|
|
1475
|
+
bind?: number;
|
|
1476
|
+
/** distract */
|
|
1477
|
+
distract?: number;
|
|
1478
|
+
/** Bonus daMAGE TO BOUND TATRGETS */
|
|
1479
|
+
boundBonus?: number;
|
|
1480
|
+
/** outfit applied (special parameter) */
|
|
1481
|
+
outfit?: string;
|
|
1482
|
+
/** speed */
|
|
1483
|
+
speed?: number;
|
|
1484
|
+
knifecost?: number;
|
|
1485
|
+
staminacost?: number;
|
|
1486
|
+
manacost: number;
|
|
1487
|
+
minRange?: number;
|
|
1488
|
+
noSprite?: boolean;
|
|
1489
|
+
/** Verbal, arms, or legs */
|
|
1490
|
+
components?: any[];
|
|
1491
|
+
/** Spell level */
|
|
1492
|
+
level: number;
|
|
1493
|
+
/** Whether the spell is passive (like the summon count up) or active like the bolt or toggle spells*/
|
|
1494
|
+
passive?: boolean;
|
|
1495
|
+
/** costOnToggle */
|
|
1496
|
+
costOnToggle?: boolean;
|
|
1497
|
+
/** Type of the spell */
|
|
1498
|
+
type: string;
|
|
1499
|
+
/** Type of effect on hit */
|
|
1500
|
+
onhit?: string;
|
|
1501
|
+
/** Duration of the status effect applied */
|
|
1502
|
+
time?: number;
|
|
1503
|
+
/** For Inert spells, this is the lifetime of the main bullet */
|
|
1504
|
+
delay?: number;
|
|
1505
|
+
/** Random added onto delay */
|
|
1506
|
+
delayRandom?: number;
|
|
1507
|
+
/** castRange */
|
|
1508
|
+
castRange?: number;
|
|
1509
|
+
/** Spell range */
|
|
1510
|
+
range?: number;
|
|
1511
|
+
/** lifetime of the Hit bullet created by the spell, not the bullet itself in the case of an "inert" bullet*/
|
|
1512
|
+
lifetime?: number;
|
|
1513
|
+
/** Specifically for the bullet lifetime, currently unused */
|
|
1514
|
+
bulletLifetime?: number;
|
|
1515
|
+
/** channel turns */
|
|
1516
|
+
channel?: number;
|
|
1517
|
+
/** Noise spell makes on cast */
|
|
1518
|
+
noise?: number;
|
|
1519
|
+
/** block */
|
|
1520
|
+
block?: number;
|
|
1521
|
+
/** played on cast */
|
|
1522
|
+
sfx?: string;
|
|
1523
|
+
/** Played on damage dealt */
|
|
1524
|
+
hitsfx?: string;
|
|
1525
|
+
/** Played on bullet impact */
|
|
1526
|
+
landsfx?: string;
|
|
1527
|
+
/** trailPower */
|
|
1528
|
+
trailPower?: number;
|
|
1529
|
+
/** trailHit */
|
|
1530
|
+
trailHit?: string;
|
|
1531
|
+
/** trailLifetime */
|
|
1532
|
+
trailLifetime?: number;
|
|
1533
|
+
/** trailTime */
|
|
1534
|
+
trailTime?: number;
|
|
1535
|
+
/** Random number to increase lifetime by */
|
|
1536
|
+
lifetimeHitBonus?: number;
|
|
1537
|
+
/** Random number to increase trail lifetime by */
|
|
1538
|
+
trailLifetimeBonus?: number;
|
|
1539
|
+
/** Playereffect of the trail */
|
|
1540
|
+
trailPlayerEffect?: any;
|
|
1541
|
+
/** trailChance */
|
|
1542
|
+
trailChance?: number;
|
|
1543
|
+
/** Creates trails on the projectiles itself too */
|
|
1544
|
+
trailOnSelf?: boolean;
|
|
1545
|
+
/** trailDamage */
|
|
1546
|
+
trailDamage?: string;
|
|
1547
|
+
/** trailspawnaoe */
|
|
1548
|
+
trailspawnaoe?: number;
|
|
1549
|
+
/** Casts a spell as a trail */
|
|
1550
|
+
trailcast?: any;
|
|
1551
|
+
/** trail */
|
|
1552
|
+
trail?: string;
|
|
1553
|
+
/** Spell points cost to buy */
|
|
1554
|
+
spellPointCost?: number;
|
|
1555
|
+
/** Whether the spell heals or not */
|
|
1556
|
+
heal?: boolean;
|
|
1557
|
+
/** Whether AI treats as a buff */
|
|
1558
|
+
buff?: boolean;
|
|
1559
|
+
/** The spell needs this condition for an enemy to cast it*/
|
|
1560
|
+
castCondition?: string;
|
|
1561
|
+
/** Player can only cast spell on a creature or player */
|
|
1562
|
+
mustTarget?: boolean;
|
|
1563
|
+
/** Player cant target player */
|
|
1564
|
+
noTargetPlayer?: boolean;
|
|
1565
|
+
/** Only target walls */
|
|
1566
|
+
WallsOnly?: boolean;
|
|
1567
|
+
/** Spell can be dodged */
|
|
1568
|
+
evadeable?: boolean;
|
|
1569
|
+
/** Targeting location */
|
|
1570
|
+
meleeOrigin?: boolean;
|
|
1571
|
+
/** Cant hit the same enemy twice per turrn, impoprtant for piercing spells */
|
|
1572
|
+
noDoubleHit?: boolean;
|
|
1573
|
+
/** Doesnt do spellcast on the hit */
|
|
1574
|
+
noCastOnHit?: boolean;
|
|
1575
|
+
/** Casts a spellcast during the delay */
|
|
1576
|
+
castDuringDelay?: boolean;
|
|
1577
|
+
/** Casts spell */
|
|
1578
|
+
spellcast?: any;
|
|
1579
|
+
/** Casts spell on cast */
|
|
1580
|
+
extraCast?: any;
|
|
1581
|
+
/** spell cast on hit */
|
|
1582
|
+
spellcasthit?: any;
|
|
1583
|
+
/** List of buffs applied by the spell */
|
|
1584
|
+
buffs?: any[];
|
|
1585
|
+
/** Whether the spell is off by default */
|
|
1586
|
+
defaultOff?: boolean;
|
|
1587
|
+
/** List of events applied by the spell */
|
|
1588
|
+
events?: KinkyDungeonEvent[];
|
|
1589
|
+
/** List of events applied by the spell to its hit */
|
|
1590
|
+
hitevents?: KinkyDungeonEvent[];
|
|
1591
|
+
/** spell pierces */
|
|
1592
|
+
piercing?: boolean;
|
|
1593
|
+
/** spell pierces enemies */
|
|
1594
|
+
pierceEnemies?: boolean;
|
|
1595
|
+
/** spell pierces */
|
|
1596
|
+
passthrough?: boolean;
|
|
1597
|
+
/** Deals DoT */
|
|
1598
|
+
dot?: boolean;
|
|
1599
|
+
/** spell pierces */
|
|
1600
|
+
noTerrainHit?: boolean;
|
|
1601
|
+
/** spell pierces */
|
|
1602
|
+
noEnemyCollision?: boolean;
|
|
1603
|
+
/** If an enemy has one of these tags it will get hit no matter what*/
|
|
1604
|
+
alwaysCollideTags?: string[];
|
|
1605
|
+
/** trail pierces */
|
|
1606
|
+
piercingTrail?: boolean;
|
|
1607
|
+
/** nonVolatile */
|
|
1608
|
+
nonVolatile?: boolean;
|
|
1609
|
+
/** Cancels automove when cast */
|
|
1610
|
+
cancelAutoMove?: boolean;
|
|
1611
|
+
/** requireLOS */
|
|
1612
|
+
requireLOS?: boolean;
|
|
1613
|
+
/** selfTargetOnly */
|
|
1614
|
+
selfTargetOnly?: boolean;
|
|
1615
|
+
/** AI will only target creatures with this tag */
|
|
1616
|
+
filterTags?: string[];
|
|
1617
|
+
/** Whether or not sends a message on cast */
|
|
1618
|
+
msg?: boolean;
|
|
1619
|
+
/** Suppress summon message */
|
|
1620
|
+
noSumMsg?: boolean;
|
|
1621
|
+
/** Targeted like a bolt, showing the aim line */
|
|
1622
|
+
projectileTargeting?: boolean;
|
|
1623
|
+
/** CastInWalls */
|
|
1624
|
+
CastInWalls?: boolean;
|
|
1625
|
+
/** noTargetEnemies */
|
|
1626
|
+
noTargetEnemies?: boolean;
|
|
1627
|
+
/** Exception list for NoTargetEnemies */
|
|
1628
|
+
exceptionFactions?: string[];
|
|
1629
|
+
/** noTargetAllies */
|
|
1630
|
+
noTargetAllies?: boolean;
|
|
1631
|
+
/** Sets the enemy's specialCD shared between others */
|
|
1632
|
+
specialCD?: number;
|
|
1633
|
+
/** AI wont choose this as first choice */
|
|
1634
|
+
noFirstChoice?: boolean;
|
|
1635
|
+
/** Player effect */
|
|
1636
|
+
playerEffect?: any;
|
|
1637
|
+
/** Doesnt send cast message */
|
|
1638
|
+
noCastMsg?: boolean;
|
|
1639
|
+
/** Casts on self always */
|
|
1640
|
+
selfcast?: boolean;
|
|
1641
|
+
/** Cant miscast */
|
|
1642
|
+
noMiscast?: boolean;
|
|
1643
|
+
/** summon */
|
|
1644
|
+
summon?: any[];
|
|
1645
|
+
/** Spell does not show up in the spells scrreen until learned */
|
|
1646
|
+
secret?: boolean;
|
|
1647
|
+
/** Enemies summoned by this spell will have their default faction and not the caster's faction */
|
|
1648
|
+
defaultFaction?: boolean;
|
|
1649
|
+
}
|
|
1650
|
+
interface KDPoint {
|
|
1651
|
+
x: number;
|
|
1652
|
+
y: number;
|
|
1653
|
+
}
|
|
1654
|
+
interface KDJailPoint extends KDPoint {
|
|
1655
|
+
type: string;
|
|
1656
|
+
radius: number;
|
|
1657
|
+
requireLeash?: boolean;
|
|
1658
|
+
requireFurniture?: boolean;
|
|
1659
|
+
direction?: {
|
|
1660
|
+
x: number;
|
|
1661
|
+
y: number;
|
|
1662
|
+
};
|
|
1663
|
+
restraint?: string;
|
|
1664
|
+
restrainttags?: string[];
|
|
1665
|
+
}
|
|
1666
|
+
interface KinkyDialogue {
|
|
1667
|
+
/** REPLACETEXT -> Replacement */
|
|
1668
|
+
data?: Record<string, string>;
|
|
1669
|
+
/** Shows the quick inventory */
|
|
1670
|
+
inventory?: boolean;
|
|
1671
|
+
/** Function to play when clicked. If not specified, nothing happens. Bool is whether or not to abort current click*/
|
|
1672
|
+
clickFunction?: (gagged: boolean, player: entity) => boolean | undefined;
|
|
1673
|
+
/** Function to play when clicked, if considered gagged. If not specified, will use the default function. */
|
|
1674
|
+
gagFunction?: (player: entity) => boolean | undefined;
|
|
1675
|
+
/** Will not appear unless function returns true */
|
|
1676
|
+
prerequisiteFunction?: (gagged: boolean, player: entity) => boolean;
|
|
1677
|
+
/** Will appear greyed out unless true */
|
|
1678
|
+
greyoutFunction?: (gagged: boolean, player: entity) => boolean;
|
|
1679
|
+
greyoutTooltip?: string;
|
|
1680
|
+
/** List of personalities supported by this dialogue */
|
|
1681
|
+
personalities?: string[];
|
|
1682
|
+
/** Jumps to the specified dialogue when clicked, after setting the response string*/
|
|
1683
|
+
leadsTo?: string;
|
|
1684
|
+
leadsToStage?: string;
|
|
1685
|
+
/** Pressing the skip key will click this option */
|
|
1686
|
+
skip?: boolean;
|
|
1687
|
+
/** After leading to another dialogue, the response will NOT be updated */
|
|
1688
|
+
dontTouchText?: boolean;
|
|
1689
|
+
exitDialogue?: boolean;
|
|
1690
|
+
/** The response the NPC will give when this dialogue is clicked. If response is "null", then it keeps the original, "" uses pregenerated
|
|
1691
|
+
* The string name will be "r" + response with a couple of enemy-specific variations
|
|
1692
|
+
*/
|
|
1693
|
+
response?: string;
|
|
1694
|
+
/** The option for you to select for this dialogue. "" means pregenerated, OK to put "" for top-level KinkyDialogues
|
|
1695
|
+
* The string name will be "d" + response
|
|
1696
|
+
*/
|
|
1697
|
+
playertext?: string;
|
|
1698
|
+
/** Whether or not this line has a gag-specific dialogue line */
|
|
1699
|
+
gag?: boolean;
|
|
1700
|
+
/** Threshold at which the player is considered gagged for this dialogue. Default is 0.01*/
|
|
1701
|
+
gagThreshold?: number;
|
|
1702
|
+
/** Whether or not this option appears while gagged */
|
|
1703
|
+
gagDisabled?: boolean;
|
|
1704
|
+
/** Whether or not this option appears while ungagged */
|
|
1705
|
+
gagRequired?: boolean;
|
|
1706
|
+
/** Options to display */
|
|
1707
|
+
options?: Record<string, KinkyDialogue>;
|
|
1708
|
+
/** Name of a dialogue to get extra options from. Merges them, preferring this dialogue's options if the name is the same */
|
|
1709
|
+
extraOptions?: string;
|
|
1710
|
+
}
|
|
1711
|
+
interface KinkyVibration {
|
|
1712
|
+
/** Item applying this vibration */
|
|
1713
|
+
source: string;
|
|
1714
|
+
/** Identification */
|
|
1715
|
+
name: string;
|
|
1716
|
+
intensity: number;
|
|
1717
|
+
/** Location(s) of the vibration */
|
|
1718
|
+
location: string[];
|
|
1719
|
+
duration: number;
|
|
1720
|
+
durationLeft: number;
|
|
1721
|
+
/** Will turn off for this long when being denied */
|
|
1722
|
+
denyTime?: number;
|
|
1723
|
+
denyTimeLeft?: number;
|
|
1724
|
+
/** Will deny this many times. */
|
|
1725
|
+
denialsLeft?: number;
|
|
1726
|
+
/** Always denies instead of orgasm. Overrides edgeOnly in the vibration itself but gets overridden by vibe modifiers */
|
|
1727
|
+
alwaysDeny?: boolean;
|
|
1728
|
+
/** Chance to deny. 0 or undefined means 100%*/
|
|
1729
|
+
denialChance?: number;
|
|
1730
|
+
/** Chance to deny if the player is likely to orgasm. 0 or undefined means 100%*/
|
|
1731
|
+
denialChanceLikely?: number;
|
|
1732
|
+
/** After this much time the orgasms will be unlocked*/
|
|
1733
|
+
edgeTime?: number;
|
|
1734
|
+
edgeTimeLeft?: number;
|
|
1735
|
+
/** The vibration will sense when the player is at max arousal and only decrement the timer then */
|
|
1736
|
+
tickEdgeAtMaxArousal?: boolean;
|
|
1737
|
+
/** Will repeat this many times */
|
|
1738
|
+
loopsLeft?: number;
|
|
1739
|
+
/** Orgasm will always be impossible */
|
|
1740
|
+
edgeOnly?: boolean;
|
|
1741
|
+
/** Table of modifiers */
|
|
1742
|
+
VibeModifiers: VibeMod[];
|
|
1743
|
+
}
|
|
1744
|
+
interface VibeMod {
|
|
1745
|
+
/** Source of the modifier */
|
|
1746
|
+
source: string;
|
|
1747
|
+
/** Identifier of the modifier */
|
|
1748
|
+
name: string;
|
|
1749
|
+
/** Location of the modifier */
|
|
1750
|
+
location: string;
|
|
1751
|
+
/** Duration of the vibe modifier */
|
|
1752
|
+
duration: number;
|
|
1753
|
+
durationLeft: number;
|
|
1754
|
+
/** Change to intensity, cannot go below 1, capped at the value of the highest/lowest mod*/
|
|
1755
|
+
intensityMod: number;
|
|
1756
|
+
/** Forces intensity*/
|
|
1757
|
+
intensitySetpoint?: number;
|
|
1758
|
+
edgeOnly?: boolean;
|
|
1759
|
+
forceDeny?: boolean;
|
|
1760
|
+
bypassDeny?: boolean;
|
|
1761
|
+
bypassEdge?: boolean;
|
|
1762
|
+
/** Duration does not tick down while this vibe mod is on */
|
|
1763
|
+
extendDuration?: boolean;
|
|
1764
|
+
/** Increments the deny chance */
|
|
1765
|
+
denyChanceMod?: number;
|
|
1766
|
+
/** Increments the deny chance */
|
|
1767
|
+
denyChanceLikelyMod?: number;
|
|
1768
|
+
}
|
|
1769
|
+
interface KinkyDungeonSave {
|
|
1770
|
+
KinkyDungeonPlayerEntity: any;
|
|
1771
|
+
level: number;
|
|
1772
|
+
checkpoint: string;
|
|
1773
|
+
rep: Record<string, number>;
|
|
1774
|
+
costs: Record<string, number>;
|
|
1775
|
+
pcosts: Record<string, number>;
|
|
1776
|
+
orbs: number[];
|
|
1777
|
+
chests: number[];
|
|
1778
|
+
dress: string;
|
|
1779
|
+
gold: number;
|
|
1780
|
+
points: number;
|
|
1781
|
+
grounditems: any;
|
|
1782
|
+
perks: string[];
|
|
1783
|
+
levels: {
|
|
1784
|
+
Elements: number;
|
|
1785
|
+
Conjure: number;
|
|
1786
|
+
Illusion: number;
|
|
1787
|
+
};
|
|
1788
|
+
rescued: Record<string, boolean>;
|
|
1789
|
+
aid: Record<string, boolean>;
|
|
1790
|
+
seed: string;
|
|
1791
|
+
statchoice: [string, boolean][];
|
|
1792
|
+
mapIndex: Record<string, string>;
|
|
1793
|
+
id: number;
|
|
1794
|
+
choices: number[];
|
|
1795
|
+
choices2: boolean[];
|
|
1796
|
+
buffs: Record<string, any>;
|
|
1797
|
+
lostitems: any[];
|
|
1798
|
+
caches: number[];
|
|
1799
|
+
hearts: number[];
|
|
1800
|
+
spells: string[];
|
|
1801
|
+
inventory: item[];
|
|
1802
|
+
KDGameData: KDGameDataBase;
|
|
1803
|
+
KDEventData: Object;
|
|
1804
|
+
flags: [string, number][];
|
|
1805
|
+
stats: {
|
|
1806
|
+
picks: number;
|
|
1807
|
+
keys: number;
|
|
1808
|
+
bkeys: number;
|
|
1809
|
+
mana: number;
|
|
1810
|
+
manapool: number;
|
|
1811
|
+
stamina: number;
|
|
1812
|
+
willpower: number;
|
|
1813
|
+
distraction: number;
|
|
1814
|
+
distractionlower: number;
|
|
1815
|
+
wep: any;
|
|
1816
|
+
npp: number;
|
|
1817
|
+
diff: number;
|
|
1818
|
+
};
|
|
1819
|
+
faction: Record<string, Record<string, number>>;
|
|
1820
|
+
KinkyDungeonTiles: Record<string, any>;
|
|
1821
|
+
KinkyDungeonTilesSkin: Record<string, any>;
|
|
1822
|
+
KinkyDungeonTilesMemory: Record<string, any>;
|
|
1823
|
+
KinkyDungeonEffectTiles: Record<string, Record<string, effectTile>>;
|
|
1824
|
+
KinkyDungeonRandomPathablePoints: Record<string, {
|
|
1825
|
+
x: number;
|
|
1826
|
+
y: number;
|
|
1827
|
+
tags?: string[];
|
|
1828
|
+
}>;
|
|
1829
|
+
KinkyDungeonEntities: entity[];
|
|
1830
|
+
KinkyDungeonBullets: any[];
|
|
1831
|
+
KinkyDungeonGrid: string;
|
|
1832
|
+
KinkyDungeonGridWidth: number;
|
|
1833
|
+
KinkyDungeonGridHeight: number;
|
|
1834
|
+
KinkyDungeonFogGrid: any[];
|
|
1835
|
+
KinkyDungeonStartPosition: {
|
|
1836
|
+
x: number;
|
|
1837
|
+
y: number;
|
|
1838
|
+
};
|
|
1839
|
+
KinkyDungeonEndPosition: {
|
|
1840
|
+
x: number;
|
|
1841
|
+
y: number;
|
|
1842
|
+
};
|
|
1843
|
+
}
|
|
1844
|
+
declare type MapMod = {
|
|
1845
|
+
name: string;
|
|
1846
|
+
roomType: string;
|
|
1847
|
+
jailType?: string;
|
|
1848
|
+
guardType?: string;
|
|
1849
|
+
weight: number;
|
|
1850
|
+
tags: string[];
|
|
1851
|
+
faction?: string;
|
|
1852
|
+
tagsOverride?: string[];
|
|
1853
|
+
bonusTags: Record<string, {
|
|
1854
|
+
bonus: number;
|
|
1855
|
+
mult: number;
|
|
1856
|
+
}>;
|
|
1857
|
+
spawnBoxes?: any[];
|
|
1858
|
+
bonussetpieces?: {
|
|
1859
|
+
Type: string;
|
|
1860
|
+
Weight: number;
|
|
1861
|
+
}[];
|
|
1862
|
+
altRoom: string;
|
|
1863
|
+
};
|
|
1864
|
+
declare type AIType = {
|
|
1865
|
+
/** The AI will only wander to visible points */
|
|
1866
|
+
strictwander?: boolean;
|
|
1867
|
+
/** This enemy is stealthy until the ambush is triggered */
|
|
1868
|
+
ambush?: boolean;
|
|
1869
|
+
/** This is the tile for the AI which registers as tooltip */
|
|
1870
|
+
ambushtile?: string;
|
|
1871
|
+
/** Happens at the start immediately after AI is assigned*/
|
|
1872
|
+
init: (enemy: any, player: any, aidata: any) => void;
|
|
1873
|
+
/** Happens before movement. Return true to skip movement loop*/
|
|
1874
|
+
beforemove: (enemy: any, player: any, aidata: any) => boolean;
|
|
1875
|
+
/** Whether the enemy chases the player if it sees them */
|
|
1876
|
+
chase: (enemy: any, player: any, aidata: any) => boolean;
|
|
1877
|
+
/** Whether enemy will chase the player across a long distance */
|
|
1878
|
+
persist: (enemy: any, player: any, aidata: any) => boolean;
|
|
1879
|
+
/** Whether the enemy moves toward gx */
|
|
1880
|
+
move: (enemy: any, player: any, aidata: any) => boolean;
|
|
1881
|
+
/** whether the enemy obeys commands like Follow Me and such */
|
|
1882
|
+
follower: (enemy: any, player: any, aidata: any) => boolean;
|
|
1883
|
+
/** Whether the enemy follows sound sources or not */
|
|
1884
|
+
followsound: (enemy: any, player: any, aidata: any) => boolean;
|
|
1885
|
+
/** Whether enemy will randomly wander to nearby points*/
|
|
1886
|
+
wander_near: (enemy: any, player: any, aidata: any) => boolean;
|
|
1887
|
+
/** Whether enemy will randomly choose points on the map to wander to */
|
|
1888
|
+
wander_far: (enemy: any, player: any, aidata: any) => boolean;
|
|
1889
|
+
/** Function to replace wandernear. Return true to cancel stock func, false otherwise*/
|
|
1890
|
+
wandernear_func?: (enemy: any, player: any, aidata: any) => boolean;
|
|
1891
|
+
/** Function to replace wanderfar. Return true to cancel stock func, false otherwise*/
|
|
1892
|
+
wanderfar_func?: (enemy: any, player: any, aidata: any) => boolean;
|
|
1893
|
+
/** Whether it sets gx to gxx when idle, and gy to gyy */
|
|
1894
|
+
resetguardposition: (enemy: any, player: any, aidata: any) => boolean;
|
|
1895
|
+
/** Whether enemy attacks */
|
|
1896
|
+
attack: (enemy: any, player: any, aidata: any) => boolean;
|
|
1897
|
+
/** whether enemy casts spells */
|
|
1898
|
+
spell: (enemy: any, player: any, aidata: any) => boolean;
|
|
1899
|
+
/** This function executes before wander location changes. Return True to override wander behavior */
|
|
1900
|
+
aftermove: (enemy: any, player: any, aidata: any) => boolean;
|
|
1901
|
+
/** This executes after enemy is determined to be idle or not. If true, prevents spells.*/
|
|
1902
|
+
afteridle?: (enemy: any, player: any, aidata: any) => boolean;
|
|
1903
|
+
/** Returns the current wander long delay.*/
|
|
1904
|
+
wanderDelay_long?: (enemy: any, aidata: any) => number;
|
|
1905
|
+
/** Returns the current wander short delay.*/
|
|
1906
|
+
wanderDelay_short?: (enemy: any, aidata: any) => number;
|
|
1907
|
+
};
|
|
1908
|
+
declare type EnemyEvent = {
|
|
1909
|
+
forceattack?: boolean;
|
|
1910
|
+
aggressive?: boolean;
|
|
1911
|
+
nonaggressive?: boolean;
|
|
1912
|
+
play?: boolean;
|
|
1913
|
+
noplay?: boolean;
|
|
1914
|
+
/** This event wont get cleared by mass resets, like when you are deposited into a cage */
|
|
1915
|
+
noMassReset?: boolean;
|
|
1916
|
+
/** Determines if the enemy will attack you */
|
|
1917
|
+
decideAttack?: (enemy: entity, target: entity, AIData: any, allied: boolean, hostile: boolean, aggressive: boolean) => number;
|
|
1918
|
+
/** Determines if the enemy will cast spells */
|
|
1919
|
+
decideSpell?: (enemy: entity, target: entity, AIData: any, allied: boolean, hostile: boolean, aggressive: boolean) => number;
|
|
1920
|
+
/** Determines weight */
|
|
1921
|
+
weight: (enemy: entity, AIData: any, allied: boolean, hostile: boolean, aggressive: boolean) => number;
|
|
1922
|
+
/** Run when triggered */
|
|
1923
|
+
trigger: (enemy: entity, AIData: any) => void;
|
|
1924
|
+
/** Run when leashes to the leash point */
|
|
1925
|
+
arrive?: (enemy: entity, AIData: any) => boolean;
|
|
1926
|
+
/** Run each turn at the end */
|
|
1927
|
+
maintain?: (enemy: entity, delta: number, AIData?: any) => boolean;
|
|
1928
|
+
/** Run before the move loop */
|
|
1929
|
+
beforeMove?: (enemy: entity, AIData: any, delta: number) => boolean;
|
|
1930
|
+
/** Run before the attack loop */
|
|
1931
|
+
beforeAttack?: (enemy: entity, AIData: any, delta: number) => boolean;
|
|
1932
|
+
/** Run before the spell loop */
|
|
1933
|
+
beforeSpell?: (enemy: entity, AIData: any, delta: number) => boolean;
|
|
1934
|
+
};
|
|
1935
|
+
declare type KDLockType = {
|
|
1936
|
+
lockmult: number;
|
|
1937
|
+
penalty?: Record<string, number>;
|
|
1938
|
+
pickable: boolean;
|
|
1939
|
+
pick_time: number;
|
|
1940
|
+
pick_diff: number;
|
|
1941
|
+
pick_lim?: number;
|
|
1942
|
+
canPick: (data: any) => boolean;
|
|
1943
|
+
doPick: (data: any) => boolean;
|
|
1944
|
+
failPick: (data: any) => string;
|
|
1945
|
+
breakChance: (data: any) => boolean;
|
|
1946
|
+
unlockable: boolean;
|
|
1947
|
+
key: string;
|
|
1948
|
+
canUnlock: (data: any) => boolean;
|
|
1949
|
+
doUnlock: (data: any) => boolean;
|
|
1950
|
+
failUnlock: (data: any) => string;
|
|
1951
|
+
removeKeys: (data: any) => void;
|
|
1952
|
+
levelStart: (item: any) => void;
|
|
1953
|
+
shrineImmune: boolean;
|
|
1954
|
+
commandlevel: number;
|
|
1955
|
+
command_lesser: () => number;
|
|
1956
|
+
command_greater: () => number;
|
|
1957
|
+
command_supreme: () => number;
|
|
1958
|
+
loot_special: boolean;
|
|
1959
|
+
loot_locked: boolean;
|
|
1960
|
+
};
|
|
1961
|
+
declare type KDMapTile = {
|
|
1962
|
+
name: string;
|
|
1963
|
+
w: number;
|
|
1964
|
+
h: number;
|
|
1965
|
+
primInd: string;
|
|
1966
|
+
index: Record<string, string>;
|
|
1967
|
+
flexEdge?: Record<string, string>;
|
|
1968
|
+
flexEdgeSuper?: Record<string, string>;
|
|
1969
|
+
scale: number;
|
|
1970
|
+
category: string;
|
|
1971
|
+
weight: number;
|
|
1972
|
+
grid: string;
|
|
1973
|
+
POI: any[];
|
|
1974
|
+
Keyring?: any[];
|
|
1975
|
+
Jail: any[];
|
|
1976
|
+
Tiles: Record<string, any>;
|
|
1977
|
+
effectTiles: Record<string, Record<string, effectTile>>;
|
|
1978
|
+
Skin: Record<string, any>;
|
|
1979
|
+
/** List of inaccessible entrance pairs */
|
|
1980
|
+
inaccessible: {
|
|
1981
|
+
indX1: number;
|
|
1982
|
+
indY1: number;
|
|
1983
|
+
dir1: string;
|
|
1984
|
+
indX2: number;
|
|
1985
|
+
indY2: number;
|
|
1986
|
+
dir2: string;
|
|
1987
|
+
}[];
|
|
1988
|
+
/** tags */
|
|
1989
|
+
tags: string[];
|
|
1990
|
+
/** tags that make weight 0 if they exist */
|
|
1991
|
+
forbidTags?: string[];
|
|
1992
|
+
/** tags required or else bad things happen */
|
|
1993
|
+
requireTags?: string[];
|
|
1994
|
+
/** tags for following 3 */
|
|
1995
|
+
indexTags: string[];
|
|
1996
|
+
/** tags and max counts before this tile is no longer considered */
|
|
1997
|
+
maxTags: number[];
|
|
1998
|
+
/** tags and weight bonus */
|
|
1999
|
+
bonusTags: number[];
|
|
2000
|
+
/** tags and weight mult */
|
|
2001
|
+
multTags: number[];
|
|
2002
|
+
/** NEGATION operator, triggers the mult if there is NOT a tag */
|
|
2003
|
+
notTags?: any[];
|
|
2004
|
+
};
|
|
2005
|
+
interface KDBondage {
|
|
2006
|
+
color: string;
|
|
2007
|
+
/** Order in which enemies will struggle */
|
|
2008
|
+
priority: number;
|
|
2009
|
+
/** Multiplier for struggle rate */
|
|
2010
|
+
struggleRate: number;
|
|
2011
|
+
/** Multiplier for the max health component of struggle */
|
|
2012
|
+
healthStruggleBoost: number;
|
|
2013
|
+
/** Multiplier for the power component of struggle */
|
|
2014
|
+
powerStruggleBoost: number;
|
|
2015
|
+
}
|
|
2016
|
+
interface KDCursedVar {
|
|
2017
|
+
variant: (restraint: restraint, newRestraintName: string) => any;
|
|
2018
|
+
level: number;
|
|
2019
|
+
}
|
|
2020
|
+
interface KDDelayedAction {
|
|
2021
|
+
data: any;
|
|
2022
|
+
time: number;
|
|
2023
|
+
commit: string;
|
|
2024
|
+
update?: string;
|
|
2025
|
+
/** Cancel this in certain cases */
|
|
2026
|
+
tags: string[];
|
|
2027
|
+
}
|
|
2028
|
+
interface KDBondageMachineFunc {
|
|
2029
|
+
eligible_player: (tile: any, x: any, y: any, entity: any) => boolean;
|
|
2030
|
+
eligible_enemy: (tile: any, x: any, y: any, entity: any) => boolean;
|
|
2031
|
+
function_player: (tile: any, delta: any, x: any, y: any, entity: any) => boolean;
|
|
2032
|
+
function_enemy: (tile: any, delta: any, x: any, y: any, entity: any) => boolean;
|
|
2033
|
+
}
|
|
2034
|
+
interface KDDroppedItemProp {
|
|
2035
|
+
/** When blindfolded, this item will be invisible if your blind level is equal to this or higher */
|
|
2036
|
+
tinyness?: number;
|
|
2037
|
+
}
|
|
2038
|
+
declare type KDParticleData = {
|
|
2039
|
+
zIndex: number;
|
|
2040
|
+
fadeEase?: string;
|
|
2041
|
+
time: number;
|
|
2042
|
+
phase?: number;
|
|
2043
|
+
rotation?: number;
|
|
2044
|
+
vy?: number;
|
|
2045
|
+
vy_spread?: number;
|
|
2046
|
+
vx?: number;
|
|
2047
|
+
vx_spread?: number;
|
|
2048
|
+
sin_period?: number;
|
|
2049
|
+
sin_period_spread?: number;
|
|
2050
|
+
sin_x?: number;
|
|
2051
|
+
sin_x_spread?: number;
|
|
2052
|
+
sin_y?: number;
|
|
2053
|
+
sin_y_spread?: number;
|
|
2054
|
+
/** Lifetime in ms */
|
|
2055
|
+
lifetime: number;
|
|
2056
|
+
lifetime_spread?: number;
|
|
2057
|
+
};
|
|
2058
|
+
interface KDCursedDef {
|
|
2059
|
+
/** Restraints with this curse are unremovable via shrine */
|
|
2060
|
+
noShrine?: boolean;
|
|
2061
|
+
/** This curse is treated as a type of lock, for display purposes */
|
|
2062
|
+
lock?: boolean;
|
|
2063
|
+
/** custom icon for removing (failure) */
|
|
2064
|
+
customIcon_RemoveFailure?: string;
|
|
2065
|
+
/** custom icon for removing (success) */
|
|
2066
|
+
customIcon_RemoveSuccess?: string;
|
|
2067
|
+
/** TODO NOT IMPLEMENTED for a future RemoveCursesWithShrine function */
|
|
2068
|
+
shrineRemove?: string[];
|
|
2069
|
+
onApply?: (item: item, host?: item) => void;
|
|
2070
|
+
condition: (item: item) => boolean;
|
|
2071
|
+
remove: (item: item, host: item) => void;
|
|
2072
|
+
events?: KinkyDungeonEvent[];
|
|
2073
|
+
}
|
|
2074
|
+
declare type SpecialCondition = {
|
|
2075
|
+
resetCD: boolean;
|
|
2076
|
+
criteria: (enemy: entity, AIData: any) => boolean;
|
|
2077
|
+
};
|
|
2078
|
+
declare type KDEventData_PostApply = {
|
|
2079
|
+
player: entity;
|
|
2080
|
+
item: item | null;
|
|
2081
|
+
host: item;
|
|
2082
|
+
keep: boolean;
|
|
2083
|
+
Link: boolean;
|
|
2084
|
+
};
|
|
2085
|
+
declare type KDExpression = {
|
|
2086
|
+
priority: number;
|
|
2087
|
+
stackable?: boolean;
|
|
2088
|
+
criteria: (C: any) => boolean;
|
|
2089
|
+
expression: (C: any) => {
|
|
2090
|
+
EyesPose: string;
|
|
2091
|
+
Eyes2Pose: string;
|
|
2092
|
+
BrowsPose: string;
|
|
2093
|
+
Brows2Pose: string;
|
|
2094
|
+
BlushPose: string;
|
|
2095
|
+
MouthPose: string;
|
|
2096
|
+
};
|
|
2097
|
+
};
|
|
2098
|
+
interface KDPresetLoadout {
|
|
2099
|
+
weapon_current: string;
|
|
2100
|
+
weapon_other: string;
|
|
2101
|
+
armor: string[];
|
|
2102
|
+
}
|
|
2103
|
+
interface KDTrainingRecord {
|
|
2104
|
+
turns_trained: number;
|
|
2105
|
+
turns_skipped: number;
|
|
2106
|
+
turns_total: number;
|
|
2107
|
+
training_points: number;
|
|
2108
|
+
training_stage: number;
|
|
2109
|
+
}
|
|
2110
|
+
interface KDRopeType {
|
|
2111
|
+
tags: string[];
|
|
2112
|
+
}
|
|
2113
|
+
declare type KDTile = any;
|
|
2114
|
+
declare type KDTrapType = (tile: KDTile, entity: entity, x: number, y: number) => {
|
|
2115
|
+
msg: string;
|
|
2116
|
+
triggered: boolean;
|
|
2117
|
+
};
|
|
2118
|
+
declare type KDSprites = {
|
|
2119
|
+
[_: string]: (x: number, y: number, fog: boolean, noReplace: string) => string;
|
|
2120
|
+
};
|
|
2121
|
+
declare const zip: any;
|
|
2122
|
+
declare const guessLanguage: any;
|
|
2123
|
+
declare const PIXI: typeof import('pixi.js') & typeof import('pixi.js-legacy') & {
|
|
2124
|
+
filters: typeof import('pixi-filters');
|
|
2125
|
+
};
|
|
2126
|
+
declare type PIXIContainer = import('pixi.js').Container;
|
|
2127
|
+
declare type PIXIAdjustmentFilter = import('pixi-filters').AdjustmentFilter;
|
|
2128
|
+
declare type LayerFilter = object;
|
|
2129
|
+
interface Model {
|
|
2130
|
+
Name: string;
|
|
2131
|
+
Filters: any;
|
|
2132
|
+
Protected: boolean;
|
|
2133
|
+
SuperProtected: boolean;
|
|
2134
|
+
Restraint: boolean;
|
|
2135
|
+
Group: AssetGroupName;
|
|
2136
|
+
DefaultColor: string;
|
|
2137
|
+
}
|
|
2138
|
+
/** KD extension to BC's base model */
|
|
2139
|
+
interface Item {
|
|
2140
|
+
Model?: Model;
|
|
2141
|
+
Filters?: Record<string, object>;
|
|
2142
|
+
}
|
|
2143
|
+
interface PoseMod {
|
|
2144
|
+
Layer: string;
|
|
2145
|
+
scale_x: number;
|
|
2146
|
+
scale_y: number;
|
|
2147
|
+
rotation_x_anchor: number;
|
|
2148
|
+
rotation_y_anchor: number;
|
|
2149
|
+
offset_x: number;
|
|
2150
|
+
offset_y: number;
|
|
2151
|
+
}
|
|
2152
|
+
interface Window {
|
|
2153
|
+
dataLayer: any;
|
|
2154
|
+
WebFontConfig: any;
|
|
2155
|
+
}
|
|
2156
|
+
declare function KDGetColorableLayers(m: Model): string[];
|
|
2157
|
+
declare function KDGeneratePoseArray(...args: string[]): AssetPoseName[];
|
|
2158
|
+
declare function UpdateModels(m: Character): any;
|
|
2159
|
+
declare function KDGetAvailablePosesArms(m: Model): any;
|
|
2160
|
+
declare function KDGetAvailablePosesLegs(m: Model): any;
|
|
2161
|
+
declare function suppressCanvasUpdate(cb: () => void): any;
|