Merge pull request #293 from Buurazu/master

Fix TMTRAINER crash + Steam comment suggestions
This commit is contained in:
wofsauge authored and GitHub committed 2022-01-10 14:05:53 +01:00
commit f2c215376d
6 files changed
+47 -73

No files matched your search

+6 -6
View File
@@ -37,7 +37,7 @@ EID.descriptions[languageCode].collectibles={
{"18", "A Dollar", "+99 coins"},
{"19", "Boom!", "+10 Bombs"},
{"20", "Transcendence", "Flight!"},
{"21", "The Compass", "Reveals all icons on the map#Does not show the layout of the map"},
{"21", "The Compass", "Reveals icons on the map#Does not show the layout of the map"},
{"22", "Lunch", "↑ +1 Health up"},
{"23", "Dinner", "↑ +1 Health up"},
{"24", "Dessert", "↑ +1 Health up"},
@@ -200,7 +200,7 @@ EID.descriptions[languageCode].collectibles={
{"181", "White Pony", "Grants flight while held#Sets your speed to 1.5 if you have less than 1.5#Holy Dash on use"},
{"182", "Sacred Heart", "↑ +1 Health up#Full health#↑ 230% + 1 Damage up#↓ -0.4 Tears down#↓ -0.25 Shot Speed down#↑ +0.38 Range up#↑ +0.75 Tear Height#Homing tears"},
{"183", "Tooth Picks", "↑ +0.7 Tears up#↑ +0.16 Shot Speed up"},
{"184", "Holy Grail", "Grants flight#↑ +1 Health up"},
{"184", "Holy Grail", "Flight#↑ +1 Health up"},
{"185", "Dead Dove", "Flight#Spectral tears"},
{"186", "Blood Rights", "↑ Deal 40 damage to every enemy#↓ Deals 1 heart of damage to you#Prioritizes Red Hearts"},
{"187", "Guppy's Hairball", "Growing hairball#Swings around you#Grows when it kills an enemy#Bigger ball deals more damage"},
@@ -385,7 +385,7 @@ EID.descriptions[languageCode].collectibles={
{"366", "Scatter Bombs", "+5 bombs#Causes your bombs to explode into 2-4 tiny bombs"},
{"367", "Sticky Bombs", "+5 bombs#When a bomb kills an enemy, it spawns blue spiders#Causes your bombs to stick to enemies"},
{"368", "Epiphora", "Shooting in one direction gradually decreases your tear delay by up to 200%"},
{"369", "Continuum", "↑ +2.25 Range up#↑ +1.5 Tear Height#Tears travel through walls and appear out of the opposite wall"},
{"369", "Continuum", "↑ +2.25 Range up#↑ +1.5 Tear Height#Spectral tears#Tears travel through walls and appear out of the opposite wall"},
{"370", "Mr. Dolly", "↑ +0.7 Tears up#↑ +5.25 Range up#↑ +0.5 Tear Height#Spawns 3 random hearts when picked up"},
{"371", "Curse of the Tower", "Spawn 6 troll bombs every time you get hit#These are affected by bomb items"},
{"372", "Charged Baby", "Random chance to drop a battery or freeze all enemies in the room#Chance to add one charge to your active item"},
@@ -476,7 +476,7 @@ EID.descriptions[languageCode].collectibles={
{"457", "Cone Head", "+1 Soul Heart#20% chance to ignore damage"},
{"458", "Belly Button", "Spawns a random trinket on pickup#Grants 1 extra trinket slot"},
{"459", "Sinus Infection", "20% chance to shoot sticky poison tears#Deals your damage each second#Sticks for 60 seconds"},
{"460", "Glaucoma", "5% chance to shoot concussive tears"},
{"460", "Glaucoma", "5% chance to shoot concussive tears#Makes the screen slightly darker"},
{"461", "Parasitoid", "15% chance to shoot egg sacks#Spawns slowing creep on hit#Spawns a blue spider or fly on hit"},
{"462", "Eye of Belial", "↑ +1.5 Range up#↑ +1 Tear Height#Grants piercing tears#After hitting the first enemy, the tear deals double damage and gains a homing effect"},
{"463", "Sulfuric Acid", "↑ +0.3 Damage up#Chance to destroy rocks and open doors with your tears"},
@@ -537,7 +537,7 @@ EID.descriptions[languageCode].collectibles={
{"518", "Buddy in a Box", "Familiar which looks like a random coop Baby#Has a random tear effect#Will be randomized every floor"},
{"519", "Lil Delirium", "A familiar that transforms into other random familiars every 10 seconds"},
{"520", "Jumper Cables", "+1 charge for your active item for every 15 enemies killed"},
{"521", "Coupon", "When used, causes one random item in the {{Shop}}Shop or {{DevilRoom}}Devil Room to become free"},
{"521", "Coupon", "When used, causes one random item in the {{Shop}}Shop or {{DevilRoom}}Devil Room to become free#While held, guarantees one Shop item will be on sale"},
{"522", "Telekinesis", "Enemy projectiles close to you are held in place for 3 seconds#They get thrown away from you afterwards#Recharges after 3 seconds"},
{"523", "Moving Box", "When used, stores all pickups from the current room#Using it again will put them back on the floor again#This allows you to move things between rooms"},
{"524", "Technology Zero", "Tears will be connected with beams of electricity#Electricity damage equals your damage"},
@@ -745,7 +745,7 @@ EID.descriptions[languageCode].cards={
{"38", "Berkano", "Summons 3 blue spiders and 3 blue flies"},
{"39", "Algiz", "Invincibility for 30 seconds"},
{"40", "Blank Rune", "Random rune effect#25% chance to drop itself again"},
{"41", "Black Rune", "Deals 40 damage to all enemies#Random stat up for every pedestal items in the room#(Destroys all pedestals in room)"},
{"41", "Black Rune", "Deals 40 damage to all enemies#Converts all pedestal items in the room into random stat ups#Converts all pickups in the room into blue flies"},
{"42", "Chaos Card", "Throwable instant kill-card"},
{"43", "Credit Card", "Removes the price from all items in the current shop or Devil deal, making everything free"},
{"44", "Rules Card", "Displays \"helpful\" tips on use"},
+5 -5
View File
@@ -145,7 +145,7 @@ local repCollectibles={
[360] = {"360", "Incubus", "Gain a demonic familiar that shoots the same tears as Isaac#Deals 75% of your damage unless playing as Lilith"}, -- Incubus
[366] = {"366", "Scatter Bombs", "+5 bombs#Causes your bombs to explode into 4-5 tiny bombs"}, -- Scatter Bombs
[368] = {"368", "Epiphora", "Shooting in one direction gradually increases your fire rate by up to 200%"}, -- Epiphora
[369] = {"369", "Continuum", "↑ +3 Range up#Tears travel through walls and appear out of the opposite wall"}, -- Continuum
[369] = {"369", "Continuum", "↑ +3 Range up#Spectral tears#Tears travel through walls and appear out of the opposite wall"}, -- Continuum
[370] = {"370", "Mr. Dolly", "↑ +0.7 Tears up#↑ +1.5 Range up#Spawns 3 random hearts when picked up"}, -- Mr. Dolly
[372] = {"372", "Charged Baby", "Random chance to drop a battery or freeze all enemies in the room#Chance to add one charge to your active item"}, -- Charged Baby
[374] = {"374", "Holy Light", "10% chance to shoot Holy tears, which will spawn a beam of light on hit#The beam deals 3x your damage#50% chance at 9 Luck"}, -- Holy Light
@@ -375,7 +375,7 @@ local repCollectibles={
[723] = {"723", "Spindown Dice", "Transforms all items in the room by decreasing their internal ID number by one"}, -- Spindown Dice
[724] = {"724", "Hypercoagulation", "Upon taking enemy damage, drop a half or full Red Heart#Spawned hearts launch out and despawn after 1.5 seconds"}, -- Hypercoagulation
[725] = {"725", "IBS", "After dealing enough damage:#Throw poop#Create buffing creep#Fart#Drop 5 live bombs"}, -- IBS
[726] = {"726", "Hemoptysis", "Double-tap a fire button to sneeze blood#Deals 150% your damage to enemies in front of you#1 second cooldown"}, -- Hemoptysis
[726] = {"726", "Hemoptysis", "Double-tap a fire button to sneeze blood#Deals 150% your damage to enemies in front of you#1 second cooldown#Affected enemies take extra damage from Brimstone beams"}, -- Hemoptysis
[727] = {"727", "Ghost Bombs", "+5 bombs#Bombs spawn ghosts that deal contact damage and explode after 10 seconds"}, -- Ghost Bombs
[728] = {"728", "Gello", "Spawns a demon familiar that's attached to Isaac#Mimics Isaac's tears, stats and effects"}, -- Gello
[729] = {"729", "Decap Attack", "Throws Isaac's head, dealing contact damage and shooting tears from where it lands#Reactivating the item or stepping on the head reattaches it"}, -- Decap Attack
@@ -421,7 +421,7 @@ EID.descriptions[languageCode].birthright ={
{"Tainted Lazarus", "", "The other version of T. Lazarus will be available as a ghost#He is immune to damage, but can fire tears#Both characters receive the Birthright effect"},
{"Tainted Eden", "", "Passive and active items gained before Birthright will not be rerolled upon taking damage#Active items stop being protected if dropped"},
{"Tainted Lost", "", "Grants an extra life that revives Tainted Lost in the same room and deals 200 damage to nearby enemies#Can hit the same enemy multiple times"},
{"Tainted Lilith", "", "Familiars that normally follow Tainted Lilith will instead act like her {{Collectible728}}Gello"},
{"Tainted Lilith", "", "Familiars that normally follow Tainted Lilith will instead act like her {{Collectible728}}Gello#The melee attack does 3 more damage per familiar"},
{"Tainted Keeper", "", "Strongly attracts the coins dropped by defeating enemies from a short distance#No effect on other coins"},
{"Tainted Apollyon", "", "If the fire button is held, locusts will continuously damage enemies instead of returning"},
{"Tainted Forgotten", "", "Tainted Soul gains the {{Collectible714}}Recall ability, to retrieve the Tainted Forgotten from a distance"},
@@ -892,7 +892,7 @@ local repPills={
[48] = {"47", "Shot Speed Down", "↓ -0.15 Shot Speed down"}, -- Shot Speed Down
[49] = {"48", "Shot Speed Up", "↑ +0.15 Shot Speed up"}, -- Shot Speed Up
[50] = {"49", "Experimental Pill", "↑ Increases 1 random stat#↓ Decreases 1 random other stat#Will not decrease with {{Collectible75}}PHD#Will not increase with {{Collectible654}}False PHD"}, -- Experimental Pill
[50] = {"49", "Experimental Pill", "↑ Increases 1 random stat#↓ Decreases 1 random other stat#Will not decrease with {{Collectible75}}PHD, {{Collectible46}}Lucky Foot or {{Collectible303}}Virgo#Will not increase with {{Collectible654}}False PHD"}, -- Experimental Pill
[9999] = {"", "Golden Pill", "Random pill effect#Destroys itself after a few uses"}, -- golden Pill
}
EID:updateDescriptionsViaTable(repPills, EID.descriptions[languageCode].pills)
@@ -947,7 +947,7 @@ EID.descriptions[languageCode].horsepills={
{"46", "Vurp!", "Spawns last used pill as a horse pill"}, -- Vurp!
{"47", "Shot Speed Down", "↓ -0.3 Shot Speed down"}, -- Shot Speed Down
{"48", "Shot Speed Up", "↑ +0.3 Shot Speed up"}, -- Shot Speed Up
{"49", "Experimental Pill", "↑ Increases 1 random stat two times#↓ Decreases 1 random other stat two times#Will not decrease with {{Collectible75}}PHD#Will not increase with {{Collectible654}}False PHD"}, -- Experimental Pill
{"49", "Experimental Pill", "↑ Increases 1 random stat two times#↓ Decreases 1 random other stat two times#Will not decrease with {{Collectible75}}PHD, {{Collectible46}}Lucky Foot or {{Collectible303}}Virgo#Will not increase with {{Collectible654}}False PHD"}, -- Experimental Pill
[9999] = {"", "Golden Pill", "Random horse pill effect#Destroys itself after a few uses"}, -- Golden Pill
}
+11
View File
@@ -765,6 +765,17 @@ function EID:updateDescriptionsViaTable(changeTable, tableToUpdate)
end
end
-- Checks if any player has a given collectible ID, for modifiers
function EID:PlayersHaveCollectible(collectibleID)
for i = 0, game:GetNumPlayers() - 1 do
local player = Isaac.GetPlayer(i)
if player:HasCollectible(collectibleID) then
return true
end
end
return false
end
-- Converts a given CollectibleID into the respective Spindown dice result
function EID:getSpindownResult(collectibleID)
if collectibleID <= 0 or collectibleID > 4294960000 then return 0 end
+4 -11
View File
@@ -1,4 +1,5 @@
local game = Game()
local pickupValues = {
0x00000000, -- 0 None
-- Hearts
@@ -491,7 +492,7 @@ local moddedCrafting = false
-- Check for modded items past the known max item ID on game start (can also support game updates)
-- Only works if the new items are at Weight 1.0 in their item pools, but better than nothing
local function GameStartCrafting()
if EID.itemConfig:GetCollectible(EID.XMLMaxItemID+1) ~= nil then
if not EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_TMTRAINER) and EID.itemConfig:GetCollectible(EID.XMLMaxItemID+1) ~= nil then
-- Items past max ID detected; copy our XML tables so we can add to them
CraftingMaxItemID = EID.XMLMaxItemID
CraftingItemPools = deepcopy(EID.XMLItemPools)
@@ -509,19 +510,11 @@ local function GameStartCrafting()
for i=1,EID.XMLMaxItemID do itemPool:AddRoomBlacklist(i) end
local collID = itemPool:GetCollectible(poolNum, false, 1, 25)
local idsToAdd = {}
while collID ~= 25 do
table.insert(idsToAdd, {collID, 1.0})
while collID ~= 25 and collID > 0 do
table.insert(CraftingItemPools[poolNum+1], {collID, 1.0})
itemPool:AddRoomBlacklist(collID)
collID = itemPool:GetCollectible(poolNum, false, 1, 25)
end
-- sort ids since thats the most likely way people add items to the itempool
table.sort(idsToAdd, function (a,b)
return a[1] < b[1]
end)
for _,v in ipairs(idsToAdd) do
table.insert(CraftingItemPools[poolNum+1], v)
end
itemPool:ResetRoomBlacklist()
end
+20 -50
View File
@@ -32,11 +32,8 @@ local game = Game()
if descObj.ObjType ~= 5 or descObj.ObjVariant ~= PickupVariant.PICKUP_COLLECTIBLE then
return false
end
for i = 0,game:GetNumPlayers() - 1 do
local player = Isaac.GetPlayer(i)
if player:HasCollectible(CollectibleType.COLLECTIBLE_BINGE_EATER) then
return true
end
if EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_BINGE_EATER) then
return true
end
return false
end
@@ -86,11 +83,8 @@ local game = Game()
if descObj.ObjType ~= 5 or descObj.ObjVariant ~= PickupVariant.PICKUP_COLLECTIBLE then
return false
end
for i = 0,game:GetNumPlayers() - 1 do
local player = Isaac.GetPlayer(i)
if player:HasCollectible(CollectibleType.COLLECTIBLE_BOOK_OF_VIRTUES) then
return true
end
if EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_BOOK_OF_VIRTUES) then
return true
end
return false
end
@@ -112,11 +106,8 @@ local game = Game()
if descObj.ObjType ~= 5 or descObj.ObjVariant ~= PickupVariant.PICKUP_COLLECTIBLE then
return false
end
for i = 0,game:GetNumPlayers() - 1 do
local player = Isaac.GetPlayer(i)
if player:HasCollectible(CollectibleType.COLLECTIBLE_SPINDOWN_DICE) then
return true
end
if EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_SPINDOWN_DICE) then
return true
end
return false
end
@@ -158,11 +149,8 @@ local game = Game()
if descObj.ObjType ~= 5 or descObj.ObjVariant ~= PickupVariant.PICKUP_TAROTCARD then
return false
end
for i = 0,game:GetNumPlayers() - 1 do
local player = Isaac.GetPlayer(i)
if player:HasCollectible(CollectibleType.COLLECTIBLE_TAROT_CLOTH) then
return true
end
if EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_TAROT_CLOTH) then
return true
end
return false
end
@@ -192,11 +180,8 @@ local game = Game()
if descObj.ObjSubType > TrinketType.TRINKET_GOLDEN_FLAG then
isGolden = true
end
for i = 0,game:GetNumPlayers() - 1 do
local player = Isaac.GetPlayer(i)
if player:HasCollectible(CollectibleType.COLLECTIBLE_MOMS_BOX) then
hasBox = true
end
if EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_MOMS_BOX) then
hasBox = true
end
return isGolden or hasBox
end
@@ -297,11 +282,8 @@ local game = Game()
if not REPENTANCE or descObj.ObjType ~= 5 or descObj.ObjVariant ~= PickupVariant.PICKUP_TAROTCARD or blankCardHidden[descObj.ObjSubType] or descObj.ObjSubType > 80 then
return false
end
for i = 0, game:GetNumPlayers() - 1 do
local player = Isaac.GetPlayer(i)
if player:HasCollectible(CollectibleType.COLLECTIBLE_BLANK_CARD) then
return true
end
if EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_BLANK_CARD) then
return true
end
return false
end
@@ -330,11 +312,8 @@ local game = Game()
if not REPENTANCE or descObj.ObjType ~= 5 or descObj.ObjVariant ~= PickupVariant.PICKUP_TAROTCARD or not runeIDs[descObj.ObjSubType] then
return false
end
for i = 0, game:GetNumPlayers() - 1 do
local player = Isaac.GetPlayer(i)
if player:HasCollectible(CollectibleType.COLLECTIBLE_CLEAR_RUNE) then
return true
end
if EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_CLEAR_RUNE) then
return true
end
return false
end
@@ -357,11 +336,8 @@ local game = Game()
if not REPENTANCE or descObj.ObjType ~= 5 or descObj.ObjVariant ~= PickupVariant.PICKUP_PILL then
return false
end
for i = 0, game:GetNumPlayers() - 1 do
local player = Isaac.GetPlayer(i)
if player:HasCollectible(CollectibleType.COLLECTIBLE_PLACEBO) then
return true
end
if EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_PLACEBO) then
return true
end
return false
end
@@ -383,11 +359,8 @@ local game = Game()
if not REPENTANCE or descObj.ObjType ~= 5 or descObj.ObjVariant ~= PickupVariant.PICKUP_PILL then
return false
end
for i = 0, game:GetNumPlayers() - 1 do
local player = Isaac.GetPlayer(i)
if player:HasCollectible(CollectibleType.COLLECTIBLE_FALSE_PHD) then
return true
end
if EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_FALSE_PHD) then
return true
end
return false
end
@@ -419,11 +392,8 @@ local game = Game()
if not REPENTANCE or descObj.ObjType ~= 5 or descObj.ObjVariant ~= PickupVariant.PICKUP_COLLECTIBLE then
return false
end
for i = 0, game:GetNumPlayers() - 1 do
local player = Isaac.GetPlayer(i)
if player:HasCollectible(CollectibleType.COLLECTIBLE_ABYSS) then
return true
end
if EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_ABYSS) then
return true
end
return false
end
+1 -1
View File
@@ -656,7 +656,7 @@ local function renderAchievementInfo()
-- Achievements Locked Check (do we have Cube of Meat or Book of Revelations unlocked?)
local characterID = Game():GetPlayer(0):GetPlayerType()
--ID 21 = Tainted Isaac. Tainted characters have definitely beaten Mom! (Fixes Tainted Lost's item pools ruining this check)
if characterID < 21 and game.Challenge == 0 then
if characterID < 21 and game.Challenge == 0 and not EID:PlayersHaveCollectible(CollectibleType.COLLECTIBLE_TMTRAINER) then
local hasBookOfRevelationsUnlocked = EID:isCollectibleUnlockedAnyPool(CollectibleType.COLLECTIBLE_BOOK_OF_REVELATIONS or CollectibleType.COLLECTIBLE_BOOK_REVELATIONS)
if not hasBookOfRevelationsUnlocked then
local hasCubeOfMeatUnlocked = EID:isCollectibleUnlockedAnyPool(CollectibleType.COLLECTIBLE_CUBE_OF_MEAT)