Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local Spikes = RegisterMod("uniquehazards", 1)
- local game = Game()
- local Mod = {}
- function Mod:onInit(player)
- if game:GetFrameCount() == 1 then
- -- spawn in if you want to
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_SAD_ONION, Vector(150, 400), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_SPOON_BENDER, Vector(200, 400), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_MAXS_HEAD, Vector(250, 400), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_NUMBER_ONE, Vector(300, 400), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_BLOOD_MARTYR, Vector(350, 400), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_BROTHER_BOBBY, Vector(150, 250), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_SKATOLE, Vector(200, 250), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_HALO_OF_FLIES, Vector(250, 250), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_ONE_UP, Vector(300, 250), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_MAGIC_MUSHROOM, Vector(350, 250), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_VIRUS, Vector(150, 100), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_BIBLE, Vector(200, 100), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_BOOK_OF_BELIAL, Vector(250, 100), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_NECRONOMICON, Vector(300, 100), Vector(0,0), player)
- -- Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, CollectibleType.COLLECTIBLE_D20, Vector(350, 100), Vector(0,0), player)
- end
- end
- Spikes:AddCallback(ModCallbacks.MC_POST_PEFFECT_UPDATE, Mod.onInit)
- function Mod:onEntitySpawn(entity)
- local level = game:GetLevel()
- local stage = level:GetStage()
- local stageType = level:GetStageType()
- local entities = Isaac.GetRoomEntities()
- local room = game:GetRoom()
- local backdrop = room:GetBackdropType()
- local sprite = entity:GetSprite()
- local data = entity:GetData()
- local variant = Isaac.GetEntityVariantByName("Poky")
- if entity.Type == EntityType.ENTITY_POKY
- and entity.Variant == variant then
- -- check if the enemy already has the different sprite
- if data.Changed == nil then
- data.Changed = true
- -- check the current stage
- if stage == LevelStage.STAGE1_1
- or stage == LevelStage.STAGE1_2 then
- -- difference between Basement, Cellar, Burning Basement
- if stageType == StageType.STAGETYPE_ORIGINAL then -- Basement
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_basement.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_WOTL then -- Cellar
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_cellar.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Burning Basement
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_burning.png")
- sprite:LoadGraphics()
- end
- elseif stage == LevelStage.STAGE2_1
- or stage == LevelStage.STAGE2_2 then
- -- difference between Catacombs, Flooded Caves
- if stageType == StageType.STAGETYPE_WOTL then -- Catacombs
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_catacombs.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Flooded Caves
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_flooded.png")
- sprite:LoadGraphics()
- end
- elseif stage == LevelStage.STAGE3_1
- or stage == LevelStage.STAGE3_2 then
- -- difference between Depths, Necropolis, Dank Depths
- if stageType == StageType.STAGETYPE_ORIGINAL then -- Depths
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_depths.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_WOTL then -- Necropolis
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_necropolis.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Dank Depths
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_dank.png")
- sprite:LoadGraphics()
- end
- elseif stage == LevelStage.STAGE4_1
- or stage == LevelStage.STAGE4_2 then
- -- difference between Womb, Utero and Scarred Womb
- if stageType == StageType.STAGETYPE_ORIGINAL then -- Womb
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_womb.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_WOTL then -- Utero
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_utero.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Scarred Womb
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_scarred.png")
- sprite:LoadGraphics()
- end
- elseif stage == LevelStage.STAGE4_3 then --- Blue Womb
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_bluewomb.png")
- sprite:LoadGraphics()
- elseif stage == LevelStage.STAGE5 then
- -- difference between Sheol and Cathedral
- if stageType == StageType.STAGETYPE_ORIGINAL then -- Sheol
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_sheol.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_WOTL then -- Cathedral
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_cathedral.png")
- sprite:LoadGraphics()
- end
- elseif stage == LevelStage.STAGE6 then
- -- difference between Dark Room and Chest
- if (not (stageType == StageType.STAGETYPE_WOTL)) then -- Dark Room
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_darkroom.png")
- sprite:LoadGraphics()
- else -- Chest
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_chest.png")
- sprite:LoadGraphics()
- end
- elseif stage == LevelStage.STAGE7 then --- Void
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_bluewomb.png")
- sprite:LoadGraphics()
- end
- end
- end
- end
- Spikes:AddCallback(ModCallbacks.MC_POST_NPC_INIT, Mod.onEntitySpawn, EntityType.ENTITY_POKY)
- function Mod:onWallHuggerSpawn(entity)
- local level = game:GetLevel()
- local stage = level:GetStage()
- local stageType = level:GetStageType()
- local entities = Isaac.GetRoomEntities()
- local sprite = entity:GetSprite()
- local data = entity:GetData()
- local variant = Isaac.GetEntityVariantByName("Wall Hugger")
- if entity.Variant == variant then
- Isaac.ConsoleOutput("Hug Me")
- -- check if the enemy already has the different sprite
- if data.Changed == nil then
- data.Changed = true
- -- check the current stage
- if stage == LevelStage.STAGE1_1
- or stage == LevelStage.STAGE1_2 then
- -- difference between Basement, Cellar, Burning Basement
- if stageType == StageType.STAGETYPE_ORIGINAL then -- Basement
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_basement.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_WOTL then -- Cellar
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_cellar.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Burning Basement
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_burning.png")
- sprite:LoadGraphics()
- end
- elseif stage == LevelStage.STAGE2_1
- or stage == LevelStage.STAGE2_2 then
- -- difference between Catacombs, Flooded Caves
- if stageType == StageType.STAGETYPE_WOTL then -- Catacombs
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_catacombs.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Flooded Caves
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_flooded.png")
- sprite:LoadGraphics()
- end
- elseif stage == LevelStage.STAGE3_1
- or stage == LevelStage.STAGE3_2 then
- -- difference between Depths, Necropolis, Dank Depths
- if stageType == StageType.STAGETYPE_ORIGINAL then -- Depths
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_depths.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_WOTL then -- Necropolis
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_necropolis.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Dank Depths
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_dank.png")
- sprite:LoadGraphics()
- end
- elseif stage == LevelStage.STAGE4_1
- or stage == LevelStage.STAGE4_2 then
- -- difference between Womb, Utero and Scarred Womb
- if stageType == StageType.STAGETYPE_ORIGINAL then -- Womb
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_womb.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_WOTL then -- Utero
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_utero.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Scarred Womb
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_scarred.png")
- sprite:LoadGraphics()
- end
- elseif stage == LevelStage.STAGE4_3 then --- Blue Womb
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_bluewomb.png")
- sprite:LoadGraphics()
- elseif stage == LevelStage.STAGE5 then
- -- difference between Sheol and Cathedral
- if stageType == StageType.STAGETYPE_ORIGINAL then -- Sheol
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_sheol.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_WOTL then -- Cathedral
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_cathedral.png")
- sprite:LoadGraphics()
- end
- elseif stage == LevelStage.STAGE6 then
- -- difference between Dark Room and Chest
- if (not (stageType == StageType.STAGETYPE_WOTL)) then -- Dark Room
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_darkroom.png")
- sprite:LoadGraphics()
- else -- Chest
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_chest.png")
- sprite:LoadGraphics()
- end
- elseif stage == LevelStage.STAGE7 then --- Void
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_wall hugger_bluewomb.png")
- sprite:LoadGraphics()
- end
- end
- end
- end
- Spikes:AddCallback(ModCallbacks.MC_POST_NPC_INIT, Mod.onWallHuggerSpawn, EntityType.ENTITY_WALL_HUGGER)
- function Mod:onSlideSpawn(entity)
- local level = game:GetLevel()
- local stage = level:GetStage()
- local stageType = level:GetStageType()
- local entities = Isaac.GetRoomEntities()
- local sprite = entity:GetSprite()
- local data = entity:GetData()
- local variant = Isaac.GetEntityVariantByName("Slide")
- if entity.Type == EntityType.ENTITY_POKY
- and entity.Variant == variant then
- -- check if the enemy already has the different sprite
- if data.Changed == nil then
- data.Changed = true
- -- check the current stage
- if stage == LevelStage.STAGE1_1
- or stage == LevelStage.STAGE1_2 then
- -- difference between Basement, Cellar, Burning Basement
- if stageType == StageType.STAGETYPE_ORIGINAL then -- Basement
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_basement.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_WOTL then -- Cellar
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_cellar.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Burning Basement
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_burning.png")
- sprite:LoadGraphics()
- end
- elseif stage == LevelStage.STAGE2_1
- or stage == LevelStage.STAGE2_2 then
- -- difference between Catacombs, Flooded Caves
- if stageType == StageType.STAGETYPE_WOTL then -- Catacombs
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_catacombs.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Flooded Caves
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_flooded.png")
- sprite:LoadGraphics()
- end
- elseif stage == LevelStage.STAGE3_1
- or stage == LevelStage.STAGE3_2 then
- -- difference between Depths, Necropolis, Dank Depths
- if stageType == StageType.STAGETYPE_ORIGINAL then -- Depths
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_depths.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_WOTL then -- Necropolis
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_necropolis.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Dank Depths
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_slide_dank.png")
- sprite:LoadGraphics()
- end
- elseif stage == LevelStage.STAGE4_1
- or stage == LevelStage.STAGE4_2 then
- -- difference between Womb, Utero and Scarred Womb
- if stageType == StageType.STAGETYPE_ORIGINAL then -- Womb
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_womb.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_WOTL then -- Utero
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_utero.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_AFTERBIRTH then -- Scarred Womb
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_scarred.png")
- sprite:LoadGraphics()
- end
- elseif stage == LevelStage.STAGE4_3 then --- Blue Womb
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_bluewomb.png")
- sprite:LoadGraphics()
- elseif stage == LevelStage.STAGE5 then
- -- difference between Sheol and Cathedral
- if stageType == StageType.STAGETYPE_ORIGINAL then -- Sheol
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_sheol.png")
- sprite:LoadGraphics()
- elseif stageType == StageType.STAGETYPE_WOTL then -- Cathedral
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_cathedral.png")
- sprite:LoadGraphics()
- end
- elseif stage == LevelStage.STAGE6 then
- -- difference between Dark Room and Chest
- if (not (stageType == StageType.STAGETYPE_WOTL)) then -- Dark Room
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_darkroom.png")
- sprite:LoadGraphics()
- else -- Chest
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_chest.png")
- sprite:LoadGraphics()
- end
- elseif stage == LevelStage.STAGE7 then --- Void
- -- replace the sprite/spritesheet
- sprite:ReplaceSpritesheet(0, "gfx/monsters/custom/monster_pokey_bluewomb.png")
- sprite:LoadGraphics()
- end
- end
- end
- end
- Spikes:AddCallback(ModCallbacks.MC_POST_NPC_INIT, Mod.onSlideSpawn, EntityType.ENTITY_POKY)
Add Comment
Please, Sign In to add comment