FILES ----- dungeon_worlds.config terrestrial_worlds.config [NEW] animations\glitchmediumflame\glitchmediumflame.animation [NEW] animations\glitchmediumflame\glitchmediumflame.frames [NEW] animations\glitchmediumflame\glitchmediumflame.png [NEW] animations\glitchsmallflame\glitchsmallflame.animation [NEW] animations\glitchsmallflame\glitchsmallflame.frames [NEW] animations\glitchsmallflame\glitchsmallflame.png [NEW] animations\glitchsmoke\glitchsmoke.animation [NEW] animations\glitchsmoke\glitchsmoke.frames [NEW] animations\glitchsmoke\glitchsmoke.png biomes\oredistributions.configfunctions biomes\surface\arctic\arctic.biome biomes\surface\garden\garden.biome biomes\surface_detached\flesh\flesh.biome biomes\underground\generic\underground1b.biome biomes\underground\generic\underground1d.biome biomes\underground\generic\underground3d.biome biomes\underground\generic\core\blaststonecorelayer.biome biomes\underground\generic\core\gardencorelayer.biome biomes\underground\generic\core\magmarockcorelayer.biome biomes\underground\generic\core\obisidiancorelayer.biome [NEW] biomes\underground_detached\cellcave\cellcave.biome [NEW] biomes\underground_detached\cellcave\cellcave.undergroundparallax [NEW] biomes\underground_detached\cellcave\cellcaveunderground.png [NEW] biomes\underground_detached\cellcave\rockdivider.png [NEW] biomes\underground_detached\fleshcave\fleshcave.biome [NEW] biomes\underground_detached\fleshcave\fleshcave.undergroundparallax [NEW] biomes\underground_detached\fleshcave\fleshcavebg.png [NEW] biomes\underground_detached\fleshcave\rockdivider.png dungeons\microdungeons\biome\oasis\oasis.dungeon items\guns\randomgenerated\avianblaster.generatedgun items\guns\randomgenerated\avianheavyblaster.generatedgun items\guns\randomgenerated\boneassault.generatedgun items\guns\randomgenerated\bonepistol.generatedgun items\guns\randomgenerated\boneshotgun.generatedgun items\guns\randomgenerated\cellzapper.generatedgun items\guns\randomgenerated\commonassaultrifle.generatedgun items\guns\randomgenerated\commonassaultrifle_plasma.generatedgun items\guns\randomgenerated\commongrenadelauncher.generatedgun items\guns\randomgenerated\commonmachinepistol.generatedgun items\guns\randomgenerated\commonmachinepistol_plasma.generatedgun items\guns\randomgenerated\commonpistol.generatedgun items\guns\randomgenerated\commonpistol_plasma.generatedgun items\guns\randomgenerated\commonrocketlauncher.generatedgun items\guns\randomgenerated\commonshotgun.generatedgun items\guns\randomgenerated\commonshotgun_plasma.generatedgun items\guns\randomgenerated\commonsniperrifle.generatedgun items\guns\randomgenerated\commonsniperrifle_plasma.generatedgun items\guns\randomgenerated\crossbow.generatedgun items\guns\randomgenerated\crossbowspecial.generatedgun items\guns\randomgenerated\crossbowwood.generatedgun items\guns\randomgenerated\flamethrower.generatedgun items\guns\randomgenerated\florangrenadelauncher.generatedgun items\guns\randomgenerated\floranneedler.generatedgun items\guns\randomgenerated\globelauncher.generatedgun items\guns\randomgenerated\legendaryassaultrifle.generatedgun items\guns\randomgenerated\legendarygrenadelauncher.generatedgun items\guns\randomgenerated\legendarymachinepistol.generatedgun items\guns\randomgenerated\legendarypistol.generatedgun items\guns\randomgenerated\legendaryrocketlauncher.generatedgun items\guns\randomgenerated\legendaryshotgun.generatedgun items\guns\randomgenerated\legendarysniperrifle.generatedgun items\guns\randomgenerated\lightningcoil.generatedgun items\guns\randomgenerated\pulserifle.generatedgun items\guns\randomgenerated\rareassaultrifle.generatedgun items\guns\randomgenerated\rareassaultrifle_plasma.generatedgun items\guns\randomgenerated\raregrenadelauncher.generatedgun items\guns\randomgenerated\raremachinepistol.generatedgun items\guns\randomgenerated\raremachinepistol_plasma.generatedgun items\guns\randomgenerated\rarepistol.generatedgun items\guns\randomgenerated\rarepistol_plasma.generatedgun items\guns\randomgenerated\rarerocketlauncher.generatedgun items\guns\randomgenerated\rareshotgun.generatedgun items\guns\randomgenerated\rareshotgun_plasma.generatedgun items\guns\randomgenerated\raresniperrifle.generatedgun items\guns\randomgenerated\raresniperrifle_plasma.generatedgun items\guns\randomgenerated\revolver.generatedgun items\guns\randomgenerated\shattergun.generatedgun items\guns\randomgenerated\stingergun.generatedgun items\guns\randomgenerated\uncommonassaultrifle.generatedgun items\guns\randomgenerated\uncommongrenadelauncher.generatedgun items\guns\randomgenerated\uncommonmachinepistol.generatedgun items\guns\randomgenerated\uncommonpistol.generatedgun items\guns\randomgenerated\uncommonrocketlauncher.generatedgun items\guns\randomgenerated\uncommonshotgun.generatedgun items\guns\randomgenerated\uncommonshotgun_plasma.generatedgun items\guns\randomgenerated\uncommonsniperrifle.generatedgun items\guns\randomgenerated\uncommonsniperrifle_plasma.generatedgun items\guns\randomgenerated\uzi.generatedgun items\staves\biostaff\biostaff.staff items\staves\racialstaves\apex\steel\apexsteelstaff1\apexsteelstaff1.staff [NEW] items\staves\racialstaves\apex\steel\apexsteelstaff2\apexsteelstaff2.png [NEW] items\staves\racialstaves\apex\steel\apexsteelstaff2\apexsteelstaff2.staff [NEW] items\staves\racialstaves\apex\steel\apexsteelstaff2\steelstaff2glow.frames [NEW] items\staves\racialstaves\apex\steel\apexsteelstaff2\steelstaff2glow.png [NEW] items\staves\racialstaves\avian\crystal\aviancrystalstaff2\aviancrystalstaff2.png [NEW] items\staves\racialstaves\avian\crystal\aviancrystalstaff2\aviancrystalstaff2.staff [NEW] items\staves\racialstaves\avian\crystal\aviancrystalstaff2\crystalstaff2glow.frames [NEW] items\staves\racialstaves\avian\crystal\aviancrystalstaff2\crystalstaff2glow.png [NEW] items\staves\racialstaves\floran\leaf\floranleafstaff2\floranleafstaff2.png [NEW] items\staves\racialstaves\floran\leaf\floranleafstaff2\floranleafstaff2.staff [NEW] items\staves\racialstaves\floran\leaf\floranleafstaff2\leafstaff2glow.frames [NEW] items\staves\racialstaves\floran\leaf\floranleafstaff2\leafstaff2glow.png [NEW] items\staves\racialstaves\glitch\glitch\glitchglitchstaff2\glitchglitchstaff2.png [NEW] items\staves\racialstaves\glitch\glitch\glitchglitchstaff2\glitchglitchstaff2.staff [NEW] items\staves\racialstaves\glitch\glitch\glitchglitchstaff2\glitchstaff2glow.frames [NEW] items\staves\racialstaves\glitch\glitch\glitchglitchstaff2\glitchstaff2glow.png [NEW] items\staves\racialstaves\human\plasma\humanplasmastaff2\humanplasmastaff2.png [NEW] items\staves\racialstaves\human\plasma\humanplasmastaff2\humanplasmastaff2.staff [NEW] items\staves\racialstaves\human\plasma\humanplasmastaff2\plasmastaff2glow.frames [NEW] items\staves\racialstaves\human\plasma\humanplasmastaff2\plasmastaff2glow.png [NEW] items\staves\racialstaves\hylotl\aqua\hylotlaquastaff2\aquastaff2glow.frames [NEW] items\staves\racialstaves\hylotl\aqua\hylotlaquastaff2\aquastaff2glow.png [NEW] items\staves\racialstaves\hylotl\aqua\hylotlaquastaff2\hylotlaquastaff2.png [NEW] items\staves\racialstaves\hylotl\aqua\hylotlaquastaff2\hylotlaquastaff2.staff [NEW] items\staves\racialstaves\novakid\light\novakidlightstaff2\lightstaff2glow.frames [NEW] items\staves\racialstaves\novakid\light\novakidlightstaff2\lightstaff2glow.png [NEW] items\staves\racialstaves\novakid\light\novakidlightstaff2\novakidlightstaff2.png [NEW] items\staves\racialstaves\novakid\light\novakidlightstaff2\novakidlightstaff2.staff items\swords\biome\alpine\legendblade\legendblade.sword items\swords\biome\alpine\stonesword\stonesword.sword items\swords\randomgenerated\avianspear.generatedsword items\swords\randomgenerated\aviansword.generatedsword items\swords\randomgenerated\boneaxe.generatedsword items\swords\randomgenerated\bonehammer.generatedsword items\swords\randomgenerated\bonesaw.generatedsword items\swords\randomgenerated\bonesword.generatedsword items\swords\randomgenerated\candycane.generatedsword items\swords\randomgenerated\commonaxe.generatedsword items\swords\randomgenerated\commondagger.generatedsword items\swords\randomgenerated\commonhammer.generatedsword items\swords\randomgenerated\commononehandedsword.generatedsword items\swords\randomgenerated\commonspear.generatedsword items\swords\randomgenerated\commontwohandedsword.generatedsword items\swords\randomgenerated\crappyaxe.generatedsword items\swords\randomgenerated\crappyhammer.generatedsword items\swords\randomgenerated\crappyspear.generatedsword items\swords\randomgenerated\crappysword.generatedsword items\swords\randomgenerated\crystalspear.generatedsword items\swords\randomgenerated\eyeaxe.generatedsword items\swords\randomgenerated\eyesword.generatedsword items\swords\randomgenerated\firesword.generatedsword items\swords\randomgenerated\floranmace.generatedsword items\swords\randomgenerated\floranprod.generatedsword items\swords\randomgenerated\fryingpan.generatedsword items\swords\randomgenerated\glitchlargemace.generatedsword items\swords\randomgenerated\glitchsmallmace.generatedsword items\swords\randomgenerated\mushroomsword.generatedsword items\swords\randomgenerated\nightstick.generatedsword items\swords\randomgenerated\npcflorantier1spear.generatedsword items\swords\randomgenerated\rainbowspear.generatedsword items\swords\randomgenerated\rustsword.generatedsword items\swords\randomgenerated\shiv.generatedsword items\swords\randomgenerated\slavesword.generatedsword items\swords\randomgenerated\starcleaversword.generatedsword items\swords\randomgenerated\steelchair.generatedsword items\swords\randomgenerated\teslaspear.generatedsword items\swords\randomgenerated\tier3axe.generatedsword items\swords\randomgenerated\tier3dagger.generatedsword items\swords\randomgenerated\tier3hammer.generatedsword items\swords\randomgenerated\tier3onehandedsword.generatedsword items\swords\randomgenerated\tier3spear.generatedsword items\swords\randomgenerated\tier3twohandedsword.generatedsword items\swords\randomgenerated\toxicbroadsword.generatedsword items\swords\randomgenerated\twistedspear.generatedsword items\swords\randomgenerated\uncommonaxe.generatedsword items\swords\randomgenerated\uncommondagger.generatedsword items\swords\randomgenerated\uncommonhammer.generatedsword items\swords\randomgenerated\uncommononehandedsword.generatedsword items\swords\randomgenerated\uncommonspear.generatedsword items\swords\randomgenerated\uncommontier3axe.generatedsword items\swords\randomgenerated\uncommontier3dagger.generatedsword items\swords\randomgenerated\uncommontier3hammer.generatedsword items\swords\randomgenerated\uncommontier3onehandedsword.generatedsword items\swords\randomgenerated\uncommontier3spear.generatedsword items\swords\randomgenerated\uncommontier3twohandedsword.generatedsword items\swords\randomgenerated\uncommontwohandedsword.generatedsword items\swords\randomgenerated\watersword.generatedsword items\throwables\huntingspear.thrownitem items\throwables\throwingboulder.thrownitem monsters\boss\missile\missile.monstertype monsters\boss\penguin\general.monstertype monsters\boss\penguin\trooper.monstertype monsters\boss\penguintank\penguintank.monstertype monsters\boss\penguinufo\penguinufo.monstertype monsters\boss\penguinufo\skills\ufomovefireattack.monsterskill monsters\boss\robotboss\robotboss.monstertype monsters\boss\robotboss\skills\robotelectricburstattack.monsterskill monsters\boss\robotboss\skills\robotflamethrowerattack.monsterskill monsters\boss\robotboss\skills\robotpunchattack.monsterskill monsters\ground\approachstate.lua monsters\ground\groundmonster.lua monsters\ground\moontant\moontant.monstertype monsters\skills\ranged\plasmaburstattack.monsterskill monsters\unique\serpentdroid\serpentdroid.monstertype npcs\main.lua npcs\meleeattackstate.lua npcs\sitstate.lua npcs\wanderstate.lua npcs\mission\florangladiator.npctype npcs\mission\floranpredator.npctype npcs\mission\floransniper.npctype npcs\mission\miner.npctype npcs\mission\mutantminer.npctype npcs\mission\survivor.npctype objects\minibiome\bioluminescentcave\bioshroom\bioshroom1lit.png objects\minibiome\bioluminescentcave\bioshroom\bioshroom2lit.png objects\minibiome\bioluminescentcave\bioshroom\bioshroom3lit.png objects\minibiome\bioluminescentcave\bioshroom\bioshroom4lit.png objects\minibiome\bioluminescentcave\bioshroom\bioshroom5lit.png objects\minibiome\bioluminescentcave\bioshroomtable\bioshroomtablelit.png objects\minibiome\bioluminescentcave\biovine\biovine1lit.png objects\minibiome\bioluminescentcave\biovine\biovine2lit.png objects\minibiome\bioluminescentcave\biovine\biovine3lit.png objects\minibiome\bioluminescentcave\biovine\biovine4lit.png objects\minibiome\bioluminescentcave\biovine\biovine5lit.png [NEW] plants\trees\snow\foliage\icepine\crown1.png [NEW] plants\trees\snow\foliage\icepine\crown2.png [NEW] plants\trees\snow\foliage\icepine\crown3.png [NEW] plants\trees\snow\foliage\icepine\icepinefoliage.modularfoliage [NEW] plants\trees\snow\foliage\icepine\saplingicon.png [NEW] projectiles\explosions\glitchexplosion\glitchexplosion.config [NEW] projectiles\explosions\glitchexplosion\glitchexplosion.frames [NEW] projectiles\explosions\glitchexplosion\glitchexplosion.png [NEW] projectiles\explosions\glitchexplosion\glitchexplosion.projectile projectiles\explosions\lightblockexplosion\lightblockexplosion.config [NEW] projectiles\staves\racialstaves\aqua\splashspawner2.projectile [NEW] projectiles\staves\racialstaves\aqua\splashdrop2\splashdrop2.frames [NEW] projectiles\staves\racialstaves\aqua\splashdrop2\splashdrop2.png [NEW] projectiles\staves\racialstaves\aqua\splashdrop2\splashdrop2.projectile [NEW] projectiles\staves\racialstaves\crystal\quetzalcoatlsquartz\quartzspawner.frames [NEW] projectiles\staves\racialstaves\crystal\quetzalcoatlsquartz\quartzspawner.png [NEW] projectiles\staves\racialstaves\crystal\quetzalcoatlsquartz\quartzspawner.projectile [NEW] projectiles\staves\racialstaves\crystal\quetzalcoatlsquartz\quetzalcoatlsquartz.frames [NEW] projectiles\staves\racialstaves\crystal\quetzalcoatlsquartz\quetzalcoatlsquartz.png [NEW] projectiles\staves\racialstaves\crystal\quetzalcoatlsquartz\quetzalcoatlsquartz.projectile [NEW] projectiles\staves\racialstaves\crystal\quetzalcoatlsquartz\quartzchunk\quartzchunk.frames [NEW] projectiles\staves\racialstaves\crystal\quetzalcoatlsquartz\quartzchunk\quartzchunk.png [NEW] projectiles\staves\racialstaves\crystal\quetzalcoatlsquartz\quartzchunk\quartzchunk.projectile [NEW] projectiles\staves\racialstaves\crystal\quetzalcoatlsquartz\quartzpulse\quartzpulse.frames [NEW] projectiles\staves\racialstaves\crystal\quetzalcoatlsquartz\quartzpulse\quartzpulse.png [NEW] projectiles\staves\racialstaves\crystal\quetzalcoatlsquartz\quartzpulse\quartzpulse.projectile [NEW] projectiles\staves\racialstaves\crystal\quetzalcoatlsquartz\quartzshard\quartzshard.frames [NEW] projectiles\staves\racialstaves\crystal\quetzalcoatlsquartz\quartzshard\quartzshard.png [NEW] projectiles\staves\racialstaves\crystal\quetzalcoatlsquartz\quartzshard\quartzshard.projectile [NEW] projectiles\staves\racialstaves\glitch\gamebreaker\gamebreakerscratch.frames [NEW] projectiles\staves\racialstaves\glitch\gamebreaker\gamebreakerscratch.png [NEW] projectiles\staves\racialstaves\glitch\gamebreaker\gamebreakerscratch.projectile [NEW] projectiles\staves\racialstaves\glitch\gamebreaker\gamebreakertear.frames [NEW] projectiles\staves\racialstaves\glitch\gamebreaker\gamebreakertear.png [NEW] projectiles\staves\racialstaves\glitch\gamebreaker\gamebreakertear.projectile [NEW] projectiles\staves\racialstaves\glitch\gamebreaker\glitchsword\glitchsword.frames [NEW] projectiles\staves\racialstaves\glitch\gamebreaker\glitchsword\glitchsword.png [NEW] projectiles\staves\racialstaves\glitch\gamebreaker\glitchsword\glitchsword.projectile projectiles\staves\racialstaves\glitch\glitchartifact\glitchtear.projectile [NEW] projectiles\staves\racialstaves\leaf\cutterpetal\cutterpetal.frames [NEW] projectiles\staves\racialstaves\leaf\cutterpetal\cutterpetal.png [NEW] projectiles\staves\racialstaves\leaf\cutterpetal\cutterpetal.projectile [NEW] projectiles\staves\racialstaves\leaf\leafcloud\leafcloud.frames [NEW] projectiles\staves\racialstaves\leaf\leafcloud\leafcloud.png [NEW] projectiles\staves\racialstaves\leaf\leafcloud\leafcloud.projectile [NEW] projectiles\staves\racialstaves\leaf\leafcloud\leafcloudstarter.frames [NEW] projectiles\staves\racialstaves\leaf\leafcloud\leafcloudstarter.png [NEW] projectiles\staves\racialstaves\leaf\leafcloud\leafcloudstarter.projectile [NEW] projectiles\staves\racialstaves\leaf\petalcloud\petalcloud.frames [NEW] projectiles\staves\racialstaves\leaf\petalcloud\petalcloud.png [NEW] projectiles\staves\racialstaves\leaf\petalcloud\petalcloud.projectile [NEW] projectiles\staves\racialstaves\leaf\petalcloud\petalcloudstarter.frames [NEW] projectiles\staves\racialstaves\leaf\petalcloud\petalcloudstarter.png [NEW] projectiles\staves\racialstaves\leaf\petalcloud\petalcloudstarter.projectile [NEW] projectiles\staves\racialstaves\light\supergiant\icon.png [NEW] projectiles\staves\racialstaves\light\supergiant\supergiant.frames [NEW] projectiles\staves\racialstaves\light\supergiant\supergiant.png [NEW] projectiles\staves\racialstaves\light\supergiant\supergiant.projectile [NEW] projectiles\staves\racialstaves\light\supergiant\supergiantspawner.frames [NEW] projectiles\staves\racialstaves\light\supergiant\supergiantspawner.png [NEW] projectiles\staves\racialstaves\light\supergiant\supergiantspawner.projectile [NEW] projectiles\staves\racialstaves\light\supergiantember\supergiantember.frames [NEW] projectiles\staves\racialstaves\light\supergiantember\supergiantember.png [NEW] projectiles\staves\racialstaves\light\supergiantember\supergiantember.projectile [NEW] projectiles\staves\racialstaves\light\supersunray\icon.png [NEW] projectiles\staves\racialstaves\light\supersunray\supersunray.frames [NEW] projectiles\staves\racialstaves\light\supersunray\supersunray.png [NEW] projectiles\staves\racialstaves\light\supersunray\supersunray.projectile [NEW] projectiles\staves\racialstaves\plasma\boomblast\boomblast.frames [NEW] projectiles\staves\racialstaves\plasma\boomblast\boomblast.png [NEW] projectiles\staves\racialstaves\plasma\boomblast\boomblast.projectile [NEW] projectiles\staves\racialstaves\plasma\boomblast\icon.png [NEW] projectiles\staves\racialstaves\steel\deadbolt\deadbolt.frames [NEW] projectiles\staves\racialstaves\steel\deadbolt\deadbolt.png [NEW] projectiles\staves\racialstaves\steel\deadbolt\deadbolt.projectile [NEW] projectiles\staves\racialstaves\steel\deadbolt\deadboltlaser.frames [NEW] projectiles\staves\racialstaves\steel\deadbolt\deadboltlaser.png [NEW] projectiles\staves\racialstaves\steel\deadbolt\deadboltlaser.projectile [NEW] projectiles\staves\racialstaves\steel\deadbolt\deadboltteleportin.frames [NEW] projectiles\staves\racialstaves\steel\deadbolt\deadboltteleportin.png [NEW] projectiles\staves\racialstaves\steel\deadbolt\deadboltteleportin.projectile [NEW] projectiles\staves\racialstaves\steel\deadbolt\icon.png projectiles\swoosh\hammer\steelchairswoosh\steelchairswoosh.projectile projectiles\throwable\throwingspear\throwingspear.projectile [NEW] recipes\biomes\flesh\fleshbed.recipe recipes\kitchen\tier2\mushroombread.recipe recipes\kitchen\tier2\mushroomquiche.recipe recipes\kitchen\tier2\mushroomrice.recipe sfx\gun\gnomegun1.wav sfx\gun\gnomegun2.wav sfx\gun\gnomegun3.wav sfx\gun\gnomegun4.wav species\hylotlnamegen.config stats\monster_primary.lua tiles\mods\plutonium.matmod tiles\mods\solarium.matmod tiles\mods\uranium.matmod treasure\biome.treasurepools treasure\common.treasurepools treasure\default.treasurechests treasure\dungeon.treasurepools DIFFS ----- dungeon_worlds.config 22c22 < "threatLevel" : 0, --- > "threatLevel" : 2, 32c32 < "threatLevel" : 0, --- > "threatLevel" : 4, 42c42 < "threatLevel" : 0, --- > "threatLevel" : 3, 53c53 < "threatLevel" : 0, --- > "threatLevel" : 5, terrestrial_worlds.config 435a436,453 > }, > "underground1" : { > "secondaryRegion" : [ "cellcaves", "fleshcaves" ] > }, > "underground2" : { > "secondaryRegion" : [ "cellcaves", "fleshcaves" ] > }, > "underground3" : { > "secondaryRegion" : [ "cellcaves", "fleshcaves" ] > }, > "underground4" : { > "secondaryRegion" : [ "cellcaves", "fleshcaves" ] > }, > "underground5" : { > "secondaryRegion" : [ "cellcaves", "fleshcaves" ] > }, > "underground6" : { > "secondaryRegion" : [ "cellcaves", "fleshcaves" ] 446a465,482 > }, > "underground1" : { > "secondaryRegion" : [ "cellcaves", "fleshcaves" ] > }, > "underground2" : { > "secondaryRegion" : [ "cellcaves", "fleshcaves" ] > }, > "underground3" : { > "secondaryRegion" : [ "cellcaves", "fleshcaves" ] > }, > "underground4" : { > "secondaryRegion" : [ "cellcaves", "fleshcaves" ] > }, > "underground5" : { > "secondaryRegion" : [ "cellcaves", "fleshcaves" ] > }, > "underground6" : { > "secondaryRegion" : [ "cellcaves", "fleshcaves" ] 457a494,511 > }, > "underground1" : { > "secondaryRegion" : [ "cellcaves", "fleshcaves" ] > }, > "underground2" : { > "secondaryRegion" : [ "cellcaves", "fleshcaves" ] > }, > "underground3" : { > "secondaryRegion" : [ "cellcaves", "fleshcaves" ] > }, > "underground4" : { > "secondaryRegion" : [ "cellcaves", "fleshcaves" ] > }, > "underground5" : { > "secondaryRegion" : [ "cellcaves", "fleshcaves" ] > }, > "underground6" : { > "secondaryRegion" : [ "cellcaves", "fleshcaves" ] 827a882,883 > "caveLiquid" : [ "healingliquid" ], > "caveLiquidChanceRange" : [100, 100], 835a892,893 > "caveLiquid" : [ "tarliquid" ], > "caveLiquidChanceRange" : [100, 100], 1010c1068,1082 < }, --- > }, > > "fleshcaves" : { > "biome" : [ > [0, [ "fleshcaves" ]] > ] > }, > > "cellcaves" : { > "caveLiquid" : [ "poison" ], > "caveLiquidChanceRange" : [5, 10], > "biome" : [ > [0, [ "cellcaves" ]] > ] > }, biomes\oredistributions.configfunctions 9c9 < [5.5, [ [ "coal", 1.40], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 0.20], [ "silverore", 0.20], [ "gold", 0.20], [ "platinum", 0.20], [ "diamond", 0.20], [ "aegisalt", 0.20], [ "rubium", 0.20], [ "violium", 0.20], [ "solarium", 0.20] ] ] --- > [5.5, [ [ "coal", 1.40], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.20], [ "copper", 0.20], [ "silverore", 0.20], [ "gold", 0.20], [ "platinum", 0.20], [ "diamond", 0.20], [ "aegisalt", 0.20], [ "rubium", 0.20], [ "violium", 0.20] ] ] 14,19c14,19 < [0.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.15], [ "silverore", 1.05], [ "gold", 1.00], [ "platinum", 0.90], [ "diamond", 0.85], [ "iron", 1.20], ["fossil", 0.79] ] ], < [1.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.20], [ "silverore", 1.15], [ "gold", 1.05], [ "platinum", 0.95], [ "diamond", 0.90], [ "iron", 1.30], ["fossil", 0.79] ] ], < [2.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.25], [ "silverore", 1.20], [ "gold", 1.15], [ "platinum", 1.00], [ "diamond", 0.95], [ "titanium", 1.20], ["fossil", 0.79] ] ], < [3.5, [ [ "coal", 1.15], [ "uranium", 1.30], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.30], [ "silverore", 1.25], [ "gold", 1.20], [ "platinum", 1.05], [ "diamond", 1.00], [ "titanium", 1.30], ["fossil", 0.79] ] ], < [4.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.30], [ "silverore", 1.30], [ "gold", 1.25], [ "platinum", 1.15], [ "diamond", 1.05], [ "aegisalt", 1.20], [ "rubium", 1.20], [ "violium", 1.20], ["fossil", 0.79] ] ], < [5.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.30], [ "silverore", 1.30], [ "gold", 1.30], [ "platinum", 1.20], [ "diamond", 1.15], [ "aegisalt", 1.30], [ "rubium", 1.30], [ "violium", 1.30], [ "solarium", 1.30], ["fossil", 0.79] ] ] --- > [0.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.15], [ "silverore", 1.05], [ "gold", 1.00], [ "platinum", 0.90], [ "diamond", 0.85], ["fossil", 0.79], [ "iron", 1.25] ] ], > [1.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.20], [ "silverore", 1.15], [ "gold", 1.05], [ "platinum", 0.95], [ "diamond", 0.90], ["fossil", 0.79], [ "iron", 1.35] ] ], > [2.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.15], [ "silverore", 1.20], [ "gold", 1.15], [ "platinum", 1.00], [ "diamond", 0.95], ["fossil", 0.79], [ "titanium", 1.20] ] ], > [3.5, [ [ "coal", 1.15], [ "uranium", 1.30], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.10], [ "silverore", 1.15], [ "gold", 1.20], [ "platinum", 1.05], [ "diamond", 1.00], ["fossil", 0.79], [ "titanium", 1.30] ] ], > [4.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.05], [ "silverore", 1.10], [ "gold", 1.15], [ "platinum", 1.10], [ "diamond", 1.05], ["fossil", 0.79], [ "aegisalt", 1.20], [ "rubium", 1.20], [ "violium", 1.20] ] ], > [5.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 1.30], [ "copper", 1.00], [ "silverore", 1.05], [ "gold", 1.10], [ "platinum", 1.05], [ "diamond", 1.15], ["fossil", 0.79], [ "aegisalt", 1.30], [ "rubium", 1.30], [ "violium", 1.30] ] ] 23,28c23,28 < [0.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.20], [ "silverore", 1.10], [ "gold", 1.05], [ "platinum", 0.95], [ "diamond", 0.90], [ "iron", 1.25], ["fossil", 0.79] ] ], < [1.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.25], [ "silverore", 1.20], [ "gold", 1.10], [ "platinum", 1.00], [ "diamond", 0.95], [ "iron", 1.35], ["fossil", 0.79] ] ], < [2.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.30], [ "silverore", 1.25], [ "gold", 1.20], [ "platinum", 1.05], [ "diamond", 1.00], [ "titanium", 1.25], ["fossil", 0.79] ] ], < [3.5, [ [ "coal", 1.15], [ "uranium", 1.35], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.35], [ "silverore", 1.30], [ "gold", 1.25], [ "platinum", 1.10], [ "diamond", 1.05], [ "titanium", 1.35], ["fossil", 0.79] ] ], < [4.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.35], [ "silverore", 1.35], [ "gold", 1.30], [ "platinum", 1.20], [ "diamond", 1.10], [ "aegisalt", 1.25], [ "rubium", 1.20], [ "violium", 1.20], ["fossil", 0.79] ] ], < [5.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.35], [ "silverore", 1.35], [ "gold", 1.35], [ "platinum", 1.25], [ "diamond", 1.20], [ "aegisalt", 1.35], [ "rubium", 1.35], [ "violium", 1.35], [ "solarium", 1.35], ["fossil", 0.79] ] ] --- > [0.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.20], [ "silverore", 1.10], [ "gold", 1.05], [ "platinum", 0.95], [ "diamond", 0.90], ["fossil", 0.79], [ "iron", 1.30] ] ], > [1.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.25], [ "silverore", 1.20], [ "gold", 1.10], [ "platinum", 1.00], [ "diamond", 0.95], ["fossil", 0.79], [ "iron", 1.40] ] ], > [2.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.20], [ "silverore", 1.25], [ "gold", 1.20], [ "platinum", 1.05], [ "diamond", 1.00], ["fossil", 0.79], [ "titanium", 1.25] ] ], > [3.5, [ [ "coal", 1.15], [ "uranium", 1.35], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.15], [ "silverore", 1.20], [ "gold", 1.25], [ "platinum", 1.10], [ "diamond", 1.05], ["fossil", 0.79], [ "titanium", 1.35] ] ], > [4.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.10], [ "silverore", 1.15], [ "gold", 1.20], [ "platinum", 1.20], [ "diamond", 1.10], ["fossil", 0.79], [ "aegisalt", 1.25], [ "rubium", 1.20], [ "violium", 1.20] ] ], > [5.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 1.35], [ "copper", 1.05], [ "silverore", 1.10], [ "gold", 1.15], [ "platinum", 1.10], [ "diamond", 1.20], ["fossil", 0.79], [ "aegisalt", 1.35], [ "rubium", 1.35], [ "violium", 1.35] ] ] 32,37c32,46 < [0.5, [ [ "corefragment", 1.50], [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.25], [ "silverore", 1.15], [ "gold", 1.10], [ "platinum", 1.00], [ "diamond", 0.95], [ "iron", 1.30], ["fossil", 0.79] ] ], < [1.5, [ [ "corefragment", 1.15], [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.30], [ "silverore", 1.25], [ "gold", 1.15], [ "platinum", 1.05], [ "diamond", 1.00], [ "iron", 1.40], ["fossil", 0.79] ] ], < [2.5, [ [ "corefragment", 1.15], [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.35], [ "silverore", 1.30], [ "gold", 1.25], [ "platinum", 1.10], [ "diamond", 1.05], [ "titanium", 1.30], ["fossil", 0.79] ] ], < [3.5, [ [ "corefragment", 1.15], [ "coal", 1.15], [ "uranium", 1.40], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.40], [ "silverore", 1.35], [ "gold", 1.30], [ "platinum", 1.15], [ "diamond", 1.10], [ "titanium", 1.40], ["fossil", 0.79] ] ], < [4.5, [ [ "corefragment", 1.15], [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.40], [ "silverore", 1.40], [ "gold", 1.35], [ "platinum", 1.25], [ "diamond", 1.15], [ "aegisalt", 1.30], [ "rubium", 1.30], [ "violium", 1.30], ["fossil", 0.79] ] ], < [5.5, [ [ "corefragment", 1.15], [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.40], [ "silverore", 1.40], [ "gold", 1.40], [ "platinum", 1.30], [ "diamond", 1.25], [ "aegisalt", 1.40], [ "rubium", 1.40], [ "violium", 1.40], [ "solarium", 1.40], ["fossil", 0.79] ] ] --- > [0.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.25], [ "silverore", 1.15], [ "gold", 1.10], [ "platinum", 1.00], [ "diamond", 0.95], ["fossil", 0.79], [ "iron", 1.35] ] ], > [1.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.30], [ "silverore", 1.25], [ "gold", 1.15], [ "platinum", 1.05], [ "diamond", 1.00], ["fossil", 0.79], [ "iron", 1.45] ] ], > [2.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.25], [ "silverore", 1.30], [ "gold", 1.25], [ "platinum", 1.10], [ "diamond", 1.05], ["fossil", 0.79], [ "titanium", 1.30] ] ], > [3.5, [ [ "coal", 1.15], [ "uranium", 1.40], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.20], [ "silverore", 1.25], [ "gold", 1.30], [ "platinum", 1.15], [ "diamond", 1.10], ["fossil", 0.79], [ "titanium", 1.40] ] ], > [4.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.15], [ "silverore", 1.20], [ "gold", 1.25], [ "platinum", 1.25], [ "diamond", 1.15], ["fossil", 0.79], [ "aegisalt", 1.30], [ "rubium", 1.30], [ "violium", 1.30] ] ], > [5.5, [ [ "coal", 1.15], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 1.40], [ "copper", 1.10], [ "silverore", 1.15], [ "gold", 1.20], [ "platinum", 1.15], [ "diamond", 1.25], ["fossil", 0.79], [ "aegisalt", 1.40], [ "rubium", 1.40], [ "violium", 1.40] ] ] > ], > > "core" : [ > [0.5, [ [ "coal", 1.00], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.25], [ "silverore", 1.15], [ "gold", 1.10], [ "platinum", 1.00], [ "diamond", 0.95], [ "corefragment", 1.50], ["fossil", 0.79], [ "iron", 1.35] ] ], > [1.5, [ [ "coal", 1.00], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.30], [ "silverore", 1.25], [ "gold", 1.15], [ "platinum", 1.05], [ "diamond", 1.00], [ "corefragment", 1.15], ["fossil", 0.79], [ "iron", 1.45] ] ], > [2.5, [ [ "coal", 1.00], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.25], [ "silverore", 1.30], [ "gold", 1.25], [ "platinum", 1.10], [ "diamond", 1.05], [ "corefragment", 1.15], ["fossil", 0.79], [ "titanium", 1.30] ] ], > [3.5, [ [ "coal", 1.00], [ "uranium", 1.40], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.20], [ "silverore", 1.25], [ "gold", 1.30], [ "platinum", 1.15], [ "diamond", 1.10], [ "corefragment", 1.15], ["fossil", 0.79], [ "titanium", 1.40] ] ], > [4.5, [ [ "coal", 1.00], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 0.00], [ "copper", 1.15], [ "silverore", 1.20], [ "gold", 1.25], [ "platinum", 1.25], [ "diamond", 1.15], [ "corefragment", 1.15], ["fossil", 0.79], [ "aegisalt", 1.30], [ "rubium", 1.30], [ "violium", 1.30] ] ], > [5.5, [ [ "coal", 1.00], [ "uranium", 0.00], [ "plutonium", 0.00], [ "solarium", 1.40], [ "copper", 1.10], [ "silverore", 1.15], [ "gold", 1.20], [ "platinum", 1.15], [ "diamond", 1.25], [ "corefragment", 1.15], ["fossil", 0.79], [ "aegisalt", 1.40], [ "rubium", 1.40], [ "violium", 1.40] ] ] biomes\surface\arctic\arctic.biome 291,292c291,292 < "treeStemList" : [ "snowpinetree", "snowbirch", "snowcocoa", "snowfleshy", "snowgrumpy", "snowmetal", "snowpine", "snowslimey", "snowsomething", "snowspikey", "snowtwisted", "snowwood" ], < "treeFoliageList" : [ "snowpine", "snowblank", "snowscraggy", "snowbrains", "snowleafy", "snowfrumpy", "snowredleaves", "snowgreenleaves" ] --- > "treeStemList" : [ "snowpinetree" ], > "treeFoliageList" : [ "icepinefoliage" ] biomes\surface\garden\garden.biome 32c32 < "nightColors" : [ [60, 0, 0], [20, 0, 0] ], --- > "nightColors" : [ [0, 0, 50], [0, 0, 50] ], 46c46 < "nightColors" : [ [60, 0, 0], [20, 0, 0] ], --- > "nightColors" : [ [0, 0, 50], [0, 0, 50] ], 60c60 < "nightColors" : [ [40, 0, 60], [10, 0, 20] ], --- > "nightColors" : [ [40, 5, 60], [10, 5, 20] ], 74c74 < "nightColors" : [ [40, 0, 60], [10, 0, 20] ], --- > "nightColors" : [ [40, 5, 60], [10, 5, 20] ], 88c88 < "nightColors" : [ [40, 0, 60], [10, 0, 20] ], --- > "nightColors" : [ [40, 0, 65], [1, 0, 250 ] ], 102c102 < "nightColors" : [ [40, 0, 60], [10, 0, 20] ], --- > "nightColors" : [ [0, 0, 50], [0, 0, 50] ], 116c116 < "nightColors" : [ [40, 0, 60], [10, 0, 20] ], --- > "nightColors" : [ [40, 0, 65], [1, 0, 250 ] ], 130c130 < "nightColors" : [ [40, 0, 60], [10, 0, 20] ], --- > "nightColors" : [ [0, 0, 50], [0, 0, 50] ], biomes\surface_detached\flesh\flesh.biome 18,19c18,19 < "mainBlock" : "dirt", < "subBlocks" : [ "clay", "mud" ], --- > "mainBlock" : "fleshblock", > "subBlocks" : [ "mud" ], biomes\underground\generic\underground1b.biome 20c20 < "ores" : "depth1", --- > "ores" : "depth2", biomes\underground\generic\underground1d.biome 20c20 < "ores" : "depth1", --- > "ores" : "depth2", biomes\underground\generic\underground3d.biome 20c20 < "ores" : "depth2", --- > "ores" : "depth3", biomes\underground\generic\core\blaststonecorelayer.biome 9c9 < "ores" : "depth3", --- > "ores" : "core", biomes\underground\generic\core\gardencorelayer.biome 9c9 < "ores" : "depth3", --- > "ores" : "core", biomes\underground\generic\core\magmarockcorelayer.biome 9c9 < "ores" : "depth3", --- > "ores" : "core", biomes\underground\generic\core\obisidiancorelayer.biome 9c9 < "ores" : "depth3", --- > "ores" : "core", dungeons\microdungeons\biome\oasis\oasis.dungeon 73c73 < "brush" : [ [ "clear" ], [ "liquid", "water" ] ] --- > "brush" : [ [ "clear" ], [ "liquid", "healingliquid" ] ] items\guns\randomgenerated\avianblaster.generatedgun 9c9 < "baseDps" : [3, 3.5], --- > "baseDps" : [4.125, 4.5], items\guns\randomgenerated\avianheavyblaster.generatedgun 9c9 < "baseDps" : [4.25, 5], --- > "baseDps" : [5.5, 6], items\guns\randomgenerated\boneassault.generatedgun 9c9 < "baseDps" : [4.25, 5], --- > "baseDps" : [5.5, 6], items\guns\randomgenerated\bonepistol.generatedgun 8c8 < "baseDps" : [3, 3.5], --- > "baseDps" : [4.125, 4.5], items\guns\randomgenerated\boneshotgun.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5.5, 6], items\guns\randomgenerated\cellzapper.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5.5, 6], items\guns\randomgenerated\commonassaultrifle.generatedgun 9c9 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\commonassaultrifle_plasma.generatedgun 9c9 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\commongrenadelauncher.generatedgun 8c8 < "baseDps" : [3, 3.5], --- > "baseDps" : [3.75, 4.5], items\guns\randomgenerated\commonmachinepistol.generatedgun 9c9 < "baseDps" : [2.5, 3.5], --- > "baseDps" : [3.75, 4.5], items\guns\randomgenerated\commonmachinepistol_plasma.generatedgun 8c8 < "baseDps" : [2.5, 3.5], --- > "baseDps" : [3.75, 4.5], items\guns\randomgenerated\commonpistol.generatedgun 8c8 < "baseDps" : [2.5, 3.5], --- > "baseDps" : [3.75, 4.5], items\guns\randomgenerated\commonpistol_plasma.generatedgun 8c8 < "baseDps" : [2.5, 3.5], --- > "baseDps" : [3.75, 4.5], items\guns\randomgenerated\commonrocketlauncher.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\commonshotgun.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\commonshotgun_plasma.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\commonsniperrifle.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\commonsniperrifle_plasma.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\crossbow.generatedgun 9c9 < "baseDps" : [3.5, 5], --- > "baseDps" : [5.5, 6], items\guns\randomgenerated\crossbowspecial.generatedgun 9c9 < "baseDps" : [3.5, 5], --- > "baseDps" : [5.5, 6], items\guns\randomgenerated\crossbowwood.generatedgun 9c9 < "baseDps" : [3.5, 5], --- > "baseDps" : [5.5, 6], items\guns\randomgenerated\flamethrower.generatedgun 9c9 < "baseDps" : [3.5, 5], --- > "baseDps" : [5.5, 6], items\guns\randomgenerated\florangrenadelauncher.generatedgun 9c9 < "baseDps" : [3.5, 5], --- > "baseDps" : [5.5, 6], items\guns\randomgenerated\floranneedler.generatedgun 9c9 < "baseDps" : [4.25, 5], --- > "baseDps" : [5.5, 6], items\guns\randomgenerated\globelauncher.generatedgun 8c8 < "baseDps" : [4.25, 5], --- > "baseDps" : [5.5, 6], items\guns\randomgenerated\legendaryassaultrifle.generatedgun 9c9 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\legendarygrenadelauncher.generatedgun 8c8 < "baseDps" : [3, 3.5], --- > "baseDps" : [3.75, 4.5], items\guns\randomgenerated\legendarymachinepistol.generatedgun 9c9 < "baseDps" : [2.5, 3.5], --- > "baseDps" : [3.75, 4.5], items\guns\randomgenerated\legendarypistol.generatedgun 8c8 < "baseDps" : [2.5, 3.5], --- > "baseDps" : [3.75, 4.5], items\guns\randomgenerated\legendaryrocketlauncher.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\legendaryshotgun.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\legendarysniperrifle.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\lightningcoil.generatedgun 9c9 < "baseDps" : [4.25, 5], --- > "baseDps" : [5.5, 6], items\guns\randomgenerated\pulserifle.generatedgun 9c9 < "baseDps" : [4.25, 5], --- > "baseDps" : [5.5, 6], items\guns\randomgenerated\rareassaultrifle.generatedgun 9c9 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\rareassaultrifle_plasma.generatedgun 9c9 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\raregrenadelauncher.generatedgun 8c8 < "baseDps" : [3, 3.5], --- > "baseDps" : [3.75, 4.5], items\guns\randomgenerated\raremachinepistol.generatedgun 9c9 < "baseDps" : [2.5, 3.5], --- > "baseDps" : [3.75, 4.5], items\guns\randomgenerated\raremachinepistol_plasma.generatedgun 8c8 < "baseDps" : [2.5, 3.5], --- > "baseDps" : [3.75, 4.5], items\guns\randomgenerated\rarepistol.generatedgun 8c8 < "baseDps" : [2.5, 3.5], --- > "baseDps" : [3.75, 4.5], items\guns\randomgenerated\rarepistol_plasma.generatedgun 8c8 < "baseDps" : [2.5, 3.5], --- > "baseDps" : [3.75, 4.5], items\guns\randomgenerated\rarerocketlauncher.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\rareshotgun.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\rareshotgun_plasma.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\raresniperrifle.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\raresniperrifle_plasma.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\revolver.generatedgun 9c9 < "baseDps" : [3, 3.5], --- > "baseDps" : [4.125, 4.5], items\guns\randomgenerated\shattergun.generatedgun 8c8 < "baseDps" : [4.25, 5], --- > "baseDps" : [5.5, 6], items\guns\randomgenerated\stingergun.generatedgun 9c9 < "baseDps" : [4.25, 5], --- > "baseDps" : [5.5, 6], items\guns\randomgenerated\uncommonassaultrifle.generatedgun 9c9 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\uncommongrenadelauncher.generatedgun 8c8 < "baseDps" : [3, 3.5], --- > "baseDps" : [3.75, 4.5], items\guns\randomgenerated\uncommonmachinepistol.generatedgun 9c9 < "baseDps" : [2.5, 3.5], --- > "baseDps" : [3.75, 4.5], items\guns\randomgenerated\uncommonpistol.generatedgun 8c8 < "baseDps" : [2.5, 3.5], --- > "baseDps" : [3.75, 4.5], items\guns\randomgenerated\uncommonrocketlauncher.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\uncommonshotgun.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\uncommonshotgun_plasma.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\uncommonsniperrifle.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\uncommonsniperrifle_plasma.generatedgun 8c8 < "baseDps" : [3.5, 5], --- > "baseDps" : [5, 6], items\guns\randomgenerated\uzi.generatedgun 9c9 < "baseDps" : [3, 3.5], --- > "baseDps" : [4.125, 4.5], items\staves\biostaff\biostaff.staff 29c29 < "power" : 10, --- > "power" : 180, items\staves\racialstaves\apex\steel\apexsteelstaff1\apexsteelstaff1.staff 29c29 < "power" : 0, --- > "power" : 100, items\swords\biome\alpine\legendblade\legendblade.sword 3c3 < "level" : 4, --- > "level" : 3, 50c50 < "power" : 7.15 --- > "power" : 11 items\swords\biome\alpine\stonesword\stonesword.sword 50c50 < "power" : 7.15 --- > "power" : 5 items\swords\randomgenerated\avianspear.generatedsword 5c5 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\aviansword.generatedsword 3c3 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\boneaxe.generatedsword 6c6 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\bonehammer.generatedsword 5c5 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\bonesaw.generatedsword 3c3 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\bonesword.generatedsword 5c5 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\candycane.generatedsword 4c4 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\commonaxe.generatedsword 4c4 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\commondagger.generatedsword 3c3 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\commonhammer.generatedsword 4c4 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\commononehandedsword.generatedsword 3c3 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\commonspear.generatedsword 3c3 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\commontwohandedsword.generatedsword 3c3 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\crappyaxe.generatedsword 4c4 < "baseDps" : [1.5, 2.25], --- > "baseDps" : [1.75, 2.25], items\swords\randomgenerated\crappyhammer.generatedsword 4c4 < "baseDps" : [1.5, 2.25], --- > "baseDps" : [1.75, 2.25], items\swords\randomgenerated\crappyspear.generatedsword 3c3 < "baseDps" : [1.5, 2.25], --- > "baseDps" : [1.75, 2.25], items\swords\randomgenerated\crappysword.generatedsword 3c3 < "baseDps" : [1.5, 2.25], --- > "baseDps" : [1.75, 2.25], items\swords\randomgenerated\crystalspear.generatedsword 5c5 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\eyeaxe.generatedsword 6c6 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\eyesword.generatedsword 5c5 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\firesword.generatedsword 5c5 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\floranmace.generatedsword 4c4 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\floranprod.generatedsword 3c3 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\fryingpan.generatedsword 4c4 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\glitchlargemace.generatedsword 4c4 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\glitchsmallmace.generatedsword 3c3 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\mushroomsword.generatedsword 5c5 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\nightstick.generatedsword 3c3 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\npcflorantier1spear.generatedsword 3c3 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\rainbowspear.generatedsword 5c5 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\rustsword.generatedsword 5c5 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\shiv.generatedsword 3c3 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\slavesword.generatedsword 5c5 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\starcleaversword.generatedsword 6c6 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\steelchair.generatedsword 4c4 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\teslaspear.generatedsword 5c5 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\tier3axe.generatedsword 5c5 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\tier3dagger.generatedsword 4c4 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\tier3hammer.generatedsword 5c5 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\tier3onehandedsword.generatedsword 3c3 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\tier3spear.generatedsword 4c4 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\tier3twohandedsword.generatedsword 4c4 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\toxicbroadsword.generatedsword 5c5 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\twistedspear.generatedsword 5c5 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\swords\randomgenerated\uncommonaxe.generatedsword 6c6 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\uncommondagger.generatedsword 5c5 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\uncommonhammer.generatedsword 6c6 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\uncommononehandedsword.generatedsword 5c5 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\uncommonspear.generatedsword 5c5 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\uncommontier3axe.generatedsword 6c6 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\uncommontier3dagger.generatedsword 5c5 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\uncommontier3hammer.generatedsword 6c6 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\uncommontier3onehandedsword.generatedsword 5c5 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\uncommontier3spear.generatedsword 5c5 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\uncommontier3twohandedsword.generatedsword 5c5 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\uncommontwohandedsword.generatedsword 5c5 < "baseDps" : [1.75, 2.5], --- > "baseDps" : [2, 2.5], items\swords\randomgenerated\watersword.generatedsword 5c5 < "baseDps" : [2.25, 2.75], --- > "baseDps" : [2.25, 2.5], items\throwables\huntingspear.thrownitem 7c7 < "description" : "A throwable hunting spear. It lets you get meat off animals.", --- > "description" : "A throwable hunting spear. Causes monsters to drop meat.", 18c18 < "power" : 10 --- > "power" : 40 items\throwables\throwingboulder.thrownitem 18c18 < "power" : 130 --- > "power" : 175 monsters\boss\missile\missile.monstertype 39c39 < "explosionPower" : 10, --- > "explosionPower" : 30, monsters\boss\penguin\general.monstertype 93c93 < "power" : 10 --- > "power" : 4 monsters\boss\penguin\trooper.monstertype 93c93 < "power" : 10 --- > "power" : 4 monsters\boss\penguintank\penguintank.monstertype 99c99 < "power" : 70 --- > "power" : 20 monsters\boss\penguinufo\penguinufo.monstertype 73c73 < "damage" : 15, --- > "damage" : 25, monsters\boss\penguinufo\skills\ufomovefireattack.monsterskill 20c20 < "power" : 20 --- > "power" : 4 monsters\boss\robotboss\robotboss.monstertype 86c86 < "damage" : 25, --- > "damage" : 100, 108c108 < "baseValue" : 750 --- > "baseValue" : 1000 monsters\boss\robotboss\skills\robotelectricburstattack.monsterskill 22c22 < "power" : 2, --- > "power" : 25, monsters\boss\robotboss\skills\robotflamethrowerattack.monsterskill 22c22 < "power" : 1, --- > "power" : 5, monsters\boss\robotboss\skills\robotpunchattack.monsterskill 12,13c12,13 < "windupTime" : 0.4, < "winddownTime" : 0.6, --- > "windupTime" : 0.3, > "winddownTime" : 0.7, 18,19c18,19 < "power" : 5, < "speed" : 20 --- > "power" : 30, > "speed" : 10 21c21 < "offset" : [2, -1] --- > "offset" : [3.5, -1] monsters\ground\approachstate.lua 39,60d38 < --[[debug < --Visualize path < local position = mcontroller.position() < if self.pathing.delta ~= nil then < world.debugPoint(vec2.add(position, self.pathing.delta), "yellow") < < local step = 0 < local prevStep = position < while true do < local nextStep = entity.pathLookahead(step) < if nextStep then < world.debugLine(prevStep, vec2.add(position, nextStep), "blue") < world.debugPoint(vec2.add(position, nextStep), "blue") < prevStep = vec2.add(position, nextStep) < step = step + 1 < else < break < end < end < end < --]] < monsters\ground\groundmonster.lua 718a719,743 > -- draw lines and points to show the current path > function drawDebugPath(goalDelta) > local position = mcontroller.position() > > local step = 0 > local prevStep = position > while true do > local nextStep = entity.pathLookahead(step) > if nextStep then > world.debugLine(prevStep, vec2.add(position, nextStep), "blue") > world.debugPoint(vec2.add(position, nextStep), "blue") > prevStep = vec2.add(position, nextStep) > step = step + 1 > else > break > end > end > if goalDelta then > local goalPosition = vec2.add(goalDelta, position) > world.debugLine(position, goalPosition, "green") > world.debugPoint(goalPosition, "green") > end > end > > -------------------------------------------------------------------------------- 839a865,868 > if self.debug then > drawDebugPath() > end > 876,883d904 < -- Open doors in the way < local closedDoorIds = world.entityLineQuery(position, { position[1] + util.clamp(delta[1], -2, 2), position[2] }, { includedTypes = {"object"}, callScript = "hasCapability", callScriptArgs = { "closedDoor" } }) < for _, closedDoorId in pairs(closedDoorIds) do < if options.openDoorCallback == nil or options.openDoorCallback(closedDoorId) then < world.callScriptedEntity(closedDoorId, "openDoor") < end < end < 898c919 < --If there is a ledge but the path continues, don't use this position --- > --If there is a ledge, don't use this position 902a924,928 > --If very close to a path node, disregard it > if goalPosition and world.magnitude(goalPosition, mcontroller.position()) < 0.5 then > goalPosition = nil > end > 942c968 < timedJump(math.max(jumpHold, 0.02), backwardPosition or forwardPosition) --- > timedJump(math.max(jumpHold, 0.02), backwardPosition or forwardPosition, goalDelta[1]) 961,963c987,994 < if verticalMovementRatio < 0.5 and math.abs(goalDelta[1]) > 1.5 and not findValidStandingPosition(nextStepPosition, deltaDir) then < timedJump(distanceJumpTime(goalDelta), forwardPosition or backwardPosition) < return true --- > if verticalMovementRatio < 0.5 and math.abs(goalDelta[1]) > 1.5 then > --Could be stairs, check diagonally > if not findValidStandingPosition({nextStepPosition[1], nextStepPosition[2]}, deltaDir) and > not findValidStandingPosition({nextStepPosition[1], nextStepPosition[2] - 1}, deltaDir) and > not findValidStandingPosition({nextStepPosition[1], nextStepPosition[2] + 1}, deltaDir) then > timedJump(distanceJumpTime(goalDelta), forwardPosition or backwardPosition, deltaDir) > return true > end 998c1029 < function timedJump(holdTime, goalPosition) --- > function timedJump(holdTime, goalPosition, facingDirection) 1009a1041 > self.pathing.jumpFacingDirection = facingDirection 1024c1056,1059 < if (mcontroller.onGround() or mcontroller.liquidMovement()) and not self.pathing.jumpHoldTimer then self.pathing.goalJumpPosition = nil end --- > if (mcontroller.onGround() or mcontroller.liquidMovement()) and not self.pathing.jumpHoldTimer then > self.pathing.goalJumpPosition = nil > self.pathing.jumpFacingDirection = nil > end 1029a1065,1069 > > if self.pathing.jumpFacingDirection then > mcontroller.controlFace(self.pathing.jumpFacingDirection) > self.pathing.deltaX = self.pathing.jumpFacingDirection > end 1105a1146,1148 > if self.debug then > drawDebugRect(groundRegion, "blue") > end monsters\ground\moontant\moontant.monstertype 124c124 < "baseValue" : 100 --- > "baseValue" : 80 monsters\skills\ranged\plasmaburstattack.monsterskill 17c17 < "windupTime" : 2, --- > "windupTime" : 1, 24c24 < "rangedAttack" : [ ] --- > "rangedAttack" : [ "/sfx/gun/plasma_pistol1.wav" ] monsters\unique\serpentdroid\serpentdroid.monstertype 20a21,22 > "/monsters/ground/approachState.lua", > "/monsters/ground/fleeState.lua", 60c62,66 < "airForce" : 50.0 --- > "airForce" : 50.0, > "airJumpProfile" : { > "jumpControlForce" : 0, > "jumpInitialPercentage" : 0 > } npcs\main.lua 382a383,387 > > if self.debug then > local inState = self.state.stateDesc() > world.debugText(inState, mcontroller.position(), "blue") > end 653a659,663 > end > > --If very close to a path node, disregard it > if goalPosition and world.magnitude(goalPosition, mcontroller.position()) < 0.5 then > goalPosition = nil 695c705 < timedJump(math.max(jumpHold, 0.02), backwardPosition or forwardPosition) --- > timedJump(math.max(jumpHold, 0.02), backwardPosition or forwardPosition, goalDelta[1]) 714,716c724,731 < if verticalMovementRatio < 0.5 and math.abs(goalDelta[1]) > 1.5 and not findValidStandingPosition(nextStepPosition, deltaDir) then < timedJump(distanceJumpTime(goalDelta), forwardPosition or backwardPosition) < return true --- > if verticalMovementRatio < 0.5 and math.abs(goalDelta[1]) > 1.5 then > --Could be stairs, check diagonally > if not findValidStandingPosition({nextStepPosition[1], nextStepPosition[2]}, deltaDir) and > not findValidStandingPosition({nextStepPosition[1], nextStepPosition[2] - 1}, deltaDir) and > not findValidStandingPosition({nextStepPosition[1], nextStepPosition[2] + 1}, deltaDir) then > timedJump(distanceJumpTime(goalDelta), forwardPosition or backwardPosition, deltaDir) > return true > end 753c768 < function timedJump(holdTime, goalPosition) --- > function timedJump(holdTime, goalPosition, facingDirection) 759a775 > self.pathing.jumpFacingDirection = facingDirection 774c790,793 < if mcontroller.onGround() and not self.pathing.jumpHoldTimer then self.pathing.goalJumpPosition = nil end --- > if mcontroller.onGround() and not self.pathing.jumpHoldTimer then > self.pathing.goalJumpPosition = nil > self.pathing.jumpFacingDirection = nil > end 776a796,799 > if self.debug then > world.debugLine(mcontroller.position(), self.pathing.goalJumpPosition, "green") > world.debugPoint(self.pathing.goalJumpPosition, "green") > end 779a803,807 > > if self.pathing.jumpFacingDirection then > controlFace(self.pathing.jumpFacingDirection) > self.pathing.deltaX = self.pathing.jumpFacingDirection > end 804,807d831 < if self.debug then < world.debugPoint(self.pathing.goalJumpPosition, "red") < world.debugLine(mcontroller.position(), self.pathing.goalJumpPosition, "red") < end npcs\meleeattackstate.lua 2c2 < notificationInterval = 2, --- > notificationInterval = 2 57,66c57,58 < -- This just prevents switching sides too frequently when multiple npcs are < -- attacking the same target and coordinating their attacks (since there may < -- be a period of time where another npc moving to a better position is < -- counted as a closer attacker) < if stateData.repositionCooldownTimer ~= nil then < stateData.repositionCooldownTimer = stateData.repositionCooldownTimer - dt < if stateData.repositionCooldownTimer <= 0 then < stateData.repositionCooldownTimer = nil < end < end --- > local position = mcontroller.position() > local toTarget = world.distance(stateData.targetPosition, position) 73c65,77 < stateData.swingCooldownTimer = entity.configParameter("meleeAttack.swingCooldownTime", 0) --- > > self.hasAttackToken = nil > > if not self.attackTokenRequest then > stateData.swingCooldownTimer = entity.configParameter("meleeAttack.swingCooldownTime", 0) > else > local tokenEntity = self.attackTokenRequest > world.callScriptedEntity(self.attackTokenRequest, "meleeAttackState.grantAttackToken") > self.attackTokenRequest = nil > self.ignoreMoveToSide = nil > > stateData.awaitingAttackToken = world.callScriptedEntity(tokenEntity, "meleeAttackState.requestAttackToken", entity.id()) > end 78,80d81 < local position = mcontroller.position() < local toTarget = world.distance(stateData.targetPosition, position) < 89c90,95 < return false --- > end > > --Target doesn't exist or is gone > local targetPosition = world.entityPosition(stateData.targetId) > if not targetPosition or stateData.searchTimer >= entity.configParameter("meleeAttack.searchTime") then > return true 97,100c103 < stateData.targetPosition = world.entityPosition(stateData.targetId) < if stateData.targetPosition == nil then < return true < end --- > stateData.targetPosition = targetPosition 108,109c111,122 < if not world.entityExists(stateData.targetId) then < return true --- > stateData.searchTimer = stateData.searchTimer + dt > end > > local distance = world.magnitude(toTarget) > > --Reset attack tokens when out of range > if distance > entity.configParameter("meleeAttack.backoffDistanceRange")[2] then > self.hasAttackToken = nil > if stateData.awaitingAttackToken then > world.callScriptedEntity(stateData.awaitingAttackToken, "meleeAttackState.clearTokenRequest") > stateData.awaitingAttackToken = nil > self.attackTokenRequest = nil 110a124 > end 112,114c126,146 < stateData.searchTimer = stateData.searchTimer + dt < if stateData.searchTimer >= entity.configParameter("meleeAttack.searchTime") then < return true --- > --Waiting for the npc in front to attack > if stateData.awaitingAttackToken and not self.hasAttackToken then > --Last in queue and other side is clear, move there > if not self.attackTokenRequest and not self.ignoreMoveToSide and meleeAttackState.otherSideOpen(toTarget, stateData) then > stateData.moveToSide = util.toDirection(toTarget[1]) > world.callScriptedEntity(stateData.awaitingAttackToken, "meleeAttackState.clearTokenRequest") > stateData.awaitingAttackToken = nil > return false > end > > local tokenEntityPosition = world.entityPosition(stateData.awaitingAttackToken) > > if tokenEntityPosition then > tokenEntityPosition[1] = tokenEntityPosition[1] + (util.toDirection(-toTarget[1]) * 2) > > local running = world.magnitude(position, tokenEntityPosition) > entity.configParameter("meleeAttack.runThreshold") > moveTo(tokenEntityPosition, dt, { run = running }) > controlFace(toTarget[1]) > return false > else > stateData.awaitingAttackToken = nil 118c150,153 < local distance = world.magnitude(toTarget) --- > --Move to the other side of the target > if stateData.moveToSide then > --Ignore requests for attack token while running to the other side > self.ignoreTokenRequests = true 120,123c155,156 < local movementTargetPosition, running = nil, true < if stateData.moveToSide ~= nil then < movementTargetPosition = { < stateData.targetPosition[1] + stateData.moveToSide * stateData.backoffDistance, --- > local sidePosition = { > stateData.targetPosition[1] + stateData.moveToSide * (entity.configParameter("meleeAttack.swingDistance") + 1), 126d158 < entity.endAltFire() 128c160,164 < if distance >= stateData.backoffDistance and stateData.moveToSide == util.toDirection(-toTarget[1]) then --- > local running = world.magnitude(position, sidePosition) > entity.configParameter("meleeAttack.runThreshold") > moveTo(sidePosition, dt, {run = running}) > controlFace(toTarget[1]) > > if util.toDirection(toTarget[1]) == -stateData.moveToSide and math.abs(toTarget[1]) > entity.configParameter("meleeAttack.swingDistance") or distance > stateData.backoffDistance then 130c166 < stateData.repositionCooldownTimer = entity.randomizeParameterRange("meleeAttack.repositionCooldownTimeRange") --- > self.ignoreTokenRequests = false 132,134c168,173 < else < if entityInSight then < entity.setAimPosition(stateData.targetPosition) --- > return false > end > > --Try to attacki > if entityInSight then > entity.setAimPosition(stateData.targetPosition) 136,148c175,183 < if distance < stateData.backoffDistance then < -- Coordinate attacks with other attackers so they don't all stack up < if stateData.repositionCooldownTimer == nil then < if meleeAttackState.hasCloserAttacker(position, stateData) then < if meleeAttackState.otherSideOpen(toTarget, stateData) then < stateData.moveToSide = util.toDirection(toTarget[1]) < return false < end < < -- Just stay back a bit so the closer guy can fight < return false < else < stateData.repositionCooldownTimer = entity.randomizeParameterRange("meleeAttack.repositionCooldownTimeRange") --- > if distance < stateData.backoffDistance then > -- Coordinate attacks with other attackers so they don't all stack up > local closerAttacker = meleeAttackState.closerAttackers(position, stateData) > if closerAttacker and not self.hasAttackToken then > --Request attack token from the NPC in front > if not stateData.awaitingAttackToken then > local tokenEntity = world.callScriptedEntity(closerAttacker, "meleeAttackState.requestAttackToken", entity.id()) > if tokenEntity then > stateData.awaitingAttackToken = tokenEntity 150a186,189 > return false > else > self.hasAttackToken = true > stateData.awaitingAttackToken = false 151a191 > end 153,165c193,197 < -- Start new attack if close enough < if distance < entity.configParameter("meleeAttack.swingDistance") then < -- Make sure we're not standing on a platform just above the target < if toTarget[2] < -1.5 then < mcontroller.controlDown() < end < < entity.beginPrimaryFire() < stateData.swingTimer = entity.configParameter("meleeAttack.swingTime") < return false < elseif self.hasSheathedRangedWeapon and not meleeAttackState.inRange(stateData.targetPosition) and entity.energy() == entity.maxEnergy() then < attack(stateData.targetId, entity.id(), true) < return false --- > -- Start new attack if close enough > if distance < entity.configParameter("meleeAttack.swingDistance") and stateData.swingCooldownTimer <= 0 then > -- Make sure we're not standing on a platform just above the target > if toTarget[2] < -1.5 then > mcontroller.controlDown() 166a199,205 > > entity.beginPrimaryFire() > stateData.swingTimer = entity.configParameter("meleeAttack.swingTime") > return false > elseif self.hasSheathedRangedWeapon and not meleeAttackState.inRange(stateData.targetPosition) and entity.energy() == entity.maxEnergy() then > attack(stateData.targetId, entity.id(), true) > return false 167a207 > end 169,171c209,212 < -- Get close enough to attack < movementTargetPosition = stateData.targetPosition < running = distance > entity.configParameter("meleeAttack.runThreshold") --- > -- Get close enough to attack > if distance > entity.configParameter("meleeAttack.swingDistance") then > local movementTargetPosition = stateData.targetPosition > local running = distance > entity.configParameter("meleeAttack.runThreshold") 177d217 < end 179,180c219,222 < moveTo(movementTargetPosition, dt, { run = running }) < if self.pathing.deltaX then controlFace(self.pathing.deltaX) end --- > if moveTo(movementTargetPosition, dt, { run = running }) then > controlFace(self.pathing.deltaX or toTarget[1]) > end > end 195,196c237,238 < function meleeAttackState.hasCloserAttacker(position, stateData) < local npcIds = world.entityLineQuery(stateData.targetPosition, position, { includedTypes = {"npc"}, callScript = "attackTargetId", callScriptResult = stateData.targetId }) --- > function meleeAttackState.closerAttackers(position, stateData) > local npcIds = world.entityLineQuery(stateData.targetPosition, position, { includedTypes = {"npc"}, callScript = "attackTargetId", callScriptResult = stateData.targetId, withoutEntityId = entity.id() }) 201,207c243 < local selfId = entity.id() < < if #npcIds == 1 then < return npcIds[1] ~= selfId < end < < if #npcIds > 1 then --- > if #npcIds > 0 then 210,214c246,248 < if npcId ~= selfId then < local npcPosition = world.entityPosition(npcId) < if world.magnitude(npcPosition, stateData.targetPosition) < distance then < return true < end --- > local npcPosition = world.entityPosition(npcId) > if world.magnitude(npcPosition, stateData.targetPosition) < distance then > return npcId 230,231c264,265 < local npcIds = world.entityLineQuery(stateData.targetPosition, otherSidePosition, { includedTypes = {"npc"}, callScript = "attackTargetId", callScriptResult = stateData.targetId }) < if #npcIds > 0 and npcIds[1] ~= entity.id() then --- > local npcIds = world.entityLineQuery(stateData.targetPosition, otherSidePosition, { includedTypes = {"npc"}, callScript = "attackTargetId", callScriptResult = stateData.targetId, withoutEntityId = entity.id() }) > if #npcIds > 0 then 248a283,304 > > function meleeAttackState.requestAttackToken(npcId, queue) > if self.ignoreTokenRequests then return false end > > --Pass on the token request if someone has already requested a token from this NPC > if self.attackTokenRequest then > return world.callScriptedEntity(self.attackTokenRequest, "meleeAttackState.requestAttackToken", npcId) > end > > self.attackTokenRequest = npcId > > return entity.id() > end > > function meleeAttackState.clearTokenRequest() > self.attackTokenRequest = nil > self.ignoreMoveToSide = true > end > > function meleeAttackState.grantAttackToken() > self.hasAttackToken = true > end \ No newline at end of file npcs\sitstate.lua 44,47c44,46 < moveTo(targetPosition, dt) < local deltaX = toTarget[1] < if self.pathing.deltaX then deltaX = self.pathing.deltaX end < controlFace(deltaX) --- > if moveTo(targetPosition, dt) then > controlFace(self.pathing.deltaX or toTarget[1]) > end npcs\wanderstate.lua 56,59c56,58 < moveTo(stateData.targetPosition, dt) < local deltaX = toTarget[1] < if self.pathing.deltaX then deltaX = self.pathing.deltaX end < controlFace(deltaX) --- > if moveTo(stateData.targetPosition, dt) then > controlFace(self.pathing.deltaX or toTarget[1]) > end npcs\mission\florangladiator.npctype 6,11d5 < "innateStatusEffects" : [ < { < "kind" : "Protection", < "amount" : 200.0 < } < ], 14c8 < "levelVariance" : [4, 4], --- > "levelVariance" : [2, 2], 113c107 < "baseValue" : 1.0 --- > "baseValue" : 0.3 116c110 < "baseValue" : 7.0 --- > "baseValue" : 1.0 npcs\mission\floranpredator.npctype 6,11d5 < "innateStatusEffects" : [ < { < "kind" : "Protection", < "amount" : 40.0 < } < ], 14c8 < "levelVariance" : [4, 4], --- > "levelVariance" : [0, 0], 233c227 < "baseValue" : 3.0 --- > "baseValue" : 1.0 236c230 < "baseValue" : 0.0 --- > "baseValue" : 1.0 npcs\mission\floransniper.npctype 6,11d5 < "innateStatusEffects" : [ < { < "kind" : "Protection", < "amount" : 48.0 < } < ], 14c8 < "levelVariance" : [4, 4], --- > "levelVariance" : [0, 0], 133c127 < "baseValue" : 4.0 --- > "baseValue" : 1.0 npcs\mission\miner.npctype 6,11d5 < "innateStatusEffects" : [ < { < "kind" : "Protection", < "amount" : 40.0 < } < ], 16c10 < "levelVariance" : [1.5, 2.5], --- > "levelVariance" : [0, 0], 615c609 < "baseValue" : 40.0 --- > "baseValue" : 500.0 621c615 < "baseValue" : 1.0 --- > "baseValue" : 0.35 624c618 < "baseValue" : 10.0 --- > "baseValue" : 1.0 npcs\mission\mutantminer.npctype 8c8 < "levelVariance" : [3, 3], --- > "levelVariance" : [0, 0], 203c203 < "baseValue" : 1.0 --- > "baseValue" : 1.5 206c206 < "baseValue" : 1.0 --- > "baseValue" : 3.0 npcs\mission\survivor.npctype 6c6 < "levelVariance" : [0, 0], --- > "levelVariance" : [1, 1], 9,14d8 < "innateStatusEffects" : [ < { < "kind" : "Protection", < "amount" : 30.0 < } < ], 743c737 < "baseValue" : 400.0 --- > "baseValue" : 100.0 749c743 < "baseValue" : 2.0 --- > "baseValue" : 1.0 752c746 < "baseValue" : 10.0 --- > "baseValue" : 1.0 projectiles\explosions\lightblockexplosion\lightblockexplosion.config 85,86c85,86 < "backgroundRadius" : 2, < "explosiveDamageAmount" : 10, --- > "backgroundRadius" : 0, > "explosiveDamageAmount" : 8, projectiles\staves\racialstaves\glitch\glitchartifact\glitchtear.projectile 22c22 < "file" : "/projectiles/explosions/globeexplosions/yellowglobeexplosion/yellowglobeexplosion.config" --- > "file" : "/projectiles/explosions/glitchexplosion/glitchexplosion.config" projectiles\swoosh\hammer\steelchairswoosh\steelchairswoosh.projectile 15c15 < "knockback" : 100, --- > "knockback" : 50, projectiles\throwable\throwingspear\throwingspear.projectile 16c16 < "damageKind" : "spear", --- > "damageKind" : "bow", recipes\kitchen\tier2\mushroombread.recipe 4c4 < { "item" : "mushroom", "count" : 1 } --- > { "item" : "shroom", "count" : 1 } recipes\kitchen\tier2\mushroomquiche.recipe 4c4 < { "item" : "mushroom", "count" : 1 }, --- > { "item" : "shroom", "count" : 1 }, recipes\kitchen\tier2\mushroomrice.recipe 4c4 < { "item" : "mushroom", "count" : 1 }, --- > { "item" : "shroom", "count" : 1 }, species\hylotlnamegen.config 6c6 < [ { "mode" : "alts" }, "Fish", "Coral", "Sea", "Sand", "Salt", "Plant", "Peace", "Love", "Twerk", "Waltz", "Silk", "Lily", "Bro", "Sponge", "Water", "Wave", "Shell", "Care", "Fin", "Gill", "Pearl", "Shrimp", "Prawn", "Cod", "Scale", "Gulp", "Boat", "Star", "Calm", "Wind", "Smile" ], --- > [ { "mode" : "alts" }, "Fish", "Coral", "Sea", "Sand", "Salt", "Plant", "Peace", "Waltz", "Silk", "Lily", "Sponge", "Water", "Wave", "Shell", "Care", "Fin", "Gill", "Pearl", "Shrimp", "Prawn", "Cod", "Scale", "Gulp", "Boat", "Star", "Calm", "Wind", "Smile" ], stats\monster_primary.lua 25c25 < local knockbackFactor = (1 - status.stat("grit")) * (damage / status.resourceMax("health")) --- > local knockbackFactor = (1 - status.stat("grit")) * math.min(1.0, (damage / status.resourceMax("health"))) tiles\mods\plutonium.matmod 15,16c15 < "zLevel" : 0, < "radiantLight" : [0.15, 0, 0.15] --- > "zLevel" : 0 tiles\mods\solarium.matmod 15,16c15 < "zLevel" : 0, < "radiantLight" : [0.15, 0.15, 0] --- > "zLevel" : 0 tiles\mods\uranium.matmod 15,16c15 < "zLevel" : 0, < "radiantLight" : [0, 0.15, 0] --- > "zLevel" : 0 treasure\biome.treasurepools 1047a1048,1104 > "fleshChestTreasure" : [ > [1, { > "pool" : [ > {"weight" : 0.2, "pool" : "basicTreasure"}, > {"weight" : 0.8, "pool" : "fleshTreasure"} > ], > "poolRounds" : [ > [0.1, 1], > [0.5, 2], > [0.3, 3], > [0.1, 4] > ], > "allowDuplication" : false > }] > ], > > "fleshTreasure" : [ > [1, { > "pool" : [ > {"weight" : 1.0, "item" : ["fleshstrand", 10]}, > {"weight" : 0.05, "item" : "fleshchair-recipe"}, > {"weight" : 0.05, "item" : "fleshchest-recipe"}, > {"weight" : 0.05, "item" : "fleshdoor-recipe"}, > {"weight" : 0.05, "item" : "fleshtable-recipe"} > ] > }] > ], > > "cellChestTreasure" : [ > [1, { > "pool" : [ > {"weight" : 0.2, "pool" : "basicTreasure"}, > {"weight" : 0.8, "pool" : "cellTreasure"} > ], > "poolRounds" : [ > [0.1, 1], > [0.5, 2], > [0.3, 3], > [0.1, 4] > ], > "allowDuplication" : false > }] > ], > > "cellTreasure" : [ > [1, { > "pool" : [ > {"weight" : 1.0, "item" : ["cellmatter", 10]}, > {"weight" : 0.05, "item" : "cellchair-recipe"}, > {"weight" : 0.05, "item" : "celltable-recipe"}, > {"weight" : 0.05, "item" : "celldoor-recipe"}, > {"weight" : 0.05, "item" : "celllamp-recipe"}, > {"weight" : 0.05, "item" : "cellchest-recipe"} > ] > }] > ], > 1089,1105d1145 < "cellTreasure" : [ < [1, { < "pool" : [ < {"weight" : 0.05, "item" : "cellchair-recipe"}, < {"weight" : 0.05, "item" : "celltable-recipe"}, < {"weight" : 0.05, "item" : "celldoor-recipe"}, < {"weight" : 0.05, "item" : "celllamp-recipe"}, < {"weight" : 0.05, "item" : "cellchest-recipe"} < ], < "poolRounds" : [ < [0.5, 1], < [0.5, 2] < ], < "allowDuplication" : false < }] < ], < 1115,1130d1154 < ], < "poolRounds" : [ < [0.5, 1], < [0.5, 2] < ], < "allowDuplication" : false < }] < ], < < "fleshTreasure" : [ < [1, { < "pool" : [ < {"weight" : 0.05, "item" : "fleshchair-recipe"}, < {"weight" : 0.05, "item" : "fleshchest-recipe"}, < {"weight" : 0.05, "item" : "fleshdoor-recipe"}, < {"weight" : 0.05, "item" : "fleshtable-recipe"} treasure\common.treasurepools 2c2 < // blank treasure pool --- > // blank treasure pool 5,14c5 < "poolRounds" : [ < [0.00, 1], < [0.00, 2], < [0.00, 3], < [0.00, 4], < [0.00, 5] < ], < "pool" : [ < {"weight" : 0.0, "pool" : "basicTreasure"} < ] --- > "fill" : [ ] 16c7,8 < ], --- > ], > 36,37c28,31 < {"weight" : 0.45, "pool" : "chestMoney"}, < {"weight" : 0.1, "pool" : "ore"}, --- > {"weight" : 0.35, "pool" : "chestMoney"}, > {"weight" : 0.15, "pool" : "healingItem"}, > {"weight" : 0.15, "pool" : "ore"}, > {"weight" : 0.1, "pool" : "weapon"}, 39,46c33,37 < {"weight" : 0.1, "pool" : "healingItem"}, < {"weight" : 0.1, "pool" : "fuel"}, < {"weight" : 0.05, "pool" : "weapon"}, < {"weight" : 0.03, "pool" : "tool"}, < {"weight" : 0.03, "pool" : "seed"}, < {"weight" : 0.02, "pool" : "shield"}, < {"weight" : 0.01, "pool" : "costume"}, < {"weight" : 0.01, "pool" : "instrument"} --- > {"weight" : 0.05, "pool" : "seed"}, > {"weight" : 0.04, "pool" : "tool"}, > {"weight" : 0.04, "pool" : "shield"}, > {"weight" : 0.015, "pool" : "instrument"}, > {"weight" : 0.005, "pool" : "costume"} 121,130d111 < "fuel" : [ < //TODO: add tiers < [0, { < "poolRounds" : [[0.5, 1], [0.3, 2], [0.1, 3], [0.1, 4]], < "pool" : [ < {"weight" : 1.0, "item" : [ "coalore", 2]} < ] < }] < ], < 132,133c113 < //TODO: fix and add tiers < [0, { --- > [1, { 137,138c117 < {"weight" : 0.3, "item" : [ "ironore", 4]}, < {"weight" : 0.1, "item" : [ "silverore", 4]} --- > {"weight" : 0.4, "item" : [ "ironore", 4]} 143a123 > {"weight" : 0.3, "item" : [ "copperore", 4]}, 145,146c125,126 < {"weight" : 0.3, "item" : [ "silverore", 4]}, < {"weight" : 0.2, "item" : [ "goldore", 4]} --- > {"weight" : 0.1, "item" : [ "silverore", 4]}, > {"weight" : 0.1, "item" : [ "goldore", 4]} 152c132 < {"weight" : 0.5, "item" : [ "goldore", 4]}, --- > {"weight" : 0.1, "item" : [ "ironore", 4]}, 153a134,136 > {"weight" : 0.3, "item" : [ "titaniumore", 4]}, > {"weight" : 0.1, "item" : [ "silverore", 4]}, > {"weight" : 0.1, "item" : [ "goldore", 4]}, 155a139,166 > }], > [4, { > "poolRounds" : [[0.85, 1], [0.1, 2], [0.05, 3]], > "pool" : [ > {"weight" : 0.2, "item" : [ "platinumore", 4]}, > {"weight" : 0.4, "item" : [ "titaniumore", 4]}, > {"weight" : 0.3, "item" : [ "uraniumore", 4]}, > {"weight" : 0.1, "item" : [ "diamond", 2]} > ] > }], > [5, { > "poolRounds" : [[0.85, 1], [0.1, 2], [0.05, 3]], > "pool" : [ > {"weight" : 0.3, "item" : [ "violiumore", 4]}, > {"weight" : 0.3, "item" : [ "aegisaltore", 4]}, > {"weight" : 0.3, "item" : [ "rubiumore", 4]}, > {"weight" : 0.1, "item" : [ "diamond", 3]} > ] > }], > [6, { > "poolRounds" : [[0.85, 1], [0.1, 2], [0.05, 3]], > "pool" : [ > {"weight" : 0.25, "item" : [ "violiumore", 4]}, > {"weight" : 0.25, "item" : [ "aegisaltore", 4]}, > {"weight" : 0.25, "item" : [ "rubiumore", 4]}, > {"weight" : 0.20, "item" : [ "solariumore", 4]}, > {"weight" : 0.05, "item" : [ "diamond", 4]} > ] 275c286 < [4, { --- > [3, { treasure\default.treasurechests 249a250,265 > "cellChest" : [ > { > "containers" : [ "cellchest" ], > "treasurePool" : "cellChestTreasure", > "minimumLevel" : 0 > } > ], > > "fleshChest" : [ > { > "containers" : [ "fleshchest" ], > "treasurePool" : "fleshChestTreasure", > "minimumLevel" : 0 > } > ], > 288,294d303 < "cellChest" : [ < { < "containers" : [ "cellchest" ], < "treasurePool" : "cellTreasure", < "minimumLevel" : 0 < } < ], 416,423d424 < "minimumLevel" : 0 < } < ], < < "fleshChest" : [ < { < "containers" : [ "fleshchest" ], < "treasurePool" : "fleshTreasure", treasure\dungeon.treasurepools 153a154 > {"weight" : 0.2, "pool" : "ore"}, 158,160c159 < {"weight" : 0.15, "item" : [ "torch", 5]}, < {"weight" : 0.1, "pool" : "ore"}, < {"weight" : 0.1, "pool" : "fuel"}, --- > {"weight" : 0.1, "item" : [ "torch", 5]},