├── src ├── docs │ ├── vanilla │ │ ├── misc.lua │ │ ├── ProjectileParams.lua │ │ ├── PosVel.lua │ │ ├── gridentity │ │ │ ├── GridEntityTNT.lua │ │ │ ├── GridEntitySpikes.lua │ │ │ ├── GridEntityPressurePlate.lua │ │ │ ├── GridEntityPoop.lua │ │ │ ├── GridEntityPit.lua │ │ │ ├── GridEntityRock.lua │ │ │ ├── GridEntityDoor.lua │ │ │ └── GridEntity.lua │ │ ├── QueuedItemData.lua │ │ ├── TemporaryEffect.lua │ │ ├── RoomConfigEntry.lua │ │ ├── TEARFLAG.lua │ │ ├── EntityPtr.lua │ │ ├── TearParams.lua │ │ ├── ActiveItemDesc.lua │ │ ├── GridEntityDesc.lua │ │ ├── itemconfig │ │ │ ├── ItemConfigCostume.lua │ │ │ ├── ItemConfigPillEffect.lua │ │ │ ├── ItemConfigCard.lua │ │ │ ├── ItemConfig.lua │ │ │ └── ItemConfigItem.lua │ │ ├── RoomConfigSpawn.lua │ │ ├── EntityRef.lua │ │ ├── BitSet128.lua │ │ ├── Globals.lua │ │ ├── entity │ │ │ ├── EntityBomb.lua │ │ │ ├── EntityEffect.lua │ │ │ ├── EntityKnife.lua │ │ │ ├── EntityPickup.lua │ │ │ ├── EntityProjectile.lua │ │ │ ├── EntityTear.lua │ │ │ └── EntityFamiliar.lua │ │ ├── RNG.lua │ │ ├── KColor.lua │ │ ├── RoomDescriptor.lua │ │ ├── Options.lua │ │ ├── Color.lua │ │ ├── Input.lua │ │ ├── SFXManager.lua │ │ ├── ModReference.lua │ │ ├── PathFinder.lua │ │ ├── HUD.lua │ │ ├── ItemPool.lua │ │ ├── MusicManager.lua │ │ ├── CppContainer.lua │ │ ├── Font.lua │ │ ├── Seeds.lua │ │ ├── Vector.lua │ │ └── TemporaryEffects.lua │ ├── repentogon_new │ │ ├── rendering │ │ │ ├── Image.lua │ │ │ ├── Vertex.lua │ │ │ ├── VertexDescriptor.lua │ │ │ ├── Pipeline.lua │ │ │ ├── GLSLValue.lua │ │ │ ├── VertexBuffer.lua │ │ │ ├── BlendMode.lua │ │ │ ├── Shape.lua │ │ │ ├── RenderSet.lua │ │ │ ├── Transformer.lua │ │ │ ├── SourceQuad.lua │ │ │ ├── Shader.lua │ │ │ ├── DestinationQuad.lua │ │ │ ├── Capsule.lua │ │ │ ├── Renderer.lua │ │ │ ├── Point.lua │ │ │ └── Beam.lua │ │ ├── gridentity │ │ │ ├── GridEntityWeb.lua │ │ │ ├── GridEntityFire.lua │ │ │ ├── GridEntityWall.lua │ │ │ ├── GridEntityStairs.lua │ │ │ ├── GridEntityStatue.lua │ │ │ ├── GridEntityGravity.lua │ │ │ ├── GridEntityTrapDoor.lua │ │ │ ├── GridEntityDecoration.lua │ │ │ ├── GridEntityTeleporter.lua │ │ │ └── GridEntityLock.lua │ │ ├── RailManager.lua │ │ ├── menus │ │ │ ├── TitleMenu.lua │ │ │ ├── CutscenesMenu.lua │ │ │ ├── SpecialSpeedsMenu.lua │ │ │ ├── ControllerSelectMenu.lua │ │ │ ├── MainMenu.lua │ │ │ ├── OptionsMenu.lua │ │ │ ├── ModsMenu.lua │ │ │ ├── CustomChallengeMenu.lua │ │ │ ├── ChallengeMenu.lua │ │ │ ├── KeyConfigMenu.lua │ │ │ ├── CollectionMenu.lua │ │ │ ├── SaveMenu.lua │ │ │ ├── BestiaryMenu.lua │ │ │ ├── DailyChallengeMenu.lua │ │ │ ├── StatsMenu.lua │ │ │ └── MenuManager.lua │ │ ├── FXLayers.lua │ │ ├── DailyChallenge.lua │ │ ├── Backdrop.lua │ │ ├── hud │ │ │ ├── DebugRenderer.lua │ │ │ ├── PlayerHUD.lua │ │ │ ├── PlayerHUDHeart.lua │ │ │ ├── Minimap.lua │ │ │ └── HUD.lua │ │ ├── Debug.lua │ │ ├── FXParams.lua │ │ ├── AnimationLayer.lua │ │ ├── NullFrame.lua │ │ ├── GridEntitiesSaveStateVector.lua │ │ ├── entityconfig │ │ │ ├── EntityConfigBaby.lua │ │ │ └── EntityConfig.lua │ │ ├── LootList.lua │ │ ├── LootListEntry.lua │ │ ├── levelgenerator │ │ │ ├── LevelGeneratorEntry.lua │ │ │ ├── LevelGenerator.lua │ │ │ └── LevelGeneratorRoom.lua │ │ ├── history │ │ │ ├── History.lua │ │ │ └── HistoryItem.lua │ │ ├── EntitiesSaveStateVector.lua │ │ ├── LRoomAreaDesc.lua │ │ ├── AnimationData.lua │ │ ├── PocketItem.lua │ │ ├── NightmareScene.lua │ │ ├── proceduralitems │ │ │ ├── ProceduralItemManager.lua │ │ │ ├── ProceduralItem.lua │ │ │ └── ProceduralEffect.lua │ │ ├── BossPoolManager.lua │ │ ├── PauseMenu.lua │ │ ├── ItemOverlay.lua │ │ ├── BossPool.lua │ │ ├── LRoomTileDesc.lua │ │ ├── AnimationFrame.lua │ │ ├── CostumeSpriteDesc.lua │ │ ├── Camera.lua │ │ ├── ColorModifier.lua │ │ ├── RoomTransition.lua │ │ ├── StageTransition.lua │ │ ├── EntityDesc.lua │ │ ├── ColorParams.lua │ │ ├── Ambush.lua │ │ ├── RepentogonGlobal.lua │ │ ├── Console.lua │ │ ├── WeightedOutcomePicker.lua │ │ ├── GenericPrompt.lua │ │ ├── RoomConfigStage.lua │ │ ├── entity │ │ │ └── EntityDelirium.lua │ │ ├── RoomConfig.lua │ │ ├── Weapon.lua │ │ ├── ChallengeParam.lua │ │ ├── PersistentGameData.lua │ │ └── XMLData.lua │ ├── no_repentogon_only │ │ ├── EntityTear.lua │ │ ├── EntityRef.lua │ │ ├── Input.lua │ │ ├── RoomDescriptor.lua │ │ ├── Game.lua │ │ ├── Color.lua │ │ ├── ItemPool.lua │ │ ├── Sprite.lua │ │ ├── RNG.lua │ │ ├── RoomConfigRoom.lua │ │ ├── entity │ │ │ ├── EntityNPC.lua │ │ │ └── EntityPlayer.lua │ │ ├── ProjectileParams.lua │ │ └── Room.lua │ └── repentogon_changes │ │ ├── EntityRef.lua │ │ ├── Seeds.lua │ │ ├── gridentity │ │ ├── GridEntityDoor.lua │ │ └── GridEntityRock.lua │ │ ├── entity │ │ ├── EntityProjectile.lua │ │ ├── EntityEffect.lua │ │ ├── EntityBomb.lua │ │ ├── EntityLaser.lua │ │ ├── EntityFamiliar.lua │ │ ├── EntityKnife.lua │ │ └── EntityTear.lua │ │ ├── Input.lua │ │ ├── MusicManager.lua │ │ ├── itemconfig │ │ ├── ItemConfigCard.lua │ │ ├── ItemConfig.lua │ │ └── ItemConfigItem.lua │ │ ├── RoomConfigRoom.lua │ │ ├── CcpContainer.lua │ │ ├── ProjectileParams.lua │ │ ├── Options.lua │ │ ├── RoomDescriptor.lua │ │ └── RNG.lua ├── constants.ts ├── exampleCfg.json ├── test │ ├── suite │ │ ├── extension.test.ts │ │ └── index.ts │ └── runTest.ts ├── config.ts ├── modifyJson.ts ├── persist.ts └── activationCheck.ts ├── icon.png ├── icon.psd ├── .gitignore ├── readme ├── screen2.png ├── screen3.png ├── readme-image.png └── readme-image.psd ├── .gitmodules ├── .vscode ├── extensions.json ├── tasks.json ├── settings.json └── launch.json ├── .vscodeignore ├── tsconfig.json ├── .eslintrc.json ├── .github └── workflows │ └── publish.yml ├── LICENSE └── scripts └── copyemmy.js /src/docs/vanilla/misc.lua: -------------------------------------------------------------------------------- 1 | _G.include = require -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/Image.lua: -------------------------------------------------------------------------------- 1 | ---@class Image -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filloax/isaac-lua-api-vscode/HEAD/icon.png -------------------------------------------------------------------------------- /icon.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filloax/isaac-lua-api-vscode/HEAD/icon.psd -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | out 2 | dist 3 | node_modules 4 | .vscode-test/ 5 | *.vsix 6 | merge/** 7 | -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/EntityTear.lua: -------------------------------------------------------------------------------- 1 | function EntityTear:ResetSpriteScale() 2 | end 3 | -------------------------------------------------------------------------------- /readme/screen2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filloax/isaac-lua-api-vscode/HEAD/readme/screen2.png -------------------------------------------------------------------------------- /readme/screen3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filloax/isaac-lua-api-vscode/HEAD/readme/screen3.png -------------------------------------------------------------------------------- /src/constants.ts: -------------------------------------------------------------------------------- 1 | export class Constants { 2 | static readonly EXT_ID: string = "boi-lua"; 3 | } -------------------------------------------------------------------------------- /readme/readme-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filloax/isaac-lua-api-vscode/HEAD/readme/readme-image.png -------------------------------------------------------------------------------- /readme/readme-image.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/filloax/isaac-lua-api-vscode/HEAD/readme/readme-image.psd -------------------------------------------------------------------------------- /src/docs/vanilla/ProjectileParams.lua: -------------------------------------------------------------------------------- 1 | ---@return ProjectileParams 2 | function ProjectileParams() 3 | end 4 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityWeb.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityWeb : GridEntity 2 | local GridEntityWeb = {} -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityFire.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityFire : GridEntity 2 | local GridEntityFire = {} -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityWall.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityWall : GridEntity 2 | local GridEntityWall = {} -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityStairs.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityStairs : GridEntity 2 | local GridEntityStairs = {} -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityStatue.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityStatue : GridEntity 2 | local GridEntityStatue = {} -------------------------------------------------------------------------------- /src/exampleCfg.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json" 3 | } -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/EntityRef.lua: -------------------------------------------------------------------------------- 1 | ---@param Entity? Entity 2 | ---@return EntityRef 3 | function EntityRef(Entity) 4 | end -------------------------------------------------------------------------------- /src/docs/repentogon_changes/EntityRef.lua: -------------------------------------------------------------------------------- 1 | ---@param Entity Entity? 2 | ---@return EntityRef 3 | function EntityRef(Entity) 4 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityGravity.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityGravity : GridEntity 2 | local GridEntityGravity = {} -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityTrapDoor.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityTrapDoor : GridEntity 2 | local GridEntityTrapDoor = {} -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/Input.lua: -------------------------------------------------------------------------------- 1 | ---@param button integer 2 | ---@return boolean 3 | function Input.IsMouseBtnPressed(button) 4 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityDecoration.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityDecoration : GridEntity 2 | local GridEntityDecoration = {} -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityTeleporter.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityTeleporter : GridEntity 2 | local GridEntityTeleporter = {} -------------------------------------------------------------------------------- /src/docs/vanilla/PosVel.lua: -------------------------------------------------------------------------------- 1 | ---@class PosVel 2 | ---@field Position Vector 3 | ---@field Velocity Vector 4 | local PosVel = {} 5 | 6 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/Seeds.lua: -------------------------------------------------------------------------------- 1 | ---@param levelStage LevelStage 2 | ---@param seed integer 3 | function Seeds:SetStageSeed(levelStage, seed) 4 | end -------------------------------------------------------------------------------- /src/docs/vanilla/gridentity/GridEntityTNT.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityTNT : GridEntity 2 | ---@field FrameCnt integer 3 | local GridEntityTNT = {} 4 | 5 | -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/RoomDescriptor.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomDescriptor 2 | ---@field AllowedDoors userdata @DoorSet 3 | local RoomDescriptor_NoRGON = {} 4 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "isaac-api-autocomplete-lua"] 2 | path = isaac-api-autocomplete-lua 3 | url = https://github.com/filloax/isaac-api-autocomplete-lua 4 | -------------------------------------------------------------------------------- /src/docs/vanilla/gridentity/GridEntitySpikes.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntitySpikes : GridEntity 2 | ---@field Timeout integer 3 | local GridEntitySpikes = {} 4 | 5 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/RailManager.lua: -------------------------------------------------------------------------------- 1 | ---@class RailManager 2 | local RailManager = {} 3 | 4 | ---@return Sprite 5 | function RailManager:GetRailsSprite() 6 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/TitleMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class TitleMenu 2 | _G.TitleMenu = {} 3 | 4 | ---@return Sprite 5 | function TitleMenu.GetSprite() 6 | end 7 | 8 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/gridentity/GridEntityDoor.lua: -------------------------------------------------------------------------------- 1 | ---Returns the door's ExtraSprite. 2 | ---@return Sprite 3 | function GridEntityDoor:GetExtraSprite() 4 | end 5 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/FXLayers.lua: -------------------------------------------------------------------------------- 1 | ---@class FXLayers 2 | local FXLayers = {} 3 | 4 | ---@param colorMod ColorModifier 5 | function FXLayers:AddPoopFx(colorMod) 6 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/Vertex.lua: -------------------------------------------------------------------------------- 1 | ---@class Vertex 2 | local Vertex = {} 3 | 4 | ---TODO: Document me 5 | ---@return table 6 | function Vertex:Dump() 7 | end -------------------------------------------------------------------------------- /src/docs/repentogon_changes/entity/EntityProjectile.lua: -------------------------------------------------------------------------------- 1 | ---Deflects the projectile. 2 | ---@param velocity Vector 3 | function EntityProjectile:Deflect(velocity) 4 | end 5 | 6 | -------------------------------------------------------------------------------- /src/docs/vanilla/QueuedItemData.lua: -------------------------------------------------------------------------------- 1 | ---@class QueuedItemData 2 | ---@field Charge integer 3 | ---@field Item ItemConfigItem 4 | ---@field Touched boolean 5 | local QueuedItemData = {} 6 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/DailyChallenge.lua: -------------------------------------------------------------------------------- 1 | ---@class DailyChallenge 2 | _G.DailyChallenge = {} 3 | 4 | ---@return ChallengeParams 5 | function DailyChallenge.GetChallengeParams() 6 | end 7 | -------------------------------------------------------------------------------- /src/docs/vanilla/TemporaryEffect.lua: -------------------------------------------------------------------------------- 1 | ---@class TemporaryEffect 2 | ---@field Cooldown integer 3 | ---@field Count integer 4 | ---@field Item ItemConfigItem 5 | local TemporaryEffect = {} 6 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/Backdrop.lua: -------------------------------------------------------------------------------- 1 | ---@class Backdrop 2 | local Backdrop = {} 3 | 4 | ---@return Image 5 | function Backdrop:GetFloorImage() end 6 | 7 | ---@return Image 8 | function Backdrop:GetWallImage() end 9 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | // See http://go.microsoft.com/fwlink/?LinkId=827846 3 | // for the documentation about the extensions.json format 4 | "recommendations": [ 5 | "dbaeumer.vscode-eslint" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /src/docs/vanilla/RoomConfigEntry.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomConfig_Entry 2 | ---@field Subtype integer 3 | ---@field Type EntityType 4 | ---@field Variant integer 5 | ---@field Weight number 6 | local RoomConfigEntry = {} 7 | 8 | -------------------------------------------------------------------------------- /.vscodeignore: -------------------------------------------------------------------------------- 1 | .vscode/** 2 | .vscode-test/** 3 | src/** 4 | node_modules/** 5 | .gitignore 6 | .yarnrc 7 | vsc-extension-quickstart.md 8 | **/tsconfig.json 9 | **/.eslintrc.json 10 | **/*.map 11 | **/*.ts 12 | **/*.psd 13 | readme/** 14 | 15 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/gridentity/GridEntityLock.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityLock : GridEntity 2 | local GridEntityLock = {} 3 | 4 | ---@param player EntityPlayer? 5 | ---@param force? boolean 6 | function GridEntityLock:TryUnlock(player, force) 7 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/VertexDescriptor.lua: -------------------------------------------------------------------------------- 1 | ---@class VertexDescriptor 2 | local VertexDescriptor = {} 3 | 4 | ---TODO: Document me! 5 | ---@param type GLSLValue 6 | ---@param name string 7 | function VertexDescriptor:AddAttribute(type, name) 8 | end 9 | -------------------------------------------------------------------------------- /src/docs/vanilla/TEARFLAG.lua: -------------------------------------------------------------------------------- 1 | ---Since enums were moves to json files and the TearFlags enum still uses the TEARFLAG function as its value, function is placed here. 2 | 3 | local function TEARFLAG(x) 4 | return x >= 64 and BitSet128(0,1<<(x-64)) or BitSet128(1< { 9 | vscode.window.showInformationMessage('Start all tests.'); 10 | 11 | }); 12 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/ControllerSelectMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class ControllerSelectMenu 2 | _G.ControllerSelectMenu = {} 3 | 4 | ---@return Sprite 5 | function ControllerSelectMenu.GetSprite() 6 | end 7 | 8 | ---@return integer 9 | function ControllerSelectMenu.GetSelectedElement() 10 | end 11 | 12 | ---@param elementNumber integer 13 | function ControllerSelectMenu.SetSelectedElement(elementNumber) 14 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/Shape.lua: -------------------------------------------------------------------------------- 1 | ---@class Shape 2 | local Shape = {} 3 | 4 | ---TODO: Document me! 5 | ---@return integer 6 | function Shape:GetTimeout() 7 | end 8 | 9 | ---TODO: Document me! 10 | ---@param timeout integer 11 | function Shape:SetTimeout(timeout) 12 | end 13 | 14 | ---Assigns a capsule to the shape. 15 | ---@param capsule Capsule 16 | function Shape:Capsule(capsule) 17 | end 18 | -------------------------------------------------------------------------------- /src/docs/vanilla/gridentity/GridEntityPit.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityPit : GridEntity 2 | ---@field HasLadder boolean 3 | local GridEntityPit = {} 4 | 5 | ---@param parentEntity GridEntity | nil 6 | function GridEntityPit:MakeBridge(parentEntity) 7 | end 8 | 9 | ---@param Value boolean 10 | function GridEntityPit:SetLadder(Value) 11 | end 12 | 13 | function GridEntityPit:UpdateCollision() 14 | end 15 | 16 | -------------------------------------------------------------------------------- /src/docs/vanilla/RoomConfigSpawn.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomConfig_Spawn 2 | ---@field Entries CppList_RoomConfigEntries # Not officially documented but functional 3 | ---@field EntryCount integer 4 | ---@field SumWeights number 5 | ---@field X integer 6 | ---@field Y integer 7 | local RoomConfigSpawn = {} 8 | 9 | ---@param r number 10 | ---@return RoomConfig_Entry 11 | function RoomConfigSpawn:PickEntry(r) 12 | end 13 | 14 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/AnimationLayer.lua: -------------------------------------------------------------------------------- 1 | ---@class AnimationLayer 2 | local AnimationLayer = {} 3 | 4 | ---Returns the frame data from the provided frame number. 5 | ---@param frame integer 6 | ---@return AnimationFrame? 7 | function AnimationLayer:GetFrame(frame) end 8 | 9 | ---@return integer 10 | function AnimationLayer:GetLayerID() end 11 | 12 | ---@return boolean 13 | function AnimationLayer:IsVisible() end 14 | -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/Sprite.lua: -------------------------------------------------------------------------------- 1 | 2 | ---@return Sprite 3 | function _G.Sprite() 4 | end 5 | 6 | ---@param LayerId integer 7 | ---@param PngFilename string 8 | function Sprite:ReplaceSpritesheet(LayerId, PngFilename) 9 | end 10 | 11 | ---@param AnimationName string 12 | ---@param FrameNum integer 13 | function Sprite:SetOverlayFrame(AnimationName, FrameNum) 14 | end 15 | 16 | 17 | function Sprite:Stop() 18 | end 19 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/MusicManager.lua: -------------------------------------------------------------------------------- 1 | function MusicManager:GetCurrentPitch() 2 | end 3 | 4 | ---Plays a jingle. 5 | ---@param musicId Music 6 | ---@param duration integer 7 | function MusicManager:PlayJingle(musicId, duration) 8 | end 9 | 10 | ---@param pitch number 11 | function MusicManager:SetCurrentPitch(pitch) 12 | end 13 | 14 | ---Stops the currently playing jingle. 15 | function MusicManager:StopJingle() 16 | end 17 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/MainMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class MainMenu 2 | _G.MainMenu = {} 3 | 4 | ---@return Sprite 5 | function MainMenu.GetContinueWidgetSprite() 6 | end 7 | 8 | ---@return Sprite 9 | function MainMenu.GetGameMenuSprite() 10 | end 11 | 12 | ---@return integer 13 | function MainMenu.GetSelectedElement() 14 | end 15 | 16 | ---@param elementNumber integer 17 | function MainMenu.SetSelectedElement(elementNumber) 18 | end -------------------------------------------------------------------------------- /src/docs/vanilla/EntityRef.lua: -------------------------------------------------------------------------------- 1 | ---@class EntityRef 2 | ---@field Entity Entity 3 | ---@field IsCharmed boolean 4 | ---@field IsFriendly boolean 5 | ---@field Position Vector 6 | ---@field SpawnerType integer @EntityType 7 | ---@field SpawnerVariant integer 8 | ---@field Type integer @EntityType 9 | ---@field Variant integer 10 | 11 | ---@param Entity Entity | nil 12 | ---@return EntityRef 13 | function EntityRef(Entity) 14 | 15 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/NullFrame.lua: -------------------------------------------------------------------------------- 1 | ---@class NullFrame 2 | local NullFrame = {} 3 | 4 | ---@return Color 5 | function NullFrame:GetColor() 6 | end 7 | 8 | ---@return Vector 9 | function NullFrame:GetPos() 10 | end 11 | 12 | ---@return number 13 | function NullFrame:GetRotation() 14 | end 15 | 16 | ---@return Vector 17 | function NullFrame:GetScale() 18 | end 19 | 20 | ---@return boolean 21 | function NullFrame:IsVisible() 22 | end 23 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/GridEntitiesSaveStateVector.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntitiesSaveStateVector 2 | local GridEntitiesSaveStateVector = {} 3 | 4 | ---TODO: Document me! 5 | ---@param index integer 6 | ---@return GridEntityDesc 7 | function GridEntitiesSaveStateVector:Get(index) 8 | end 9 | 10 | ---TODO: Document me! 11 | ---@param type GridEntityType 12 | ---@return GridEntityDesc 13 | function GridEntitiesSaveStateVector:GetByType(type) 14 | end 15 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/OptionsMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class OptionsMenu 2 | _G.OptionsMenu = {} 3 | 4 | ---@return Sprite 5 | function OptionsMenu.GetGammaWidgetSprite() 6 | end 7 | 8 | ---@return Sprite 9 | function OptionsMenu.GetOptionsMenuSprite() 10 | end 11 | 12 | ---@return integer 13 | function OptionsMenu.GetSelectedElement() 14 | end 15 | 16 | ---@param elementNumber integer 17 | function OptionsMenu.SetSelectedElement(elementNumber) 18 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/entityconfig/EntityConfigBaby.lua: -------------------------------------------------------------------------------- 1 | ---@class EntityConfigBaby 2 | local EntityConfigBaby = {} 3 | 4 | ---@return Achievement 5 | function EntityConfigBaby:GetAchievementID ( ) 6 | end 7 | 8 | ---@return BabySubType 9 | function EntityConfigBaby:GetID ( ) 10 | end 11 | 12 | ---@return string 13 | function EntityConfigBaby:GetName ( ) 14 | end 15 | 16 | ---@return string 17 | function EntityConfigBaby:GetSpritesheetPath ( ) 18 | end 19 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/ModsMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class ModsMenu 2 | _G.ModsMenu = {} 3 | 4 | ---@return Sprite 5 | function ModsMenu.GetSprite() 6 | end 7 | 8 | ---@return integer 9 | function ModsMenu.GetSelectedElement() 10 | end 11 | 12 | ---@param elementNumber integer 13 | function ModsMenu.SetSelectedElement(elementNumber) 14 | end 15 | 16 | ---Returns true if the mod list was edited. 17 | ---@return boolean 18 | function ModsMenu.WasListEdited() 19 | end -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | // See https://go.microsoft.com/fwlink/?LinkId=733558 2 | // for the documentation about the tasks.json format 3 | { 4 | "version": "2.0.0", 5 | "tasks": [ 6 | { 7 | "type": "npm", 8 | "script": "watch", 9 | "problemMatcher": "$tsc-watch", 10 | "isBackground": true, 11 | "presentation": { 12 | "reveal": "never" 13 | }, 14 | "group": { 15 | "kind": "build", 16 | "isDefault": true 17 | } 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/LootList.lua: -------------------------------------------------------------------------------- 1 | ---@class LootList 2 | local LootList = {} 3 | 4 | ---@return LootList 5 | function _G.LootList() 6 | end 7 | 8 | ---@return LootListEntry[] 9 | function LootList:GetEntries() 10 | end 11 | 12 | ---@param type EntityType 13 | ---@param variant integer 14 | ---@param subtype integer 15 | ---@param seed? integer @default: `Random()` 16 | ---@param rng? RNG @default: `nil` 17 | function LootList:PushEntry(type, variant, subtype, seed, rng) 18 | end -------------------------------------------------------------------------------- /src/docs/repentogon_changes/itemconfig/ItemConfigCard.lua: -------------------------------------------------------------------------------- 1 | ---@class ItemConfigCard 2 | ---@field ModdedCardFront Sprite 3 | ---@field Hidden boolean 4 | ---@field InitialWeight number 5 | ---@field Weight number @Can be modified 6 | 7 | ---@return function 8 | function ItemConfigCard:GetAvailabilityCondition() 9 | end 10 | 11 | ---@param func function 12 | function ItemConfigCard:SetAvailabilityCondition(func) 13 | end 14 | 15 | function ItemConfigCard:ClearAvailabilityCondition() 16 | end 17 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/LootListEntry.lua: -------------------------------------------------------------------------------- 1 | ---@class LootListEntry 2 | local LootListEntry = {} 3 | 4 | ---@return EntityType 5 | function LootListEntry:GetType() 6 | end 7 | 8 | ---@return integer 9 | function LootListEntry:GetVariant() 10 | end 11 | 12 | ---@return integer 13 | function LootListEntry:GetSubType() 14 | end 15 | 16 | ---@return integer 17 | function LootListEntry:GetSeed() 18 | end 19 | 20 | ---May return `nil`. 21 | ---@return RNG? 22 | function LootListEntry:GetRNG() 23 | end -------------------------------------------------------------------------------- /src/docs/vanilla/BitSet128.lua: -------------------------------------------------------------------------------- 1 | ---@class BitSet128 2 | ---@field l integer 3 | ---@field h integer 4 | ---@operator bnot: BitSet128 5 | ---@operator bor(BitSet128): BitSet128 6 | ---@operator band(BitSet128): BitSet128 7 | ---@operator bxor(BitSet128): BitSet128 8 | ---@operator shl(BitSet128): BitSet128 9 | ---@operator shr(BitSet128): BitSet128 10 | 11 | ---@param l? integer @default = `0` 12 | ---@param h? integer @default = `0` 13 | ---@return BitSet128 14 | function _G.BitSet128(l, h) 15 | end 16 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/levelgenerator/LevelGeneratorEntry.lua: -------------------------------------------------------------------------------- 1 | ---@class LevelGeneratorEntry 2 | local LevelGeneratorEntry = {} 3 | 4 | ---TODO: Document me! 5 | ---@param doors integer 6 | function LevelGeneratorEntry:SetAllowedDoors(doors) 7 | end 8 | 9 | ---TODO: Document me! 10 | ---@param colIdx integer 11 | function LevelGeneratorEntry:SetColIdx(colIdx) 12 | end 13 | 14 | ---TODO: Document me! 15 | ---@param lineIndex integer 16 | function LevelGeneratorEntry:SetLineIdx(lineIndex) 17 | end 18 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/CustomChallengeMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class CustomChallengeMenu 2 | _G.CustomChallengeMenu = {} 3 | 4 | ---@return Sprite 5 | function CustomChallengeMenu.GetSprite() 6 | end 7 | 8 | ---Returns the currently selected modded challenge. 9 | ---@return Challenge 10 | function CustomChallengeMenu.GetSelectedChallengeID() 11 | end 12 | 13 | ---Sets the current modded challenge. 14 | ---@param challenge Challenge 15 | function CustomChallengeMenu.SetSelectedChallengeID(challenge) 16 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/RenderSet.lua: -------------------------------------------------------------------------------- 1 | ---@class RenderSet 2 | local RenderSet = {} 3 | 4 | ---TODO: Document me! 5 | ---@param vertexBuffer VertexBuffer 6 | ---@param shader Shader 7 | ---@param nElements integer 8 | ---@param first integer 9 | ---@param second? integer default: `-1` 10 | function RenderSet:SliceSingle(vertexBuffer, shader, nElements, first, second) 11 | end 12 | 13 | ---TODO: Document me! 14 | ---@param filePath string 15 | function RenderSet:SlicePipeline(filePath) 16 | end 17 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/ChallengeMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class ChallengeMenu 2 | _G.ChallengeMenu = {} 3 | 4 | ---Returns the challenge menu paper sprite. 5 | ---@return Sprite 6 | function ChallengeMenu.GetSprite() 7 | end 8 | 9 | ---Returns the id of the currently selected challenge. 10 | ---@return Challenge 11 | function ChallengeMenu.GetSelectedChallengeID() 12 | end 13 | 14 | ---Sets the currently selected challenge. 15 | ---@param challenge Challenge 16 | function ChallengeMenu.SetSelectedChallengeID(challenge) 17 | end 18 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/history/History.lua: -------------------------------------------------------------------------------- 1 | ---@class History 2 | local History = {} 3 | 4 | ---Returns a table of collectible `HistoryItem` objects. 5 | ---@return HistoryItem[] 6 | function History:GetCollectiblesHistory() 7 | end 8 | 9 | ---Removes an item from the item history tracker on the right-hand side of the screen. Note that this does not remove the item effect from Isaac. 10 | ---@param index integer 11 | ---@return boolean `true` if an item was removed, `false` if not. 12 | function History:RemoveHistoryItemByIndex(index) 13 | end -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/RNG.lua: -------------------------------------------------------------------------------- 1 | ---@return RNG 2 | function _G.RNG() 3 | end 4 | 5 | ---Returns an integer between `0` (inclusive) and the max value (exclusive). 6 | --- 7 | ---Note that this will automatically call the `RNG.Next` method before retrieving the random number. Since this mutates the RNG object, you should use this method with care. 8 | ---@param Max integer 9 | ---@return integer 10 | function RNG:RandomInt(Max) 11 | end 12 | 13 | ---@param Seed integer 14 | ---@param ShiftIdx integer 15 | function RNG:SetSeed(Seed, ShiftIdx) 16 | end 17 | 18 | -------------------------------------------------------------------------------- /src/docs/vanilla/Globals.lua: -------------------------------------------------------------------------------- 1 | -- Others (mostly constructors) are defined in their own files 2 | 3 | ---@param object any 4 | ---@return integer 5 | function GetPtrHash(object) 6 | end 7 | 8 | ---@return integer 9 | function Random() 10 | end 11 | 12 | ---@return Vector 13 | function RandomVector() 14 | end 15 | 16 | ---This global is `true` in Repentance DLC and `nil` in Afterbirth+ 17 | _G.REPENTANCE = true ---@type true|nil 18 | 19 | ---This global is `true` in Repentance+ DLC and `nil` in Afterbirth+ and Repentance 20 | _G.REPENTANCE_PLUS = true ---@type true|nil 21 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/EntitiesSaveStateVector.lua: -------------------------------------------------------------------------------- 1 | ---@class EntitiesSaveStateVector 2 | local EntitiesSaveStateVector = {} 3 | 4 | ---TODO: Document me! 5 | ---@param index integer 6 | ---@return EntitiesSaveState 7 | function EntitiesSaveStateVector:Get(index) 8 | end 9 | 10 | ---TODO: Document me! 11 | ---@param type EntityType 12 | ---@param variant? integer @default: `0` 13 | ---@param subType? integer @default: `0` 14 | ---@return EntitiesSaveState 15 | function EntitiesSaveStateVector:GetByType(type, variant, subType) 16 | end 17 | 18 | function EntitiesSaveStateVector:Clear() 19 | end -------------------------------------------------------------------------------- /src/docs/vanilla/gridentity/GridEntityRock.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityRock : GridEntity 2 | ---@field Anim string 3 | ---@field FrameCnt integer 4 | ---@field RubbleAnim string 5 | local GridEntityRock = {} 6 | 7 | ---@return integer 8 | function GridEntityRock:GetBigRockFrame() 9 | end 10 | 11 | ---@return string 12 | function GridEntityRock:GetRubbleAnim() 13 | end 14 | 15 | ---@return Sprite 16 | function GridEntityRock:GetSprite() 17 | end 18 | 19 | ---@param Frame integer 20 | function GridEntityRock:SetBigRockFrame(Frame) 21 | end 22 | 23 | function GridEntityRock:UpdateAnimFrame() 24 | end 25 | 26 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "target": "ES2020", 5 | "outDir": "out", 6 | "lib": [ 7 | "ES2020" 8 | ], 9 | "sourceMap": true, 10 | "rootDir": "src", 11 | "strict": true /* enable all strict type-checking options */ 12 | /* Additional Checks */ 13 | // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ 14 | // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ 15 | // "noUnusedParameters": true, /* Report errors on unused parameters. */ 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "parserOptions": { 5 | "ecmaVersion": 6, 6 | "sourceType": "module" 7 | }, 8 | "plugins": [ 9 | "@typescript-eslint" 10 | ], 11 | "rules": { 12 | "@typescript-eslint/naming-convention": "warn", 13 | "@typescript-eslint/semi": "warn", 14 | "curly": "warn", 15 | "eqeqeq": "warn", 16 | "no-throw-literal": "warn", 17 | "semi": "off" 18 | }, 19 | "ignorePatterns": [ 20 | "out", 21 | "dist", 22 | "**/*.d.ts" 23 | ] 24 | } 25 | -------------------------------------------------------------------------------- /src/docs/vanilla/entity/EntityBomb.lua: -------------------------------------------------------------------------------- 1 | ---@class EntityBomb : Entity 2 | ---@field ExplosionDamage number 3 | ---@field Flags TearFlags 4 | ---@field IsFetus boolean 5 | ---@field RadiusMultiplier number 6 | local EntityBomb = {} 7 | 8 | ---@param Flags TearFlags 9 | function EntityBomb:AddTearFlags(Flags) 10 | end 11 | 12 | ---@param Flags TearFlags 13 | function EntityBomb:ClearTearFlags(Flags) 14 | end 15 | 16 | ---@param Flags TearFlags 17 | ---@return boolean 18 | function EntityBomb:HasTearFlags(Flags) 19 | end 20 | 21 | ---@param Countdown integer 22 | function EntityBomb:SetExplosionCountdown(Countdown) 23 | end 24 | 25 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/itemconfig/ItemConfig.lua: -------------------------------------------------------------------------------- 1 | ---Returns true if the collectible can be rerolled. 2 | ---@param collectible CollectibleType 3 | ---@return boolean 4 | function ItemConfig_Class.CanRerollCollectible(collectible) 5 | end 6 | 7 | ---Returns a table of ItemConfigItem objects with the provided tag. 8 | ---@param tag integer @Uses `ItemConfig.TAG_` enumeration 9 | ---@return ItemConfigItem[] 10 | function ItemConfig_Class:GetTaggedItems(tag) 11 | end 12 | 13 | ---Returns true if the trinket is valid. 14 | ---@param trinketType TrinketType 15 | ---@return boolean 16 | function ItemConfig_Class:IsValidTrinket(trinketType) 17 | end 18 | -------------------------------------------------------------------------------- /src/docs/vanilla/itemconfig/ItemConfigPillEffect.lua: -------------------------------------------------------------------------------- 1 | ---@class ItemConfigPillEffect 2 | ---@field AchievementID integer 3 | ---@field GreedModeAllowed boolean 4 | ---@field ID integer 5 | ---@field Name string 6 | ---@field AnnouncerVoice integer # accepts any value from the SoundEffect.SOUND_* enum 7 | ---@field AnnouncerVoiceSuper integer # accepts any value from the SoundEffect.SOUND_* enum 8 | ---@field AnnouncerDelay integer 9 | ---@field MimicCharge integer 10 | ---@field EffectClass integer 11 | ---@field EffectSubClass integer 12 | local ItemConfigPillEffect = {} 13 | 14 | ---@return boolean 15 | function ItemConfigPillEffect:IsAvailable() 16 | end 17 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/KeyConfigMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class KeyConfigMenu 2 | _G.KeyConfigMenu = {} 3 | 4 | ---@return Sprite 5 | function KeyConfigMenu.GetSprite() 6 | end 7 | 8 | ---@return integer 9 | function KeyConfigMenu.GetColumn() 10 | end 11 | 12 | ---@return integer 13 | function KeyConfigMenu.GetSelectedElement() 14 | end 15 | 16 | ---@param column integer 17 | function KeyConfigMenu.SetSelectedColumn(column) 18 | end 19 | 20 | ---@param elementNumber integer 21 | function KeyConfigMenu.SetSelectedElement(elementNumber) 22 | end 23 | 24 | ---Returns true if the player is editing their key config. 25 | ---@return boolean 26 | function KeyConfigMenu.IsEditActive() 27 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/LRoomAreaDesc.lua: -------------------------------------------------------------------------------- 1 | ---@class LRoomAreaDesc 2 | local LRoomAreaDesc = {} 3 | 4 | ---Returns the top left corner of the high half of the L-room. 5 | ---@return Vector 6 | function LRoomAreaDesc:GetHighTopLeft() 7 | end 8 | 9 | ---Returns the top left corner of the low half of the L-room. 10 | ---@return Vector 11 | function LRoomAreaDesc:GetLowTopLeft() 12 | end 13 | 14 | ---Returns the bottom right corner of the high half of the L-room. 15 | ---@return Vector 16 | function LRoomAreaDesc:GetHighBottomRight() 17 | end 18 | 19 | ---Returns the bottom right corner of the low half of the L-room. 20 | ---@return Vector 21 | function LRoomAreaDesc:GetLowBottomRight() 22 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/AnimationData.lua: -------------------------------------------------------------------------------- 1 | ---@class AnimationData 2 | local AnimationData = {} 3 | 4 | ---Returns a table of all the animation's `AnimationLayer` objects, ordered from bottom to top (NOT ordered by layer ID). 5 | ---@return AnimationLayer[] 6 | function AnimationData:GetAllLayers() end 7 | 8 | ---@param layerId integer 9 | ---@return AnimationLayer 10 | function AnimationData:GetLayer(layerId) end 11 | 12 | ---Returns the amount of frames the animation has. 13 | ---@return integer 14 | function AnimationData:GetLength() end 15 | 16 | ---@return string 17 | function AnimationData:GetName() end 18 | 19 | ---@return boolean 20 | function AnimationData:IsLoopingAnimation() end 21 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/PocketItem.lua: -------------------------------------------------------------------------------- 1 | ---@class PocketItem 2 | local PocketItem = {} 3 | 4 | ---Returns the ID of the PocketItem. Returns `0` if the slot is empty. 5 | --- 6 | ---For cards, returns `Card`. 7 | --- 8 | ---For pills, returns `PillColor`. 9 | --- 10 | ---For items, returns the corresponding `ActiveSlot` (either `ActiveSlot.SLOT_POCKET` or `ActiveSlot.SLOT_POCKET2`). 11 | ---@return Card | PillColor | ActiveSlot 12 | function PocketItem:GetSlot() 13 | end 14 | 15 | ---Returns the `PocketItemType`. 16 | --- 17 | ---This value is unreliable if the slot is currently empty, as the game sometimes does not clear it. 18 | ---@return PocketItemType 19 | function PocketItem:GetType() 20 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/NightmareScene.lua: -------------------------------------------------------------------------------- 1 | ---@class NightmareScene 2 | _G.NightmareScene = {} 3 | 4 | ---@return Sprite 5 | function NightmareScene.GetBackgroundSprite() 6 | end 7 | 8 | ---@return Sprite 9 | function NightmareScene.GetBubbleSprite() 10 | end 11 | 12 | ---@return integer[] 13 | function NightmareScene.GetProgressBarMap() 14 | end 15 | 16 | ---@return Sprite 17 | function NightmareScene.GetProgressBarSprite() 18 | end 19 | 20 | ---Returns true if the Dogma nightmare scene is playing (when interacting with Mom's Bed in Home). 21 | ---@return boolean 22 | function NightmareScene.IsDogmaNightmare() 23 | end 24 | 25 | ---@return Sprite 26 | function NightmareScene.GetPlayerExtraPortraitSprite() 27 | end -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/RoomConfigRoom.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomConfigRoom 2 | ---@field Difficulty Difficulty @const 3 | ---@field Doors integer @const 4 | ---@field Height integer @const 5 | ---@field InitialWeight number @const 6 | ---@field Name string @const 7 | ---@field Shape RoomShape @const 8 | ---@field OriginalVariant integer @const | Not officially documented but functional 9 | ---@field SpawnCount integer @const 10 | ---@field Spawns CppList_RoomConfigSpawn @const 11 | ---@field StageID integer @const 12 | ---@field Subtype integer @const 13 | ---@field Type RoomType @const 14 | ---@field Variant integer @const 15 | ---@field Weight number @const 16 | ---@field Width integer @const 17 | local RoomConfigRoom = {} 18 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/proceduralitems/ProceduralItemManager.lua: -------------------------------------------------------------------------------- 1 | ---@class ProceduralItemManager 2 | _G.ProceduralItemManager = {} 3 | 4 | ---Creates a glitched item based on a given seed. 5 | ---@param seed integer 6 | ---@param unknown integer TODO: Document me 7 | ---@return integer itemId The id of the item 8 | function ProceduralItemManager.CreateProceduralItem(seed, unknown) 9 | end 10 | 11 | ---Returns the glitched item at the given index. 12 | ---@param index integer 13 | ---@return ProceduralItem 14 | function ProceduralItemManager.GetProceduralItem(index) 15 | end 16 | 17 | ---Returns the total amount of procedural items. 18 | ---@return integer 19 | function ProceduralItemManager.GetProceduralItemCount() 20 | end 21 | -------------------------------------------------------------------------------- /src/docs/vanilla/RNG.lua: -------------------------------------------------------------------------------- 1 | ---@class RNG 2 | local RNG = {} 3 | 4 | ---Returns the current seed of the RNG object. 5 | ---@return integer 6 | function RNG:GetSeed() 7 | end 8 | 9 | ---"Iterates" the RNG's seed to the next random number in the psuedo-random sequence. (The internal PRNG algorithm used is Xorshift.) 10 | ---@return integer --Integer returned is the new seed of the RNG object. 11 | function RNG:Next() 12 | end 13 | 14 | ---Returns a float between `0` (inclusive) and `1` (exclusive). 15 | --- 16 | ---Note that this will automatically call the `RNG.Next` method before retrieving the random number. Since this mutates the RNG object, you should use this method with care. 17 | ---@return number 18 | function RNG:RandomFloat() 19 | end 20 | -------------------------------------------------------------------------------- /src/config.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { Constants } from './constants'; 3 | 4 | interface Config { 5 | get workspaceSettings(): boolean; 6 | get repentogonEnabled(): boolean; 7 | } 8 | 9 | class ConfigImpl implements Config { 10 | private _config: vscode.WorkspaceConfiguration; 11 | 12 | constructor() { 13 | this._config = vscode.workspace.getConfiguration(Constants.EXT_ID); 14 | } 15 | 16 | get workspaceSettings(): boolean { 17 | return this._config.get("workspaceSettings") !== undefined; 18 | } 19 | get repentogonEnabled(): boolean { 20 | return this._config.get("repentogonEnabled") === true; 21 | } 22 | } 23 | 24 | export function getConfig() { return new ConfigImpl(); } -------------------------------------------------------------------------------- /src/docs/repentogon_changes/RoomConfigRoom.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomConfigRoom 2 | ---@field Difficulty Difficulty @const 3 | ---@field Doors integer @const 4 | ---@field Height integer @const 5 | ---@field InitialWeight number @const 6 | ---@field Mode integer @const 7 | ---@field Name string @const 8 | ---@field Shape RoomShape @const 9 | ---@field OriginalVariant integer @const | Not officially documented but functional 10 | ---@field SpawnCount integer @const 11 | ---@field Spawns CppList_RoomConfigSpawn @const 12 | ---@field StageID integer @const 13 | ---@field Subtype integer @const 14 | ---@field Type RoomType @const 15 | ---@field Variant integer @const 16 | ---@field Weight number @const 17 | ---@field Width integer @const 18 | local RoomConfigRoom = {} 19 | -------------------------------------------------------------------------------- /src/test/runTest.ts: -------------------------------------------------------------------------------- 1 | import * as path from 'path'; 2 | 3 | import { runTests } from '@vscode/test-electron'; 4 | 5 | async function main() { 6 | try { 7 | // The folder containing the Extension Manifest package.json 8 | // Passed to `--extensionDevelopmentPath` 9 | const extensionDevelopmentPath = path.resolve(__dirname, '../../'); 10 | 11 | // The path to test runner 12 | // Passed to --extensionTestsPath 13 | const extensionTestsPath = path.resolve(__dirname, './suite/index'); 14 | 15 | // Download VS Code, unzip it and run the integration test 16 | await runTests({ extensionDevelopmentPath, extensionTestsPath }); 17 | } catch (err) { 18 | console.error('Failed to run tests'); 19 | process.exit(1); 20 | } 21 | } 22 | 23 | main(); 24 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/BossPoolManager.lua: -------------------------------------------------------------------------------- 1 | ---@class BossPoolManager 2 | _G.BossPoolManager = {} 3 | 4 | ---@param stageID StbType 5 | ---@return BossPool 6 | function BossPoolManager.GetPool(stageID) 7 | end 8 | 9 | ---Returns the removed status of all bosses 10 | --- 11 | ---BossPoolManager.GetRemovedBosses()[BossType.MONSTRO] to check if Monstro is removed. 12 | ---@return {[BossType | integer]: boolean} 13 | function BossPoolManager.GetRemovedBosses() 14 | end 15 | 16 | ---Returns the current's level boss blacklist 17 | --- 18 | ---BossPoolManager.GetRemovedSpecialBosses()[BossType.MONSTRO] to check if Monstro has been blacklisted. 19 | ---@return {[BossType | integer]: boolean} 20 | function BossPoolManager.GetRemovedSpecialBosses() 21 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/PauseMenu.lua: -------------------------------------------------------------------------------- 1 | ---**NOTE**: In upcoming release of REPENTOGON v1.0.6 2 | _G.PauseMenu = {} 3 | 4 | ---@return Sprite 5 | function PauseMenu.GetPauseMenuSprite() 6 | end 7 | 8 | ---@return Sprite 9 | function PauseMenu.GetMyStuffSprite() 10 | end 11 | 12 | ---@return Sprite 13 | function PauseMenu.GetCompletionMarksSprite() 14 | end 15 | 16 | ---@return Sprite 17 | function PauseMenu.GetStatsSprite() 18 | end 19 | 20 | ---@return PauseMenuStates 21 | function PauseMenu.GetState() 22 | end 23 | 24 | ---@param pauseMenuState PauseMenuStates 25 | function PauseMenu.SetState(pauseMenuState) 26 | end 27 | 28 | function PauseMenu.GetSelectedElement() 29 | end 30 | 31 | ---@param elementId integer 32 | function PauseMenu.SetSelectedElement(elementId) 33 | end -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/entity/EntityNPC.lua: -------------------------------------------------------------------------------- 1 | ---@param NumProjectiles integer 2 | ---@param TargetPos Vector 3 | ---@param TrajectoryModifier number 4 | ---@param Params ProjectileParams 5 | ---@return EntityProjectile 6 | function EntityNPC_Local:FireBossProjectiles(NumProjectiles, TargetPos, TrajectoryModifier, Params) 7 | end 8 | 9 | ---@param Pos Vector 10 | ---@param Velocity Vector 11 | ---@param Mode integer @ProjectilesMode 12 | ---@param Params ProjectileParams 13 | function EntityNPC_Local:FireProjectiles(Pos, Velocity, Mode, Params) 14 | end 15 | 16 | ---@param ID SoundEffect 17 | ---@param Volume number 18 | ---@param FrameDelay integer 19 | ---@param Loop boolean 20 | ---@param Pitch number 21 | function EntityNPC_Local:PlaySound(ID, Volume, FrameDelay, Loop, Pitch) 22 | end 23 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/CcpContainer.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomConfigSet : CppList 2 | local RoomConfigSet = {} 3 | 4 | ---@param idx integer 5 | ---@return RoomConfigRoom 6 | function RoomConfigSet:Get(idx) 7 | end 8 | 9 | ---Adds the provided Lua Rooms to the RoomConfigSet. For details on how to generate Lua Rooms, refer to the [Custom StageAPI Github page](https://github.com/Meowlala/BOIStageAPI15/tree/master). 10 | --- 11 | ---The function returns a table containing the placed RoomConfigRoom objects, in the same order as the input `Rooms` table. If a room at a given index could not be converted into a valid RoomConfigRoom, the corresponding entry in the returned table will be nil instead. 12 | ---@param rooms table 13 | ---@return RoomConfigRoom[] 14 | function RoomConfigSet:AddRooms(rooms) 15 | end -------------------------------------------------------------------------------- /src/docs/vanilla/itemconfig/ItemConfigCard.lua: -------------------------------------------------------------------------------- 1 | ---@class ItemConfigCard 2 | ---@field AchievementID integer 3 | ---@field Description string 4 | ---@field GreedModeAllowed boolean 5 | ---@field HudAnim string 6 | ---@field ID integer 7 | ---@field Name string 8 | ---@field PickupSubtype integer 9 | ---@field CardType integer @Accepts any value from the ItemConfig.CARDTYPE_* enum 10 | ---@field AnnouncerVoice integer @Accepts any value from the SoundEffect.SOUND_* enum 11 | ---@field AnnouncerDelay integer 12 | ---@field MimicCharge integer 13 | local ItemConfigCard = {} 14 | 15 | ---@return boolean 16 | function ItemConfigCard:IsCard() 17 | end 18 | 19 | ---@return boolean 20 | function ItemConfigCard:IsRune() 21 | end 22 | 23 | ---@return boolean 24 | function ItemConfigCard:IsAvailable() 25 | end 26 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/ItemOverlay.lua: -------------------------------------------------------------------------------- 1 | ---@class ItemOverlay 2 | _G.ItemOverlay = {} 3 | 4 | ---Returns the overlay's delay. 5 | ---@return integer 6 | function ItemOverlay.GetDelay() 7 | end 8 | 9 | ---Returns the Mega Mush player sprite. 10 | ---@return Sprite 11 | function ItemOverlay.GetMegaMushPlayerSprite() 12 | end 13 | 14 | 15 | ---@return Giantbook 16 | function ItemOverlay.GetOverlayID() 17 | end 18 | 19 | ---Returns the player. 20 | ---@return EntityPlayer 21 | function ItemOverlay.GetPlayer() 22 | end 23 | 24 | ---Returns the sprite. 25 | ---@return Sprite 26 | function ItemOverlay.GetSprite() 27 | end 28 | 29 | ---Shows the overlay. 30 | ---@param giantbookId Giantbook 31 | ---@param delay? integer @default: `3` 32 | ---@param player? EntityPlayer @default: `nil` 33 | function ItemOverlay.Show(giantbookId, delay, player) 34 | end 35 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/history/HistoryItem.lua: -------------------------------------------------------------------------------- 1 | ---@class HistoryItem 2 | local HistoryItem = {} 3 | 4 | ---Returns the CollectibleType tied to the history item. 5 | ---@return CollectibleType 6 | function HistoryItem:GetItemID() 7 | end 8 | 9 | ---Returns the ItemPool tied to the history item. 10 | ---@return ItemPoolType 11 | function HistoryItem:GetItemPoolType() 12 | end 13 | 14 | ---Returns the LevelStage tied to the history item. 15 | ---@return LevelStage 16 | function HistoryItem:GetLevelStage() 17 | end 18 | 19 | ---Returns the RoomType tied to the history item. 20 | ---@return RoomType 21 | function HistoryItem:GetRoomType() 22 | end 23 | 24 | ---Returns the time the history item was added. 25 | ---@return integer 26 | function HistoryItem:GetTime() 27 | end 28 | 29 | ---@return boolean 30 | function HistoryItem:IsTrinket() 31 | end 32 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/Transformer.lua: -------------------------------------------------------------------------------- 1 | ---@class Transformer 2 | local Transformer = {} 3 | 4 | ---TODO: Document me! 5 | function Transformer:Apply() 6 | end 7 | 8 | ---TODO: Document me! 9 | ---@return boolean 10 | function Transformer:IsValid() 11 | end 12 | 13 | ---TODO: Document me! 14 | ---@param image Image 15 | ---@param source SourceQuad 16 | ---@param dest DestinationQuad 17 | ---@param modifier Color 18 | function Transformer:Render(image, source, dest, modifier) 19 | end 20 | 21 | ---TODO: Document me! 22 | ---@param image Image 23 | ---@param source SourceQuad 24 | ---@param dest DestinationQuad 25 | ---@param modifier1 Color 26 | ---@param modifier2 Color 27 | ---@param modifier3 Color 28 | ---@param modifier4 Color 29 | function Transformer:RenderEx(image, source, dest, modifier1, modifier2, modifier3, modifier4) 30 | end 31 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/CollectionMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class CollectionMenu 2 | _G.CollectionMenu = {} 3 | 4 | ---Returns the collection menu sprite (Paper sprite and all other decoration). 5 | ---@return Sprite 6 | function CollectionMenu.GetCollectionMenuSprite() 7 | end 8 | 9 | ---Returns the sprite of the selectable elements that shows the "DeathScreen" item sprites. 10 | ---@return Sprite 11 | function CollectionMenu.GetDeathScreenSprite() 12 | end 13 | 14 | ---@return integer 15 | function CollectionMenu.GetSelectedPage() 16 | end 17 | 18 | ---@return integer 19 | function CollectionMenu.GetSelectedElement() 20 | end 21 | 22 | ---Sets the current page. 23 | ---@param page integer 24 | function CollectionMenu.SetSelectedPage(page) 25 | end 26 | 27 | ---@param elementNumber integer 28 | function CollectionMenu.SetSelectedElement(elementNumber) 29 | end -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | // Place your settings in this file to overwrite default and user settings. 2 | { 3 | "files.exclude": { 4 | "out": false // set this to true to hide the "out" folder with the compiled JS files 5 | }, 6 | "search.exclude": { 7 | "out": true // set this to false to include "out" folder in search results 8 | }, 9 | // Turn off tsc task auto detection since we have the necessary tasks as npm scripts 10 | "typescript.tsc.autoDetect": "off", 11 | "Lua.diagnostics.globals": [], 12 | "files.associations": { 13 | "*.anm2": "xml" 14 | }, 15 | "Lua.runtime.unicodeName": true, 16 | "Lua.workspace.ignoreDir": [ 17 | ".vscode", 18 | "src/docs", 19 | // "repentanceapi.lua", 20 | ], 21 | "Lua.diagnostics.disable": [ 22 | "missing-return" 23 | ] 24 | } -------------------------------------------------------------------------------- /src/docs/repentogon_new/BossPool.lua: -------------------------------------------------------------------------------- 1 | ---@class BossPoolEntry 2 | ---@field bossID BossType | integer 3 | ---@field weight number 4 | ---@field weightAlt number 5 | ---@field achievementID Achievement | integer 6 | 7 | ---@class BossPool 8 | local BossPool = {} 9 | 10 | ---Return the start of the double trouble room set. 11 | ---Any boss room that has a variant in the [doubleTroubleRoomID, doubleTroubleRoomID + 50) range is considered a double trouble room for the stage. 12 | ---@return integer 13 | function BossPool:GetDoubleTroubleRoomID() 14 | end 15 | 16 | ---@return BossPoolEntry[] 17 | function BossPool:GetEntries() 18 | end 19 | 20 | ---@return string 21 | function BossPool:GetName() 22 | end 23 | 24 | ---@return RNG 25 | function BossPool:GetRNG() 26 | end 27 | 28 | ---@return number 29 | function BossPool:GetWeight() 30 | end -------------------------------------------------------------------------------- /src/docs/vanilla/KColor.lua: -------------------------------------------------------------------------------- 1 | ---@class KColor 2 | ---@field Alpha number 3 | ---@field Blue number 4 | ---@field Green number 5 | ---@field Red number 6 | local KColor = {} 7 | 8 | ---@param red number 9 | ---@param green number 10 | ---@param blue number 11 | ---@param alpha number 12 | ---@return KColor 13 | function _G.KColor(red, green, blue, alpha) 14 | end 15 | 16 | _G.KColor = { 17 | ---@type KColor 18 | Black = KColor(0,0,0,1), 19 | ---@type KColor 20 | Red = KColor(1,0,0,1), 21 | ---@type KColor 22 | Green = KColor(0,1,0,1), 23 | ---@type KColor 24 | Blue = KColor(0,0,1,1), 25 | ---@type KColor 26 | Yellow = KColor(1,1,0,1), 27 | ---@type KColor 28 | Cyan = KColor(0,1,1,1), 29 | ---@type KColor 30 | Magenta = KColor(1,0,1,1), 31 | ---@type KColor 32 | White = KColor(1,1,1,1), 33 | ---@type KColor 34 | Transparent = KColor(0,0,0,0), 35 | } -------------------------------------------------------------------------------- /src/docs/repentogon_new/hud/PlayerHUD.lua: -------------------------------------------------------------------------------- 1 | ---@class PlayerHUD 2 | local PlayerHUD = {} 3 | 4 | ---Returns the PlayerHUDHeart from the provided index. 5 | ---@param index integer 6 | ---@return PlayerHUDHeart? 7 | function PlayerHUD:GetHeartByIndex(index) 8 | end 9 | 10 | ---Returns a table of `PlayerHUDHeart` objects. 11 | ---@return PlayerHUDHeart[] 12 | function PlayerHUD:GetHearts() 13 | end 14 | 15 | ---@return HUD 16 | function PlayerHUD:GetHUD() 17 | end 18 | 19 | ---@return EntityPlayer 20 | function PlayerHUD:GetPlayer() 21 | end 22 | 23 | ---@param slot ActiveSlot 24 | ---@param position Vector 25 | ---@param alpha? number @default: `1`. 26 | ---@param scale? number @default: `1`. 27 | function PlayerHUD:RenderActiveItem(slot, position, alpha, scale) 28 | end 29 | 30 | ---@return integer 31 | function PlayerHUD:GetIndex() 32 | end 33 | 34 | ---@return PlayerHUDLayout 35 | function PlayerHUD:GetLayout() 36 | end -------------------------------------------------------------------------------- /src/docs/vanilla/RoomDescriptor.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomDescriptor 2 | ---@field AwardSeed integer 3 | ---@field ChallengeDone boolean 4 | ---@field Clear boolean 5 | ---@field ClearCount integer 6 | ---@field Data RoomConfigRoom 7 | ---@field DecorationSeed integer 8 | ---@field DeliriumDistance integer 9 | ---@field DisplayFlags integer 10 | ---@field Flags integer 11 | ---@field GridIndex integer 12 | ---@field HasWater boolean 13 | ---@field ListIndex integer 14 | ---@field NoReward boolean 15 | ---@field OverrideData RoomConfigRoom 16 | ---@field PitsCount integer 17 | ---@field PoopCount integer 18 | ---@field PressurePlatesTriggered boolean 19 | ---@field SacrificeDone boolean 20 | ---@field SafeGridIndex integer 21 | ---@field ShopItemDiscountIdx integer 22 | ---@field ShopItemIdx integer 23 | ---@field SpawnSeed integer 24 | ---@field SurpriseMiniboss boolean 25 | ---@field VisitedCount integer 26 | local RoomDescriptor_Class = {} -------------------------------------------------------------------------------- /src/test/suite/index.ts: -------------------------------------------------------------------------------- 1 | import * as path from 'path'; 2 | import * as Mocha from 'mocha'; 3 | import * as glob from 'glob'; 4 | 5 | export function run(): Promise { 6 | // Create the mocha test 7 | const mocha = new Mocha({ 8 | ui: 'tdd', 9 | color: true 10 | }); 11 | 12 | const testsRoot = path.resolve(__dirname, '..'); 13 | 14 | return new Promise((c, e) => { 15 | glob('**/**.test.js', { cwd: testsRoot }, (err, files) => { 16 | if (err) { 17 | return e(err); 18 | } 19 | 20 | // Add files to the test suite 21 | files.forEach(f => mocha.addFile(path.resolve(testsRoot, f))); 22 | 23 | try { 24 | // Run the mocha test 25 | mocha.run(failures => { 26 | if (failures > 0) { 27 | e(new Error(`${failures} tests failed.`)); 28 | } else { 29 | c(); 30 | } 31 | }); 32 | } catch (err) { 33 | console.error(err); 34 | e(err); 35 | } 36 | }); 37 | }); 38 | } 39 | -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/ProjectileParams.lua: -------------------------------------------------------------------------------- 1 | ---@class ProjectileParams 2 | ---@field Acceleration number 3 | ---@field BulletFlags integer 4 | ---@field ChangeFlags integer 5 | ---@field ChangeTimeout integer 6 | ---@field ChangeVelocity number 7 | ---@field CircleAngle number 8 | ---@field Color Color 9 | ---@field CurvingStrength number 10 | ---@field Damage number **Warning:** Enemies that are champions will cap the damage at 2. 11 | ---@field DepthOffset number 12 | ---@field DotProductLimit number 13 | ---@field FallingAccelModifier number 14 | ---@field FallingSpeedModifier number 15 | ---@field FireDirectionLimit Vector 16 | ---@field GridCollision boolean 17 | ---@field HeightModifier number 18 | ---@field HomingStrength number 19 | ---@field PositionOffset Vector 20 | ---@field Scale number 21 | ---@field Spread number 22 | ---@field TargetPosition Vector 23 | ---@field Variant integer 24 | ---@field VelocityMulti number 25 | ---@field WiggleFrameOffset integer 26 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/ProjectileParams.lua: -------------------------------------------------------------------------------- 1 | ---@class ProjectileParams 2 | ---@field Acceleration number 3 | ---@field BulletFlags integer 4 | ---@field ChangeFlags integer 5 | ---@field ChangeTimeout integer 6 | ---@field ChangeVelocity number 7 | ---@field CircleAngle number 8 | ---@field Color Color 9 | ---@field CurvingStrength number 10 | ---@field Damage number **WARNING:** Enemies that are champions will cap the damage at `2.0`. 11 | ---@field DepthOffset number 12 | ---@field DotProductLimit number 13 | ---@field FallingAccelModifier number 14 | ---@field FallingSpeedModifier number 15 | ---@field FireDirectionLimit Vector 16 | ---@field GridCollision boolean 17 | ---@field HeightModifier number 18 | ---@field HomingStrength number 19 | ---@field PositionOffset Vector 20 | ---@field Scale number 21 | ---@field Spread number 22 | ---@field TargetPosition Vector 23 | ---@field Variant integer 24 | ---@field VelocityMulti number 25 | ---@field WiggleFrameOffset integer -------------------------------------------------------------------------------- /src/docs/repentogon_changes/Options.lua: -------------------------------------------------------------------------------- 1 | ---@class Options 2 | ---@field BetterVoidGeneration boolean 3 | ---@field HushPanicStateFix boolean 4 | ---@field PreventModUpdates boolean 5 | ---@field QuickRoomClear boolean 6 | ---@field AimLockEnabled boolean 7 | ---@field AscentVoiceOver boolean 8 | ---@field BossHPOnBottom boolean 9 | ---@field Brightness number 10 | ---@field Contrast number 11 | ---@field Exposure number 12 | ---@field OnlineChatEnabled boolean (read-only) 13 | ---@field OnlineChatFilterEnabled boolean (read-only) 14 | ---@field OnlineColorSet integer (read-only) 15 | ---@field OnlineHUD integer (read-only) 16 | ---@field OnlineInputDelay integer (read-only) 17 | ---@field OnlinePlayerOpacity integer (read-only) 18 | ---@field OnlinePlayerVolume integer (read-only) 19 | ---@field StreamerMode boolean (read-only) 20 | ---@field TouchMode integer 21 | ---@field WindowHeight integer 22 | ---@field WindowPosX integer 23 | ---@field WindowPosY integer 24 | ---@field WindowWidth integer -------------------------------------------------------------------------------- /src/docs/repentogon_new/LRoomTileDesc.lua: -------------------------------------------------------------------------------- 1 | ---@class LRoomTileDesc 2 | local LRoomTileDesc = {} 3 | 4 | ---Returns the grid coordinates of the high half's top left corner. 5 | ---@return {[1]: integer, [2]: integer} 6 | function LRoomTileDesc:GetHighTopLeft() 7 | end 8 | 9 | ---Returns the grid coordinates of the low half's top left corner. 10 | ---@return {[1]: integer, [2]: integer} 11 | function LRoomTileDesc:GetLowTopLeft() 12 | end 13 | 14 | ---Returns the grid coordinates of the high half's bottom right corner. 15 | ---@return {[1]: integer, [2]: integer} 16 | function LRoomTileDesc:GetHighBottomRight() 17 | end 18 | 19 | ---Returns the grid coordinates of the low half's bottom right corner. 20 | ---@return {[1]: integer, [2]: integer} 21 | function LRoomTileDesc:GetLowBottomRight() 22 | end 23 | 24 | ---Returns the grid coordinates of a random tile in this L 25 | ---@param seed integer 26 | ---@return {[1]: integer, [2]: integer} 27 | function LRoomTileDesc:GetRandomTile(seed) 28 | end -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | on: 2 | push: 3 | tags: 4 | - "[0-9]+.*" 5 | 6 | name: Deploy Extension 7 | jobs: 8 | deploy: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v2 12 | with: 13 | submodules: true 14 | - uses: actions/setup-node@v1 15 | with: 16 | node-version: 16 17 | - run: npm ci 18 | - run: npm run esbuild-base -- --minify 19 | - run: npm run buildemmy 20 | - name: Publish to Open VSX Registry 21 | uses: HaaLeo/publish-vscode-extension@v1 22 | with: 23 | pat: ${{ secrets.OPEN_VSX_TOKEN }} 24 | - name: Publish to Visual Studio Marketplace 25 | uses: HaaLeo/publish-vscode-extension@v1 26 | with: 27 | pat: ${{ secrets.VS_MARKETPLACE_TOKEN }} 28 | registryUrl: https://marketplace.visualstudio.com -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/SourceQuad.lua: -------------------------------------------------------------------------------- 1 | ---@class SourceQuad 2 | local SourceQuad = {} 3 | 4 | ---Constructs a new destination quad object. 5 | ---@param topLeft Vector 6 | ---@param topRight Vector 7 | ---@param bottomLeft Vector 8 | ---@param bottomRight Vector 9 | function _G.SourceQuad(topLeft, topRight, bottomLeft, bottomRight) 10 | end 11 | 12 | ---@return Vector 13 | function SourceQuad:GetBottomLeft() 14 | end 15 | 16 | ---@return Vector 17 | function SourceQuad:GetBottomRight() 18 | end 19 | 20 | ---@return Vector 21 | function SourceQuad:GetTopLeft() 22 | end 23 | 24 | ---@return Vector 25 | function SourceQuad:GetTopRight() 26 | end 27 | 28 | ---@param vector Vector 29 | function SourceQuad:SetBottomLeft(vector) 30 | end 31 | 32 | ---@param vector Vector 33 | function SourceQuad:SetBottomRight(vector) 34 | end 35 | 36 | ---@param vector Vector 37 | function SourceQuad:SetTopLeft(vector) 38 | end 39 | 40 | ---@param vector Vector 41 | function SourceQuad:SetTopRight(vector) 42 | end 43 | -------------------------------------------------------------------------------- /src/docs/vanilla/Options.lua: -------------------------------------------------------------------------------- 1 | ---@class Options 2 | ---@field AnnouncerVoiceMode integer 3 | ---@field BulletVisibility boolean 4 | ---@field CameraStyle integer 5 | ---@field ChargeBars boolean 6 | ---@field ConsoleFont integer 7 | ---@field DisplayPopups boolean 8 | ---@field DebugConsoleEnabled boolean 9 | ---@field ExtraHUDStyle integer 10 | ---@field FadedConsoleDisplay boolean 11 | ---@field Filter boolean 12 | ---@field FoundHUD boolean 13 | ---@field Fullscreen boolean 14 | ---@field Gamma number 15 | ---@field HUDOffset number 16 | ---@field Language string 17 | ---@field MapOpacity number 18 | ---@field MaxRenderScale integer 19 | ---@field MaxScale integer 20 | ---@field MouseControl boolean 21 | ---@field MusicVolume number 22 | ---@field PauseOnFocusLost boolean 23 | ---@field RumbleEnabled boolean 24 | ---@field SaveCommandHistory boolean 25 | ---@field SFXVolume number 26 | ---@field UseBorderlessFullscreen boolean 27 | ---@field VSync boolean 28 | ---@field JacobEsauControls integer 29 | _G.Options = {} 30 | -------------------------------------------------------------------------------- /src/docs/vanilla/entity/EntityEffect.lua: -------------------------------------------------------------------------------- 1 | ---@class EntityEffect : Entity 2 | ---@field DamageSource integer 3 | ---@field FallingAcceleration number 4 | ---@field FallingSpeed number 5 | ---@field IsFollowing boolean 6 | ---@field LifeSpan integer 7 | ---@field m_Height number 8 | ---@field MaxRadius number 9 | ---@field MinRadius number 10 | ---@field ParentOffset Vector 11 | ---@field Rotation number 12 | ---@field Scale number 13 | ---@field State integer 14 | ---@field Timeout integer 15 | _G.EntityEffect = {} 16 | 17 | ---@param Parent Entity 18 | function EntityEffect:FollowParent(Parent) 19 | end 20 | 21 | ---@param Variant integer 22 | ---@return boolean 23 | function EntityEffect.IsPlayerCreep(Variant) 24 | end 25 | 26 | ---@param DamageSource EntityType 27 | function EntityEffect:SetDamageSource(DamageSource) 28 | end 29 | 30 | ---@param min number 31 | ---@param max number 32 | function EntityEffect:SetRadii(min, max) 33 | end 34 | 35 | ---@param Timeout integer 36 | function EntityEffect:SetTimeout(Timeout) 37 | end 38 | 39 | -------------------------------------------------------------------------------- /src/modifyJson.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import * as fleece from 'golden-fleece'; 3 | 4 | export async function modifyJsoncFile(filePath: string, modifyJson: (obj: any) => any): Promise { 5 | try { 6 | const document = await vscode.workspace.openTextDocument(filePath); 7 | const text = document.getText(); 8 | 9 | const jsonObj = fleece.evaluate(text); 10 | 11 | const modifiedObj = modifyJson(jsonObj); 12 | 13 | const modifiedText = fleece.patch(text, modifiedObj); 14 | 15 | const edit = new vscode.WorkspaceEdit(); 16 | const fullRange = new vscode.Range( 17 | document.positionAt(0), 18 | document.positionAt(text.length) 19 | ); 20 | 21 | edit.replace(document.uri, fullRange, modifiedText); 22 | await vscode.workspace.applyEdit(edit); 23 | await document.save(); 24 | 25 | } catch (error) { 26 | vscode.window.showErrorMessage(`Failed to modify JSONC file: ${error}`); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/AnimationFrame.lua: -------------------------------------------------------------------------------- 1 | ---@class AnimationFrame 2 | local AnimationFrame = {} 3 | 4 | ---@return Color **READONLY** 5 | function AnimationFrame:GetColor() end 6 | 7 | ---@return Vector crop **READONLY** 8 | function AnimationFrame:GetCrop() end 9 | 10 | ---@return number 11 | function AnimationFrame:GetHeight() end 12 | 13 | ---@return Vector **READONLY** 14 | function AnimationFrame:GetPivot() end 15 | 16 | ---@return Vector **READONLY** 17 | function AnimationFrame:GetPos() end 18 | 19 | ---@return number 20 | function AnimationFrame:GetRotation() end 21 | 22 | ---@return Vector **READONLY** 23 | function AnimationFrame:GetScale() end 24 | 25 | ---@return number 26 | function AnimationFrame:GetWidth() end 27 | 28 | ---@return boolean 29 | function AnimationFrame:IsInterpolated() end 30 | 31 | ---@return boolean 32 | function AnimationFrame:IsVisible() end 33 | 34 | ---@return integer 35 | function AnimationFrame:GetStartFrame() end 36 | 37 | ---@return integer 38 | function AnimationFrame:GetEndFrame() end 39 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/hud/PlayerHUDHeart.lua: -------------------------------------------------------------------------------- 1 | ---@class PlayerHUDHeart 2 | local PlayerHUDHeart = {} 3 | 4 | ---TODO: Document me! 5 | ---@return integer 6 | function PlayerHUDHeart:GetFlashType() 7 | end 8 | 9 | ---Returns the name of the heart's animation. 10 | ---@return string 11 | function PlayerHUDHeart:GetHeartAnim() 12 | end 13 | 14 | ---Returns the name of the heart's overlay animation. 15 | ---@return string 16 | function PlayerHUDHeart:GetHeartOverlayAnim() 17 | end 18 | 19 | ---Returns true if the golden heart overlay is visible. 20 | ---@return boolean 21 | function PlayerHUDHeart:IsGoldenHeartOverlayVisible() 22 | end 23 | 24 | ---Returns true if the heart is visible. 25 | ---@return boolean 26 | function PlayerHUDHeart:IsVisible() 27 | end 28 | 29 | ---Returns true if the eternal heart overlay is visible. 30 | ---@return boolean 31 | function PlayerHUDHeart:IsEternalHeartOverlayVisible() 32 | end 33 | 34 | ---Returns true if affected under Tainted Magdeline's fading heart mechanic. 35 | function PlayerHUDHeart:IsFadingHeart() 36 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/Shader.lua: -------------------------------------------------------------------------------- 1 | ---@class Shader 2 | local Shader = {} 3 | 4 | ---TODO: Document me! 5 | ---@param name string 6 | ---@param value GLSLValue 7 | function Shader:BindFloat(name, value) 8 | end 9 | 10 | ---TODO: Document me! 11 | ---@param name string 12 | ---@param value GLSLValue 13 | function Shader:BindVec2(name, value) 14 | end 15 | 16 | ---TODO: Document me! 17 | ---@param name string 18 | ---@param value GLSLValue 19 | function Shader:BindVec4(name, value) 20 | end 21 | 22 | ---TODO: Document me! 23 | ---@param name string 24 | ---@param value GLSLValue 25 | function Shader:BindVec3(name, value) 26 | end 27 | 28 | ---TODO: Document me! 29 | ---@param name string 30 | ---@param value GLSLValue 31 | function Shader:BindMat2(name, value) 32 | end 33 | 34 | ---TODO: Document me! 35 | ---@param name string 36 | ---@param value GLSLValue 37 | function Shader:BindMat3(name, value) 38 | end 39 | 40 | ---TODO: Document me! 41 | ---@param name string 42 | ---@param value GLSLValue 43 | function Shader:BindMat4(name, value) 44 | end -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | // A launch configuration that compiles the extension and then opens it inside a new window 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | { 6 | "version": "0.2.0", 7 | "configurations": [ 8 | { 9 | "name": "Run Extension", 10 | "type": "extensionHost", 11 | "request": "launch", 12 | "args": [ 13 | "--extensionDevelopmentPath=${workspaceFolder}" 14 | ], 15 | "outFiles": [ 16 | "${workspaceFolder}/out/**/*.js" 17 | ], 18 | "preLaunchTask": "${defaultBuildTask}" 19 | }, 20 | { 21 | "name": "Extension Tests", 22 | "type": "extensionHost", 23 | "request": "launch", 24 | "args": [ 25 | "--extensionDevelopmentPath=${workspaceFolder}", 26 | "--extensionTestsPath=${workspaceFolder}/out/test/suite/index" 27 | ], 28 | "outFiles": [ 29 | "${workspaceFolder}/out/test/**/*.js" 30 | ], 31 | "preLaunchTask": "${defaultBuildTask}" 32 | } 33 | ] 34 | } 35 | -------------------------------------------------------------------------------- /src/docs/vanilla/Color.lua: -------------------------------------------------------------------------------- 1 | ---@class Color 2 | ---@field A number 3 | ---@field B number 4 | ---@field BO number 5 | ---@field G number 6 | ---@field GO number 7 | ---@field R number 8 | ---@field RO number 9 | ---@operator mul(Color): Color 10 | local Color = {} 11 | 12 | ---@param m1 Color 13 | ---@param m2 Color 14 | ---@param t number 15 | ---@return Color 16 | function _G.Color.Lerp(m1, m2, t) 17 | end 18 | 19 | function Color:Reset() 20 | end 21 | 22 | ---@param Red number 23 | ---@param Green number 24 | ---@param Blue number 25 | ---@param Amount number 26 | function Color:SetColorize(Red, Green, Blue, Amount) 27 | end 28 | 29 | ---@param RedOffset number 30 | ---@param GreenOffset number 31 | ---@param BlueOffset number 32 | function Color:SetOffset(RedOffset, GreenOffset, BlueOffset) 33 | end 34 | 35 | ---@param RedTint number 36 | ---@param GreenTint number 37 | ---@param BlueTint number 38 | ---@param AlphaTint number 39 | function Color:SetTint(RedTint, GreenTint, BlueTint, AlphaTint) 40 | end 41 | 42 | _G.Color = { 43 | ---@type Color 44 | Default = Color(1,1,1,1) 45 | } -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/DestinationQuad.lua: -------------------------------------------------------------------------------- 1 | ---@class DestinationQuad 2 | local DestinationQuad = {} 3 | 4 | ---Constructs a new destination quad object. 5 | ---@param topLeft Vector 6 | ---@param topRight Vector 7 | ---@param bottomLeft Vector 8 | ---@param bottomRight Vector 9 | ---@return DestinationQuad 10 | function _G.DestinationQuad(topLeft, topRight, bottomLeft, bottomRight) 11 | end 12 | 13 | ---@return Vector 14 | function DestinationQuad:GetBottomLeft() 15 | end 16 | 17 | ---@return Vector 18 | function DestinationQuad:GetBottomRight() 19 | end 20 | 21 | ---@return Vector 22 | function DestinationQuad:GetTopLeft() 23 | end 24 | 25 | ---@return Vector 26 | function DestinationQuad:GetTopRight() 27 | end 28 | 29 | ---@param vector Vector 30 | function DestinationQuad:SetBottomLeft(vector) 31 | end 32 | 33 | ---@param vector Vector 34 | function DestinationQuad:SetBottomRight(vector) 35 | end 36 | 37 | ---@param vector Vector 38 | function DestinationQuad:SetTopLeft(vector) 39 | end 40 | 41 | ---@param vector Vector 42 | function DestinationQuad:SetTopRight(vector) 43 | end 44 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/entityconfig/EntityConfig.lua: -------------------------------------------------------------------------------- 1 | ---@class EntityConfig 2 | _G.EntityConfig = {} 3 | 4 | ---Returns the config of the provided entity. 5 | ---@param type EntityType 6 | ---@param variant? integer @default: `-1` 7 | ---@param subType? integer @default: `-1` 8 | ---@return EntityConfigEntity? 9 | function EntityConfig.GetEntity(type, variant, subType) 10 | end 11 | 12 | ---Returns the highest PlayerType currently assigned to a valid character. 13 | ---@return PlayerType 14 | function EntityConfig.GetMaxPlayerType() 15 | end 16 | 17 | ---Returns the config associated with the character of the specified PlayerType. 18 | ---@param playerType PlayerType 19 | ---@return EntityConfigPlayer? 20 | function EntityConfig.GetPlayer(playerType) 21 | end 22 | 23 | ---Returns nil if there is no co-op baby with the given ID. 24 | ---@param type BabySubType 25 | ---@return EntityConfigBaby? 26 | function EntityConfig.GetBaby(type) 27 | end 28 | 29 | ---Returns the highest ID (corresponds to SubType) currently assigned to a valid co-op baby. 30 | ---@return integer 31 | function EntityConfig.GetMaxBabyID() 32 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/CostumeSpriteDesc.lua: -------------------------------------------------------------------------------- 1 | ---@class CostumeSpriteDesc 2 | local CostumeSpriteDesc = {} 3 | 4 | ---@return boolean 5 | function CostumeSpriteDesc:CanOverwriteColor() end 6 | 7 | ---@return SkinColor 8 | function CostumeSpriteDesc:GetBodyColor() end 9 | 10 | ---@return SkinColor 11 | function CostumeSpriteDesc:GetHeadColor() end 12 | 13 | ---@return ItemConfigItem 14 | function CostumeSpriteDesc:GetItemConfig() end 15 | 16 | ---@return boolean 17 | function CostumeSpriteDesc:GetPlayerType() end 18 | 19 | ---@return boolean 20 | function CostumeSpriteDesc:GetPriority() end 21 | 22 | ---Returns sprite of associated to the costume. 23 | ---@return Sprite 24 | function CostumeSpriteDesc:GetSprite() end 25 | 26 | ---@return boolean 27 | function CostumeSpriteDesc:HasOverlay() end 28 | 29 | ---@return boolean 30 | function CostumeSpriteDesc:HasSkinAlt() end 31 | 32 | ---@return boolean 33 | function CostumeSpriteDesc:IsFlying() end 34 | 35 | ---@return boolean 36 | function CostumeSpriteDesc:IsItemAnimPlaying() end 37 | 38 | ---@return boolean 39 | function CostumeSpriteDesc:IsItemStateOnly() end 40 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/levelgenerator/LevelGenerator.lua: -------------------------------------------------------------------------------- 1 | ---@class LevelGenerator 2 | local LevelGenerator = {} 3 | 4 | ---Returns a table of all of the `LevelGeneratorRoom` objects. 5 | ---@return LevelGeneratorRoom[] 6 | function LevelGenerator:GetAllRooms() 7 | end 8 | 9 | ---Returns a table of all of the `LevelGeneratorRoom` objects that are deadends. 10 | ---@return LevelGeneratorRoom[] 11 | function LevelGenerator:GetDeadEnds() 12 | end 13 | 14 | ---Returns a table of all of the `LevelGeneratorRoom` objects that are not deadends. 15 | ---@return LevelGeneratorRoom[] 16 | function LevelGenerator:GetNonDeadEnds() 17 | end 18 | 19 | ---Places a LevelGeneratorRoom object onto the level-grid. 20 | ---@param column integer The column. It must be between `0` and `12`. 21 | ---@param row integer The row. It must be between `0` and `12`. 22 | ---@param shape RoomShape The shape of the room. 23 | ---@param room LevelGeneratorRoom The level generator room. 24 | ---@return integer? generationIndex If the room was placed, the generation index is returned. Otherwise it is `nil`. 25 | function LevelGenerator:PlaceRoom(column, row, shape, room) 26 | end 27 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Manticore Games, Inc 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /src/docs/vanilla/Input.lua: -------------------------------------------------------------------------------- 1 | ---@class Input 2 | _G.Input = {} 3 | 4 | ---@param action ButtonAction 5 | ---@param controllerId integer 6 | ---@return number 7 | function Input.GetActionValue(action, controllerId) 8 | end 9 | 10 | ---@param button Keyboard 11 | ---@param controllerId integer 12 | ---@return number 13 | function Input.GetButtonValue(button, controllerId) 14 | end 15 | 16 | ---@param gameCoords boolean 17 | ---@return Vector 18 | function Input.GetMousePosition(gameCoords) 19 | end 20 | 21 | ---@param action ButtonAction 22 | ---@param controllerId integer 23 | ---@return boolean 24 | function Input.IsActionPressed(action, controllerId) 25 | end 26 | 27 | ---@param action ButtonAction 28 | ---@param controllerId integer 29 | ---@return boolean 30 | function Input.IsActionTriggered(action, controllerId) 31 | end 32 | 33 | ---@param button Keyboard 34 | ---@param controllerId integer 35 | ---@return boolean 36 | function Input.IsButtonPressed(button, controllerId) 37 | end 38 | 39 | ---@param button Keyboard 40 | ---@param controllerId integer 41 | ---@return boolean 42 | function Input.IsButtonTriggered(button, controllerId) 43 | end 44 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/Camera.lua: -------------------------------------------------------------------------------- 1 | ---@class Camera 2 | local Camera = {} 3 | 4 | ---The camera will attempt to focus on the specified position. Currently, this must be called every frame or else the game will stop trying to focus on it. 5 | ---@param pos Vector 6 | function Camera:SetFocusPosition(pos) 7 | end 8 | 9 | ---Immediately moves the camera to the specified position. 10 | --- 11 | ---**BUG:** This function currently does not work with Active Cam enabled as the camera snaps back to its original position in each update. 12 | ---@param pos Vector 13 | function Camera:SnapToPosition(pos) 14 | end 15 | 16 | ---Returns if the provided in-world position is visible to the camera. 17 | ---@param pos Vector 18 | ---@return boolean 19 | function Camera:IsPosVisible(pos) 20 | end 21 | 22 | function Camera:Update() 23 | end 24 | 25 | ---Will set whether or not camera clamping is enabled. If true, will have it follow the player, acting like it does in large rooms 26 | ---@param clamped boolean 27 | function Camera:SetClampEnabled(clamped) 28 | end 29 | 30 | ---Returns whether or not camera clamping is enabled. 31 | ---@return boolean 32 | function Camera:IsClampEnabled() 33 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/ColorModifier.lua: -------------------------------------------------------------------------------- 1 | ---@class ColorModifier 2 | ---@field A number 3 | ---@field B number 4 | ---@field Brightness number 5 | ---@field Contrast number 6 | ---@field G number 7 | ---@field R number 8 | local ColorModifier = {} 9 | 10 | ---@param r? number @default: `1` 11 | ---@param g? number @default: `1` 12 | ---@param b? number @default: `1` 13 | ---@param a? number @default: `0` 14 | ---@param brightness? number @default: `0` 15 | ---@param contrast? number @default: `1` 16 | ---@return ColorModifier 17 | function _G.ColorModifier(r, g, b, a, brightness, contrast) 18 | end 19 | 20 | ---@param Right ColorModifier 21 | ---@return ColorModifier 22 | function ColorModifier:__add(Right) 23 | end 24 | 25 | ---@param Right ColorModifier 26 | ---@return ColorModifier 27 | function ColorModifier:__div(Right) 28 | end 29 | 30 | ---@param Right ColorModifier 31 | ---@return ColorModifier 32 | function ColorModifier:__eq(Right) 33 | end 34 | 35 | ---@param Right ColorModifier 36 | ---@return ColorModifier 37 | function ColorModifier:__mul(Right) 38 | end 39 | 40 | ---@param Right ColorModifier 41 | ---@return ColorModifier 42 | function ColorModifier:__sub(Right) 43 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/SaveMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class SaveMenu 2 | _G.SaveMenu = {} 3 | 4 | ---@return Sprite 5 | function SaveMenu.GetSaveSelectionMenuSprite() 6 | end 7 | 8 | ---@return Sprite 9 | function SaveMenu.GetDeleteButtonSprite() 10 | end 11 | 12 | ---@return Sprite 13 | function SaveMenu.GetDeletePopupSprite() 14 | end 15 | 16 | ---@return Sprite 17 | function SaveMenu.GetSave1DrawingSprite() 18 | end 19 | 20 | ---@return Sprite 21 | function SaveMenu.GetSave2DrawingSprite() 22 | end 23 | 24 | ---@return Sprite 25 | function SaveMenu.GetSave3DrawingSprite() 26 | end 27 | 28 | ---@return integer 29 | function SaveMenu.GetSelectedElement() 30 | end 31 | 32 | ---Returns true if the save file deletion mode is active. 33 | ---@return boolean 34 | function SaveMenu.IsDeleteActive() 35 | end 36 | 37 | ---Sets the current element. 38 | ---@param elementNumber integer 39 | function SaveMenu.SetSelectedElement(elementNumber) 40 | end 41 | 42 | ---Overrides the spritesheet used for a save file drawing. `MC_POST_SAVESLOT_LOAD` is a good place to use this. 43 | ---@param slot 44 | ---|1 45 | ---|2 46 | ---|3 47 | ---@param pngFilename string 48 | function SaveMenu.SetSlotSpritesheet(slot, pngFilename) 49 | end -------------------------------------------------------------------------------- /src/persist.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | 3 | export function getState(context: vscode.ExtensionContext): State { 4 | return new StateImpl(context); 5 | } 6 | 7 | export type State = { 8 | enabled: boolean; 9 | asked: boolean; 10 | }; 11 | 12 | class StateImpl implements State { 13 | private _enabled: boolean; 14 | private _asked: boolean; 15 | private _state: vscode.Memento; 16 | 17 | constructor(context: vscode.ExtensionContext) { 18 | this._state = context.workspaceState; 19 | this._enabled = this._state.get('enabled') || false; 20 | this._asked = this._state.get('asked') || false; 21 | } 22 | 23 | public get enabled(): boolean { 24 | return this._enabled; 25 | } 26 | public set enabled(value: boolean) { 27 | this._enabled = value; 28 | this.update("enabled", value); 29 | } 30 | 31 | public get asked(): boolean { 32 | return this._asked; 33 | } 34 | public set asked(value: boolean) { 35 | this._asked = value; 36 | this.update("asked", value); 37 | } 38 | 39 | update(key: string, value: any) { 40 | this._state.update(key, value); 41 | } 42 | } 43 | 44 | -------------------------------------------------------------------------------- /src/docs/vanilla/entity/EntityKnife.lua: -------------------------------------------------------------------------------- 1 | ---@class EntityKnife : Entity 2 | ---@field Charge number 3 | ---@field MaxDistance number 4 | ---@field PathFollowSpeed number 5 | ---@field PathOffset number 6 | ---@field Rotation number 7 | ---@field RotationOffset number 8 | ---@field Scale number 9 | ---@field TearFlags TearFlags 10 | local EntityKnife = {} 11 | 12 | ---@param Flags TearFlags 13 | function EntityKnife:AddTearFlags(Flags) 14 | end 15 | 16 | ---@param Flags TearFlags 17 | function EntityKnife:ClearTearFlags(Flags) 18 | end 19 | 20 | ---@return number 21 | function EntityKnife:GetKnifeDistance() 22 | end 23 | 24 | ---@return number 25 | function EntityKnife:GetKnifeVelocity() 26 | end 27 | 28 | ---@return integer 29 | function EntityKnife:GetRenderZ() 30 | end 31 | 32 | ---@param Flags TearFlags 33 | ---@return boolean 34 | function EntityKnife:HasTearFlags(Flags) 35 | end 36 | 37 | ---@return boolean 38 | function EntityKnife:IsFlying() 39 | end 40 | 41 | function EntityKnife:Reset() 42 | end 43 | 44 | ---@param Speed number 45 | function EntityKnife:SetPathFollowSpeed(Speed) 46 | end 47 | 48 | ---@param Charge number 49 | ---@param Range number 50 | function EntityKnife:Shoot(Charge, Range) 51 | end 52 | 53 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/levelgenerator/LevelGeneratorRoom.lua: -------------------------------------------------------------------------------- 1 | ---@class LevelGeneratorRoom 2 | local LevelGeneratorRoom = {} 3 | 4 | ---TODO: Document me! 5 | ---@return integer 6 | function LevelGeneratorRoom:Column() 7 | end 8 | 9 | ---Return a mask of the available doors of the room slot. In order to check if a door at a given slot is available, use the DoorSlot enumeration. 10 | ---@return integer 11 | function LevelGeneratorRoom:DoorMask() 12 | end 13 | 14 | ---Index of the room during generation. 15 | ---@return integer `0` if the room was the first to be generated, `1` if it was the second, etc. 16 | function LevelGeneratorRoom:GenerationIndex() 17 | end 18 | 19 | ---@return boolean 20 | function LevelGeneratorRoom:IsDeadEnd() end 21 | 22 | ---Returns a table of the generation indices of the neighboring rooms. 23 | ---@return integer[] 24 | function LevelGeneratorRoom:Neighbors() 25 | end 26 | 27 | ---Return the row of the room slot on the level grid. 28 | ---@return integer `0` for the first row, `1` for the second, etc. 29 | function LevelGeneratorRoom:Row() 30 | end 31 | 32 | ---Return the shape of the room, as per the `RoomShape` enumeration. 33 | ---@return RoomShape 34 | function LevelGeneratorRoom:Shape() 35 | end 36 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/Capsule.lua: -------------------------------------------------------------------------------- 1 | ---@class Capsule 2 | local Capsule = {} 3 | 4 | ---Causes the capsule to run collision code with `capsule2` 5 | ---@param capsule2 Capsule 6 | ---@param vec Vector 7 | ---@return boolean 8 | function Capsule:Collide(capsule2, vec) 9 | end 10 | 11 | ---TODO: Document me! 12 | ---@return Vector 13 | function Capsule:GetDirection() 14 | end 15 | 16 | ---TODO: Document me! 17 | ---@return number 18 | function Capsule:GetF1() 19 | end 20 | 21 | ---TODO: Document me! 22 | ---@return number 23 | function Capsule:GetF2() 24 | end 25 | 26 | ---TODO: Returns the capsule's position. 27 | ---@return Vector 28 | function Capsule:GetPosition() 29 | end 30 | 31 | ---TODO: Document me! 32 | ---@return Vector 33 | function Capsule:GetV2() 34 | end 35 | 36 | ---TODO: Document me! 37 | ---@return Vector 38 | function Capsule:GetV3() 39 | end 40 | 41 | ---@param position Vector 42 | ---@param sizeMultiplier Vector 43 | ---@param rotation number 44 | ---@param size number 45 | ---@return Capsule 46 | function _G.Capsule(position, sizeMultiplier, rotation, size) 47 | end 48 | 49 | ---@param position Vector 50 | ---@param targetPosition Vector 51 | ---@param size number 52 | ---@return Capsule 53 | function _G.Capsule(position, targetPosition, size) 54 | end 55 | 56 | -------------------------------------------------------------------------------- /src/docs/vanilla/SFXManager.lua: -------------------------------------------------------------------------------- 1 | ---@class SFXManager 2 | local SFXManager = {} 3 | 4 | ---@return SFXManager 5 | function _G.SFXManager() 6 | end 7 | 8 | ---@param ID SoundEffect 9 | ---@param Pitch number 10 | function SFXManager:AdjustPitch(ID, Pitch) 11 | end 12 | 13 | ---@param ID SoundEffect 14 | ---@param Volume number 15 | function SFXManager:AdjustVolume(ID, Volume) 16 | end 17 | 18 | ---@param ID SoundEffect 19 | ---@return number 20 | function SFXManager:GetAmbientSoundVolume(ID) 21 | end 22 | 23 | ---@param ID SoundEffect 24 | ---@return boolean 25 | function SFXManager:IsPlaying(ID) 26 | end 27 | 28 | ---@param ID SoundEffect 29 | ---@param Volume? number @default: `1` 30 | ---@param FrameDelay? integer @default: `2` 31 | ---@param Loop? boolean @default: `false` 32 | ---@param Pitch? number @default: `1` 33 | ---@param Pan? number @default: `0` 34 | function SFXManager:Play(ID, Volume, FrameDelay, Loop, Pitch, Pan) 35 | end 36 | 37 | ---@param ID SoundEffect 38 | function SFXManager:Preload(ID) 39 | end 40 | 41 | ---@param ID SoundEffect 42 | ---@param Volume number 43 | ---@param Pitch number 44 | function SFXManager:SetAmbientSound(ID, Volume, Pitch) 45 | end 46 | 47 | ---@param ID SoundEffect 48 | function SFXManager:Stop(ID) 49 | end 50 | 51 | function SFXManager:StopLoopingSounds() 52 | end 53 | -------------------------------------------------------------------------------- /src/docs/vanilla/entity/EntityPickup.lua: -------------------------------------------------------------------------------- 1 | ---@class EntityPickup : Entity 2 | ---@field AutoUpdatePrice boolean 3 | ---@field Charge integer 4 | ---@field OptionsPickupIndex integer 5 | ---@field Price PickupPrice 6 | ---@field ShopItemId integer 7 | ---@field State integer 8 | ---@field Timeout integer 9 | ---@field Touched boolean 10 | ---@field Wait integer 11 | local EntityPickup_Local = {} 12 | 13 | function EntityPickup_Local:AppearFast() 14 | end 15 | 16 | ---@return boolean 17 | function EntityPickup_Local:CanReroll() 18 | end 19 | 20 | ---@return integer 21 | function EntityPickup_Local:GetCoinValue() 22 | end 23 | 24 | ---@return boolean 25 | function EntityPickup_Local:IsShopItem() 26 | end 27 | 28 | ---@param Type EntityType 29 | ---@param Variant integer 30 | ---@param SubType integer 31 | ---@param KeepPrice? boolean @default: `false` 32 | ---@param KeepSeed? boolean @default: `false` 33 | ---@param IgnoreModifiers? boolean @default: `false` 34 | function EntityPickup_Local:Morph(Type, Variant, SubType, KeepPrice, KeepSeed, IgnoreModifiers) 35 | end 36 | 37 | function EntityPickup_Local:PlayDropSound() 38 | end 39 | 40 | function EntityPickup_Local:PlayPickupSound() 41 | end 42 | 43 | ---@param Player? EntityPlayer @default: `nil` 44 | ---@return boolean 45 | function EntityPickup_Local:TryOpenChest(Player) 46 | end -------------------------------------------------------------------------------- /src/docs/vanilla/ModReference.lua: -------------------------------------------------------------------------------- 1 | ---@class ModReference 2 | ---@field Name string 3 | local ModReference = {} 4 | 5 | ---@param callbackID ModCallbacks | string 6 | ---@param callbackFn function 7 | ---@param entityID? any 8 | function ModReference:AddCallback(callbackID, callbackFn, entityID) 9 | end 10 | 11 | ---@param callbackID ModCallbacks | string 12 | ---@param priority CallbackPriority 13 | ---@param callbackFn function 14 | ---@param entityID? any 15 | function ModReference:AddPriorityCallback(callbackID, priority, callbackFn, entityID) 16 | end 17 | 18 | ---@return boolean 19 | function ModReference:HasData() 20 | end 21 | 22 | ---@return string 23 | function ModReference:LoadData() 24 | end 25 | 26 | ---@param callbackID integer 27 | ---@param callbackFn function 28 | function ModReference:RemoveCallback(callbackID, callbackFn) 29 | end 30 | 31 | function ModReference:RemoveData() 32 | end 33 | 34 | ---@param data string 35 | function ModReference:SaveData(data) 36 | end 37 | 38 | -- Disabled as it will complain about mod tables with added functions 39 | -- in mods with more files, depending on how they are handled; you can 40 | -- re-enable it and keep it if you don't have that problem 41 | --[[ ---@param modname string 42 | ---@param apiversion number 43 | ---@return ModReference 44 | function RegisterMod(modname, apiversion) 45 | end ]] -------------------------------------------------------------------------------- /src/docs/repentogon_new/proceduralitems/ProceduralItem.lua: -------------------------------------------------------------------------------- 1 | ---@class ProceduralItem 2 | local ProceduralItem = {} 3 | 4 | ---@return number 5 | function ProceduralItem:GetDamage() 6 | end 7 | 8 | ---Returns the procedural item's effect by an index. 9 | ---@param index integer The effect's index. 10 | ---@return ProceduralEffect? 11 | function ProceduralItem:GetEffect(index) 12 | end 13 | 14 | ---Returns the amount of effects the procedural item has. 15 | ---@return integer 16 | function ProceduralItem:GetEffectCount() 17 | end 18 | 19 | ---@return number 20 | function ProceduralItem:GetFireDelay() 21 | end 22 | 23 | ---@return integer 24 | function ProceduralItem:GetID() 25 | end 26 | 27 | ---Retuns the item config of the current glitched item. 28 | ---@return ItemConfigItem 29 | function ProceduralItem:GetItem() 30 | end 31 | 32 | ---@return number 33 | function ProceduralItem:GetLuck() 34 | end 35 | 36 | ---@return number 37 | function ProceduralItem:GetRange() 38 | end 39 | 40 | ---@return number 41 | function ProceduralItem:GetShotSpeed() 42 | end 43 | 44 | ---@return number 45 | function ProceduralItem:GetSpeed() 46 | end 47 | 48 | ---Returns the item config that is randomly selected by the current glitched item. 49 | ---@return ItemConfigItem? `nil` if the selected `ItemConfigItem` does not exist 50 | function ProceduralItem:GetTargetItem() 51 | end 52 | -------------------------------------------------------------------------------- /src/docs/vanilla/entity/EntityProjectile.lua: -------------------------------------------------------------------------------- 1 | ---@class EntityProjectile : Entity 2 | ---@field Acceleration number 3 | ---@field ChangeFlags integer 4 | ---@field ChangeTimeout integer 5 | ---@field ChangeVelocity number 6 | ---@field CurvingStrength number 7 | ---@field Damage number 8 | ---@field DepthOffset number 9 | ---@field FallingAccel number 10 | ---@field FallingSpeed number 11 | ---@field Height number 12 | ---@field HomingStrength number 13 | ---@field ProjectileFlags ProjectileFlags 14 | ---@field Scale number 15 | ---@field WiggleFrameOffset integer 16 | local EntityProjectile = {} 17 | 18 | ---@param Flags integer 19 | function EntityProjectile:AddChangeFlags(Flags) 20 | end 21 | 22 | ---@param Value number 23 | function EntityProjectile:AddFallingAccel(Value) 24 | end 25 | 26 | ---@param Value number 27 | function EntityProjectile:AddFallingSpeed(Value) 28 | end 29 | 30 | ---@param Value number 31 | function EntityProjectile:AddHeight(Value) 32 | end 33 | 34 | ---@param Flags integer 35 | function EntityProjectile:AddProjectileFlags(Flags) 36 | end 37 | 38 | ---@param Value number 39 | function EntityProjectile:AddScale(Value) 40 | end 41 | 42 | ---@param Flags integer 43 | function EntityProjectile:ClearProjectileFlags(Flags) 44 | end 45 | 46 | ---@param Flags integer 47 | ---@return boolean 48 | function EntityProjectile:HasProjectileFlags(Flags) 49 | end 50 | 51 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/RoomTransition.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomTransition 2 | _G.RoomTransition = {} 3 | 4 | ---TODO: Might become an enum. Documenting directly under function for now. 5 | ---@return integer TransitionMode 6 | ---|0 # NONE --When no transition is happening. 7 | ---|1 # EXIT_ROOM --When exiting the room. 8 | ---|2 # PAUSE_EXIT_ROOM --Still within the room you're exiting from, but playing a special non-directional room transition such as when teleporting. 9 | ---|3 # ENTER_ROOM --Entering and loading the room you moved into. 10 | ---|4 # PAUSE_ENTER_ROOM --Still within the room you're entering, but playing a special non-directional room transition such as when teleporting. 11 | function RoomTransition.GetTransitionMode() 12 | end 13 | 14 | ---Returns the versus screen sprite. 15 | ---@return Sprite 16 | function RoomTransition.GetVersusScreenSprite() 17 | end 18 | 19 | ---Returns true if the boss intro is currently rendering. 20 | ---@return boolean 21 | function RoomTransition.IsRenderingBossIntro() 22 | end 23 | 24 | ---Starts a boss intro. 25 | ---@param boss1 BossType 26 | ---@param boss2? BossType @default: `0`. If it is a non-zero value, a second boss will be rendered if the room is a Double Trouble encounter. 27 | function RoomTransition.StartBossIntro(boss1, boss2) 28 | end 29 | 30 | ---@return Sprite 31 | function RoomTransition.GetPlayerExtraPortraitSprite() 32 | end 33 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/BestiaryMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class BestiaryMenu 2 | _G.BestiaryMenu = {} 3 | 4 | ---Returns the bestiary menu sprite. 5 | ---@return Sprite 6 | function BestiaryMenu.GetBestiaryMenuSprite() 7 | end 8 | 9 | ---Returns the sprite of the selectable elements that shows the "DeathScreen" enemy sprite. 10 | ---@return Sprite 11 | function BestiaryMenu.GetDeathScreenSprite() 12 | end 13 | 14 | ---Returns the animated enemy preview sprite. 15 | ---@return Sprite 16 | function BestiaryMenu.GetEnemySprite() 17 | end 18 | 19 | ---Returns the current page number. 20 | ---@return integer 21 | function BestiaryMenu.GetSelectedPage() 22 | end 23 | 24 | ---@return integer 25 | function BestiaryMenu.GetLastEnemyPageID() 26 | end 27 | 28 | ---@return integer 29 | function BestiaryMenu.GetNumBossPages() 30 | end 31 | 32 | ---@return integer 33 | function BestiaryMenu.GetNumMonsterPages() 34 | end 35 | 36 | ---@return integer 37 | function BestiaryMenu.GetNumPages() 38 | end 39 | 40 | ---Returns the selected element on the current page. 41 | ---@return integer 42 | function BestiaryMenu.GetSelectedElement() 43 | end 44 | 45 | ---Sets the current page. 46 | ---@param page integer 47 | function BestiaryMenu.SetSelectedPage(page) 48 | end 49 | 50 | ---Sets the selected element on the current page. 51 | ---@param element integer 52 | function BestiaryMenu.SetSelectedElement(element) 53 | end 54 | -------------------------------------------------------------------------------- /scripts/copyemmy.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const path = require('path'); 3 | 4 | function copyFileSync( source, target ) { 5 | 6 | var targetFile = target; 7 | 8 | // If target is a directory, a new file with the same name will be created 9 | if ( fs.existsSync( target ) ) { 10 | if ( fs.lstatSync( target ).isDirectory() ) { 11 | targetFile = path.join( target, path.basename( source ) ); 12 | } 13 | } 14 | 15 | fs.writeFileSync(targetFile, fs.readFileSync(source)); 16 | } 17 | 18 | function copyFolderRecursiveSync( source, target ) { 19 | var files = []; 20 | 21 | // Check if folder needs to be created or integrated 22 | var targetFolder = path.join( target, path.basename( source ) ); 23 | if ( !fs.existsSync( targetFolder ) ) { 24 | fs.mkdirSync( targetFolder ); 25 | } 26 | 27 | // Copy 28 | if ( fs.lstatSync( source ).isDirectory() ) { 29 | files = fs.readdirSync( source ); 30 | files.forEach( function ( file ) { 31 | var curSource = path.join( source, file ); 32 | if ( fs.lstatSync( curSource ).isDirectory() ) { 33 | copyFolderRecursiveSync( curSource, targetFolder ); 34 | } else { 35 | copyFileSync( curSource, targetFolder ); 36 | } 37 | } ); 38 | } 39 | } 40 | 41 | copyFolderRecursiveSync(path.join("merge", "emmylua"), "out"); -------------------------------------------------------------------------------- /src/docs/vanilla/itemconfig/ItemConfig.lua: -------------------------------------------------------------------------------- 1 | ItemConfig.Config = {} 2 | 3 | ---@param ID CollectibleType 4 | ---@return boolean 5 | function ItemConfig.Config.IsValidCollectible(ID) 6 | end 7 | 8 | ---@param Item ItemConfigItem 9 | ---@return boolean 10 | function ItemConfig.Config.ShouldAddCostumeOnPickup(Item) 11 | end 12 | 13 | ---@class ItemConfig 14 | local ItemConfig_Class = {} 15 | 16 | ---@param ID Card 17 | ---@return ItemConfigCard 18 | function ItemConfig_Class:GetCard(ID) 19 | end 20 | 21 | ---@return CardConfigList 22 | function ItemConfig_Class:GetCards() 23 | end 24 | 25 | ---@param ID CollectibleType 26 | ---@return ItemConfigItem 27 | function ItemConfig_Class:GetCollectible(ID) 28 | end 29 | 30 | ---@return userdata 31 | function ItemConfig_Class:GetCollectibles() 32 | end 33 | 34 | ---@param ID NullItemID 35 | ---@return ItemConfigItem 36 | function ItemConfig_Class:GetNullItem(ID) 37 | end 38 | 39 | ---@return ItemConfigList 40 | function ItemConfig_Class:GetNullItems() 41 | end 42 | 43 | ---@param ID PillEffect 44 | ---@return ItemConfigPillEffect 45 | function ItemConfig_Class:GetPillEffect(ID) 46 | end 47 | 48 | ---@return PillConfigList 49 | function ItemConfig_Class:GetPillEffects() 50 | end 51 | 52 | ---@param ID TrinketType 53 | ---@return ItemConfigItem 54 | function ItemConfig_Class:GetTrinket(ID) 55 | end 56 | 57 | ---@return ItemConfigList 58 | function ItemConfig_Class:GetTrinkets() 59 | end 60 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/hud/Minimap.lua: -------------------------------------------------------------------------------- 1 | ---@class Minimap 2 | _G.Minimap = {} 3 | 4 | ---Returns the minimap's current display size. 5 | ---@return Vector --When not expanded, always returns `Vector(47,47)`. 6 | function Minimap.GetDisplayedSize() 7 | end 8 | 9 | ---@return MinimapState 10 | function Minimap.GetState() 11 | end 12 | 13 | ---Returns how long the button action for the map has been held down to expand the map 14 | ---@return integer 15 | function Minimap.GetHoldTime() 16 | end 17 | 18 | ---Returns the Sprite object that holds map icons for Curses, Restock, and map-revealing effects 19 | ---@return Sprite 20 | function Minimap.GetItemIconsSprite() 21 | end 22 | 23 | ---Returns the Sprite object that holds all map icons 24 | ---@return Sprite 25 | function Minimap.GetIconsSprite() 26 | end 27 | 28 | ---@return integer 29 | function Minimap.GetShakeDuration() 30 | end 31 | 32 | ---@return Vector 33 | function Minimap.GetShakeOffset() 34 | end 35 | 36 | ---@param duration integer 37 | function Minimap.SetShakeDuration(duration) 38 | end 39 | 40 | ---@param offset Vector 41 | function Minimap.SetShakeOffset(offset) 42 | end 43 | 44 | ---@param state MinimapState 45 | function Minimap.SetState(state) 46 | end 47 | 48 | ---Sets how long the button action for the map has been held down to expand the map 49 | ---@param time integer 50 | function Minimap.SetHoldTime(time) 51 | end 52 | 53 | function Minimap.Refresh() 54 | end -------------------------------------------------------------------------------- /src/docs/repentogon_changes/gridentity/GridEntityRock.lua: -------------------------------------------------------------------------------- 1 | ---Returns the rock's altrock type. 2 | ---@param backdrop? BackdropType @default: `BackdropType.BACKDROP_NULL`. 3 | ---@return integer 4 | function GridEntityRock:GetAltRockType(backdrop) 5 | end 6 | 7 | ---TODO: Document me! 8 | ---@param gridType GridEntityType 9 | ---@param backdrop? BackdropType @default: `BackdropType.BACKDROP_NULL`. 10 | function GridEntityRock:PlayBreakSound(gridType, backdrop) 11 | end 12 | 13 | ---TODO: Document me! 14 | ---@param gridType GridEntityType 15 | function GridEntityRock:RegisterRockDestroyed(gridType) 16 | end 17 | 18 | ---TODO: Document me! 19 | ---@param offset Vector 20 | function GridEntityRock:RenderTop(offset) 21 | end 22 | 23 | ---TODO: Document me! 24 | ---@param gridType GridEntityType 25 | ---@param gridVariant integer 26 | ---@param seed integer 27 | ---@param unknown boolean TODO: Document me! 28 | ---@param backdrop? BackdropType @default: `BackdropType.BACKDROP_NULL`. 29 | function GridEntityRock:SpawnDrops(gridType, gridVariant, seed, unknown, backdrop) 30 | end 31 | 32 | ---TODO: Document me! 33 | function GridEntityRock:TrySpawnLadder() 34 | end 35 | 36 | ---TODO: Document me! 37 | function GridEntityRock:TrySpawnWorms() 38 | end 39 | 40 | ---Updates the rock's collision. 41 | function GridEntityRock:UpdateCollision() 42 | end 43 | 44 | ---Updates the rock's neighbors. 45 | function GridEntityRock:UpdateNeighbors() 46 | end 47 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/itemconfig/ItemConfigItem.lua: -------------------------------------------------------------------------------- 1 | ---Returns `true` if the `ItemConfigItem` has the provided `tagName` as a custom tag, 2 | ---@param tagName string 3 | ---@return boolean 4 | function ItemConfigItem:HasCustomTag(tagName) 5 | end 6 | 7 | ---Returns a table of strings containing the `ItemConfigItem`'s custom tags, 8 | ---@return string[] 9 | function ItemConfigItem:GetCustomTags() 10 | end 11 | 12 | ---Returns `true` if the `ItemConfigItem` has the provided `tagName` as a custom cache tag, 13 | ---@param tagName string 14 | ---@return boolean 15 | function ItemConfigItem:HasCustomCacheTag(tagName) 16 | end 17 | 18 | ---Returns a table of strings containing the `ItemConfigItem`'s custom cache tags, 19 | ---@return string[] 20 | function ItemConfigItem:GetCustomCacheTags() 21 | end 22 | 23 | ---Adds the provided string to the table of custom tags. 24 | ---@param tagName string 25 | function ItemConfigItem:AddCustomTag(tagName) 26 | end 27 | 28 | ---Removes the provided string from the table of custom tags. 29 | ---@param tagName string 30 | function ItemConfigItem:RemoveCustomTag(tagName) 31 | end 32 | 33 | ---Adds the provided string to the table of custom cache tags. 34 | ---@param tagName string 35 | function ItemConfigItem:AddCustomCacheTag(tagName) 36 | end 37 | 38 | ---Removes the provided string from the table of custom cache tags. 39 | ---@param tagName string 40 | function ItemConfigItem:RemoveCustomCacheTag(tagName) 41 | end -------------------------------------------------------------------------------- /src/docs/vanilla/PathFinder.lua: -------------------------------------------------------------------------------- 1 | ---@class PathFinder 2 | local PathFinder = {} 3 | 4 | ---@param TargetPos Vector 5 | function PathFinder:EvadeTarget(TargetPos) 6 | end 7 | 8 | ---@param Pos Vector 9 | ---@param Speed number 10 | ---@param PathMarker integer 11 | ---@param UseDirectPath boolean 12 | function PathFinder:FindGridPath(Pos, Speed, PathMarker, UseDirectPath) 13 | end 14 | 15 | ---@return integer 16 | function PathFinder:GetEvadeMovementCountdown() 17 | end 18 | 19 | ---@return integer 20 | function PathFinder:GetGridIndex() 21 | end 22 | 23 | ---@return boolean 24 | function PathFinder:HasDirectPath() 25 | end 26 | 27 | ---@param Pos Vector 28 | ---@param IgnorePoop boolean 29 | ---@return boolean 30 | function PathFinder:HasPathToPos(Pos, IgnorePoop) 31 | end 32 | 33 | ---@param IgnoreStatusEffects boolean 34 | ---@return boolean 35 | function PathFinder:MoveRandomly(IgnoreStatusEffects) 36 | end 37 | 38 | ---@param Speed number 39 | ---@param IgnoreStatusEffects boolean 40 | function PathFinder:MoveRandomlyAxisAligned(Speed, IgnoreStatusEffects) 41 | end 42 | 43 | ---@param IgnoreStatusEffects boolean 44 | function PathFinder:MoveRandomlyBoss(IgnoreStatusEffects) 45 | end 46 | 47 | function PathFinder:Reset() 48 | end 49 | 50 | function PathFinder:ResetMovementTarget() 51 | end 52 | 53 | ---@param value boolean 54 | function PathFinder:SetCanCrushRocks(value) 55 | end 56 | 57 | function PathFinder:UpdateGridIndex() 58 | end 59 | 60 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/DailyChallengeMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class DailyChallengeMenu 2 | _G.DailyChallengeMenu = {} 3 | 4 | ---Returns the daily challenge menu sprite (background, most of the visible papers). 5 | ---@return Sprite 6 | function DailyChallengeMenu.GetSprite() 7 | end 8 | 9 | ---Returns the leaderboard sprite. 10 | ---@return Sprite 11 | function DailyChallengeMenu.GetLeaderboardSprite() 12 | end 13 | 14 | ---Returns the leaderboard score menu sprite. 15 | ---@return Sprite 16 | function DailyChallengeMenu.GetLeaderboardScoreMenuSprite() 17 | end 18 | 19 | ---@return integer 20 | function DailyChallengeMenu.GetSelectedElement() 21 | end 22 | 23 | ---Returns the hours left until the daily challenge resets. 24 | ---@return integer 25 | function DailyChallengeMenu.GetTimeLeftHours() 26 | end 27 | 28 | ---Returns the minutes left until the daily challenge resets. 29 | ---@return integer 30 | function DailyChallengeMenu.GetTimeLeftMinutes() 31 | end 32 | 33 | ---Returns the seconds left until the daily challenge resets. 34 | ---@return integer 35 | function DailyChallengeMenu.GetTimeLeftSeconds() 36 | end 37 | 38 | ---@return boolean 39 | function DailyChallengeMenu.IsLeaderboardVisible() 40 | end 41 | 42 | ---@param element integer 43 | function DailyChallengeMenu.SetSelectedElement(element) 44 | end 45 | 46 | ---@return integer 47 | function DailyChallengeMenu.GetState() 48 | end 49 | 50 | ---@param state integer 51 | function DailyChallengeMenu.SetState(state) 52 | end -------------------------------------------------------------------------------- /src/docs/vanilla/entity/EntityTear.lua: -------------------------------------------------------------------------------- 1 | ---@class EntityTear : Entity 2 | ---@field BaseDamage number @const 3 | ---@field BaseScale number @const 4 | ---@field Bounced boolean 5 | ---@field CanTriggerStreakEnd boolean 6 | ---@field ContinueVelocity Vector 7 | ---@field FallingAcceleration number 8 | ---@field FallingSpeed number 9 | ---@field Height number 10 | ---@field HomingFriction number 11 | ---@field KnockbackMultiplier number 12 | ---@field ParentOffset Vector 13 | ---@field PosDisplacement Vector @const 14 | ---@field Rotation number 15 | ---@field Scale number 16 | ---@field StickDiff Vector 17 | ---@field StickTarget Entity 18 | ---@field StickTimer integer 19 | ---@field TearFlags TearFlags 20 | ---@field TearIndex integer @const 21 | ---@field WaitFrames integer 22 | local EntityTear = {} 23 | 24 | ---@param Flags TearFlags 25 | function EntityTear:AddTearFlags(Flags) 26 | end 27 | 28 | ---@param NewVariant TearVariant 29 | function EntityTear:ChangeVariant(NewVariant) 30 | end 31 | 32 | ---@param Flags TearFlags 33 | function EntityTear:ClearTearFlags(Flags) 34 | end 35 | 36 | ---@param Flags TearFlags 37 | ---@return boolean 38 | function EntityTear:HasTearFlags(Flags) 39 | end 40 | 41 | ---@param Intensity number 42 | function EntityTear:SetDeadEyeIntensity(Intensity) 43 | end 44 | 45 | ---@param Multiplier number 46 | function EntityTear:SetKnockbackMultiplier(Multiplier) 47 | end 48 | 49 | ---@param Offset Vector 50 | function EntityTear:SetParentOffset(Offset) 51 | end 52 | 53 | ---@param Value integer 54 | function EntityTear:SetWaitFrames(Value) 55 | end 56 | -------------------------------------------------------------------------------- /src/docs/vanilla/HUD.lua: -------------------------------------------------------------------------------- 1 | ---@class HUD 2 | local HUD = {} 3 | 4 | function HUD:AssignPlayerHUDs() 5 | end 6 | 7 | ---@param Player EntityPlayer 8 | ---@param ActiveSlot ActiveSlot 9 | function HUD:FlashChargeBar(Player, ActiveSlot) 10 | end 11 | 12 | ---@param Player EntityPlayer 13 | ---@param ActiveSlot ActiveSlot 14 | function HUD:InvalidateActiveItem(Player, ActiveSlot) 15 | end 16 | 17 | ---@param Player EntityPlayer 18 | function HUD:InvalidateCraftingItem(Player) 19 | end 20 | 21 | ---@return boolean 22 | function HUD:IsVisible() 23 | end 24 | 25 | ---@param MainString? string 26 | ---@param SecondaryString? string 27 | ---@vararg string 28 | function HUD:ShowFortuneText(MainString, SecondaryString, ...) 29 | end 30 | 31 | ---@param MainString string 32 | ---@param SecondaryString? string 33 | ---@param IsCurseDisplay? boolean @default: `false` 34 | ---@param ClearStack? boolean @default: `false`. Repentance+ Exclusive 35 | ---@diagnostic disable-next-line: duplicate-set-field 36 | function HUD:ShowItemText(MainString, SecondaryString, IsCurseDisplay, ClearStack) 37 | end 38 | 39 | ---@param Player EntityPlayer 40 | ---@param Item ItemConfigItem 41 | ---@param ClearStack? boolean @default: `false`. Repentance+ Exclusive 42 | ---@diagnostic disable-next-line: duplicate-set-field 43 | function HUD:ShowItemText(Player, Item, ClearStack) 44 | end 45 | 46 | ---@param Visible? boolean @default: `false` 47 | function HUD:SetVisible(Visible) 48 | end 49 | 50 | function HUD:Update() 51 | end 52 | 53 | function HUD:PostUpdate() 54 | end 55 | 56 | function HUD:Render() 57 | end 58 | -------------------------------------------------------------------------------- /src/docs/vanilla/itemconfig/ItemConfigItem.lua: -------------------------------------------------------------------------------- 1 | ---@class ItemConfigItem 2 | ---@field AchievementID integer 3 | ---@field AddBlackHearts integer 4 | ---@field AddBombs integer 5 | ---@field AddCoins integer 6 | ---@field AddCostumeOnPickup boolean # Not officially documented but functional 7 | ---@field AddHearts integer 8 | ---@field AddKeys integer 9 | ---@field AddMaxHearts integer 10 | ---@field AddSoulHearts integer 11 | ---@field CacheFlags integer 12 | ---@field ChargeType integer 13 | ---@field ClearEffectsOnRemove boolean 14 | ---@field Costume ItemConfigCostume @const 15 | ---@field CraftingQuality integer 16 | ---@field Description string 17 | ---@field DevilPrice integer 18 | ---@field Discharged boolean 19 | ---@field GfxFileName string 20 | ---@field Hidden boolean 21 | ---@field ID integer 22 | ---@field InitCharge integer 23 | ---@field MaxCharges integer 24 | ---@field MaxCooldown integer 25 | ---@field Name string 26 | ---@field PassiveCache boolean 27 | ---@field PersistentEffect boolean 28 | ---@field Quality integer 29 | ---@field ShopPrice integer 30 | ---@field Special boolean 31 | ---@field Tags integer 32 | ---@field Type ItemType 33 | local ItemConfigItem = {} 34 | 35 | ---@param Tags integer 36 | ---@return boolean 37 | function ItemConfigItem:HasTags(Tags) 38 | end 39 | 40 | ---@return boolean 41 | function ItemConfigItem:IsCollectible() 42 | end 43 | 44 | ---@return boolean 45 | function ItemConfigItem:IsNull() 46 | end 47 | 48 | ---@return boolean 49 | function ItemConfigItem:IsTrinket() 50 | end 51 | 52 | ---@return boolean 53 | function ItemConfigItem:IsAvailable() 54 | end 55 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/StageTransition.lua: -------------------------------------------------------------------------------- 1 | ---@diagnostic disable: duplicate-set-field 2 | ---@class StageTransition 3 | _G.StageTransition = {} 4 | 5 | ---Returns true if the stage transition screen will display Isaac's head moving from one stage to another stage. 6 | ---@return boolean 7 | function StageTransition.GetSameStage() 8 | end 9 | 10 | ---Configure whether the stage transition will display Isaac's head moving from one stage to the other (false) or not (true). 11 | --- 12 | ---This function is useful if you want to move the player to the first stage, or want to repeat the last stage on the progress 13 | ---bar of the transition screen, and have it be less jarring. 14 | --- 15 | ---If transitioning back to the first floor, and `sameStage` is not set to true, Isaac's head will appear outside of the progress 16 | ---bar. Otherwise, Isaac's head will appear on the first floor. 17 | --- 18 | ---If repeating the last floor, and `sameStage` is not set to true, Isaac's head will move from the previous stage to the last one. 19 | ---Otherwise, Isaac's head will appear on the last floor. 20 | --- 21 | ---Calling this function before the current stage transition has called `SetNextStage` will override the transition itself. This 22 | ---means that instead of merely displaying Isaac's head not moving, it will actually change whether the next stage will be a repeat 23 | ---of the current one, or the actual next stage. Ideally, you should use this function in the context of the 24 | ---`ModCallbacks.MC_PRE_LEVEL_SELECT` callback. 25 | ---@param sameStage boolean 26 | function StageTransition.SetSameStage(sameStage) 27 | end 28 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/Renderer.lua: -------------------------------------------------------------------------------- 1 | ---@class Renderer 2 | local Renderer = {} 3 | 4 | ---TODO: Document me! 5 | ---@param filePath string The path to the image. 6 | ---@return Image 7 | function Renderer:LoadImage(filePath) 8 | end 9 | 10 | ---TODO: Document me! 11 | ---@return Pipeline 12 | function Renderer:Pipeline() 13 | end 14 | 15 | ---TODO: Document me! 16 | ---@return GLSLValue 17 | function Renderer:ProjectionMatrix() 18 | end 19 | 20 | ---TODO: Document me! 21 | function Renderer:RenderSet() 22 | end 23 | 24 | ---TODO: Document me! 25 | ---@param vertexShader string 26 | ---@param fragmentShader string 27 | ---@param vertexDescriptor VertexDescriptor 28 | ---@return Shader 29 | function Renderer:Shader(vertexShader, fragmentShader, vertexDescriptor) 30 | end 31 | 32 | ---TODO: Document me! 33 | ---@return Transformer 34 | function Renderer:StartTransformation() 35 | end 36 | 37 | ---TODO: Document me! 38 | ---@param x? number @default: `0` 39 | ---@param y? number @default: `0` 40 | ---@return GLSLValue 41 | function Renderer:Vec2(x, y) 42 | end 43 | 44 | ---TODO: Document me! 45 | ---@param x? number @default: `0` 46 | ---@param y? number @default: `0` 47 | ---@param z? number @default: `0` 48 | ---@return GLSLValue 49 | function Renderer:Vec3(x, y, z) 50 | end 51 | 52 | ---TODO: Document me! 53 | ---@param x? number @default: `0` 54 | ---@param y? number @default: `0` 55 | ---@param z? number @default: `0` 56 | ---@param w? number @default: `0` 57 | ---@return GLSLValue 58 | function Renderer:Vec4(x, y, z, w) 59 | end 60 | 61 | ---TODO: Document me! 62 | ---@return VertexDescriptor 63 | function Renderer:VertexDescriptor() 64 | end 65 | -------------------------------------------------------------------------------- /src/activationCheck.ts: -------------------------------------------------------------------------------- 1 | import * as vscode from 'vscode'; 2 | import { getState } from './persist'; 3 | 4 | function checkActivate(context: vscode.ExtensionContext, onActivate: (context: vscode.ExtensionContext) => void) { 5 | // Must be opened in a workspace 6 | if (!vscode.workspace.workspaceFolders) { 7 | return; 8 | } 9 | const state = getState(context); 10 | 11 | if (state.asked || state.enabled) { return; } 12 | 13 | checkIsModEnvironment().then(result => { 14 | if (result) { 15 | askActivation().then(answer => { 16 | console.log("Answered", answer); 17 | state.enabled = answer; 18 | if (answer) { 19 | console.log("User accepted, activating..."); 20 | onActivate(context); 21 | vscode.window.showInformationMessage("Isaac Lua VSCode activated! (You won't need to do this again in this workspace)"); 22 | }; 23 | state.asked = true; 24 | }); 25 | } 26 | }); 27 | } 28 | 29 | async function askActivation() { 30 | const yesItem = { title: 'Yes' }; 31 | const noItem = { title: 'No' }; 32 | const out = await vscode.window.showInformationMessage( 33 | 'Detected files matching an Isaac mod project (metadata.xml and lua files), do you want to activate isaac-vscode-lua?\nYou can do this later with the ', 34 | yesItem, noItem 35 | ); 36 | return out === yesItem; 37 | } 38 | 39 | async function checkIsModEnvironment() { 40 | return (await vscode.workspace.findFiles('**/metadata.xml')).length > 0 41 | && (await vscode.workspace.findFiles('**.lua')).length > 0; 42 | } 43 | 44 | export { checkActivate }; -------------------------------------------------------------------------------- /src/docs/repentogon_new/EntityDesc.lua: -------------------------------------------------------------------------------- 1 | ---@class EntityDesc 2 | local EntityDesc = {} 3 | 4 | ---@param entType? EntityType @default: `0` 5 | ---@param variant? integer @default: `0` 6 | ---@param subtype? integer @default: `0` 7 | ---@param championColor? ChampionColor @default: `-1` 8 | ---@param health? number @default: `0.0` 9 | ---@param maxHealth? number @default: `0.0` 10 | ---@param playerControlled? boolean @default: `false` 11 | function _G.EntityDesc(entType, variant, subtype, championColor, health, maxHealth, playerControlled) 12 | end 13 | 14 | ---@return EntityType 15 | function EntityDesc:GetType() 16 | end 17 | 18 | ---@return integer 19 | function EntityDesc:GetVariant() 20 | end 21 | 22 | ---@return integer 23 | function EntityDesc:GetSubtype() 24 | end 25 | 26 | ---@return ChampionColor 27 | function EntityDesc:GetChampionId() 28 | end 29 | 30 | ---@return number 31 | function EntityDesc:GetHealth() 32 | end 33 | 34 | ---@return number 35 | function EntityDesc:GetMaxHealth() 36 | end 37 | 38 | ---@return boolean 39 | function EntityDesc:IsPlayerControlled() 40 | end 41 | 42 | ---@param entType EntityType 43 | function EntityDesc:SetType(entType) 44 | end 45 | 46 | ---@param variant integer 47 | function EntityDesc:SetVariant(variant) 48 | end 49 | 50 | ---@param subtype integer 51 | function EntityDesc:SetSubtype(subtype) 52 | end 53 | 54 | ---@param championColor ChampionColor 55 | function EntityDesc:SetChampionId(championColor) 56 | end 57 | 58 | ---@param health number 59 | function EntityDesc:SetHealth(health) 60 | end 61 | 62 | ---@param maxHealth number 63 | function EntityDesc:SetMaxHealth(maxHealth) 64 | end 65 | 66 | ---@param playerControlled boolean 67 | function EntityDesc:SetPlayerControlled(playerControlled) 68 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/StatsMenu.lua: -------------------------------------------------------------------------------- 1 | ---@class StatsMenu 2 | _G.StatsMenu = {} 3 | 4 | ---@return Sprite 5 | function StatsMenu.GetSecretsMenuSprite() 6 | end 7 | 8 | ---@return Sprite 9 | function StatsMenu.GetSecretsMenuCursorLeftSprite() 10 | end 11 | 12 | ---@return Sprite 13 | function StatsMenu.GetSecretsMenuCursorRightSprite() 14 | end 15 | 16 | --Returns the secrets menu mini sprite #1. Used for the left scroll transition animation. 17 | ---@return Sprite 18 | function StatsMenu.GetSecretsMenuMiniSprite1() 19 | end 20 | 21 | ---@return Sprite 22 | function StatsMenu.GetSecretsMenuMiniSprite2() 23 | end 24 | 25 | ---@return Sprite 26 | function StatsMenu.GetSecretsMenuMiniSprite3() 27 | end 28 | 29 | ---@return Sprite 30 | function StatsMenu.GetSecretsMenuMiniSprite4() 31 | end 32 | 33 | ---Returns the secrets menu mini sprite #5. Used to display the currently highlighted achievement. 34 | ---@return Sprite 35 | function StatsMenu.GetSecretsMenuMiniSprite5() 36 | end 37 | 38 | ---@return Sprite 39 | function StatsMenu.GetSecretsMenuMiniSprite6() 40 | end 41 | 42 | ---@return Sprite 43 | function StatsMenu.GetSecretsMenuMiniSprite7() 44 | end 45 | 46 | ---@return Sprite 47 | function StatsMenu.GetSecretsMenuMiniSprite8() 48 | end 49 | 50 | ---Returns the secrets menu mini sprite #9. Used for the right scroll transition animation. 51 | ---@return Sprite 52 | function StatsMenu.GetSecretsMenuMiniSprite9() 53 | end 54 | 55 | ---@return Sprite 56 | function StatsMenu.GetStatsMenuSprite() 57 | end 58 | 59 | ---@return boolean 60 | function StatsMenu.IsSecretsMenuVisible() 61 | end 62 | 63 | ---@param element integer 64 | function StatsMenu.SetSelectedElement(element) 65 | end 66 | 67 | ---@return integer 68 | function StatsMenu.GetSelectedElement() 69 | end 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/ColorParams.lua: -------------------------------------------------------------------------------- 1 | ---@class ColorParams 2 | local ColorParams = {} 3 | 4 | ---@param color Color 5 | ---@param priority integer 6 | ---@param duration1 integer 7 | ---@param duration2 integer 8 | ---@param fadeout boolean 9 | ---@param shared boolean 10 | ---@return ColorParams 11 | function _G.ColorParams(color, priority, duration1, duration2, fadeout, shared) 12 | end 13 | 14 | ---@return Color 15 | function ColorParams:GetColor() 16 | end 17 | 18 | ---Defines the time in update frames that these parameters should last. Has no effect on how many frames are left, but does affect fadeout speed (calculated as `lifespan / duration`) if `fadeout` is enabled. 19 | ---@return integer 20 | function ColorParams:GetDuration() 21 | end 22 | 23 | ---@return boolean 24 | function ColorParams:GetFadeout() 25 | end 26 | 27 | ---Defines how many update frames are left before this expires. This is decremented by `1` each non-interpolation update at a rate of `30` per second. Altering this will directly effect how many frames are left before these parameters expire. 28 | 29 | ---@return integer 30 | function ColorParams:GetLifespan() 31 | end 32 | 33 | ---@return integer 34 | function ColorParams:GetPriority() 35 | end 36 | 37 | ---@return boolean 38 | function ColorParams:GetShared() 39 | end 40 | 41 | ---@param color Color 42 | function ColorParams:SetColor(color) 43 | end 44 | 45 | ---@param duration integer 46 | function ColorParams:SetDuration(duration) 47 | end 48 | 49 | ---@param value boolean 50 | function ColorParams:SetFadeout(value) 51 | end 52 | 53 | ---@param duration integer 54 | function ColorParams:SetLifespan(duration) 55 | end 56 | 57 | ---@param priority integer 58 | function ColorParams:SetPriority(priority) 59 | end 60 | 61 | ---@param value boolean 62 | function ColorParams:SetShared(value) 63 | end 64 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/Point.lua: -------------------------------------------------------------------------------- 1 | ---@class Point 2 | local Point = {} 3 | 4 | ---@param position Vector 5 | ---@param spritesheetCoordinate number The Y position of the spritesheet that should be drawn by the time this Point is reached. For example, two points of `0` and `64` SpritesheetCoordinate will render the spritesheet starting from `y 0` to `y 64`, while an additional third point of `0` will draw it in reverse from `y 64` to `y 0`. `width` acts as 6 | ---@param width? number @default: `1.0`. A multiplier for how wide the beam should be. A non-zero value will scale the spritesheet width accordingly. This is interpolated between points. 7 | ---@param color? Color @default: `Color.Default` 8 | ---@param isWorldSpace? boolean @default: `false` 9 | ---@return Point 10 | function _G.Point(position, spritesheetCoordinate, width, color, isWorldSpace) 11 | end 12 | 13 | ---@return number 14 | function Point:GetSpritesheetCoordinate() 15 | end 16 | 17 | ---@return number 18 | function Point:GetWidth() 19 | end 20 | 21 | ---@return Vector 22 | function Point:GetPosition() 23 | end 24 | 25 | ---@param height number 26 | function Point:SetSpritesheetCoordinate(height) 27 | end 28 | 29 | ---@param width number 30 | function Point:SetWidth(width) 31 | end 32 | 33 | ---@param position Vector 34 | function Point:SetPosition(position) 35 | end 36 | 37 | ---@return Color 38 | function Point:GetColor() 39 | end 40 | 41 | ---@param color Color 42 | function Point:SetColor(color) 43 | end 44 | 45 | ---If false, Point is using screenspace when rendering. Otherwise, it's using worldspace. 46 | ---@return boolean 47 | function Point:GetIsWorldSpace() 48 | end 49 | 50 | ---If false, automatically converts this Point's position from worldspace to screenspace when rendering. 51 | ---@param isWorldSpace boolean 52 | function Point:SetIsWorldSpace(isWorldSpace) 53 | end -------------------------------------------------------------------------------- /src/docs/vanilla/ItemPool.lua: -------------------------------------------------------------------------------- 1 | ---@class ItemPool 2 | local ItemPool = {} 3 | 4 | ---@param Add integer 5 | ---@param PoolType ItemPoolType 6 | function ItemPool:AddBibleUpgrade(Add, PoolType) 7 | end 8 | 9 | ---@param Item CollectibleType 10 | function ItemPool:AddRoomBlacklist(Item) 11 | end 12 | 13 | ---@param ID PillEffect 14 | ---@return PillColor 15 | function ItemPool:ForceAddPillEffect(ID) 16 | end 17 | 18 | ---@param Seed integer 19 | ---@param Playing boolean 20 | ---@param Rune boolean 21 | ---@param OnlyRunes boolean 22 | ---@return Card 23 | function ItemPool:GetCard(Seed, Playing, Rune, OnlyRunes) 24 | end 25 | 26 | ---@return ItemPoolType 27 | function ItemPool:GetLastPool() 28 | end 29 | 30 | ---@param Seed integer 31 | ---@return PillColor 32 | function ItemPool:GetPill(Seed) 33 | end 34 | 35 | ---@param PillColor PillColor 36 | ---@param Player? EntityPlayer @default: `nil` 37 | ---@return PillEffect 38 | function ItemPool:GetPillEffect(PillColor, Player) 39 | end 40 | 41 | ---@param RoomType RoomType 42 | ---@param Seed integer 43 | ---@return ItemPoolType 44 | function ItemPool:GetPoolForRoom(RoomType, Seed) 45 | end 46 | 47 | ---@param DontAdvanceRNG? boolean @default: `false` 48 | ---@return TrinketType 49 | function ItemPool:GetTrinket(DontAdvanceRNG) 50 | end 51 | 52 | ---@param PillColor PillColor 53 | function ItemPool:IdentifyPill(PillColor) 54 | end 55 | 56 | ---@param PillColor PillColor 57 | ---@return boolean 58 | function ItemPool:IsPillIdentified(PillColor) 59 | end 60 | 61 | ---@param Collectible CollectibleType 62 | ---@return boolean 63 | function ItemPool:RemoveCollectible(Collectible) 64 | end 65 | 66 | ---@param Trinket TrinketType 67 | ---@return boolean 68 | function ItemPool:RemoveTrinket(Trinket) 69 | end 70 | 71 | function ItemPool:ResetRoomBlacklist() 72 | end 73 | 74 | function ItemPool:ResetTrinkets() 75 | end 76 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/menus/MenuManager.lua: -------------------------------------------------------------------------------- 1 | ---@class MenuManager 2 | _G.MenuManager = {} 3 | 4 | ---Returns the active menu on the main menu matching `MainMenuType`. 5 | ---@return MainMenuType 6 | function MenuManager.GetActiveMenu() 7 | end 8 | 9 | ---@return Sprite 10 | function MenuManager.GetBackWidgetSprite() 11 | end 12 | 13 | ---Returns the color modifier lerp amount. This is formatted as the absolute rate of change. 14 | ---@return number 15 | function MenuManager.GetColorModifierLerpAmount() 16 | end 17 | 18 | ---@return ColorModifier 19 | function MenuManager.GetCurrentColorModifier() 20 | end 21 | 22 | ---@return Sprite 23 | function MenuManager.GetSelectWidgetSprite() 24 | end 25 | 26 | ---@return Sprite 27 | function MenuManager.GetShadowSprite() 28 | end 29 | 30 | ---@return ColorModifier 31 | function MenuManager.GetTargetColorModifier() 32 | end 33 | 34 | ---@return Vector 35 | function MenuManager.GetViewPosition() 36 | end 37 | 38 | ---Changes the active menu on the main menu to match the given `MainMenuType`. 39 | ---@param menuType MainMenuType 40 | function MenuManager.SetActiveMenu(menuType) 41 | end 42 | 43 | ---@param colorModifier ColorModifier 44 | ---@param lerp? boolean @default: `true` 45 | ---@param rate? number @default: `0.015`. 46 | function MenuManager.SetColorModifier(colorModifier, lerp, rate) 47 | end 48 | 49 | ---@param position Vector 50 | function MenuManager.SetViewPosition(position) 51 | end 52 | 53 | ---Selectively allows/disallows the game's menu to read certain inputs. Useful for custom menus. 54 | ---@param mask ButtonActionBitwise 55 | function MenuManager.SetInputMask(mask) 56 | end 57 | 58 | ---@return ButtonActionBitwise 59 | function MenuManager.GetInputMask() 60 | end 61 | 62 | ---Returns true when MenuManager is ready to be used a.k.a if you can use the MenuManager's functions (normally, if you are at the main menu) 63 | ---@return boolean 64 | function MenuManager.IsActive() 65 | end -------------------------------------------------------------------------------- /src/docs/vanilla/MusicManager.lua: -------------------------------------------------------------------------------- 1 | ---@class MusicManager 2 | local MusicManager = {} 3 | 4 | ---@return MusicManager 5 | function _G.MusicManager() 6 | end 7 | 8 | ---@param ID Music 9 | ---@param FadeRate? number @default: `0.08` 10 | function MusicManager:Crossfade(ID, FadeRate) 11 | end 12 | 13 | function MusicManager:Disable() 14 | end 15 | 16 | ---@param LayerId? integer @default: `0` 17 | function MusicManager:DisableLayer(LayerId) 18 | end 19 | 20 | function MusicManager:Enable() 21 | end 22 | 23 | ---@param LayerId? integer @default: `0` 24 | ---@param Instant? boolean @default: `false` 25 | function MusicManager:EnableLayer(LayerId, Instant) 26 | end 27 | 28 | ---@param ID Music 29 | ---@param Volume? number @default: `1` 30 | ---@param FadeRate? number @default: `0.08` 31 | function MusicManager:Fadein(ID, Volume, FadeRate) 32 | end 33 | 34 | ---@param FadeRate? number @default: `0.08` 35 | function MusicManager:Fadeout(FadeRate) 36 | end 37 | 38 | ---@return Music 39 | function MusicManager:GetCurrentMusicID() 40 | end 41 | 42 | ---@return Music 43 | function MusicManager:GetQueuedMusicID() 44 | end 45 | 46 | ---@return boolean 47 | function MusicManager:IsEnabled() 48 | end 49 | 50 | ---@param LayerId? integer @default: `0` 51 | ---@return boolean 52 | function MusicManager:IsLayerEnabled(LayerId) 53 | end 54 | 55 | function MusicManager:Pause() 56 | end 57 | 58 | ---@param TargetPitch number 59 | function MusicManager:PitchSlide(TargetPitch) 60 | end 61 | 62 | ---@param ID Music 63 | ---@param Volume number 64 | function MusicManager:Play(ID, Volume) 65 | end 66 | 67 | ---@param ID Music 68 | function MusicManager:Queue(ID) 69 | end 70 | 71 | function MusicManager:ResetPitch() 72 | end 73 | 74 | function MusicManager:Resume() 75 | end 76 | 77 | function MusicManager:UpdateVolume() 78 | end 79 | 80 | ---@param TargetVolume number 81 | ---@param FadeRate? number @default: `0.08` 82 | function MusicManager:VolumeSlide(TargetVolume, FadeRate) 83 | end 84 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/hud/HUD.lua: -------------------------------------------------------------------------------- 1 | ---@class HUD 2 | local HUD = {} 3 | 4 | ---Flashes the red hearts on the hud tied to the provided player. 5 | ---@param player EntityPlayer 6 | function HUD:FlashRedHearts(player) 7 | end 8 | 9 | ---Get the fill of the boss hp bar 10 | ---@return number 11 | function HUD:GetBossHPBarFill() 12 | end 13 | 14 | ---Sprite object used to render pills, cards and rune sprites in the hud. 15 | ---@return Sprite 16 | function HUD:GetCardsPillsSprite() 17 | end 18 | 19 | ---@return Sprite 20 | function HUD:GetChargeBarSprite() 21 | end 22 | 23 | ---Sprite object used to render the coop player selection menu. 24 | ---@return Sprite 25 | function HUD:GetCoopMenuSprite() 26 | end 27 | 28 | ---Sprite object used for bag of crafting hud. 29 | ---@return Sprite 30 | function HUD:GetCraftingSprite() 31 | end 32 | 33 | ---Sprite object used for the fortune popup window. 34 | ---@return Sprite 35 | function HUD:GetFortuneSprite() 36 | end 37 | 38 | ---@return Sprite 39 | function HUD:GetHeartsSprite() 40 | end 41 | 42 | ---Sprite object used for Tainted Isaac inventory system. 43 | ---@return Sprite 44 | function HUD:GetInventorySprite() 45 | end 46 | 47 | ---@return Sprite 48 | function HUD:GetPickupsHUDSprite() 49 | end 50 | 51 | ---@param index? integer @default: `0` 52 | ---@return PlayerHUD 53 | function HUD:GetPlayerHUD(index) 54 | end 55 | 56 | ---Tainted blue baby poop spell sprite 57 | ---@return Sprite 58 | function HUD:GetPoopSpellSprite() 59 | end 60 | 61 | ---Sprite object used for text streak popups. For example: picking up items, displaying floor name, etc. 62 | ---@return Sprite 63 | function HUD:GetStreakSprite() 64 | end 65 | 66 | ---Sets the fill of the boss hp bar. 67 | ---@param percent number Accepts values between `0` and `1`. Numbers below `0` cause the boss hp bar to not be rendered. 68 | function HUD:SetBossHPBarFill(percent) 69 | end 70 | 71 | ---@return Sprite 72 | function HUD:GetStackedStreakSprite() 73 | end 74 | 75 | ---@return Sprite 76 | function HUD:GetPlayerStreakSprite() 77 | end -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/entity/EntityPlayer.lua: -------------------------------------------------------------------------------- 1 | ---@class EntityPlayer 2 | ---@field FriendBallEnemy userdata @EntityDesc @const 3 | 4 | ---@param CacheFlag CacheFlag 5 | function EntityPlayer:AddCacheFlags(CacheFlag) 6 | end 7 | 8 | ---@param FamiliarVariant integer 9 | ---@param TargetCount integer 10 | ---@param rng RNG 11 | ---@param SourceItemConfigItem? ItemConfigItem @default: `nil` 12 | ---@param FamiliarSubType? integer @default: `-1` 13 | function EntityPlayer:CheckFamiliar(FamiliarVariant, TargetCount, rng, SourceItemConfigItem, FamiliarSubType) 14 | end 15 | 16 | function EntityPlayer:ClearDeadEyeCharge() 17 | end 18 | 19 | ---@param WeaponType? WeaponType @default: `WeaponType.WEAPON_TEARS` 20 | ---@return userdata @MultiShotParams 21 | function EntityPlayer:GetMultiShotParams(WeaponType) 22 | end 23 | 24 | ---@param SlotId integer 25 | ---@return userdata @PocketItem 26 | function EntityPlayer:GetPocketItem(SlotId) 27 | end 28 | 29 | ---@param LoopIndex integer 30 | ---@param Weapon WeaponType 31 | ---@param ShotDirection Vector 32 | ---@param ShotSpeed number 33 | ---@param params userdata @MultiShotParams 34 | ---@return PosVel 35 | function EntityPlayer:GetMultiShotPositionVelocity(LoopIndex, Weapon, ShotDirection, ShotSpeed, params) 36 | end 37 | 38 | ---@param Type CollectibleType 39 | ---@param IgnoreModifiers? boolean @default: `false` 40 | ---@return boolean 41 | function EntityPlayer:HasCollectible(Type, IgnoreModifiers) 42 | end 43 | 44 | ---@param Type CollectibleType 45 | ---@param OnlyCountTrueItems? boolean @default: `false` 46 | ---@return integer 47 | function EntityPlayer:GetCollectibleNum(Type, OnlyCountTrueItems) 48 | end 49 | 50 | ---@param Item CollectibleType 51 | ---@param UseFlags? UseFlag @default: `0` 52 | ---@param Slot? ActiveSlot | -1 @default: `-1` 53 | ---@overload fun(self: EntityPlayer, Item: CollectibleType, ShowAnim?: boolean, KeepActiveItem?: boolean, AllowNonMainPlayer?: boolean, ToAddCostume?: boolean, Slot?: ActiveSlot | -1) 54 | function EntityPlayer:UseActiveItem(Item, UseFlags, Slot) 55 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/Ambush.lua: -------------------------------------------------------------------------------- 1 | ---@class Ambush 2 | _G.Ambush = {} 3 | 4 | ---@return integer 5 | function Ambush.GetCurrentWave() end 6 | 7 | ---Returns the maximum amount of boss rush waves. 8 | ---@return integer numWaves By default, the maximum amount of boss rush waves are `15`. It's important to note that mods can modify the maximum amount of boss rush waves. 9 | function Ambush.GetMaxBossrushWaves() end 10 | 11 | ---Returns the maximum amount of challenge room waves. 12 | ---@return integer numWaves By default, the maximum amount of challenge room waves are `3`. It's important to note that mods can modify the maximum amount of challenge room waves. 13 | function Ambush.GetMaxChallengeWaves() end 14 | 15 | ---@return RoomConfigRoom 16 | function Ambush.GetNextWave() end 17 | 18 | ---@return RoomConfigRoom[] 19 | function Ambush.GetNextWaves() end 20 | 21 | ---Sets the maximum amount of boss rush waves. This caps out at `25`. 22 | ---@param waves integer 23 | function Ambush.SetMaxBossrushWaves(waves) end 24 | 25 | ---**BUG:** Currently, the value returned from this function is not reset on game restart. 26 | ---@param waves integer 27 | function Ambush.SetMaxChallengeWaves(waves) end 28 | 29 | ---**BUG:** Calling this function will do nothing unless a boss rush has been triggered at least once during the current game session. 30 | function Ambush.SpawnBossrushWave() end 31 | 32 | ---**BUG:** Calling this function crashes the game if the current game mode is Greed or Greedier. 33 | --- 34 | ---The game also crashes if the current floor is Blue Womb. 35 | function Ambush.SpawnWave() end 36 | 37 | ---**BUG:** Calling this function outside of the boss rush room or a challenge room will do nothing except permanently close the doors, resulting in a softlock. 38 | function Ambush.StartChallenge() end 39 | 40 | ---Gets the number of waves in a boss challenge room 41 | ---@return integer 42 | function Ambush.GetMaxBossChallengeWaves() end 43 | 44 | ---Sets the number of waves in a boss challenge room 45 | function Ambush.SetMaxBossChallengeWaves() end -------------------------------------------------------------------------------- /src/docs/repentogon_changes/RoomDescriptor.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomDescriptorDoors 2 | 3 | ---@class RoomDescriptor 4 | ---Allows you to check which level grid index each DoorSlot in the room connects to. 5 | --- 6 | ---For example, roomdesc.Doors[DoorSlot.UP0] provides the level grid index that the upwards door would connect to. 7 | --- 8 | ---The value will be -1 if the RoomShape does not allow a door in that slot. 9 | --- 10 | ---Note that this typically provides a valid index even if there is no door present, and even if the room itself does not allow a door in that slot. 11 | ---@field Doors {[DoorSlot]: RoomDescriptorDoors} 12 | ---Returns a bitmask corresponding to which door slots are currently enabled. 13 | --- 14 | ---Doors are typically only included in this bitmask when there is a door currently present, even if the room would allow a door in that slot. 15 | ---@field AllowedDoors integer 16 | ---@field BossDeathSeed integer 17 | local RoomDescriptor_RGON = {} 18 | 19 | -- Note: in current emmylua, defining class twice to add fields to it is valid, as done above 20 | 21 | ---@param gridIndex integer 22 | function RoomDescriptor_RGON:AddRestrictedGridIndex(gridIndex) end 23 | 24 | ---@return EntitiesSaveStateVector 25 | function RoomDescriptor_RGON:GetGridEntitiesSaveState(gridIndex) end 26 | 27 | ---@return EntitiesSaveStateVector 28 | function RoomDescriptor_RGON:GetEntitiesSaveState() end 29 | 30 | ---@return integer[] 31 | function RoomDescriptor_RGON:GetRestrictedGridIndexes() end 32 | 33 | ---@param rng RNG 34 | function RoomDescriptor_RGON:InitSeeds(rng) 35 | end 36 | 37 | ---@return Dimension 38 | function RoomDescriptor_RGON:GetDimension() 39 | end 40 | 41 | ---@return {[DoorSlot]: RoomDescriptor} 42 | function RoomDescriptor_RGON:GetNeighboringRooms() 43 | end 44 | 45 | ---Prevents coin spawn from killed enemies on room reenter when counter reaches 10. 46 | function RoomDescriptor_RGON:GetTaintedKeeperCoinSpawns() 47 | end 48 | 49 | ---@param numSpawns integer 50 | function RoomDescriptor_RGON:SetTaintedKeeperCoinSpawns(numSpawns) 51 | end -------------------------------------------------------------------------------- /src/docs/repentogon_changes/RNG.lua: -------------------------------------------------------------------------------- 1 | ---@param Seed? integer @default: `2853650767` 2 | ---@param ShiftIdx? integer @default: `35` 3 | ---@return RNG 4 | function _G.RNG(Seed, ShiftIdx) 5 | end 6 | 7 | ---@overload fun(self: RNG, Min: integer, Max: integer): integer 8 | ---@return integer 9 | function RNG:RandomInt(Max) 10 | end 11 | 12 | ---@param Seed integer 13 | ---@param ShiftIdx? integer 14 | function RNG:SetSeed(Seed, ShiftIdx) 15 | end 16 | 17 | ---Returns a float between `0` (inclusive) and `1` (exclusive). 18 | --- 19 | ---This does not advance the internal state of the RNG object. 20 | ---@return number 21 | function RNG:PhantomFloat() 22 | end 23 | 24 | ---Returns an integer between `0` (inclusive) and the max value (exclusive). 25 | --- 26 | ---This does not advance the internal state of the RNG object. 27 | ---@param max integer 28 | ---@return integer 29 | function RNG:PhantomInt(max) 30 | end 31 | 32 | ---Returns a random vector with length `1`. 33 | --- 34 | ---This does not advance the internal state of the RNG object. 35 | ---@return Vector 36 | function RNG:PhantomVector() 37 | end 38 | 39 | ---Returns a random vector with length `1`. 40 | ---@return Vector 41 | function RNG:RandomVector() 42 | end 43 | 44 | ---Returns the shift index used by the RNG object. By default, vanilla RNG objects use `35`. 45 | ---@return integer 46 | function RNG:GetShiftIdx() 47 | end 48 | 49 | ---Similar to `:Next()`, except it does not affect the internal state of the RNG object and serves to only return its seed if it did. 50 | ---@return integer 51 | function RNG:PhantomNext() 52 | end 53 | 54 | ---"Iterates" the RNG's seed to the previous random number in the psuedo-random sequence. (The internal PRNG algorithm used is Xorshift.) 55 | ---@return integer --Integer returned is the new seed of the RNG object. 56 | function RNG:Previous() 57 | end 58 | 59 | ---Similar to `:Previous()`, except it does not affect the internal state of the RNG object and serves to only return its seed if it did. 60 | ---@return integer 61 | function RNG:PhantomPrevious() 62 | end 63 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/RepentogonGlobal.lua: -------------------------------------------------------------------------------- 1 | ---@class REPENTOGON 2 | ---@field Version string 3 | ---@field Real true 4 | ---@field Name "REPENTOGON" 5 | ---@field Extras REPENTOGON_Extras 6 | _G.REPENTOGON = {} 7 | 8 | ---Checks if REPENTOGON meets specified version. Always returns `true` on dev builds. 9 | ---@param targetVersion string 10 | ---@return boolean 11 | function REPENTOGON.MeetsVersion(targetVersion) end 12 | 13 | ---@class REPENTOGON_Extras 14 | ---@field Changelog REPENTOGON_Changelog 15 | ---@field StatsMenu REPENTOGON_StatsMenu 16 | ---@field BestiaryMenu REPENTOGON_BestiaryMenu 17 | ---@field Misc {NoRPTGNFldrErr: function} 18 | 19 | ---@class REPENTOGON_Changelog 20 | ---@field AssetsLoaded boolean 21 | ---@field CurrentSheet integer 22 | ---@field CurrentState boolean 23 | ---@field ChangelogSprite Sprite 24 | ---@field Font Font 25 | ---@field FontColor KColor 26 | ---@field LineHeight number 27 | ---@field NoteOffset Vector 28 | ---@field NoteSprite Sprite 29 | ---@field PaperOffset Vector 30 | ---@field Sheets {Text: string, TextArray: string[]}[] 31 | ---@field ScrollSpeed number 32 | ---@field ScrollItertia number 33 | ---@field VersionFont Font 34 | ---@field VersionOffset Vector 35 | ---@field EvaluateText function 36 | ---@field LoadAssets function 37 | ---@field MenuRender function 38 | 39 | ---@class REPENTOGON_StatsMenu 40 | ---@field ArrowSprite Sprite 41 | ---@field CurrentlyDisplayedCategoryID integer 42 | ---@field LeftArrowSpritePos Vector 43 | ---@field RightArrowSpritePos Vector 44 | ---@field ScheduleRefresh boolean 45 | ---@field StatPageAngleOffsetX number 46 | ---@field StatPageNumberOffsetX number 47 | ---@field StatSheetSprite Sprite 48 | ---@field StatSheetSpritePos Vector 49 | ---@field Stats [string,[string, number|string|fun():number|string][]][] 50 | 51 | ---@class REPENTOGON_BestiaryMenu 52 | ---@field ArrowSprite Sprite 53 | ---@field BestiarySheetSprite Sprite 54 | ---@field BestiarySheetSpritePos Vector 55 | ---@field PageTextPos Vector 56 | ---@field PageWidgetPos Vector 57 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/entity/EntityBomb.lua: -------------------------------------------------------------------------------- 1 | ---@param layerID BombCostumeLayer 2 | ---@return Sprite 3 | function EntityBomb:GetCostumeLayerSprite(layerID) 4 | end 5 | 6 | ---@return integer 7 | function EntityBomb:GetExplosionCountdown() 8 | end 9 | 10 | ---@return number 11 | function EntityBomb:GetFallSpeed() 12 | end 13 | 14 | ---@return number 15 | function EntityBomb:GetFallAcceleration() 16 | end 17 | 18 | ---@return integer[] 19 | function EntityBomb:GetHitList() 20 | end 21 | 22 | ---@return number 23 | function EntityBomb:GetScale() 24 | end 25 | 26 | ---@return boolean 27 | function EntityBomb:IsLoadingCostumes() 28 | end 29 | 30 | ---@param speed number 31 | function EntityBomb:SetFallSpeed(speed) 32 | end 33 | 34 | ---@param acceleration number 35 | function EntityBomb:SetFallAcceleration(acceleration) 36 | end 37 | 38 | ---@param load? boolean @default: `true` 39 | function EntityBomb:SetLoadCostumes(load) 40 | end 41 | 42 | ---@param scale number 43 | function EntityBomb:SetScale(scale) 44 | end 45 | 46 | function EntityBomb:UpdateDirtColor() 47 | end 48 | 49 | ---Target angle for rocket bombs. It influences both their movement and the orientation of their sprite. 50 | ---@return number 51 | function EntityBomb:GetRocketAngle() 52 | end 53 | 54 | ---Target angle for rocket bombs. It influences both their movement and the orientation of their sprite. 55 | ---@param angle number 56 | function EntityBomb:SetRocketAngle(angle) 57 | end 58 | 59 | ---Target speed for rocket bombs. Naturally increases by 1 every frame. 60 | ---@return number 61 | function EntityBomb:GetRocketSpeed() 62 | end 63 | 64 | ---Target speed for rocket bombs. Naturally increases by 1 every frame. 65 | ---@param speed number 66 | function EntityBomb:SetRocketSpeed(speed) 67 | end 68 | 69 | ---Returns if the bomb was created through the Angelic Prism effect. 70 | ---@return boolean 71 | function EntityBomb:IsPrismTouched() 72 | end 73 | 74 | ---Sets if the bomb was created through the Angelic Prism effect. 75 | ---@param IsTouched boolean 76 | function EntityBomb:SetPrismTouched(IsTouched) 77 | end 78 | -------------------------------------------------------------------------------- /src/docs/vanilla/gridentity/GridEntityDoor.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntityDoor : GridEntity 2 | ---@field Busted boolean 3 | ---@field CloseAnimation string 4 | ---@field CurrentRoomType RoomType 5 | ---@field Direction Direction 6 | ---@field ExtraSprite Sprite 7 | ---@field ExtraVisible boolean 8 | ---@field LockedAnimation string 9 | ---@field OpenAnimation string 10 | ---@field OpenLockedAnimation string 11 | ---@field PreviousState integer 12 | ---@field PreviousVariant integer 13 | ---@field Slot DoorSlot 14 | ---@field TargetRoomIndex integer 15 | ---@field TargetRoomType RoomType 16 | local GridEntityDoor = {} 17 | 18 | function GridEntityDoor:Bar() 19 | end 20 | 21 | ---@return boolean 22 | function GridEntityDoor:CanBlowOpen() 23 | end 24 | 25 | ---@param Force? boolean 26 | function GridEntityDoor:Close(Force) 27 | end 28 | 29 | ---@return Vector 30 | function GridEntityDoor:GetSpriteOffset() 31 | end 32 | 33 | ---@return boolean 34 | function GridEntityDoor:IsBusted() 35 | end 36 | 37 | ---@return boolean 38 | function GridEntityDoor:IsKeyFamiliarTarget() 39 | end 40 | 41 | ---@return boolean 42 | function GridEntityDoor:IsLocked() 43 | end 44 | 45 | ---@return boolean 46 | function GridEntityDoor:IsOpen() 47 | end 48 | 49 | ---@param Type RoomType 50 | ---@return boolean 51 | function GridEntityDoor:IsRoomType(Type) 52 | end 53 | 54 | ---@return boolean 55 | function GridEntityDoor:IsTargetRoomArcade() 56 | end 57 | 58 | function GridEntityDoor:Open() 59 | end 60 | 61 | ---@param Locked boolean 62 | function GridEntityDoor:SetLocked(Locked) 63 | end 64 | 65 | ---@param CurrentRoomType RoomType 66 | ---@param TargetRoomType RoomType 67 | function GridEntityDoor:SetRoomTypes(CurrentRoomType, TargetRoomType) 68 | end 69 | 70 | function GridEntityDoor:SpawnDust() 71 | end 72 | 73 | ---@param FromExplosion boolean 74 | ---@param source Entity 75 | ---@return boolean 76 | function GridEntityDoor:TryBlowOpen(FromExplosion, source) 77 | end 78 | 79 | ---@param player EntityPlayer 80 | ---@param Force? boolean 81 | ---@return boolean 82 | function GridEntityDoor:TryUnlock(player, Force) 83 | end 84 | 85 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/Console.lua: -------------------------------------------------------------------------------- 1 | _G.Console = {} 2 | 3 | ---Returns a table containing current command history. 4 | ---@return string[] 5 | function Console.GetCommandHistory() 6 | end 7 | 8 | ---Returns a table containing every previous entry printed to the console. 9 | --- 10 | ---This is ordered last-to-first- the first entry will be the currently blank line awaiting user input, followed by the previous print, and so on. The last line will always be "Repentance Console". 11 | ---@return string[] 12 | function Console.GetHistory() 13 | end 14 | 15 | ---Removes previous lines from history. 16 | ---@param amount? number @default: `1`. The amount of lines to remove from the history. 17 | function Console.PopHistory(amount) 18 | end 19 | 20 | ---Prints an error to the console, errors display in red text. 21 | ---@param error string 22 | function Console.PrintError(error) 23 | end 24 | 25 | ---Prints a warning to the console, warnings display in yellow text. 26 | ---@param warning string 27 | function Console.PrintWarning(warning) 28 | end 29 | 30 | ---Registers a command in the new console. These will show up in the new console's autocomplete. 31 | ---@param name string The name of the command 32 | ---@param description string The description of the command. It will show when typing the `help` command. 33 | ---@param helpText string Helpful information about the command. It will show up when typing `help (name)`. 34 | ---@param showOnMenu boolean 35 | ---@param autoCompleteType AutocompleteType Has the command inherit the autocomplete type. If the command doesn't fit into any of the standard types, use `AutocompleteType.CUSTOM` combined with the `MC_CONSOLE_AUTOCOMPLETE` callback to create a bespoke one for this command. 36 | function Console.RegisterCommand(name, description, helpText, showOnMenu, autoCompleteType) 37 | end 38 | 39 | ---Registers a macro in the new console. These will show up in the new console's autocomplete for the `macro` command. 40 | ---@param name string The name of the macro 41 | ---@param commands string[] Table of strings containing the commands to be executed in order 42 | function Console.RegisterMacro(name, commands) 43 | end -------------------------------------------------------------------------------- /src/docs/vanilla/CppContainer.lua: -------------------------------------------------------------------------------- 1 | ---@class CppList 2 | ---@field Size integer 3 | local CppList = {} 4 | 5 | -- missing metamethod len as not supported for now 6 | 7 | ---@param idx integer 8 | ---@return any 9 | function CppList:Get(idx) 10 | end 11 | 12 | ---@class CppList_RoomDescriptor : CppList 13 | local CppList_RoomDescriptor = {} 14 | 15 | ---@param idx integer 16 | ---@return RoomDescriptor 17 | function CppList_RoomDescriptor:Get(idx) 18 | end 19 | 20 | ---@class CppList_RoomConfigSpawn : CppList 21 | local CppList_RoomConfigSpawn = {} 22 | 23 | ---@param idx integer 24 | ---@return RoomConfig_Spawn 25 | function CppList_RoomConfigSpawn:Get(idx) 26 | end 27 | 28 | ---@class CppList_RoomConfigEntries : CppList 29 | local CppList_RoomConfigEntries = {} 30 | 31 | ---@param idx integer 32 | ---@return RoomConfig_Entry 33 | function CppList_RoomConfigEntries:Get(idx) 34 | end 35 | 36 | ---@class EntityList : CppList 37 | local EntityList = {} 38 | 39 | ---@param idx integer 40 | ---@return Entity 41 | function EntityList:Get(idx) 42 | end 43 | 44 | ---@class CardConfigList : CppList 45 | local CardConfigList = {} 46 | 47 | ---@param idx integer 48 | ---@return ItemConfigCard 49 | function CardConfigList:Get(idx) 50 | end 51 | 52 | ---@class CostumeConfigList : CppList 53 | local CostumeConfigList = {} 54 | 55 | ---@param idx integer 56 | ---@return ItemConfigCostume 57 | function CostumeConfigList:Get(idx) 58 | end 59 | 60 | ---@class EffectList : CppList 61 | local EffectList = {} 62 | 63 | ---@param idx integer 64 | ---@return TemporaryEffect 65 | function EffectList:Get(idx) 66 | end 67 | 68 | ---@class ItemConfigList : CppList 69 | local ItemConfigList = {} 70 | 71 | ---@param idx integer 72 | ---@return ItemConfigItem 73 | function ItemConfigList:Get(idx) 74 | end 75 | 76 | ---@class PillConfigList : CppList 77 | local PillConfigList = {} 78 | 79 | ---@param idx integer 80 | ---@return ItemConfigPillEffect 81 | function PillConfigList:Get(idx) 82 | end 83 | 84 | ---@class VectorList : CppList 85 | local VectorList = {} 86 | 87 | ---@param idx integer 88 | ---@return Vector 89 | function VectorList:Get(idx) 90 | end 91 | 92 | ---@class CppList_intValues : CppList 93 | local CppList_intValues = {} 94 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/WeightedOutcomePicker.lua: -------------------------------------------------------------------------------- 1 | ---@class WeightedOutcomePicker 2 | local WeightedOutcomePicker = {} 3 | 4 | ---@return WeightedOutcomePicker 5 | function _G.WeightedOutcomePicker() 6 | end 7 | 8 | ---Adds an outcome to the outcome selector with the specified `weight`. The internal weight is still an integer calculated like this: `fWeight * scaleFactor`, where `scaleFactor` is the maximum weight (equivalent to `1.0`). 9 | --- 10 | --**Example Code** 11 | ---local picker = WeightedOutcomePicker() 12 | --- 13 | ---picker:AddOutcomeFloat(1, 1.0) -- ~45% 14 | ---picker:AddOutcomeFloat(2, 1.0) -- ~45% 15 | ---picker:AddOutcomeFloat(3, 0.2) -- ~9% 16 | ---@param value integer 17 | ---@param weight number 18 | ---@param scaleFactor? integer @default: `100` 19 | function WeightedOutcomePicker:AddOutcomeFloat(value, weight, scaleFactor) 20 | end 21 | 22 | ---Adds an outcome to the outcome selector with the specified `weight`. 23 | --- 24 | ---**Example Code** 25 | ---```lua 26 | ---local picker = WeightedOutcomePicker() 27 | --- 28 | ---picker:AddOutcomeWeight(1, 65) -- 65% 29 | ---picker:AddOutcomeWeight(2, 30) -- 30% 30 | ---picker:AddOutcomeWeight(3, 5) -- 5% 31 | ---``` 32 | ---@param value integer 33 | ---@param weight integer 34 | function WeightedOutcomePicker:AddOutcomeWeight(value, weight) 35 | end 36 | 37 | ---Clears all outcomes from the outcome picker. 38 | function WeightedOutcomePicker:ClearOutcomes() 39 | end 40 | 41 | ---Returns the number of outcomes in the outcome picker. 42 | ---@return integer 43 | function WeightedOutcomePicker:GetNumOutcomes() 44 | end 45 | 46 | ---@class WeightedOutcomePickerTable 47 | ---@field Value integer 48 | ---@field Weight number 49 | 50 | ---Returns a table containing a list of all outcomes in the outcome picker. 51 | ---@return WeightedOutcomePickerTable[] 52 | function WeightedOutcomePicker:GetOutcomes() 53 | end 54 | 55 | ---Returns a random outcome from the list in WeightedOutcomePicker. 56 | ---@param rng RNG 57 | ---@return integer 58 | function WeightedOutcomePicker:PickOutcome(rng) 59 | end 60 | 61 | ---Removes an outcome from the outcome picker with the given `value`. 62 | ---@param value integer 63 | function WeightedOutcomePicker:RemoveOutcome(value) 64 | end 65 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/GenericPrompt.lua: -------------------------------------------------------------------------------- 1 | ---@class GenericPrompt 2 | _G.GenericPrompt = {} 3 | 4 | ---Returns a GenericPrompt object. Allows for rendering a popup paper with the option to include text and tracking input for a yes/no decision. 5 | ---@return GenericPrompt 6 | function GenericPrompt() 7 | end 8 | 9 | ---@param SmallPrompt? boolean @default: `false`. If `true`, the prompt will be with much smaller paper instead 10 | function GenericPrompt:Initialize(SmallPrompt) 11 | end 12 | 13 | ---Starts showing the prompt on-screen. 14 | function GenericPrompt:Show() 15 | end 16 | 17 | ---Returns whether the prompt is active or not. 18 | ---@return boolean 19 | function GenericPrompt:IsActive() 20 | end 21 | 22 | ---Updates the animation of the prompt paper. 23 | ---@param ProcessInput boolean @`true` to track the player's input for selecting yes/no, `false` otherwise. 24 | function GenericPrompt:Update(ProcessInput) 25 | end 26 | 27 | ---Renders the prompt on-screen. Place this in any of the non-entity-specific RENDER callbacks. 28 | function GenericPrompt:Render() 29 | end 30 | 31 | ---Set text that will appear on the paper. 32 | ---@param Text1? string @default: `""`. Top line. Used as header text. Will be bold with a higher font size. 33 | ---@param Text2? string @default: `""`. Top-middle line. Used as header text. Will be bold with a higher font size. 34 | ---@param Text3? string @default: `""`. Middle line. Used as description text. 35 | ---@param Text4? string @default: `""`. Bottom-middle line. Used as description text. 36 | ---@param Text5? string @default: `""`. Bottom line. Used as description text. 37 | function GenericPrompt:SetText(Text1, Text2, Text3, Text4, Text5) 38 | end 39 | 40 | ---Returns the paper sprite of the prompt. 41 | ---@return Sprite 42 | function GenericPrompt:GetSprite() 43 | end 44 | 45 | ---Returns what selection the player is currently hovering over. 46 | ---@return integer 47 | ---|0 # No 48 | ---|1 # Yes 49 | function GenericPrompt:GetCurrentSelection() 50 | end 51 | 52 | ---Returns the chosen selection. Can return as 0 for "None" if the player dismisses the prompt. 53 | ---@return integer 54 | ---|0 # None 55 | ---|1 # Yes 56 | ---|2 # No 57 | function GenericPrompt:GetSubmittedSelection() 58 | end -------------------------------------------------------------------------------- /src/docs/no_repentogon_only/Room.lua: -------------------------------------------------------------------------------- 1 | 2 | ---@class LinecheckMode : integer 3 | 4 | ---GridPath values pseudo-enumeration: 5 | --- 6 | ---`900` : Set by some enemies when they pass through a tile. De-prioritises the tile for pathfinders. Degrades over time in steps of 100. 7 | --- 8 | ---`950` : Set by fire places. De-prioritises the tile for pathfinders. Does not degrade. 9 | --- 10 | ---`1000` : Set by grid entities. Invalidates the tile for pathfinders. Impedes grounded player movement. Does not degrade. 11 | --- 12 | ---`3000` : Set by pits. Invalidates the tile for pathfinders. Impedes grounded player movement. Does not degrade. 13 | --- 14 | ---`3999` : Set by grimaces. Invalidates the tile for pathfinders. Impedes grounded player movement. Drops to 900 and then degrades over time in steps of 100 (Grimaces reset value every frame). 15 | ---@param Pos1 Vector 16 | ---@param Pos2 Vector 17 | ---@param Mode integer 18 | ---|0 : Makes the line check collide with anything that impedes ground movement. 19 | ---|1 : A cheaper version of 0, but is not as reliable (for example, can return true if line of sight can be gained between diagonally adjacent rocks). 20 | ---|2 : Used for explosions, only collides with walls and indestructible blocks. 21 | ---|3 : Only collides with obstacles that can block projectiles. 22 | ---@param GridPathThreshold? integer @default: `0` 23 | ---@param IgnoreWalls? boolean @default: `false` 24 | ---@param IgnoreCrushable? boolean @default: `false` 25 | ---@return boolean, Vector 26 | function Room:CheckLine(Pos1, Pos2, Mode, GridPathThreshold, IgnoreWalls, IgnoreCrushable) 27 | end 28 | 29 | ---@param GridIndex integer 30 | ---@param Type GridEntityType 31 | ---@param Variant integer 32 | ---@param Seed integer 33 | ---@param VarData integer 34 | ---@return boolean 35 | function Room:SpawnGridEntity(GridIndex, Type, Variant, Seed, VarData) 36 | end 37 | 38 | ---Attempts to spawn either a door to the Mirror Dimension in Downpour, or the abandoned mineshaft in the Mines. 39 | ---@return boolean 40 | function Room:TrySpawnSpecialQuestDoor() 41 | end 42 | 43 | ---@return userdata @LRoomAreaDesc 44 | function Room:GetLRoomAreaDesc() 45 | end 46 | 47 | ---@return userdata @LRoomTileDesc 48 | function Room:GetLRoomTileDesc() 49 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/RoomConfigStage.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomConfigStage 2 | local RoomConfigStage = {} 3 | 4 | ---Returns the `BackdropType` used in default rooms on the stage. 5 | ---@return BackdropType 6 | function RoomConfigStage:GetBackdrop() 7 | end 8 | 9 | ---Returns the png used for the boss portrait on the boss intro. 10 | ---@return string 11 | function RoomConfigStage:GetBossSpot() 12 | end 13 | 14 | ---Returns the name of the stage. 15 | ---@return string 16 | function RoomConfigStage:GetDisplayName() 17 | end 18 | 19 | ---Returns the `Music` used in default rooms on the stage. 20 | ---@return Music 21 | function RoomConfigStage:GetMusic() 22 | end 23 | 24 | ---Returns the png used for the player portrait on the boss intro and nightmare transition. 25 | ---@return string 26 | function RoomConfigStage:GetPlayerSpot() 27 | end 28 | 29 | ---@param mode? integer @default: `0` 30 | ---|0 # Normal Mode rooms 31 | ---|1 # Greed Mode rooms 32 | ---@return RoomConfigSet 33 | function RoomConfigStage:GetRoomSet(mode) 34 | end 35 | 36 | ---Returns the suffix used by the stage for stage-unique sprites, such as the boss/player spot and unique variants for enemies. 37 | ---@return string 38 | function RoomConfigStage:GetSuffix() 39 | end 40 | 41 | ---Returns the `BackdropType` used in default rooms on the stage. 42 | ---@param backdropType BackdropType 43 | function RoomConfigStage:SetBackdrop(backdropType) 44 | end 45 | 46 | ---Sets the png used for the boss portrait on the boss intro. 47 | ---@param spritePath string 48 | function RoomConfigStage:SetBossSpot(spritePath) 49 | end 50 | 51 | ---Sets the name of the stage. 52 | ---@param name string 53 | function RoomConfigStage:SetDisplayName(name) 54 | end 55 | 56 | ---Sets the `Music` used in default rooms on the stage. 57 | ---@param music Music 58 | function RoomConfigStage:SetMusic(music) 59 | end 60 | 61 | ---Sets the png used for the player portrait on the boss intro and nightmare transition. 62 | ---@param spritePath string 63 | function RoomConfigStage:SetPlayerSpot(spritePath) 64 | end 65 | 66 | ---Sets the suffix used by the stage for stage-unique sprites, such as the boss/player spot and unique variants for enemies. 67 | ---@param suffix string 68 | function RoomConfigStage:SetSuffix(suffix) 69 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/entity/EntityDelirium.lua: -------------------------------------------------------------------------------- 1 | ---@class EntityDelirium : Entity 2 | ---@field Angle integer This variable is an eight bit integers, so the allowed values are the integers from 0 to 255 (inclusive). You can use a linear interpolation between the [0: 255] and the [0: 360[ ranges in order to convert angles in degree to this system. 3 | ---@field AttackID integer Internal `I1` value used by Delirium to identify the bullet hell pattern it is currently executing. 4 | ---@field BossType integer `EntityType` of the boss Delirium is currently transformed as. 5 | ---@field BossVariant integer Variant of the boss Delirium is currently transformed as. 6 | ---@field Cycle integer Internal `I2` value used by Delirium to identify whether red mode is activated and the amount of time before a teleportation. You should not use this variable directly and instead rely on the `GetTeleportationTimer`, `SetTeleportationTimer`, `IsRedMode` and `SetRedMode` functions instead. The only reason to use this variable directly is if you want to freeze it to a certain value that you know will do exactly what you want (for instance disable red mode and prevent teleportation). 7 | ---@field RemainingAttacks integer Number of attacks remaining before Delirium transforms into another boss. 8 | ---@field StateD NpcState Internal `State` of Delirium. 9 | ---@field TransformationTimer integer Get or set the amount of time before Delirium transforms into another boss. 10 | local EntityDelirium = {} 11 | 12 | ---@return integer 13 | function EntityDelirium:GetTeleportationTimer() 14 | end 15 | 16 | ---Returns a boolean indicating if the red mode is activated or not. 17 | ---@return boolean 18 | function EntityDelirium:IsRedMode() 19 | end 20 | 21 | ---Enable or disable red mode according to the parameter on. 22 | ---@param on boolean 23 | function EntityDelirium:SetRedMode(on) 24 | end 25 | 26 | ---Set the number of frames before Delirium teleports. Negative values are not allowed. 27 | ---@param timer integer 28 | function EntityDelirium:SetTeleportationTimer(timer) 29 | end 30 | 31 | ---Transform Delirium into the entity with the specified type and variant. 32 | ---@param type EntityType 33 | ---@param variant? integer @default: `0` 34 | function EntityDelirium:Transform(type, variant) 35 | end 36 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/RoomConfig.lua: -------------------------------------------------------------------------------- 1 | ---@class RoomConfig 2 | _G.RoomConfig = {} 3 | 4 | ---Returns a RoomConfigRoom corresponding to the given arguments. 5 | ---@param seed integer 6 | ---@param reduceWeight boolean If true, the selected room's weight is decreased. 7 | ---@param stage StbType The stage the room belongs to. 8 | ---@param type RoomType 9 | ---@param shape? RoomShape @default: `RoomShape.NUM_ROOMSHAPES`, which allows the function to pick a room regardless of its shape. 10 | ---@param minVariant? integer @default: `-1`. 11 | ---@param maxVariant? integer @default: `-1` 12 | ---@param minDifficulty? integer @default: `0.` 13 | ---@param maxDifficulty? integer @default: `10.` 14 | ---@param requiredDoors? integer @default: `0.` 15 | ---@param subType? integer @default: `-1`. 16 | ---@param mode? integer @default: `-1`. TODO: Document me! 17 | ---@return RoomConfigRoom 18 | function RoomConfig.GetRandomRoom(seed, reduceWeight, stage, type, shape, minVariant, maxVariant, minDifficulty, 19 | maxDifficulty, requiredDoors, subType, mode) 20 | end 21 | 22 | ---Returns a RoomConfigRoom corresponding to the given arguments. 23 | ---@param stage StbType 24 | ---@param type RoomType 25 | ---@param variant integer 26 | ---@param difficulty? integer @default: `-1`, pulling from all difficulties. 27 | ---@return RoomConfigRoom 28 | function RoomConfig.GetRoomByStageTypeAndVariant(stage, type, variant, difficulty) 29 | end 30 | 31 | ---@param StbType StbType 32 | ---@return RoomConfigStage 33 | function RoomConfig.GetStage(StbType) 34 | end 35 | 36 | ---Adds the provided Lua Rooms to the specified RoomConfigSet. For details on how to generate Lua Rooms, refer to the [Custom StageAPI Github page](https://github.com/Meowlala/BOIStageAPI15/tree/master). 37 | --- 38 | ---The function returns a table containing the placed RoomConfigRoom objects, in the same order as the input `Rooms` table. If a room at a given index could not be converted into a valid RoomConfigRoom, the corresponding entry in the returned table will be nil instead. 39 | ---@param stage StbType 40 | ---@param mode integer 41 | ---@param rooms table 42 | ---@return RoomConfigRoom[] 43 | function RoomConfig.AddRooms(stage, mode, rooms) 44 | end 45 | 46 | ---@alias RoomConfigHolder RoomConfig 47 | _G.RoomConfigHolder = RoomConfig -------------------------------------------------------------------------------- /src/docs/vanilla/Font.lua: -------------------------------------------------------------------------------- 1 | ---@class Font 2 | local Font = {} 3 | 4 | ---@return Font 5 | function _G.Font() 6 | end 7 | 8 | ---@param String string 9 | ---@param PositionX number 10 | ---@param PositionY number 11 | ---@param RenderColor KColor 12 | ---@param BoxWidth? integer @default: `0` 13 | ---@param Center? boolean @default: `false` 14 | function Font:DrawString(String, PositionX, PositionY, RenderColor, BoxWidth, Center) 15 | end 16 | 17 | ---@param String string 18 | ---@param PositionX number 19 | ---@param PositionY number 20 | ---@param ScaleX number 21 | ---@param ScaleY number 22 | ---@param RenderColor KColor 23 | ---@param BoxWidth? integer @default: `0` 24 | ---@param Center? boolean @default: `false` 25 | function Font:DrawStringScaled(String, PositionX, PositionY, ScaleX, ScaleY, RenderColor, BoxWidth, Center) 26 | end 27 | 28 | ---@param String string 29 | ---@param PositionX number 30 | ---@param PositionY number 31 | ---@param ScaleX number 32 | ---@param ScaleY number 33 | ---@param RenderColor KColor 34 | ---@param BoxWidth? integer @default: `0` 35 | ---@param Center? boolean @default: `false` 36 | function Font:DrawStringScaledUTF8(String, PositionX, PositionY, ScaleX, ScaleY, RenderColor, BoxWidth, Center) 37 | end 38 | 39 | ---@param String string 40 | ---@param PositionX number 41 | ---@param PositionY number 42 | ---@param RenderColor KColor 43 | ---@param BoxWidth? integer @default: `0` 44 | ---@param Center? boolean @default: `false` 45 | function Font:DrawStringUTF8(String, PositionX, PositionY, RenderColor, BoxWidth, Center) 46 | end 47 | 48 | ---@return integer 49 | function Font:GetBaselineHeight() 50 | end 51 | 52 | ---@param Character string 53 | ---@return integer 54 | function Font:GetCharacterWidth(Character) 55 | end 56 | 57 | ---@return integer 58 | function Font:GetLineHeight() 59 | end 60 | 61 | ---@param String string 62 | ---@return integer 63 | function Font:GetStringWidth(String) 64 | end 65 | 66 | ---@param String string 67 | ---@return integer 68 | function Font:GetStringWidthUTF8(String) 69 | end 70 | 71 | ---@return boolean 72 | function Font:IsLoaded() 73 | end 74 | 75 | ---@param FilePath string 76 | ---@return boolean 77 | function Font:Load(FilePath) 78 | end 79 | 80 | ---@param MissingCharacter string 81 | function Font:SetMissingCharacter(MissingCharacter) 82 | end 83 | 84 | function Font:Unload() 85 | end 86 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/Weapon.lua: -------------------------------------------------------------------------------- 1 | ---@class Weapon 2 | local Weapon = {} 3 | 4 | ---TODO: Document me! 5 | ---@param collectible CollectibleType 6 | function Weapon:ClearItemAnim(collectible) 7 | end 8 | 9 | ---@return integer 10 | function Weapon:GetCharge() 11 | end 12 | 13 | ---@return Vector 14 | function Weapon:GetDirection() 15 | end 16 | 17 | ---@return integer 18 | function Weapon:GetFireDelay() 19 | end 20 | 21 | ---@return integer 22 | function Weapon:GetMaxFireDelay() 23 | end 24 | 25 | ---Returns the weapon's modifiersin bitmask form. 26 | ---@return WeaponModifier 27 | function Weapon:GetModifiers() 28 | end 29 | 30 | ---Returns the number of times the player has "fired". Not affected by multi-shot or additional shots, such as Mutant Spider and Mom's Eye. Some `WeaponType`s increase this in a different way, such as with Brimstone, which increases it by 1 every 31 | ---@return integer 32 | function Weapon:GetNumFired() 33 | end 34 | 35 | ---Returns the weapon's owner. Returns an `Entity` object, but is expected to be restricted to `EntityPlayer` and `EntityFamiliar`. 36 | ---@return Entity 37 | function Weapon:GetOwner() 38 | end 39 | 40 | ---@return WeaponType 41 | function Weapon:GetWeaponType() 42 | end 43 | 44 | ---Returns `false` for having collectibles like Marked and Analog Stick. Will still return true for `WeaponType`s that naturally allow you to shoot in any direction like Forgotten's Bone, Ludovico Technique, etc. 45 | ---@return boolean 46 | function Weapon:IsAxisAligned() 47 | end 48 | 49 | ---TODO: Document me! 50 | ---@param item CollectibleType 51 | ---@return boolean 52 | function Weapon:IsItemAnimFinished(item) 53 | end 54 | 55 | ---TODO: Document me! 56 | ---@param item CollectibleType 57 | ---@param anim integer 58 | ---@param position Vector 59 | ---@param charge number 60 | function Weapon:PlayItemAnim(item, anim, position, charge) 61 | end 62 | 63 | ---@param charge integer 64 | function Weapon:SetCharge(charge) 65 | end 66 | 67 | ---@param delay number 68 | function Weapon:SetFireDelay(delay) 69 | end 70 | 71 | ---@param time integer 72 | function Weapon:SetHeadLockTime(time) 73 | end 74 | 75 | ---@param modifiers WeaponModifier 76 | function Weapon:SetModifiers(modifiers) 77 | end 78 | 79 | ---Returns active entity used by weapon (Brimstone - EntityLaser, Mom's Knife - EntityKnife and etc.) 80 | function Weapon:GetMainEntity() 81 | end 82 | 83 | ---@return integer 84 | function Weapon:GetMaxCharge() 85 | end -------------------------------------------------------------------------------- /src/docs/vanilla/Seeds.lua: -------------------------------------------------------------------------------- 1 | ---@class Seeds 2 | _G.Seeds = {} 3 | 4 | ---@param Value SeedEffect 5 | function Seeds:AddSeedEffect(Value) 6 | end 7 | 8 | ---@param Value SeedEffect 9 | ---@return boolean 10 | function Seeds:CanAddSeedEffect(Value) 11 | end 12 | 13 | function Seeds:ClearSeedEffects() 14 | end 15 | 16 | function Seeds:ClearStartSeed() 17 | end 18 | 19 | ---@return integer 20 | function Seeds:CountSeedEffects() 21 | end 22 | 23 | ---@return integer 24 | function Seeds.CountUnlockedSeedEffects() 25 | end 26 | 27 | ---@param Stage LevelStage 28 | function Seeds:ForgetStageSeed(Stage) 29 | end 30 | 31 | ---@return integer 32 | function Seeds:GetNextSeed() 33 | end 34 | 35 | ---@return integer 36 | function Seeds:GetPlayerInitSeed() 37 | end 38 | 39 | ---@param str string 40 | ---@return SeedEffect 41 | function Seeds.GetSeedEffect(str) 42 | end 43 | 44 | ---@param Stage LevelStage 45 | ---@return integer 46 | function Seeds:GetStageSeed(Stage) 47 | end 48 | 49 | ---@return integer 50 | function Seeds:GetStartSeed() 51 | end 52 | 53 | ---@return string 54 | function Seeds:GetStartSeedString() 55 | end 56 | 57 | ---@param Value SeedEffect 58 | ---@return boolean 59 | function Seeds:HasSeedEffect(Value) 60 | end 61 | 62 | function Seeds.InitSeedInfo() 63 | end 64 | 65 | ---@return boolean 66 | function Seeds:IsCustomRun() 67 | end 68 | 69 | ---@return boolean 70 | function Seeds:IsInitialized() 71 | end 72 | 73 | ---@param Seed1 SeedEffect 74 | ---@param Seed2 SeedEffect 75 | ---@return boolean 76 | function Seeds:IsSeedComboBanned(Seed1, Seed2) 77 | end 78 | 79 | ---@param str string 80 | ---@return boolean 81 | function Seeds.IsSpecialSeed(str) 82 | end 83 | 84 | ---@param str string 85 | ---@return boolean 86 | function Seeds.IsStringValidSeed(str) 87 | end 88 | 89 | ---@param Value SeedEffect 90 | function Seeds:RemoveBlockingSeedEffects(Value) 91 | end 92 | 93 | ---@param Value SeedEffect 94 | function Seeds:RemoveSeedEffect(Value) 95 | end 96 | 97 | function Seeds:Reset() 98 | end 99 | 100 | ---@param CurrentChallenge Challenge 101 | function Seeds:Restart(CurrentChallenge) 102 | end 103 | 104 | ---@param seed integer 105 | ---@return string 106 | function Seeds.Seed2String(seed) 107 | end 108 | 109 | ---@param StartSeed string 110 | function Seeds:SetStartSeed(StartSeed) 111 | end 112 | 113 | ---@param str string 114 | ---@return integer 115 | function Seeds.String2Seed(str) 116 | end 117 | 118 | -------------------------------------------------------------------------------- /src/docs/vanilla/gridentity/GridEntity.lua: -------------------------------------------------------------------------------- 1 | ---@class GridEntity 2 | ---@field CollisionClass GridCollisionClass 3 | ---@field Desc GridEntityDesc 4 | ---@field Position Vector @const 5 | ---@field State integer 6 | ---@field VarData integer 7 | local GridEntity = {} 8 | 9 | ---@param Immediate? boolean 10 | ---@return boolean 11 | function GridEntity:Destroy(Immediate) 12 | end 13 | 14 | ---@return integer 15 | function GridEntity:GetGridIndex() 16 | end 17 | 18 | --This RNG is initialized with the same seed for all grid entities in the whole run. Instead, it's advised to create a custom data structure or use either the SpawnSeed or VariableSeed fields from the GridEntityDesc object (GridEntity:GetSaveState()). 19 | ---@return RNG 20 | function GridEntity:GetRNG() 21 | end 22 | 23 | ---@return GridEntityDesc 24 | function GridEntity:GetSaveState() 25 | end 26 | 27 | ---@return Sprite 28 | function GridEntity:GetSprite() 29 | end 30 | 31 | ---@return GridEntityType 32 | function GridEntity:GetType() 33 | end 34 | 35 | ---@return integer 36 | function GridEntity:GetVariant() 37 | end 38 | 39 | ---@param Damage integer 40 | ---@return boolean 41 | function GridEntity:Hurt(Damage) 42 | end 43 | 44 | ---@param Seed integer 45 | function GridEntity:Init(Seed) 46 | end 47 | 48 | function GridEntity:PostInit() 49 | end 50 | 51 | ---@param Offset Vector 52 | function GridEntity:Render(Offset) 53 | end 54 | 55 | ---@param Type GridEntityType 56 | function GridEntity:SetType(Type) 57 | end 58 | 59 | ---@param Variant integer 60 | function GridEntity:SetVariant(Variant) 61 | end 62 | 63 | ---@return GridEntityDoor 64 | function GridEntity:ToDoor() 65 | end 66 | 67 | ---@return GridEntityPit 68 | function GridEntity:ToPit() 69 | end 70 | 71 | ---@return GridEntityPoop 72 | function GridEntity:ToPoop() 73 | end 74 | 75 | ---@return GridEntityPressurePlate 76 | function GridEntity:ToPressurePlate() 77 | end 78 | 79 | ---@return GridEntityRock 80 | function GridEntity:ToRock() 81 | end 82 | 83 | ---@return GridEntitySpikes 84 | function GridEntity:ToSpikes() 85 | end 86 | 87 | ---@return GridEntityTNT 88 | function GridEntity:ToTNT() 89 | end 90 | 91 | function GridEntity:Update() 92 | end 93 | 94 | ---@return WaterClipFlag 95 | function GridEntity:GetWaterClipFlags() 96 | end 97 | 98 | ---@param flags WaterClipFlag 99 | function GridEntity:SetWaterClipFlags(flags) 100 | end 101 | 102 | function GridEntity:ResetWaterClipFlags() 103 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/ChallengeParam.lua: -------------------------------------------------------------------------------- 1 | ---@class ChallengeParams 2 | _G.ChallengeParam = {} 3 | 4 | ---@return boolean 5 | function ChallengeParam.CanShoot() 6 | end 7 | 8 | ---@return Achievement[] 9 | function ChallengeParam.GetAchievementList() 10 | end 11 | 12 | ---@return number 13 | function ChallengeParam.GetAddDamage() 14 | end 15 | 16 | ---@return integer 17 | function ChallengeParam.GetBlackHearts() 18 | end 19 | 20 | ---@return integer 21 | function ChallengeParam.GetCoins() 22 | end 23 | 24 | ---@return CollectibleType[] 25 | function ChallengeParam.GetCollectibleList() 26 | end 27 | 28 | ---@return CollectibleType[] 29 | function ChallengeParam.GetCollectibleTwinList() 30 | end 31 | 32 | ---@return integer 33 | function ChallengeParam.GetCurse() 34 | end 35 | 36 | ---@return integer 37 | function ChallengeParam.GetCurseFilter() 38 | end 39 | 40 | ---@return Difficulty 41 | function ChallengeParam.GetDifficulty() 42 | end 43 | 44 | ---@return LevelStage 45 | function ChallengeParam.GetEndStage() 46 | end 47 | 48 | ---@return integer 49 | function ChallengeParam.GetHearts() 50 | end 51 | 52 | ---@return integer 53 | function ChallengeParam.GetMaxHearts() 54 | end 55 | 56 | ---@return number 57 | function ChallengeParam.GetMinFireRate() 58 | end 59 | 60 | ---@return string 61 | function ChallengeParam.GetName() 62 | end 63 | 64 | ---@return PlayerType 65 | function ChallengeParam.GetPlayerType() 66 | end 67 | 68 | ---@return RoomType[] 69 | function ChallengeParam.GetRoomFilter() 70 | end 71 | 72 | ---@return integer 73 | function ChallengeParam.GetSoulHearts() 74 | end 75 | 76 | ---@return Card 77 | function ChallengeParam.GetStartingCard() 78 | end 79 | 80 | ---@return PillEffect 81 | function ChallengeParam.GetStartingPill() 82 | end 83 | 84 | ---@return TrinketType[] 85 | function ChallengeParam.GetTrinketList() 86 | end 87 | 88 | ---@return boolean 89 | function ChallengeParam.IsAltPath() 90 | end 91 | 92 | ---@return boolean 93 | function ChallengeParam.IsBigRangeEnabled() 94 | end 95 | 96 | ---@return boolean 97 | function ChallengeParam.IsMaxDamageEnabled() 98 | end 99 | 100 | ---@return boolean 101 | function ChallengeParam.IsMegaSatanRun() 102 | end 103 | 104 | ---@return boolean 105 | function ChallengeParam.IsMinShotspeedEnabled() 106 | end 107 | 108 | ---@return boolean 109 | function ChallengeParam.IsSecretPath() 110 | end 111 | 112 | ---@return boolean 113 | function ChallengeParam.IsBeastPath() 114 | end -------------------------------------------------------------------------------- /src/docs/repentogon_new/proceduralitems/ProceduralEffect.lua: -------------------------------------------------------------------------------- 1 | ---@class ProceduralEffect 2 | local ProceduralEffect = {} 3 | 4 | ---Returns a table that describes the action argument. 5 | --- 6 | ---If `GetActionType` returns `ProceduralEffectActionType.USE_ACTIVE_ITEM`, the returned 7 | ---table has the following fields: 8 | --- 9 | --- - id: integer 10 | --- 11 | ---If `GetActionType` returns `ProceduralEffectActionType.ADD_TEMPRORY_EFFECT`, the returned 12 | ---table has the following fields: 13 | --- 14 | --- - id: integer 15 | --- 16 | ---If `GetActionType` returns `ProceduralEffectActionType.SPAWN_ENTITY`, the returned 17 | ---table has the following fields: 18 | --- 19 | --- - type: integer 20 | --- - variant: integer 21 | --- 22 | ---If `GetActionType` returns `ProceduralEffectActionType.CONVERT_ENTITY`, the returned 23 | ---table has the following fields: 24 | --- 25 | --- - fromType: integer 26 | --- - fromvariant: integer 27 | --- - toType: integer 28 | --- - tovariant: integer 29 | --- 30 | ---If `GetActionType` returns `ProceduralEffectActionType.AREA_DAMAGE`, the returned 31 | ---table has the following fields: 32 | --- 33 | --- - radius: number 34 | --- - damage: number 35 | --- 36 | ---If `GetActionType` returns `ProceduralEffectActionType.FART`, the returned 37 | ---table has the following fields: 38 | --- 39 | --- - fromType: number 40 | --- - radius: number 41 | ---@return table 42 | function ProceduralEffect:GetProceduralEffect() 43 | end 44 | 45 | ---Returns the action type. 46 | ---@return ProceduralEffectActionType 47 | function ProceduralEffect:GetActionType() 48 | end 49 | 50 | ---Returns a table that describes the condition argument. 51 | --- 52 | ---When `ProceduralEffect:GetConditionType` returns `ProceduralEffectConditionType.ENTITY_SPAWN`, the returned 53 | ---table has the following fields: 54 | --- 55 | --- - type: integer 56 | --- - variant: integer 57 | --- 58 | ---@return table 59 | function ProceduralEffect:GetConditionProperty() 60 | end 61 | 62 | ---Returns the condition type. 63 | ---@return ProceduralEffectConditionType 64 | function ProceduralEffect:GetConditionType() 65 | end 66 | 67 | ---Returns the trigger chance. The returned value is between 0 and 1. 68 | ---@return number 69 | function ProceduralEffect:GetTriggerChance() 70 | end 71 | 72 | ---The score is used to generate the `ProceduralItem`. Each `ProceduralItem` has a score limit when generating its effects. If the limit is reached, no more effect will be added. 73 | ---@return number 74 | function ProceduralEffect:GetScore() 75 | end 76 | 77 | ---In most cases, this value should be `1`. 78 | ---@return number 79 | function ProceduralEffect:GetTriggerChanceScale() 80 | end -------------------------------------------------------------------------------- /src/docs/vanilla/Vector.lua: -------------------------------------------------------------------------------- 1 | ---@class Vector 2 | ---@field X number 3 | ---@field Y number 4 | ---@operator add(Vector): Vector 5 | ---@operator sub(Vector): Vector 6 | ---@operator unm: Vector 7 | ---@operator mul(number|Vector): Vector 8 | ---@operator div(number|Vector): Vector 9 | local Vector = {} 10 | 11 | ---@param x number 12 | ---@param y number 13 | ---@return Vector 14 | function _G.Vector(x, y) end 15 | 16 | _G.Vector = { 17 | ---@type Vector 18 | One = Vector(1, 1), 19 | ---@type Vector 20 | Zero = Vector(0, 0), 21 | } 22 | 23 | ---@param AngleDegrees number 24 | ---@return Vector 25 | function _G.Vector.FromAngle(AngleDegrees) 26 | end 27 | 28 | ---@param first Vector 29 | ---@param second Vector 30 | ---@param t number 31 | ---@return Vector 32 | function Vector.Lerp(first, second, t) 33 | end 34 | 35 | ---@param Right Vector 36 | ---@return Vector 37 | function Vector:__add(Right) 38 | end 39 | 40 | ---@param Modifier number|Vector 41 | ---@return Vector 42 | function Vector:__div(Modifier) 43 | end 44 | 45 | ---@param Modifier number|Vector 46 | ---@return Vector 47 | function Vector:__mul(Modifier) 48 | end 49 | 50 | ---@param Right Vector 51 | ---@return Vector 52 | function Vector:__sub(Right) 53 | end 54 | 55 | ---@return Vector 56 | function Vector:__unm() 57 | end 58 | 59 | ---@param MinX number 60 | ---@param MinY number 61 | ---@param MaxX number 62 | ---@param MaxY number 63 | function Vector:Clamp(MinX, MinY, MaxX, MaxY) 64 | end 65 | 66 | ---@param MinX number 67 | ---@param MinY number 68 | ---@param MaxX number 69 | ---@param MaxY number 70 | ---@return Vector 71 | function Vector:Clamped(MinX, MinY, MaxX, MaxY) 72 | end 73 | 74 | ---@param second Vector 75 | ---@return number 76 | function Vector:Cross(second) 77 | end 78 | 79 | ---@param second Vector 80 | ---@return number 81 | function Vector:Distance(second) 82 | end 83 | 84 | ---@param second Vector 85 | ---@return number 86 | function Vector:DistanceSquared(second) 87 | end 88 | 89 | ---@param second Vector 90 | ---@return number 91 | function Vector:Dot(second) 92 | end 93 | 94 | ---@return number 95 | function Vector:GetAngleDegrees() 96 | end 97 | 98 | ---@return number 99 | function Vector:Length() 100 | end 101 | 102 | ---@return number 103 | function Vector:LengthSquared() 104 | end 105 | 106 | function Vector:Normalize() 107 | end 108 | 109 | ---@return Vector 110 | function Vector:Normalized() 111 | end 112 | 113 | ---@param NewLength number 114 | function Vector:Resize(NewLength) 115 | end 116 | 117 | ---@param NewLength number 118 | ---@return Vector 119 | function Vector:Resized(NewLength) 120 | end 121 | 122 | ---@param AngleDegrees number 123 | ---@return Vector 124 | function Vector:Rotated(AngleDegrees) 125 | end -------------------------------------------------------------------------------- /src/docs/repentogon_changes/entity/EntityLaser.lua: -------------------------------------------------------------------------------- 1 | ---@return boolean 2 | function EntityLaser_Local:GetDisableFollowParent() 3 | end 4 | 5 | ---@return integer[] 6 | function EntityLaser_Local:GetHitList() 7 | end 8 | 9 | ---@return boolean 10 | function EntityLaser_Local:GetOneHit() 11 | end 12 | 13 | ---@return number 14 | function EntityLaser_Local:GetScale() 15 | end 16 | 17 | ---@return boolean 18 | function EntityLaser_Local:GetShrink() 19 | end 20 | 21 | ---@return integer 22 | function EntityLaser_Local:GetTimeout() 23 | end 24 | 25 | function EntityLaser_Local:ResetSpriteScale() 26 | end 27 | 28 | ---@param angle number 29 | ---@param speed? number @default: `8` 30 | function EntityLaser_Local:RotateToAngle(angle, speed) 31 | end 32 | 33 | ---@param isDisabled boolean 34 | function EntityLaser_Local:SetDisableFollowParent(isDisabled) 35 | end 36 | 37 | ---@param scale number 38 | function EntityLaser_Local:SetScale(scale) 39 | end 40 | 41 | ---@param isShrink boolean 42 | function EntityLaser_Local:SetShrink(isShrink) 43 | end 44 | 45 | ---@return number 46 | function EntityLaser_Local:GetDamageMultiplier() 47 | end 48 | 49 | ---@param damageMult number 50 | function EntityLaser_Local:SetDamageMultiplier(damageMult) 51 | end 52 | 53 | ---Requests the laser's shape to be fully recalculated next time it updates. Can be used to force the laser to instantly change its MaxDistance/Radius instead of transitioning to it. No effect for OneHit or non-sample lasers. 54 | function EntityLaser_Local:RecalculateSamplesNextUpdate() 55 | end 56 | 57 | ---Sets if the laser was created through the Multi Dimensional Baby effect. 58 | ---@return boolean 59 | function EntityLaser_Local:IsMultidimensionalTouched() 60 | end 61 | 62 | ---Returns if the laser was created through the Angelic Prism effect. 63 | ---@return boolean 64 | function EntityLaser_Local:IsPrismTouched() 65 | end 66 | 67 | ---Returns if the laser was created through the Angelic Prism effect. 68 | ---@return boolean 69 | function EntityLaser_Local:SetPrismTouched() 70 | end 71 | 72 | ---Fire a new tear that inherits many attributes from this laser (flags, damage, size, color, etc). 73 | --- 74 | ---This will also trigger the `MC_POST_FIRE_SPLIT_TEAR` callback. For custom effects, a string may be passed in place of the `SplitTearType`. 75 | ---@param pos Vector 76 | ---@param velocity Vector 77 | ---@param damageMult? number @default: `0.5`. 78 | ---@param sizeMult? number @default: `0.6`. 79 | ---@param variant? TearVariant @default: `0`. 80 | ---@param splitTearType? SplitTearType|string @default: `SplitTearType.SPLIT_GENERIC` 81 | ---@return EntityTear 82 | function EntityLaser_Local:FireSplitTear(pos, velocity, damageMult, sizeMult, variant, splitTearType) 83 | end 84 | 85 | ---@param entity Entity 86 | ---@return boolean 87 | function EntityLaser_Local:InHitList(entity) 88 | end 89 | 90 | ---@param entity Entity 91 | function EntityLaser_Local:AddToHitList(entity) 92 | end 93 | 94 | ---@param entity Entity 95 | function EntityLaser_Local:RemoveFromHitList(entity) 96 | end 97 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/PersistentGameData.lua: -------------------------------------------------------------------------------- 1 | ---@class PersistentGameData 2 | local PersistentGameData = {} 3 | 4 | ---Returns the amount of deaths from an entity that's recorded in the Bestiary. 5 | ---@param entityType EntityType 6 | ---@param entityVariant integer 7 | ---@return integer 8 | function PersistentGameData:GetBestiaryDeathCount(entityType, entityVariant) 9 | end 10 | 11 | ---Returns the amount of times an entity has been countered that's recorded in the Bestiary. 12 | ---@param entityType EntityType 13 | ---@param entityVariant integer 14 | ---@return integer 15 | function PersistentGameData:GetBestiaryEncounterCount(entityType, entityVariant) 16 | end 17 | 18 | ---Returns the amount of times an entity has been killed that's recorded in the Bestiary. 19 | ---@param entityType EntityType 20 | ---@param entityVariant integer 21 | ---@return integer 22 | function PersistentGameData:GetBestiaryKillCount(entityType, entityVariant) 23 | end 24 | 25 | ---Returns an event counter. 26 | ---@param eventCounter EventCounter 27 | ---@return integer 28 | function PersistentGameData:GetEventCounter(eventCounter) 29 | end 30 | 31 | ---Increases the counter towards the provided `EventCounter` by `incrementAmount`. Also accepts negative values to decrease. 32 | ---@param eventCounter EventCounter 33 | ---@param incrementAmount integer 34 | function PersistentGameData:IncreaseEventCounter(eventCounter, incrementAmount) 35 | end 36 | 37 | ---Returns true if the provided challenge has been completed. 38 | --- 39 | ---This function is the same as `Isaac.IsChallengeDone` and is recommended you use that version instead, as it's categorized with the other challenge-related functions. 40 | ---@param challengeId Challenge 41 | ---@return boolean 42 | function PersistentGameData:IsChallengeCompleted(challengeId) 43 | end 44 | 45 | ---Returns true if the collectible is in the collection (at least picked up once in any run) 46 | ---@param collectible CollectibleType 47 | ---@return boolean 48 | function PersistentGameData:IsItemInCollection(collectible) 49 | end 50 | 51 | ---Tries to unlock an achievement. 52 | ---@param achievement Achievement 53 | ---@param blockPaperPopup? boolean @default: `false`. Prevents popping up the achievement paper for modded achievements. 54 | ---@return boolean successful Returns `true` if the achievement was successfully unlocked, `false` if it has already been unlocked or the unlock failed. 55 | function PersistentGameData:TryUnlock(achievement, blockPaperPopup) 56 | end 57 | 58 | ---Returns true if the provided achievement is unlocked. 59 | ---@param achievement Achievement 60 | ---@return boolean 61 | function PersistentGameData:Unlocked(achievement) 62 | end 63 | 64 | ---@param entType EntityType 65 | ---@param variant? integer @default: `0` 66 | function PersistentGameData:AddBestiaryKill(entType, variant) 67 | end 68 | 69 | ---@param bossType BossType 70 | function PersistentGameData:AddBossKilled(bossType) 71 | end 72 | 73 | ---@param bossType BossType 74 | ---@return boolean 75 | function PersistentGameData:IsBossKilled(bossType) 76 | end -------------------------------------------------------------------------------- /src/docs/vanilla/TemporaryEffects.lua: -------------------------------------------------------------------------------- 1 | ---@class TemporaryEffects 2 | local TemporaryEffects = {} 3 | 4 | ---@param CollectibleType CollectibleType 5 | ---@param AddCostume? boolean @default: `true` 6 | ---@param Count? integer @default: `1` 7 | function TemporaryEffects:AddCollectibleEffect(CollectibleType, AddCostume, Count) 8 | end 9 | 10 | ---@param NullId integer @ItemConfigNullItemID 11 | ---@param AddCostume? boolean @default: `true` 12 | ---@param Count? integer @default: `1` 13 | function TemporaryEffects:AddNullEffect(NullId, AddCostume, Count) 14 | end 15 | 16 | ---@param TrinketType TrinketType 17 | ---@param AddCostume? boolean @default: `true` 18 | ---@param Count? integer @default: `1` 19 | function TemporaryEffects:AddTrinketEffect(TrinketType, AddCostume, Count) 20 | end 21 | 22 | function TemporaryEffects:ClearEffects() 23 | end 24 | 25 | ---@param CollectibleType CollectibleType 26 | ---@return TemporaryEffect? @Will return `nil` if the effect is not active 27 | function TemporaryEffects:GetCollectibleEffect(CollectibleType) 28 | end 29 | 30 | ---@param CollectibleType CollectibleType 31 | ---@return integer 32 | function TemporaryEffects:GetCollectibleEffectNum(CollectibleType) 33 | end 34 | 35 | ---@return EffectList 36 | function TemporaryEffects:GetEffectsList() 37 | end 38 | 39 | ---@param NullId integer @ItemConfigNullItemID 40 | ---@return TemporaryEffect? @Will return `nil` if the effect is not active 41 | function TemporaryEffects:GetNullEffect(NullId) 42 | end 43 | 44 | ---@param NullId integer @ItemConfigNullItemID 45 | ---@return integer 46 | function TemporaryEffects:GetNullEffectNum(NullId) 47 | end 48 | 49 | ---@param TrinketType TrinketType 50 | ---@return TemporaryEffect? @Will return `nil` if the effect is not active 51 | function TemporaryEffects:GetTrinketEffect(TrinketType) 52 | end 53 | 54 | ---@param TrinketType TrinketType 55 | ---@return integer 56 | function TemporaryEffects:GetTrinketEffectNum(TrinketType) 57 | end 58 | 59 | ---@param CollectibleType CollectibleType 60 | ---@return boolean 61 | function TemporaryEffects:HasCollectibleEffect(CollectibleType) 62 | end 63 | 64 | ---@param NullId integer @ItemConfigNullItemID 65 | ---@return boolean 66 | function TemporaryEffects:HasNullEffect(NullId) 67 | end 68 | 69 | ---@param TrinketType TrinketType 70 | ---@return boolean 71 | function TemporaryEffects:HasTrinketEffect(TrinketType) 72 | end 73 | 74 | ---@param CollectibleType CollectibleType 75 | ---@param Count? integer @default: `1`. Setting this to -1 removes all instances of the effect 76 | function TemporaryEffects:RemoveCollectibleEffect(CollectibleType, Count) 77 | end 78 | 79 | ---@param NullId integer @ItemConfigNullItemID 80 | ---@param Count? integer @default: `1`. Setting this to -1 removes all instances of the effect 81 | function TemporaryEffects:RemoveNullEffect(NullId, Count) 82 | end 83 | 84 | ---@param TrinketType TrinketType 85 | ---@param Count? integer @default: `1`. Setting this to -1 removes all instances of the effect 86 | function TemporaryEffects:RemoveTrinketEffect(TrinketType, Count) 87 | end 88 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/rendering/Beam.lua: -------------------------------------------------------------------------------- 1 | ---@class Beam 2 | local Beam = {} 3 | 4 | ---Constructs a new beam object. 5 | --- 6 | ---**Example** 7 | --- 8 | ---```lua 9 | --- 10 | ---local sprite = Sprite() 11 | ---sprite:Load("gfx/893.000_ball and chain.anm2", true) 12 | ---chain = Beam(sprite, "chain", true, false)--- 13 | --- 14 | ---mod:AddCallback(ModCallbacks.MC_POST_PLAYER_RENDER, function(_, player) 15 | --- chain:GetSprite():PlayOverlay("Chain", false) 16 | --- local center = game:GetLevel():GetCurrentRoom():GetCenterPos() 17 | --- chain:Add(Isaac.WorldToScreen(center)) 18 | --- chain:Add(Isaac.WorldToScreen(player.Position)) 19 | --- chain:Render() 20 | ---end) 21 | ---``` 22 | ---@param sprite Sprite 23 | ---@param layerId integer 24 | ---@param useOverlay boolean 25 | ---@param unknownBool boolean TODO: Document me! 26 | ---@return Beam 27 | ---@overload fun(sprite: Sprite, layerName: string, useOverlay: boolean, unknownBool: boolean) 28 | function _G.Beam(sprite, layerId, useOverlay, unknownBool) 29 | end 30 | 31 | ---Adds a point to the beam. 32 | ---@param position Vector 33 | ---@param spritesheetCoordinate number The Y position of the spritesheet that should be drawn by the time this Point is reached. For example, two points of `0` and `64` SpritesheetCoordinate will render the spritesheet starting from `y 0` to `y 64`, while an additional third point of `0` will draw it in reverse from `y 64` to `y 0`. `width` acts as 34 | ---@param width? number @default: `1.0`. A multiplier for how wide the beam should be. A non-zero value will scale the spritesheet width accordingly. This is interpolated between points. 35 | ---@overload fun(self: Beam, point: Point) 36 | function Beam:Add(position, spritesheetCoordinate, width) 37 | end 38 | 39 | ---@return integer 40 | function Beam:GetLayer() 41 | end 42 | 43 | ---Returns a table of the `Point` objects currently stored. 44 | ---@return Point[] 45 | function Beam:GetPoints() 46 | end 47 | 48 | ---@return Sprite 49 | function Beam:GetSprite() 50 | end 51 | 52 | ---TODO: Document me! 53 | ---@return boolean 54 | function Beam:GetUnkBool() 55 | end 56 | 57 | ---Returns if the beam is currently using the overlay sprite or not. 58 | ---@return boolean 59 | function Beam:GetUseOverlay() 60 | end 61 | 62 | ---Renders the beam. 63 | ---@param clearPoints? boolean @default: `true` 64 | function Beam:Render(clearPoints) 65 | end 66 | 67 | ---Sets the beam's layer. 68 | ---@param layerId integer 69 | ---@overload fun(self: Beam, layerName: string) 70 | function Beam:SetLayer(layerId) 71 | end 72 | 73 | ---Sets the beam's sprite. 74 | ---@param sprite Sprite 75 | ---@overload fun(self: Beam, sprite: Sprite, layerName: string, useOverlay: boolean) 76 | ---@overload fun(self: Beam, sprite: Sprite, layerId: integer, useOverlay: boolean) 77 | function Beam:SetSprite(sprite) 78 | end 79 | 80 | ---TODO: Document me! 81 | ---@param unknownBool boolean 82 | function Beam:SetUnkBool(unknownBool) 83 | end 84 | 85 | ---TODO: Document me! 86 | ---@param useOverlay boolean 87 | function Beam:SetUseOverlay(useOverlay) 88 | end 89 | -------------------------------------------------------------------------------- /src/docs/repentogon_changes/entity/EntityFamiliar.lua: -------------------------------------------------------------------------------- 1 | 2 | ---@return boolean 3 | function EntityFamiliar:CanBeDamagedByEnemies() 4 | end 5 | 6 | ---@return boolean 7 | function EntityFamiliar:CanBeDamagedByLasers() 8 | end 9 | 10 | ---@return boolean 11 | function EntityFamiliar:CanBeDamagedByProjectiles() 12 | end 13 | 14 | ---@return boolean 15 | function EntityFamiliar:CanBlockProjectiles() 16 | end 17 | 18 | ---@return boolean 19 | function EntityFamiliar:CanCharm() 20 | end 21 | 22 | ---@return Color 23 | function EntityFamiliar:GetDirtColor() 24 | end 25 | 26 | ---@return FollowerPriority 27 | function EntityFamiliar:GetFollowerPriority() 28 | end 29 | 30 | ---@return ItemConfigItem 31 | function EntityFamiliar:GetItemConfig() 32 | end 33 | 34 | ---Returns the amount in frames that the familiar's movements are delayed from the player's. 30 frames = 1 second. 35 | function EntityFamiliar:GetMoveDelayNum() 36 | end 37 | 38 | ---@return number 39 | function EntityFamiliar:GetMultiplier() 40 | end 41 | 42 | ---@return PathFinder 43 | function EntityFamiliar:GetPathFinder() 44 | end 45 | 46 | ---Returns `nil` for familiars that don't mimic the player's attacks 47 | ---(Incubus, etc). 48 | ---@return Weapon? 49 | function EntityFamiliar:GetWeapon() 50 | end 51 | 52 | ---Makes it so that the next time GetMultiplier is called (which doesn't exist yet), `MC_EVALUATE_FAMILIAR_MULTIPLIER` is triggered to recalculate/allow modifying the multiplier. 53 | function EntityFamiliar:InvalidateCachedMultiplier() 54 | end 55 | 56 | ---@return boolean 57 | function EntityFamiliar:IsCharmed() 58 | end 59 | 60 | function EntityFamiliar:RemoveFromPlayer() 61 | end 62 | 63 | ---Sets the amount in frames that the familiar's movements are delayed from the player's. 30 frames = 1 second. 64 | ---@param delay integer 65 | function EntityFamiliar:SetMoveDelayNum(delay) 66 | end 67 | 68 | ---Triggers effects on the familiar as if a room was cleared and incrementing `.RoomClearCount` (i.e. Sack of pennies dropping a coin). 69 | function EntityFamiliar:TriggerRoomClear() 70 | end 71 | 72 | ---@param aimDirection Vector 73 | ---@param direction Direction 74 | ---@return Vector? 75 | function EntityFamiliar:TryAimAtMarkedTarget(aimDirection, direction) 76 | end 77 | 78 | function EntityFamiliar:UpdateDirtColor() 79 | end 80 | 81 | ---@return boolean 82 | function EntityFamiliar:IsLilDelirium() 83 | end 84 | 85 | ---@param value boolean 86 | function EntityFamiliar:SetLilDelirium(value) 87 | end 88 | 89 | ---Returns a random `CollectibleType`. Used by Lemegenton for determining what wisp to spawn. 90 | ---@param rng RNG 91 | ---@return CollectibleType 92 | function _G.EntityFamiliar.GetRandomWisp(rng) 93 | end 94 | 95 | ---Returns the Entity associated with the familiar's active [Weapon](Weapon.md). 96 | --- 97 | ---Returns `nil` if it cannot be found. 98 | ---@return Entity? 99 | function EntityFamiliar:GetActiveWeaponEntity() 100 | end 101 | 102 | ---Returns the amount of times the familiar's active `Weapon` has been fired. 103 | function EntityFamiliar:GetActiveWeaponNumFired() 104 | end -------------------------------------------------------------------------------- /src/docs/repentogon_changes/entity/EntityKnife.lua: -------------------------------------------------------------------------------- 1 | ---@return integer[] 2 | function EntityKnife:GetHitList() 3 | end 4 | 5 | ---Returns `true` if the knife is being swung. 6 | ---@return boolean 7 | function EntityKnife:GetIsSwinging() 8 | end 9 | 10 | ---Sets if the knife is being swung 11 | ---@param bool boolean 12 | function EntityKnife:SetIsSwinging(bool) 13 | end 14 | 15 | ---Returns `true` if the using the Spirit Sword spin attack. 16 | ---@return boolean 17 | function EntityKnife:GetIsSpinAttack() 18 | end 19 | 20 | ---Sets if the Spirit Sword is doing its spin attack. 21 | ---@param bool boolean 22 | function EntityKnife:SetIsSpinAttack(bool) 23 | end 24 | 25 | ---Returns if the knife was created through the Multi Dimensional Baby effect. 26 | ---@return boolean 27 | function EntityKnife:IsMultidimensionalTouched() 28 | end 29 | 30 | ---Returns if the knife was created through the Angelic Prism effect. 31 | ---@return boolean 32 | function EntityKnife:IsPrismTouched() 33 | end 34 | 35 | ---Sets if the knife was created through the Multi Dimensional Baby effect. 36 | ---@param IsTouched boolean 37 | function EntityKnife:SetMultidimensionalTouched(IsTouched) 38 | end 39 | 40 | ---Sets if the knife was created through the Angelic Prism effect. 41 | ---@param IsTouched boolean 42 | function EntityKnife:SetPrismTouched(IsTouched) 43 | end 44 | 45 | ---Fire a new tear that inherits many attributes from this knife (flags, damage, size, color, etc). 46 | --- 47 | ---This will also trigger the `MC_POST_FIRE_SPLIT_TEAR` callback. For custom effects, a string may be passed in place of the `SplitTearType`. 48 | ---@param pos Vector 49 | ---@param velocity Vector 50 | ---@param damageMult? number @default: `0.5`. 51 | ---@param sizeMult? number @default: `0.6`. 52 | ---@param variant? TearVariant @default: `0`. 53 | ---@param splitTearType? SplitTearType|string @default: `SplitTearType.SPLIT_GENERIC` 54 | ---@return EntityTear 55 | function EntityKnife:FireSplitTear(pos, velocity, damageMult, sizeMult, variant, splitTearType) 56 | end 57 | 58 | ---@param entity Entity 59 | ---@return boolean 60 | function EntityKnife:InHitList(entity) 61 | end 62 | 63 | ---@param entity Entity 64 | function EntityKnife:AddToHitList(entity) 65 | end 66 | 67 | ---@param entity Entity 68 | function EntityKnife:RemoveFromHitList(entity) 69 | end 70 | 71 | ---For a "hitbox" `EntityKnife` `[KnifeSubType.CLUB_HITBOX` created by melee weapon "swings" (Bone Club, Spirit Sword, etc) this function returns the "main" `EntityKnife` of that melee weapon. Returns `nil` otherwise, and will return `nil` for hitbox entities spawned via other means. 72 | ---@return EntityKnife? 73 | function EntityKnife:GetHitboxParentKnife() 74 | end 75 | 76 | --Allows setting a custom value for `GetHitboxParentKnife`, which is intended to only be used for a "hitbox" `EntityKnife` `KnifeSubType.CLUB_HITBOX` to refer to the "main" `EntityKnife` of a melee weapon (Bone Club, Spirit Sword, etc). 77 | --- 78 | ---Note that setting this has no influence on any vanilla logic - this reference is only for the convenience of modders. Please use appropriately. 79 | ---@param knife EntityKnife 80 | function EntityKnife:SetHitboxParentKnife(knife) 81 | end -------------------------------------------------------------------------------- /src/docs/vanilla/entity/EntityFamiliar.lua: -------------------------------------------------------------------------------- 1 | ---@class EntityFamiliar : Entity 2 | ---@field Coins integer 3 | ---@field FireCooldown integer 4 | ---@field HeadFrameDelay integer 5 | ---@field Hearts integer 6 | ---@field IsDelayed boolean # Not officially documented but functional 7 | ---@field IsFollower boolean # Not officially documented but functional 8 | ---@field Keys integer 9 | ---@field LastDirection Direction 10 | ---@field MoveDirection Direction 11 | ---@field OrbitAngleOffset number 12 | ---@field OrbitLayer integer # Not officially documented but functional 13 | ---@field OrbitSpeed number # Not officially documented but functional 14 | ---@field OrbitDistance Vector 15 | ---@field Player EntityPlayer 16 | ---@field RoomClearCount integer 17 | ---@field ShootDirection Direction 18 | ---@field State integer 19 | _G.EntityFamiliar = {} 20 | 21 | ---@param Value integer 22 | function EntityFamiliar:AddCoins(Value) 23 | end 24 | 25 | ---@param Hearts integer 26 | function EntityFamiliar:AddHearts(Hearts) 27 | end 28 | 29 | ---@param Keys integer 30 | function EntityFamiliar:AddKeys(Keys) 31 | end 32 | 33 | function EntityFamiliar:AddToDelayed() 34 | end 35 | 36 | function EntityFamiliar:AddToFollowers() 37 | end 38 | 39 | ---@param Layer integer 40 | function EntityFamiliar:AddToOrbit(Layer) 41 | end 42 | 43 | ---@param Dir Vector 44 | ---@return EntityTear 45 | function EntityFamiliar:FireProjectile(Dir) 46 | end 47 | 48 | function EntityFamiliar:FollowParent() 49 | end 50 | 51 | ---@param Pos Vector 52 | function EntityFamiliar:FollowPosition(Pos) 53 | end 54 | 55 | ---@param Layer integer 56 | ---@return Vector 57 | function EntityFamiliar.GetOrbitDistance(Layer) 58 | end 59 | 60 | ---@param Pos Vector 61 | ---@return Vector 62 | function EntityFamiliar:GetOrbitPosition(Pos) 63 | end 64 | 65 | ---@param NumFrames integer 66 | function EntityFamiliar:MoveDelayed(NumFrames) 67 | end 68 | 69 | ---@param Speed number 70 | function EntityFamiliar:MoveDiagonally(Speed) 71 | end 72 | 73 | ---@param MaxDistance number 74 | ---@param FrameInterval? integer @default: `13` 75 | ---@param Flags? integer @default: `0` 76 | ---@param ConeDir? Vector @default: `Vector.Zero` 77 | ---@param ConeAngle? number @default: `15` 78 | function EntityFamiliar:PickEnemyTarget(MaxDistance, FrameInterval, Flags, ConeDir, ConeAngle) 79 | end 80 | 81 | ---@param Dir Direction 82 | function EntityFamiliar:PlayChargeAnim(Dir) 83 | end 84 | 85 | ---@param Dir Direction 86 | function EntityFamiliar:PlayFloatAnim(Dir) 87 | end 88 | 89 | ---@param Dir Direction 90 | function EntityFamiliar:PlayShootAnim(Dir) 91 | end 92 | 93 | ---@param Layer integer 94 | ---@param Add boolean 95 | ---@return integer 96 | function EntityFamiliar:RecalculateOrbitOffset(Layer, Add) 97 | end 98 | 99 | function EntityFamiliar:RemoveFromDelayed() 100 | end 101 | 102 | function EntityFamiliar:RemoveFromFollowers() 103 | end 104 | 105 | function EntityFamiliar:RemoveFromOrbit() 106 | end 107 | 108 | ---When called in POST_FAMILIAR_UPDATE on a custom familiar, appears to handle everything for a basic shooting familiar. This includes handling animations, firing tears, and synergies. 109 | function EntityFamiliar:Shoot() 110 | end 111 | -------------------------------------------------------------------------------- /src/docs/repentogon_new/XMLData.lua: -------------------------------------------------------------------------------- 1 | ---@class XMLData 2 | _G.XMLData = {} 3 | 4 | ---@param type EntityType 5 | ---@param variant? integer @default: `0` 6 | ---@param subType? integer @default: `0` 7 | ---Returns a table containing the attributes of the bosscolor on bosscolors.xml that match the given type variant and subtype. 8 | --- 9 | ---**Example Code** 10 | ---```lua 11 | --- print("Red Monstro's suffix:", XMLData.GetBossColorByTypeVarSub(20,0,1).suffix) 12 | --- ``` 13 | function XMLData.GetBossColorByTypeVarSub(type, variant, subType) 14 | end 15 | 16 | ---Returns a table containing the attributes of the entity in `entities2.xml`. 17 | --- 18 | ---Child nodes are returned as tables alongside the rest of the attributes. For example, 19 | ---if you want to access the samples of a sound entry, you can just do soundentry.sample[1]. 20 | ---@param type EntityType 21 | ---@param variant? integer @default: `0` 22 | ---@param subType? integer @default: `0` 23 | ---@param strict? boolean @default: `false`. If `true`, the function will only return a value if the entity node in entities2.xml matches the type, variant, and subType, rather than partial matches. 24 | ---@return table 25 | function XMLData.GetEntityByTypeVarSub(type, variant, subType, strict) 26 | end 27 | 28 | ---Returns a table containing the attributes of the corresponding xml, the matching nodetype 29 | --- 30 | ---(Ex: `XMLNode.TRINKET` returns trinket nodes from pocketitems.xml) and match the given name parameter. 31 | ---@param nodeType XMLNode 32 | ---@param index integer 33 | ---@return table 34 | function XMLData.GetEntryById(nodeType, index) 35 | end 36 | 37 | ---Returns a table containing the attributes of the corresponding xml, the matching NodeType 38 | --- 39 | ---(Ex: XMLNode.TRINKET returns trinket nodes from pocketitems.xml) and match the given name parameter. 40 | ---@param nodeType XMLNode 41 | ---@param name string 42 | ---@return table 43 | function XMLData.GetEntryByName(nodeType, name) 44 | end 45 | 46 | ---@param entity Entity 47 | ---@param autoXMLPick? boolean @default: `true`. If set to `true`, picks the xml that matches the `EntityType`. If `false`, picks the entry from entities2.xml. 48 | ---@param strict boolean If set to `true`, only returns a value when the type, variant and subtype attributes match. If `false`, only matches an entry with the type. 49 | function XMLData.GetEntryFromEntity(entity, autoXMLPick, strict) 50 | end 51 | 52 | ---Returns the number of entries a given xmlnode structure has. 53 | ---@param nodeType XMLNode 54 | ---@return integer 55 | function XMLData.GetNumEntries(nodeType) 56 | end 57 | 58 | ---Returns a table containing the attributes of the metdata xml of the matching mod id. 59 | --- 60 | ---**Example Code** 61 | ---```lua 62 | ---print("Car's mod name:", XMLData.GetModById("2788006730").name) 63 | ---``` 64 | ---@param id integer | string 65 | ---@return table 66 | function XMLData.GetModById(id) 67 | end 68 | 69 | ---Similar to GetByName or GetById, but it returns the node based on the order in which it appears on the xmls (1 will return the first node, 2 the second one and so on). Useful to iterate through xmls in combination with GetNumEntries, specially for redundant xmls like entities.xml. 70 | ---@param nodeType XMLNode 71 | ---@param order integer 72 | function XMLData.GetEntryByOrder(nodeType, order) 73 | end -------------------------------------------------------------------------------- /src/docs/repentogon_changes/entity/EntityTear.lua: -------------------------------------------------------------------------------- 1 | ---Returns the intensity value of the tear as a result of the Dead Eye collectible. It is between 0 and 1. 2 | ---@return number 3 | function EntityTear:GetDeadEyeIntensity() 4 | end 5 | 6 | ---Copies the tear and applies a black and white effect to it. This effect is the same one used by the Multidimensional Baby familiar. 7 | ---@return EntityTear newTear The newly created tear. 8 | function EntityTear:MakeMultidimensionalCopy() 9 | end 10 | 11 | ---Returns the tear halo sprite used by Godhead tears. 12 | ---@return Sprite 13 | function EntityTear:GetTearHaloSprite() 14 | end 15 | 16 | ---Returns the tear effect sprite used by tear variants like Fire Mind and Mysterious Liquid. 17 | ---@return Sprite 18 | function EntityTear:GetTearEffectSprite() 19 | end 20 | 21 | ---Returns the red aura sprite used by Dead Eye. 22 | ---@return Sprite 23 | function EntityTear:GetDeadEyeSprite() 24 | end 25 | 26 | ---@param force? boolean @default: `false`. If set to `true`, forces the tear to re-evaluate which scale animation it should be playing. 27 | function EntityTear:ResetSpriteScale(force) 28 | end 29 | 30 | ---Returns if the tear was created through the Multi Dimensional Baby effect. 31 | ---@return boolean 32 | function EntityTear:IsMultidimensionalTouched() 33 | end 34 | 35 | ---Returns if the tear was created through the Angelic Prism effect. 36 | ---@return boolean 37 | function EntityTear:IsPrismTouched() 38 | end 39 | 40 | ---Sets if the tear was created through the Multi Dimensional Baby effect. 41 | ---@param IsTouched boolean 42 | function EntityTear:SetMultidimensionalTouched(IsTouched) 43 | end 44 | 45 | ---Sets if the tear was created through the Angelic Prism effect. 46 | ---@param IsTouched boolean 47 | function EntityTear:SetPrismTouched(IsTouched) 48 | end 49 | 50 | ---Returns a table of Entity `Index` values 51 | ---@return integer[] 52 | function EntityTear:GetHitList() 53 | end 54 | 55 | ---Clears out the hit list, allowing the tear to hit the same enemy again 56 | function EntityTear:ClearHitList() 57 | end 58 | 59 | ---Fire a new tear that inherits many attributes from this tear (flags, damage, size, color, etc). 60 | --- 61 | ---This will also trigger the `MC_POST_FIRE_SPLIT_TEAR` callback. For custom effects, a string may be passed in place of the `SplitTearType`. 62 | ---@param pos Vector 63 | ---@param velocity Vector 64 | ---@param damageMult? number @default: `0.5`. 65 | ---@param sizeMult? number @default: `0.6`. 66 | ---@param variant? TearVariant @default: `0`. 67 | ---@param splitTearType? SplitTearType|string @default: `SplitTearType.SPLIT_GENERIC` 68 | ---@return EntityTear 69 | function EntityTear:FireSplitTear(pos, velocity, damageMult, sizeMult, variant, splitTearType) 70 | end 71 | 72 | ---@param entity Entity 73 | ---@return boolean 74 | function EntityTear:InHitList(entity) 75 | end 76 | 77 | ---@param entity Entity 78 | function EntityTear:AddToHitList(entity) 79 | end 80 | 81 | ---@param entity Entity 82 | function EntityTear:RemoveFromHitList(entity) 83 | end 84 | 85 | ---Sets the sound that will be automatically played when the tear is spawned. Can be set to `SoundEffect.SOUND_NULL` to make no sound play. 86 | --- 87 | ---Should be set on `MC_POST_TEAR_INIT` or at any point prior to the tear's first Update, otherwise it will have no effect. 88 | ---@param sound SoundEffect 89 | function EntityTear:SetInitSound(sound) 90 | end --------------------------------------------------------------------------------