Skip to content

Releases: TeamREPENTOGON/REPENTOGON

1.0.12b

19 Oct 15:46
Compare
Choose a tag to compare

v1.0.12.b -
Fixes:

  • Fix various regressions involving status effects introduced by 1.0.12

1.0.12a

29 Sep 15:22
Compare
Choose a tag to compare

1.0.12.a -
Additions:

  • Ambush:
    • [Get/Set]MaxBossChallengeWaves()
    • Allows changing the number of waves in a boss challenge room

Fixes:

  • Boss challenge rooms wave count no longer accidentally tied to normal challenge room wave count (ie, now two instead of three)

1.0.12

28 Sep 16:30
Compare
Choose a tag to compare

v1.0.12 -
Additions:

  • Add new Vanilla Tweaks option "Console Autofill Limit", which determines the number of autocomplete items that are displayed in the debug console.
  • Level:
    • CanPlaceRoom(RoomConfigRoom, int GridIndex, int Dimension = -1, bool AllowMultipleDoors = true, bool AllowSpecialNeighbors = false, bool AllowNoNeighbors = false)
      Returns true if the room would be able to fit at this location.
    • TryPlaceRoom(RoomConfigRoom, int GridIndex, int Dimension = -1, int Seed = 0, bool AllowMultipleDoors = true, bool AllowSpecialNeighbors = false, bool AllowNoNeighbors = false)
      Will only place the room if it can fit and all doors can be successfully connected to neighboring rooms.
      If successful, returns the new RoomDescriptor, returns nil otherwise.
      If a seed of nil or 0 is provided, a seed will be auto-generated based on the location, room shape, and level seed.
      Boolean params are additional safeties that can be enabled or disabled:
      AllowMultipleDoors - Set to false to only allow successful placement if the room would only have one door (for placing special rooms).
      AllowSpecialNeighbors - Set to true to allow connections to existing special rooms (note secret rooms are always allowed, but boss rooms are never allowed).
      AllowNoNeighbors - Set to true to allow placing the room out in the void with no neighbors.
    • CanPlaceRoomAtDoor(RoomConfigRoom, RoomDescriptor, DoorSlot, bool AllowMultipleDoors = true, bool AllowSpecialNeighbors = false)
      Returns true if the room could be successfully placed connected to the specified DoorSlot of an existing room.
    • TryPlaceRoomAtDoor(RoomConfigRoom, RoomDescriptor, DoorSlot, int Seed = 0, bool AllowMultipleDoors = true, bool AllowSpecialNeighbors = false)
      Attempts to place the room connected to an existing room via the specified DoorSlot.
    • FindValidRoomPlacementLocations(RoomConfigRoom, int Dimension = -1, bool AllowMultipleDoors = true, bool AllowSpecialNeighbors = false)
      Returns a table of level GridIndexes that would be valid locations to place the given room.
    • GetNeighboringRooms(int GridIndex, RoomShape, int Dimension = -1)
      Returns a table map of DoorSlot->RoomDescriptor. Don't use ipairs!
      Can be used to determine the neighbors of a room before even placing it.
      Note that this does not give you any signal of if a room would actually fit, or if the neighbors would even allow a connection.
  • StatsMenu:
    • SetSelectedElement(int element)
    • GetSelectedElement() - int
  • Room:
    • GetLRoom[Area/Tile]Desc() now return a usable class
    • GetGridIndexByTile() now accepts a table of int[2]
  • LRoomAreaDesc:
    • Describes the corners of an L-room shape (as divided horizontally into two rectangles), in worldspace
    • Vector Get[High/Low]TopLeft/BottomRight
  • LRoomTileDesc:
    • Describes the corners of an L-room shape (as divided horizontally into two rectangles), in grid coordinates
    • int[2] Get[High/Low]TopLeft/BottomRight
    • int[2] GetRandomTile(Seed)
    • Can use Room:GetGridIndexByTile() to retrieve grid idx at these coordinates
  • RoomDescriptor:
    • GetDimension() - int
    • GetNeighboringRooms()
      Returns a table map of DoorSlot->RoomDescriptor. Don't use ipairs!
  • ItemConfigCard:
    • Added weight and hidden parameter to cards, both can be specified in pocketitems.xml
    • Added the ability to specify a custom "availability condition" to evaluate when the game checks if a card is available.
    • Hidden
    • InitialWeight
    • Weight - can be modified
    • GetAvailabilityCondition()
    • SetAvailabilityCondition(function)
    • ClearAvailabilityCondition()
  • Sprite:
    • SetOverlayLayerFrame(int Layer, int Frame) - SetLayerFrame for overlays
    • GetLayerFrameData(int Layer) - Returns the current AnimationFrame for the given layer.
    • GetOverlayLayerFrameData(int Layer) - Same as above for the overlay animation.
  • AnimationFrame:
    • GetStartFrame()
    • GetEndFrame()
  • Point:
    • [Get/Set]Color() - Allows setting a color per-Point; colors are lerped between points
    • [Get/Set]IsWorldSpace() - Automatically converts this Point's position from worldspace to screenspace when rendering
  • ModCallbacks:
    • MC_PRE_GLOWING_HOURGLASS_SAVE/LOAD (int Slot)
      Called before the Glowing Hourglass state is saved/loaded
  • PersistentGameData:
    • AddBestiaryKill(EntityType, Variant = 0)
    • AddBossKilled(BossType)
    • IsBossKilled(BossType)
  • EntityPlayer:
    • GetMaxCoins() - int
    • GetMaxKeys() - int
    • GetMaxBombs() - int
  • EntitySlot:
    • GetPrizeCollectible() - int
  • New "customcache" tags (for items.xml and MC_EVALUATE_CUSTOM_CACHE):
    • "maxcoins"
    • "maxkeys"
    • "maxbombs"
      /newline/
      Modified:
  • Beam:
    • Beams now have an inherent Sprite object, no longer prone to losing its Sprite reference
    • Changes made to the Sprite provided in the constructor will not be reflected in the Beam, and vis-versa
    • Wrap[S/T]Mode are automatically set to proper values for the spritesheet to loop vertically
  • ModCallbacks:
    • MC_POST_PICKUP_SELECTION
      Additionally passes "RequestedVariant", "RequestedSubType" and "RNG".
      A third bool argument can be included in the return table to specify wether or not you want to let the callback continue execution after the update to Variant and SubType.
  • "Hush AI Fixes" patch will no longer be applied during daily runs.
  • Deal rooms with variants above 99 will now also generate in Red Rooms
  • Hold SHIFT of the DROP key to scroll faster through the main menu changelog
    /newline/
    Fixes:
    • Fixed a vanilla bug that caused wisps from destroyed Mystery Gift/Eden's Soul wisps to spawn even after a run restart.
    • Fixed HUD:GetCoopMenuSprite() returning invalid data
    • Fixed EntityPlayer:AddActiveCharge() incorrectly allowing overcharge when adding charge to all slots at the same time (with -1 given as the slot)
      /newline/

1.1.0-testing-launcher

27 Aug 11:55
900b523
Compare
Choose a tag to compare
Pre-release

Internal release used to test the launcher

1.0.11c

15 Aug 14:14
Compare
Choose a tag to compare

v1.0.11c -
Additions:

  • CharacterMenu:
    • [Get/Set]ActiveStatus()
    • CharacterMenuStatus enum

Fixes:
- Fixed vanilla game crash caused by Hornfel trying to enter new door after losing minecart.
- Fixed SetRail index checks

v1.0.11b -
Bug fixes:
- Fixed a crash that could occur randomly when using custom item pools

v1.0.11a -
Bug fixes:
- Fixed a division by zero that occured when shuffling an empty item pool

v1.0.11 -
Additions:

  • Itempools:
    • Added support for new custom itempools through itempools.xml on the content folder
    • Isaac.GetPoolIdByName(poolName) - returns the id of a given custom pool. Returns -1 if the pool is not found.
    • Room:SetItemPool(ItemPoolType PoolType) - Sets the pool to use when the game needs to generate random collectibles in the current room.
    • Room:GetItemPool(int Seed, boolean Raw) - Retrieves the pooltype the game would use to generate random collectibles in the current room.
    • ItemPool:GetNumItemPools() - Retrieves the total number of itempools in the game, including custom itempools.
  • GenericPrompt:
    • GenericPrompt constructor
    • Initialize(boolean SmallPrompt = false)
    • Show()
    • IsActive()
    • Update(boolean ProcessInput)
    • Render()
    • SetText(string Text1 = "", string Text2 = "", string Text3 = "", string Text4 = "", string Text5 = "")
    • GetSprite()
    • GetCurrentSelection() - (0 - No, 1 - Yes)
    • GetSubmittedSelection() - (0 - None, 1 - Yes, 2 - No)
  • ModCallbacks:
    • POST versions of MC_PRE_PLAYER_ADD/REMOVE_COSTUME
    • MC_POST_FORCE_PILL_EFFECT
    • MC_EVALUATE_CUSTOM_CACHE(Player, CustomCacheTag, float value)
      Cache-style evaluation for custom player attributes.
      Return a number to modify the value. Modified values are passed to the next callback.
      CustomCacheTags must always be all lowercase.
      Optional param: CustomCacheTag
    • MC_EVALUATE_FAMILIAR_MULTIPLIER(Familiar, float mult, Player)
      Called when a familiar's cached multiplier needs to be re-evaluated.
      Return a number to modify the multiplier. Modified values are passed to the next callback.
      Optional param: FamiliarVariant
  • EntityPlayer:
    • GetMovingBoxContents()
    • GetTearDisplacement() - Returns the player's TearDisplacement value, used to check what eye the player is shooting from. 1 means that the last shot was from the right eye, -1 means the opposite.
    • AddCustomCacheTag(string OR {string, string, ...}, bool evaluateItemsNow) - Add CustomCacheTag(s) to be evaluated next time EvaluateItems runs (which is right now, if the optional boolean is passed).
    • GetCustomCacheValue(string CustomCacheTag) - Returns the current cached value for the specified CustomCacheTag. Will return 0 by default if the provided tag has not been evaluated.
  • EntityFamiliar:
    • GetMultiplier() - Returns the "multiplier" for the familiar, from effects such as BFFs or Hive Mind. Typically used to multiply things such as familiar damage.
    • InvalidateCachedMultiplier() - Makes it so that the next time GetMultiplier is called, MC_EVALUATE_FAMILIAR_MULTIPLIER is triggered to recalculate/allow modifying the multiplier.
  • EntityNPC:
    • SetFlyingOverride(bool) - Sets an override to the return value of IsFlying, which is normally based on EntityGridCollisionClass. Can be used to make grounded enemies ignore creep, or flying enemies get hit by creep.
    • ClearFlyingOverride() - Removes any value set by SetFlyingOverride.
    • TrySplit(float DefaultDamage, EntityRef Source, DoScreenEffects = true)
    • ReplaceSpritesheet(int LayedId, string PngFilename, bool LoadGraphics = false) - Appends _champion/stage suffix to PngFilename if possible.
  • EntityLaser:
    • RecalculateSamplesNextUpdate() - 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.
    • IsMultidimensionalTouched()
    • [Is/Set]PrismTouched()
  • EntityTear:
    • [Is/Set]MultidimensionalTouched()
    • [Is/Set]PrismTouched()
  • EntityBomb:
    • [Is/Set]PrismTouched()
  • EntityKnife:
    • [Is/Set]MultidimensionalTouched()
    • [Is/Set]PrismTouched()
  • EntityPickup:
    • TriggerTheresOptionsPickup() - Removes pickups with the same option group (OptionsPickupIndex) as the target pickup.
  • LayerState:
  • Game:
    • GetGenericPrompt()
  • Level:
    • GetMyosotisPickups() - returns the pickups that will be transferred to the next floor by the myosotis trinket effect
  • ItemConfigItem:
    • HasCustomCacheTag
    • GetCustomCacheTags
  • Added support for a "customcache" attribute in items.xml
    • Formatted as a space-separated list of string tags, same as other similar attributes.
    • Capitalization is ignored - tags are converted to all lowercase.
    • Whenever an item/trinket/effect is added or removed, triggers MC_EVALUATE_CUSTOM_CACHE on the player for each tag specified for that item.
    • MC_EVALUATE_CUSTOM_CACHE will evaluate a number value (starts at 0 by default) which can be retrieved afterwards with player:GetCustomCacheValue(tag)
    • Every tag that exists on at least one item in items.xml will also be triggered by CacheFlag.CACHE_ALL
    • REPENTOGON adds one custom cache tag (so far): "familiarmultiplier". Note that this one does not trigger MC_EVALUATE_CUSTOM_CACHE, instead triggering MC_EVALUATE_FAMILIAR_MULTIPLIER for each familiar.

Fixes:
- Fixed the game getting permanantly stuck trying to generate an ascent floor if a modded boss room has certain door layouts
- Fix a vanilla bug that caused Hush's laser attack to ignore a room's slowdown state and always chase the player at full speed
- Fix ???/Blue Womb rooms generating in The Void even when not using Better Void Generation
- Fix Void Portal rooms potentially not being generated in The Void
- Fix room weights not correctly being reset when reseeding in The Void
- Temporarily disable modified RoomDescriptor.OverrideData handling to prevent potential cases of it not being properly replaced
- Fix Isaac's Heart being immune to lasers

1.0.11b

03 Aug 18:43
Compare
Choose a tag to compare

v1.0.11b -
Bug fixes:
- Fixed a crash that could occur randomly when using custom item pools

v1.0.11a -
Bug fixes:

  • Fixed a division by zero that occured when shuffling an empty item pool

v1.0.11 -
Additions:

Itempools:
Added support for new custom itempools through itempools.xml on the content folder
Isaac.GetPoolIdByName(poolName) - returns the id of a given custom pool. Returns -1 if the pool is not found.
Room:SetItemPool(ItemPoolType PoolType) - Sets the pool to use when the game needs to generate random collectibles in the current room.
Room:GetItemPool(int Seed, boolean Raw) - Retrieves the pooltype the game would use to generate random collectibles in the current room.
ItemPool:GetNumItemPools() - Retrieves the total number of itempools in the game, including custom itempools.
GenericPrompt:
GenericPrompt constructor
Initialize(boolean SmallPrompt = false)
Show()
IsActive()
Update(boolean ProcessInput)
Render()
SetText(string Text1 = "", string Text2 = "", string Text3 = "", string Text4 = "", string Text5 = "")
GetSprite()
GetCurrentSelection() - (0 - No, 1 - Yes)
GetSubmittedSelection() - (0 - None, 1 - Yes, 2 - No)
ModCallbacks:
POST versions of MC_PRE_PLAYER_ADD/REMOVE_COSTUME
MC_POST_FORCE_PILL_EFFECT
MC_EVALUATE_CUSTOM_CACHE(Player, CustomCacheTag, float value)
Cache-style evaluation for custom player attributes.
Return a number to modify the value. Modified values are passed to the next callback.
CustomCacheTags must always be all lowercase.
Optional param: CustomCacheTag
MC_EVALUATE_FAMILIAR_MULTIPLIER(Familiar, float mult, Player)
Called when a familiar's cached multiplier needs to be re-evaluated.
Return a number to modify the multiplier. Modified values are passed to the next callback.
Optional param: FamiliarVariant
EntityPlayer:
GetMovingBoxContents()
GetTearDisplacement() - Returns the player's TearDisplacement value, used to check what eye the player is shooting from. 1 means that the last shot was from the right eye, -1 means the opposite.
AddCustomCacheTag(string OR {string, string, ...}, bool evaluateItemsNow) - Add CustomCacheTag(s) to be evaluated next time EvaluateItems runs (which is right now, if the optional boolean is passed).
GetCustomCacheValue(string CustomCacheTag) - Returns the current cached value for the specified CustomCacheTag. Will return 0 by default if the provided tag has not been evaluated.
EntityFamiliar:
GetMultiplier() - Returns the "multiplier" for the familiar, from effects such as BFFs or Hive Mind. Typically used to multiply things such as familiar damage.
InvalidateCachedMultiplier() - Makes it so that the next time GetMultiplier is called, MC_EVALUATE_FAMILIAR_MULTIPLIER is triggered to recalculate/allow modifying the multiplier.
EntityNPC:
SetFlyingOverride(bool) - Sets an override to the return value of IsFlying, which is normally based on EntityGridCollisionClass. Can be used to make grounded enemies ignore creep, or flying enemies get hit by creep.
ClearFlyingOverride() - Removes any value set by SetFlyingOverride.
TrySplit(float DefaultDamage, EntityRef Source, DoScreenEffects = true)
ReplaceSpritesheet(int LayedId, string PngFilename, bool LoadGraphics = false) - Appends _champion/stage suffix to PngFilename if possible.
EntityLaser:
RecalculateSamplesNextUpdate() - 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.
IsMultidimensionalTouched()
[Is/Set]PrismTouched()
EntityTear:
[Is/Set]MultidimensionalTouched()
[Is/Set]PrismTouched()
EntityBomb:
[Is/Set]PrismTouched()
EntityKnife:
[Is/Set]MultidimensionalTouched()
[Is/Set]PrismTouched()
EntityPickup:
TriggerTheresOptionsPickup() - Removes pickups with the same option group (OptionsPickupIndex) as the target pickup.
LayerState:
GetFlipX/Y, SetFlipX/Y
Game:
GetGenericPrompt()
Level:
GetMyosotisPickups() - returns the pickups that will be transferred to the next floor by the myosotis trinket effect
ItemConfigItem:
HasCustomCacheTag
GetCustomCacheTags
Added support for a "customcache" attribute in items.xml
Formatted as a space-separated list of string tags, same as other similar attributes.
Capitalization is ignored - tags are converted to all lowercase.
Whenever an item/trinket/effect is added or removed, triggers MC_EVALUATE_CUSTOM_CACHE on the player for each tag specified for that item.
MC_EVALUATE_CUSTOM_CACHE will evaluate a number value (starts at 0 by default) which can be retrieved afterwards with player:GetCustomCacheValue(tag)
Every tag that exists on at least one item in items.xml will also be triggered by CacheFlag.CACHE_ALL
REPENTOGON adds one custom cache tag (so far): "familiarmultiplier". Note that this one does not trigger MC_EVALUATE_CUSTOM_CACHE, instead triggering MC_EVALUATE_FAMILIAR_MULTIPLIER for each familiar.
Fixes:

  • Fixed the game getting permanantly stuck trying to generate an ascent floor if a modded boss room has certain door layouts
  • Fix a vanilla bug that caused Hush's laser attack to ignore a room's slowdown state and always chase the player at full speed
  • Fix ???/Blue Womb rooms generating in The Void even when not using Better Void Generation
  • Fix Void Portal rooms potentially not being generated in The Void
  • Fix room weights not correctly being reset when reseeding in The Void
  • Temporarily disable modified RoomDescriptor.OverrideData handling to prevent potential cases of it not being properly replaced
  • Fix Isaac's Heart being immune to lasers

1.0.11a

03 Aug 10:31
Compare
Choose a tag to compare

v1.0.11a -
Bug fixes:
- Fixed a division by zero that occured when shuffling an empty item pool

v1.0.11 -
Additions:

  • Itempools:
    • Added support for new custom itempools through itempools.xml on the content folder
    • Isaac.GetPoolIdByName(poolName) - returns the id of a given custom pool. Returns -1 if the pool is not found.
    • Room:SetItemPool(ItemPoolType PoolType) - Sets the pool to use when the game needs to generate random collectibles in the current room.
    • Room:GetItemPool(int Seed, boolean Raw) - Retrieves the pooltype the game would use to generate random collectibles in the current room.
    • ItemPool:GetNumItemPools() - Retrieves the total number of itempools in the game, including custom itempools.
  • GenericPrompt:
    • GenericPrompt constructor
    • Initialize(boolean SmallPrompt = false)
    • Show()
    • IsActive()
    • Update(boolean ProcessInput)
    • Render()
    • SetText(string Text1 = "", string Text2 = "", string Text3 = "", string Text4 = "", string Text5 = "")
    • GetSprite()
    • GetCurrentSelection() - (0 - No, 1 - Yes)
    • GetSubmittedSelection() - (0 - None, 1 - Yes, 2 - No)
  • ModCallbacks:
    • POST versions of MC_PRE_PLAYER_ADD/REMOVE_COSTUME
    • MC_POST_FORCE_PILL_EFFECT
    • MC_EVALUATE_CUSTOM_CACHE(Player, CustomCacheTag, float value)
      Cache-style evaluation for custom player attributes.
      Return a number to modify the value. Modified values are passed to the next callback.
      CustomCacheTags must always be all lowercase.
      Optional param: CustomCacheTag
    • MC_EVALUATE_FAMILIAR_MULTIPLIER(Familiar, float mult, Player)
      Called when a familiar's cached multiplier needs to be re-evaluated.
      Return a number to modify the multiplier. Modified values are passed to the next callback.
      Optional param: FamiliarVariant
  • EntityPlayer:
    • GetMovingBoxContents()
    • GetTearDisplacement() - Returns the player's TearDisplacement value, used to check what eye the player is shooting from. 1 means that the last shot was from the right eye, -1 means the opposite.
    • AddCustomCacheTag(string OR {string, string, ...}, bool evaluateItemsNow) - Add CustomCacheTag(s) to be evaluated next time EvaluateItems runs (which is right now, if the optional boolean is passed).
    • GetCustomCacheValue(string CustomCacheTag) - Returns the current cached value for the specified CustomCacheTag. Will return 0 by default if the provided tag has not been evaluated.
  • EntityFamiliar:
    • GetMultiplier() - Returns the "multiplier" for the familiar, from effects such as BFFs or Hive Mind. Typically used to multiply things such as familiar damage.
    • InvalidateCachedMultiplier() - Makes it so that the next time GetMultiplier is called, MC_EVALUATE_FAMILIAR_MULTIPLIER is triggered to recalculate/allow modifying the multiplier.
  • EntityNPC:
    • SetFlyingOverride(bool) - Sets an override to the return value of IsFlying, which is normally based on EntityGridCollisionClass. Can be used to make grounded enemies ignore creep, or flying enemies get hit by creep.
    • ClearFlyingOverride() - Removes any value set by SetFlyingOverride.
    • TrySplit(float DefaultDamage, EntityRef Source, DoScreenEffects = true)
    • ReplaceSpritesheet(int LayedId, string PngFilename, bool LoadGraphics = false) - Appends _champion/stage suffix to PngFilename if possible.
  • EntityLaser:
    • RecalculateSamplesNextUpdate() - 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.
    • IsMultidimensionalTouched()
    • [Is/Set]PrismTouched()
  • EntityTear:
    • [Is/Set]MultidimensionalTouched()
    • [Is/Set]PrismTouched()
  • EntityBomb:
    • [Is/Set]PrismTouched()
  • EntityKnife:
    • [Is/Set]MultidimensionalTouched()
    • [Is/Set]PrismTouched()
  • EntityPickup:
    • TriggerTheresOptionsPickup() - Removes pickups with the same option group (OptionsPickupIndex) as the target pickup.
  • LayerState:
  • Game:
    • GetGenericPrompt()
  • Level:
    • GetMyosotisPickups() - returns the pickups that will be transferred to the next floor by the myosotis trinket effect
  • ItemConfigItem:
    • HasCustomCacheTag
    • GetCustomCacheTags
  • Added support for a "customcache" attribute in items.xml
    • Formatted as a space-separated list of string tags, same as other similar attributes.
    • Capitalization is ignored - tags are converted to all lowercase.
    • Whenever an item/trinket/effect is added or removed, triggers MC_EVALUATE_CUSTOM_CACHE on the player for each tag specified for that item.
    • MC_EVALUATE_CUSTOM_CACHE will evaluate a number value (starts at 0 by default) which can be retrieved afterwards with player:GetCustomCacheValue(tag)
    • Every tag that exists on at least one item in items.xml will also be triggered by CacheFlag.CACHE_ALL
    • REPENTOGON adds one custom cache tag (so far): "familiarmultiplier". Note that this one does not trigger MC_EVALUATE_CUSTOM_CACHE, instead triggering MC_EVALUATE_FAMILIAR_MULTIPLIER for each familiar.

Fixes:
- Fixed the game getting permanantly stuck trying to generate an ascent floor if a modded boss room has certain door layouts
- Fix a vanilla bug that caused Hush's laser attack to ignore a room's slowdown state and always chase the player at full speed
- Fix ???/Blue Womb rooms generating in The Void even when not using Better Void Generation
- Fix Void Portal rooms potentially not being generated in The Void
- Fix room weights not correctly being reset when reseeding in The Void
- Temporarily disable modified RoomDescriptor.OverrideData handling to prevent potential cases of it not being properly replaced
- Fix Isaac's Heart being immune to lasers

1.0.10c

08 Jul 18:43
Compare
Choose a tag to compare

v1.0.10c -
Additions:

  • RoomDescriptor:
    InitSeeds(RNG)

  • ModCallbacks:

    • MC_PRE_PLAYER_ADD_COSTUME(ItemConfigItem, Player, ItemStateOnly)
      Called before the costume is added to the player. Return ItemConfigItem to replace the costume or false to cancel adding it entirely.
    • MC_PRE_PLAYER_REMOVE_COSTUME(ItemConfigItem, Player)
      Called before the costume is removed from the player. Return false to cancel the removal.
  • Fixes:

    • Fixed a severe issue with Isaac.PlayCutscene() causing potential corruption when called for custom cutscene.
    • EntityPlayer:SetImmaculateConceptionState(i) now automatically clamps to valid values only [0,14] to avoid crashes.
    • Fixed binder for EntityPlayer:DropCollectibleByHistoryIndex which caused crashes on call.
    • Fixed an issue in ItemPool:GetCollectible that prevented passing ItemPoolType.POOL_NULL.

Modified:

  • RoomConfigHolder:
    • GetRoomByStageTypeAndVariant(StbType, Type, Variant, Mode = -1)
  • Re-enabled "Extra debug render for FindInRadius" option.

v1.0.10b -
Modified:

  • MusicManager:
    PlayJingle(Music ID, int Duration)
  • Fixes:
    • Disabled the new Debug find in radius feature until further notice, since it causes issues on some vanilla calls (Ex: Evil Eye)
  • Room:TrySpawnBlueWombTime now checks Game TimeCounter instead of FrameCount, consistent with TrySpawnBossRushDoor and likely the intended behavior

v1.0.10a -
Additions:

  • EntityPlayer:
    • SetBlackHeart(int BlackHeart)
    • GetCambionFamiliarFlags()
    • SetCambionFamiliarFlags(CambionFamiliarFlag flags)
  • ModCallbacks:
    • MC_PRE_FORTUNE_DISPLAY
      Called before a fortune paper is displayed.
    • MC_PRE_ITEM_TEXT_DISPLAY (title, subtitle, isSticky, isCurseDisplay)
      Called before an item text is displayed (such as with picking up an item, Poke Go, stage title, etc.)
    • PRE_GET_RANDOM_ROOM_INDEX(int RoomIndex, bool IAmErrorRoom, integer Seed)
      Return integer to overwrite target room index.
    • MC_POST_GLOWING_HOURGLASS_SAVE/LOAD (int Slot)
      Called after the Glowing Hourglass state is saved/loaded
    • MC_PRE/POST_PLAYER_ADD_CARD/PILL (EntityPlayer, Card/PillColor, PillCardSlot)
      Called before/after a card/pill gets added to the player's inventory.
      On PRE: Return a different ID to change the card/pill added, or false to cancel adding it entirely.
    • MC_POST_PLAYER_REMOVE_CARD/PILL (EntityPlayer, Card/PillColor, PillCardSlot)
      Called after a card/pill gets removed from the player's inventory by any means (dropped, direct removal, use, etc).
    • MC_PRE/POST_PLAYER_COLLECT_CARD (EntityPlayer, EntityPickup)
      Called before/after a player picks up a card/pill off the ground.
      On PRE: Return false to prevent the card/pill from being picked up.
    • MC_POST_PLAYER_DROP_CARD/PILL (EntityPlayer, EntityPickup, PillCardSlot)
      Called after a player drops a card/pill onto the ground from their inventory.
    • MC_PRE_PLAYER_GIVE_BIRTH_CAMBION/IMMACULATE (EntityPlayer, CambionFamiliarFlag)
      Return false to cancel the familiar being added.
  • EntityLaser:
    • GetDamageMultiplier()
    • SetDamageMultiplier(float Mult)
  • EntityKnife:
    • GetIsSwinging()
    • SetIsSwinging(bool)
    • GetIsSpinAttack()
    • SetIsSpinAttack(bool)
  • EntityFamiliar:
    • GetItemConfig()
  • PlayerHUDHeart:
    • IsEternalHeartOverlayVisible()
    • IsFadingHeart()
  • PlayerManager:
    • RemoveCoPlayer(Entity_Player)
  • DailyChallengeMenu:
    • Get/SetState
  • Enums:
    • CambionFamiliarFlag
  • Added a new option "Extra debug render for FindInRadius". While the DebugFlag.HITSPHERES flag is enabled, debug spheres will be rendered for FindInRadius/QueryRadius calls.
  • RoomDescriptor.OverrideData is no longer forcibly changed by RoomDescriptor.FLAG_SURPRISE_MINIBOSS

Modified:

  • Isaac:
    PlayCutscene(CutsceneID, ClearGameState = false)
  • Game:
    SetDizzyAmount(TargetIntensity, CurrentIntensity) - Providing CurrentIntensity is now optional
  • EntityNPC:
    ShootMaggotProjectile(Position, Target, FallingSpeed = -8.0, YOffset = -24.0)
  • EntityPlayer:
    Fixed vanilla crash when AddNullCostume is given an invalid id; along with other potential crashes in AddCostume
  • Callbacks:
    • MC_PRE_PLAYERHUD_TRINKET_RENDER
      Fixed returning true to cancel rendering.
    • MC_PLAYER_GET_ACTIVE_MAX_CHARGE / MC_PLAYER_GET_ACTIVE_MIN_USABLE_CHARGE
      Will no longer run for empty active item slots.
      Now provide the current charge value as an argument.
      Returning a value no longer stops the callback, and changes the charge value passed to the next callback.
      If the final result of the callback is <0, the result is treated as 0.
  • The game no longer prematurely ends the daily run if there was console input, instead blocking it

Fixes:

  • Game():GetDizzyAmount() now returns the intended value, instead of 0
  • Fixed MC_PRE_PLANETARIUM_APPLY_TREASURE_PENALTY not providing the current number of treasure rooms visited.
  • Fixed binders for EntityNPC: ThrowMaggot, ShootMaggotProjectile functions.

1.0.10b

01 Jul 03:10
Compare
Choose a tag to compare

v1.0.10b -

  • Fixes:
    • Disabled the new Debug find in radius feature until further notice, since it causes issues on some vanilla calls (Ex: Evil Eye)

v1.0.10a -
Additions:

  • EntityPlayer:
    • SetBlackHeart(int BlackHeart)
    • GetCambionFamiliarFlags()
    • SetCambionFamiliarFlags(CambionFamiliarFlag flags)
  • ModCallbacks:
    • MC_PRE_FORTUNE_DISPLAY
      Called before a fortune paper is displayed.
    • MC_PRE_ITEM_TEXT_DISPLAY (title, subtitle, isSticky, isCurseDisplay)
      Called before an item text is displayed (such as with picking up an item, Poke Go, stage title, etc.)
    • PRE_GET_RANDOM_ROOM_INDEX(int RoomIndex, bool IAmErrorRoom, integer Seed)
      Return integer to overwrite target room index.
    • MC_POST_GLOWING_HOURGLASS_SAVE/LOAD (int Slot)
      Called after the Glowing Hourglass state is saved/loaded
    • MC_PRE/POST_PLAYER_ADD_CARD/PILL (EntityPlayer, Card/PillColor, PillCardSlot)
      Called before/after a card/pill gets added to the player's inventory.
      On PRE: Return a different ID to change the card/pill added, or false to cancel adding it entirely.
    • MC_POST_PLAYER_REMOVE_CARD/PILL (EntityPlayer, Card/PillColor, PillCardSlot)
      Called after a card/pill gets removed from the player's inventory by any means (dropped, direct removal, use, etc).
    • MC_PRE/POST_PLAYER_COLLECT_CARD (EntityPlayer, EntityPickup)
      Called before/after a player picks up a card/pill off the ground.
      On PRE: Return false to prevent the card/pill from being picked up.
    • MC_POST_PLAYER_DROP_CARD/PILL (EntityPlayer, EntityPickup, PillCardSlot)
      Called after a player drops a card/pill onto the ground from their inventory.
    • MC_PRE_PLAYER_GIVE_BIRTH_CAMBION/IMMACULATE (EntityPlayer, CambionFamiliarFlag)
      Return false to cancel the familiar being added.
  • EntityLaser:
    • GetDamageMultiplier()
    • SetDamageMultiplier(float Mult)
  • EntityKnife:
    • GetIsSwinging()
    • SetIsSwinging(bool)
    • GetIsSpinAttack()
    • SetIsSpinAttack(bool)
  • EntityFamiliar:
    • GetItemConfig()
  • PlayerHUDHeart:
    • IsEternalHeartOverlayVisible()
    • IsFadingHeart()
  • PlayerManager:
    • RemoveCoPlayer(Entity_Player)
  • DailyChallengeMenu:
    • Get/SetState
  • Enums:
    • CambionFamiliarFlag
  • Added a new option "Extra debug render for FindInRadius". While the DebugFlag.HITSPHERES flag is enabled, debug spheres will be rendered for FindInRadius/QueryRadius calls.
  • RoomDescriptor.OverrideData is no longer forcibly changed by RoomDescriptor.FLAG_SURPRISE_MINIBOSS

Modified:

  • Isaac:
    PlayCutscene(CutsceneID, ClearGameState = false)
  • Game:
    SetDizzyAmount(TargetIntensity, CurrentIntensity) - Providing CurrentIntensity is now optional
  • EntityNPC:
    ShootMaggotProjectile(Position, Target, FallingSpeed = -8.0, YOffset = -24.0)
  • EntityPlayer:
    Fixed vanilla crash when AddNullCostume is given an invalid id; along with other potential crashes in AddCostume
  • Callbacks:
    • MC_PRE_PLAYERHUD_TRINKET_RENDER
      Fixed returning true to cancel rendering.
    • MC_PLAYER_GET_ACTIVE_MAX_CHARGE / MC_PLAYER_GET_ACTIVE_MIN_USABLE_CHARGE
      Will no longer run for empty active item slots.
      Now provide the current charge value as an argument.
      Returning a value no longer stops the callback, and changes the charge value passed to the next callback.
      If the final result of the callback is <0, the result is treated as 0.
  • The game no longer prematurely ends the daily run if there was console input, instead blocking it

Fixes:

  • Game():GetDizzyAmount() now returns the intended value, instead of 0
  • Fixed MC_PRE_PLANETARIUM_APPLY_TREASURE_PENALTY not providing the current number of treasure rooms visited.
  • Fixed binders for EntityNPC: ThrowMaggot, ShootMaggotProjectile functions.

1.0.10a

30 Jun 19:57
Compare
Choose a tag to compare

v1.0.10a -
Additions:

  • EntityPlayer:
    • SetBlackHeart(int BlackHeart)
    • GetCambionFamiliarFlags()
    • SetCambionFamiliarFlags(CambionFamiliarFlag flags)
  • ModCallbacks:
    • MC_PRE_FORTUNE_DISPLAY
      Called before a fortune paper is displayed.
    • MC_PRE_ITEM_TEXT_DISPLAY (title, subtitle, isSticky, isCurseDisplay)
      Called before an item text is displayed (such as with picking up an item, Poke Go, stage title, etc.)
    • PRE_GET_RANDOM_ROOM_INDEX(int RoomIndex, bool IAmErrorRoom, integer Seed)
      Return integer to overwrite target room index.
    • MC_POST_GLOWING_HOURGLASS_SAVE/LOAD (int Slot)
      Called after the Glowing Hourglass state is saved/loaded
    • MC_PRE/POST_PLAYER_ADD_CARD/PILL (EntityPlayer, Card/PillColor, PillCardSlot)
      Called before/after a card/pill gets added to the player's inventory.
      On PRE: Return a different ID to change the card/pill added, or false to cancel adding it entirely.
    • MC_POST_PLAYER_REMOVE_CARD/PILL (EntityPlayer, Card/PillColor, PillCardSlot)
      Called after a card/pill gets removed from the player's inventory by any means (dropped, direct removal, use, etc).
    • MC_PRE/POST_PLAYER_COLLECT_CARD (EntityPlayer, EntityPickup)
      Called before/after a player picks up a card/pill off the ground.
      On PRE: Return false to prevent the card/pill from being picked up.
    • MC_POST_PLAYER_DROP_CARD/PILL (EntityPlayer, EntityPickup, PillCardSlot)
      Called after a player drops a card/pill onto the ground from their inventory.
    • MC_PRE_PLAYER_GIVE_BIRTH_CAMBION/IMMACULATE (EntityPlayer, CambionFamiliarFlag)
      Return false to cancel the familiar being added.
  • EntityLaser:
    • GetDamageMultiplier()
    • SetDamageMultiplier(float Mult)
  • EntityKnife:
    • GetIsSwinging()
    • SetIsSwinging(bool)
    • GetIsSpinAttack()
    • SetIsSpinAttack(bool)
  • EntityFamiliar:
    • GetItemConfig()
  • PlayerHUDHeart:
    • IsEternalHeartOverlayVisible()
    • IsFadingHeart()
  • PlayerManager:
    • RemoveCoPlayer(Entity_Player)
  • DailyChallengeMenu:
    • Get/SetState
  • Enums:
    • CambionFamiliarFlag
  • Added a new option "Extra debug render for FindInRadius". While the DebugFlag.HITSPHERES flag is enabled, debug spheres will be rendered for FindInRadius/QueryRadius calls.
  • RoomDescriptor.OverrideData is no longer forcibly changed by RoomDescriptor.FLAG_SURPRISE_MINIBOSS

Modified:

  • Isaac:
    PlayCutscene(CutsceneID, ClearGameState = false)
  • Game:
    SetDizzyAmount(TargetIntensity, CurrentIntensity) - Providing CurrentIntensity is now optional
  • EntityNPC:
    ShootMaggotProjectile(Position, Target, FallingSpeed = -8.0, YOffset = -24.0)
  • EntityPlayer:
    Fixed vanilla crash when AddNullCostume is given an invalid id; along with other potential crashes in AddCostume
  • Callbacks:
    • MC_PRE_PLAYERHUD_TRINKET_RENDER
      Fixed returning true to cancel rendering.
    • MC_PLAYER_GET_ACTIVE_MAX_CHARGE / MC_PLAYER_GET_ACTIVE_MIN_USABLE_CHARGE
      Will no longer run for empty active item slots.
      Now provide the current charge value as an argument.
      Returning a value no longer stops the callback, and changes the charge value passed to the next callback.
      If the final result of the callback is <0, the result is treated as 0.
  • The game no longer prematurely ends the daily run if there was console input, instead blocking it

Fixes:

  • Game():GetDizzyAmount() now returns the intended value, instead of 0
  • Fixed MC_PRE_PLANETARIUM_APPLY_TREASURE_PENALTY not providing the current number of treasure rooms visited.
  • Fixed binders for EntityNPC: ThrowMaggot, ShootMaggotProjectile functions.