FILES ----- celestial.config dungeon_worlds.config rendering.config terrestrial_worlds.config universe_server.config versioning.config ai\portraits\apexportrait.png ai\portraits\avianportrait.png ai\portraits\default.frames ai\portraits\floranportrait.png ai\portraits\glitchportrait.png ai\portraits\humanportrait.png ai\portraits\hylotlportrait.png ai\portraits\novakidportrait.png [NEW] animations\shards\tentaclegooshard.animation [NEW] animations\shards\tentaclegooshard.png [NEW] animations\shards\tentacleshard.animation [NEW] animations\shards\tentacleshard.png [NEW] behaviors\monsters\boss\dragonboss\dragonaim.behavior behaviors\monsters\boss\dragonboss\dragonboss.behavior behaviors\monsters\boss\dragonboss\dragonbreath.behavior behaviors\monsters\mission\cultistballista.behavior behaviors\monsters\mission\helicultist.behavior behaviors\npc\combat\meleeapproach.behavior behaviors\npc\unique\cultistinvader.behavior behaviors\sequences\glitchmission\baronstart.behavior biomes\surface\tentacles.biome damage\axe.damage damage\broadsword.damage damage\dagger.damage damage\electricaxe.damage [NEW] damage\electricbow.damage damage\electricbroadsword.damage damage\electricdagger.damage damage\electrichammer.damage damage\electricshortsword.damage damage\electricspear.damage damage\fireaxe.damage [NEW] damage\firebow.damage damage\firebroadsword.damage damage\firedagger.damage damage\firehammer.damage damage\fireshortsword.damage damage\firespear.damage damage\fist.damage [NEW] damage\fiststrong.damage damage\hammer.damage damage\iceaxe.damage [NEW] damage\icebow.damage damage\icebroadsword.damage damage\icedagger.damage damage\icehammer.damage damage\iceshortsword.damage damage\icespear.damage damage\lash.damage damage\poison.damage damage\poisonaxe.damage [NEW] damage\poisonbow.damage damage\poisonbroadsword.damage [NEW] damage\poisonbullet.damage damage\poisondagger.damage damage\poisonhammer.damage [NEW] damage\poisonlash.damage damage\poisonshortsword.damage damage\poisonspear.damage damage\shortsword.damage damage\slash.damage damage\spear.damage [NEW] dungeons\apex\apexcamp\apexcamp.dungeon [NEW] dungeons\apex\apexcamp\apexcampbunker1.json [NEW] dungeons\apex\apexcamp\apexcampendleft1.json [NEW] dungeons\apex\apexcamp\apexcampendright1.json [NEW] dungeons\apex\apexcamp\apexcampflat1.json [NEW] dungeons\apex\apexcamp\apexcampobservatory1.json [NEW] dungeons\apex\apexcamp\apexcampobservatory2.json [NEW] dungeons\apex\apexcamp\apexcamptemplate.json dungeons\apex\apexcity\apexcityhouse5.json dungeons\apex\apexcity\apexcitymansion2.json dungeons\apex\apexcity\apexcitystore1.json dungeons\missions\glitchmissions\glitchmission1.json dungeons\other\naturalcave\bossroom-objects.png dungeons\other\naturalcave\bossroom.png dungeons\other\naturalcave\naturalcave.dungeon interface\chests\chest1.config interface\chests\chest12.config interface\chests\chest16.config interface\chests\chest24.config interface\chests\chest32.config interface\chests\chest40.config interface\chests\chest48.config interface\chests\chest56.config interface\chests\chest60.config interface\chests\chest64.config interface\chests\chest9.config interface\easel\signstoregui.lua interface\fuel\fuel.config [NEW] interface\fuel\fuelshine.png interface\games\fossilgame\fossilgame.lua interface\games\fossilgame\generator.lua interface\keybindings\scrollmenu.png interface\keybindings\shine.png interface\objectcrafting\campfire.config interface\objectcrafting\campfire_body.png interface\objectcrafting\fossilstation.config [NEW] interface\objectcrafting\healingshine.png interface\objectcrafting\pethealing.config [NEW] interface\objectcrafting\pethealingbody.png interface\objectcrafting\refinery.config interface\objectcrafting\repairo.config [NEW] interface\objectcrafting\repairoshine.png interface\objectcrafting\repairo_body.png interface\optionsmenu\body_blank.png interface\optionsmenu\optionsmenu.config interface\quests\newquest\shine.png [NEW] interface\quests\newquest\shineshort.png interface\quests\questfailed\shine.png interface\quests\questlog\body.png interface\quests\questlog\completed.png interface\quests\questlog\completedover.png interface\quests\questlog\completedselected.png interface\quests\questlog\entry_bg.png interface\quests\questlog\entry_selected.png interface\quests\questlog\failed.png interface\quests\questlog\failedover.png interface\quests\questlog\failedselected.png interface\quests\questlog\footer.png interface\quests\questlog\header.png interface\quests\questlog\inprogress.png interface\quests\questlog\inprogressover.png interface\quests\questlog\inprogressselected.png interface\quests\questlog\shine.png interface\radiomessage\radiomessage.config interface\tabs\tabover.png interface\tabs\tabselected.png interface\tabs\tabselectedover.png interface\tooltips\armorbody.png interface\tooltips\statlistback.png interface\windowconfig\craftingfood.config interface\windowconfig\keybindingsmenu.config interface\windowconfig\newquestshort.config interface\windowconfig\questlog.config interface\windowconfig\teleportdialog.config items\active\effects\chain.lua items\active\effects\laserbeam.lua items\active\effects\lightning.lua items\active\effects\rope.lua items\active\unsorted\filledcapturepod\filledcapturepod.lua items\active\unsorted\partypopper\partypopper.lua items\active\weapons\fist\boxingglove.activeitem items\active\weapons\fist\combofinishers\powerpunch.combofinisher items\active\weapons\fist\combofinishers\snaproot.combofinisher items\active\weapons\melee\altabilities\broadsword\traildash\traildash.altability items\active\weapons\melee\pickaxe\energypickaxe.animation items\active\weapons\other\adaptablecrossbow\adaptableammo.altability items\active\weapons\other\adaptablecrossbow\adaptablecrossbow.activeitem items\active\weapons\other\adaptablecrossbow\adaptablecrossbow.frames items\active\weapons\other\adaptablecrossbow\adaptablecrossbow.png items\active\weapons\other\electricrailgun\electricrailgun.activeitem items\active\weapons\other\electricrailgun\electricrailgun.animation [NEW] items\active\weapons\other\evileye\evileye.activeitem [NEW] items\active\weapons\other\evileye\evileye.altability [NEW] items\active\weapons\other\evileye\evileye.lua [NEW] items\active\weapons\other\evileye\evileye.png items\active\weapons\other\exmachina\exmachina.activeitem items\active\weapons\other\gristlegun\gristlegun.activeitem items\active\weapons\other\magnorbs\magnorbs.animation items\active\weapons\other\soulseeker\soulseeker.activeitem [NEW] items\active\weapons\other\tentaclegun\tentacleend.png [NEW] items\active\weapons\other\tentaclegun\tentaclegun.activeitem [NEW] items\active\weapons\other\tentaclegun\tentaclegun.altability [NEW] items\active\weapons\other\tentaclegun\tentaclegun.lua [NEW] items\active\weapons\other\tentaclegun\tentaclegun.png [NEW] items\active\weapons\other\tentaclegun\tentaclesegment.png [NEW] items\active\weapons\other\tentaclegun\wormend.png [NEW] items\active\weapons\other\tentaclegun\wormgun.activeitem [NEW] items\active\weapons\other\tentaclegun\wormgun.png [NEW] items\active\weapons\other\tentaclegun\wormsegment.png items\active\weapons\protectorate\brokenprotectoratebroadsword.activeitem items\active\weapons\whip\energywhip.activeitem items\active\weapons\whip\ropewhip.activeitem items\active\weapons\whip\vinewhip.activeitem items\active\weapons\whip\whipcrack.lua items\active\weapons\whip\altabilities\energyorb.altability items\active\weapons\whip\altabilities\energyorb.lua [NEW] items\armors\backerhats\booniehat\booniehat.head [NEW] items\armors\backerhats\booniehat\head.png [NEW] items\armors\backerhats\booniehat\icons.png [NEW] items\armors\backerhats\booniehat\mask.png [NEW] items\armors\backerhats\rustyskul\head.png [NEW] items\armors\backerhats\rustyskul\icons.png [NEW] items\armors\backerhats\rustyskul\mask.png [NEW] items\armors\backerhats\rustyskul\rustyskul.head [NEW] items\armors\backerhats\soulguise\head.png [NEW] items\armors\backerhats\soulguise\icons.png [NEW] items\armors\backerhats\soulguise\mask.png [NEW] items\armors\backerhats\soulguise\soulguise.head [NEW] items\armors\backerhats\stargazer\head.png [NEW] items\armors\backerhats\stargazer\icons.png [NEW] items\armors\backerhats\stargazer\mask.png [NEW] items\armors\backerhats\stargazer\stargazer.head [NEW] items\armors\backerhats\tricornhat\head.png [NEW] items\armors\backerhats\tricornhat\icons.png [NEW] items\armors\backerhats\tricornhat\mask.png [NEW] items\armors\backerhats\tricornhat\tricornhat.head [NEW] items\armors\backerhats\uncathat\head.png [NEW] items\armors\backerhats\uncathat\icons.png [NEW] items\armors\backerhats\uncathat\mask.png [NEW] items\armors\backerhats\uncathat\uncathat.head items\armors\backitems\oxygentank\oxygentank.back items\buildscripts\abilities.lua items\buildscripts\weaponabilities.config items\guns\unsorted\test.lua items\materials\dermisblock.png items\materials\jellyblock.png monsters\monster.lua monsters\simplerangedattack.lua monsters\boss\dragonboss\dragonboss.animation monsters\boss\dragonboss\dragonboss.monstertype monsters\generated\swimming\attackstate.lua monsters\generated\swimming\fleestate.lua monsters\generated\swimming\flopstate.lua monsters\generated\swimming\wanderstate.lua monsters\ghosts\lumoth\lumoth.animation monsters\mission\ballista\ballista.animation monsters\mission\ballista\ballista.monstertype monsters\mission\kluexsentry\kluexsentry.png monsters\mission\kluextotem\kluextotem.monstertype monsters\mission\minidrone\minidrone.monstertype monsters\walkers\adultpoptop\motherpoptop.monstertype npcs\mission\castlearcher.npctype npcs\story\baron.npctype npcs\story\lanafight.npctype npcs\story\nurufight.npctype [NEW] objects\apex\apextent\apextent.frames [NEW] objects\apex\apextent\apextent.object [NEW] objects\apex\apextent\apextent.png [NEW] objects\apex\apextent\apextenticon.png [NEW] objects\apex\apextent\apextentlit.png [NEW] objects\apex\sandbags\sandbags.frames [NEW] objects\apex\sandbags\sandbags.object [NEW] objects\apex\sandbags\sandbags.png [NEW] objects\apex\sandbags\sandbagsicon.png objects\biome\heck\heckbush1\heckbush1.object objects\biome\heck\heckbush10\heckbush10.object objects\biome\heck\heckbush2\heckbush2.object objects\biome\heck\heckbush3\heckbush3.object objects\biome\heck\heckbush4\heckbush4.object objects\biome\heck\heckbush5\heckbush5.object objects\biome\heck\heckbush6\heckbush6.object objects\biome\heck\heckbush7\heckbush7.object objects\biome\heck\heckbush8\heckbush8.object objects\biome\heck\heckbush9\heckbush9.object objects\biome\jungle\junglebush1\junglebush1.object objects\biome\jungle\junglebush10\junglebush10.object objects\biome\jungle\junglebush11\junglebush11.object objects\biome\jungle\junglebush12\junglebush12.object objects\biome\jungle\junglebush13\junglebush13.object objects\biome\jungle\junglebush14\junglebush14.object objects\biome\jungle\junglebush15\junglebush15.object objects\biome\jungle\junglebush16\junglebush16.object objects\biome\jungle\junglebush17\junglebush17.object objects\biome\jungle\junglebush18\junglebush18.object objects\biome\jungle\junglebush2\junglebush2.object objects\biome\jungle\junglebush3\junglebush3.object objects\biome\jungle\junglebush4\junglebush4.object objects\biome\jungle\junglebush5\junglebush5.object objects\biome\jungle\junglebush6\junglebush6.object objects\biome\jungle\junglebush7\junglebush7.object objects\biome\jungle\junglebush8\junglebush8.object objects\biome\jungle\junglebush9\junglebush9.object objects\biome\scorchedcity\bombsheltershelf1\bombsheltershelf1.object objects\biome\scorchedcity\dumpster\dumpster.object objects\biome\scorchedcity\lasertripwire\lasertripwire.object objects\biome\smashablerocks\copperrock\copperrock.object objects\biome\smashablerocks\copperrocksmall\copperrocksmall.object objects\biome\smashablerocks\diamondrock\diamondrock.object objects\biome\smashablerocks\diamondrocksmall\diamondrocksmall.object objects\biome\smashablerocks\goldrock\goldrock.object objects\biome\smashablerocks\goldrocksmall\goldrocksmall.object objects\biome\smashablerocks\platinumrock\platinumrock.object objects\biome\smashablerocks\platinumrocksmall\platinumrocksmall.object objects\biome\smashablerocks\silverrock\silverrock.object objects\biome\smashablerocks\silverrocksmall\silverrocksmall.object objects\biome\tentacle\tentacleegg\tentacleegg.object [NEW] objects\biome\tentacle\tentaclepart1\tentaclepart1.frames [NEW] objects\biome\tentacle\tentaclepart1\tentaclepart1.object [NEW] objects\biome\tentacle\tentaclepart1\tentaclepart1.png [NEW] objects\biome\tentacle\tentaclepart1\tentaclepart1ceiling.frames [NEW] objects\biome\tentacle\tentaclepart1\tentaclepart1ceiling.png [NEW] objects\biome\tentacle\tentaclepart1\tentaclepart1icon.png [NEW] objects\biome\tentacle\tentaclepart1\tentaclepart1left.frames [NEW] objects\biome\tentacle\tentaclepart1\tentaclepart1left.png [NEW] objects\biome\tentacle\tentaclepart1\tentaclepart1right.frames [NEW] objects\biome\tentacle\tentaclepart1\tentaclepart1right.png [NEW] objects\biome\tentacle\tentaclepart2\tentaclepart2.frames [NEW] objects\biome\tentacle\tentaclepart2\tentaclepart2.object [NEW] objects\biome\tentacle\tentaclepart2\tentaclepart2.png [NEW] objects\biome\tentacle\tentaclepart2\tentaclepart2ceiling.frames [NEW] objects\biome\tentacle\tentaclepart2\tentaclepart2ceiling.png [NEW] objects\biome\tentacle\tentaclepart2\tentaclepart2icon.png [NEW] objects\biome\tentacle\tentaclepart2\tentaclepart2left.frames [NEW] objects\biome\tentacle\tentaclepart2\tentaclepart2left.png [NEW] objects\biome\tentacle\tentaclepart2\tentaclepart2right.frames [NEW] objects\biome\tentacle\tentaclepart2\tentaclepart2right.png [NEW] objects\biome\tentacle\tentaclepart3\tentaclepart3.frames [NEW] objects\biome\tentacle\tentaclepart3\tentaclepart3.object [NEW] objects\biome\tentacle\tentaclepart3\tentaclepart3.png [NEW] objects\biome\tentacle\tentaclepart3\tentaclepart3ceiling.frames [NEW] objects\biome\tentacle\tentaclepart3\tentaclepart3ceiling.png [NEW] objects\biome\tentacle\tentaclepart3\tentaclepart3icon.png [NEW] objects\biome\tentacle\tentaclepart3\tentaclepart3left.frames [NEW] objects\biome\tentacle\tentaclepart3\tentaclepart3left.png [NEW] objects\biome\tentacle\tentaclepart3\tentaclepart3right.frames [NEW] objects\biome\tentacle\tentaclepart3\tentaclepart3right.png objects\biome\tentacle\tentaclepopbig\tentaclepopbig.object objects\biome\tentacle\tentaclepopmed\tentaclepopmed.object objects\biome\tentacle\tentaclepopsmall\tentaclepopsmall.object [NEW] objects\biome\tentacle\tentaclespawner1\tentaclespawner1.frames [NEW] objects\biome\tentacle\tentaclespawner1\tentaclespawner1.object [NEW] objects\biome\tentacle\tentaclespawner1\tentaclespawner1.png [NEW] objects\biome\tentacle\tentaclespawner1\tentaclespawner1ceiling.frames [NEW] objects\biome\tentacle\tentaclespawner1\tentaclespawner1ceiling.png [NEW] objects\biome\tentacle\tentaclespawner1\tentaclespawner1icon.png [NEW] objects\biome\tentacle\tentaclespawner1\tentaclespawner1left.frames [NEW] objects\biome\tentacle\tentaclespawner1\tentaclespawner1left.png [NEW] objects\biome\tentacle\tentaclespawner1\tentaclespawner1right.frames [NEW] objects\biome\tentacle\tentaclespawner1\tentaclespawner1right.png objects\biome\tentacle\tentaclespike\tentaclespike.object objects\crafting\capturestation\capturestation.object objects\crafting\fossilstation\fossilstation.object objects\crafting\pethealingstation\pethealingstation.object objects\crafting\pixelcompressor\pixelcompressor.object objects\crafting\refinery\refinery.object objects\crafting\skyrail\skyrailtable.object objects\crafting\upgradeablecraftingobjects\inventorstable\inventorstable.object objects\crafting\wiringstation\wiringstation.object objects\fossils\displaystands\fossildisplay.lua [NEW] objects\generic\backerstatue\benjaminstatue.object [NEW] objects\generic\backerstatue\benjaminstatue.png [NEW] objects\generic\backerstatue\benjaminstatueicon.png [NEW] objects\generic\backerstatue\cameronstatue.object [NEW] objects\generic\backerstatue\cameronstatue.png [NEW] objects\generic\backerstatue\cameronstatueicon.png [NEW] objects\generic\backerstatue\default.frames [NEW] objects\generic\backerstatue\memorialstatue.object [NEW] objects\generic\backerstatue\memorialstatue.png [NEW] objects\generic\backerstatue\memorialstatueicon.png [NEW] objects\generic\backerstatue\oliverstatue.object [NEW] objects\generic\backerstatue\oliverstatue.png [NEW] objects\generic\backerstatue\oliverstatueicon.png objects\outpost\customsign\customsign.lua objects\protectorate\objects\protectorateinfobooth\protectorateinfobooth.object [NEW] objects\ship\boosters\boosterflame.animation [NEW] objects\ship\boosters\boosterflame.lua [NEW] objects\ship\boosters\bigboosterflame\bigboosterflame.object [NEW] objects\ship\boosters\bigboosterflame\bigboosterflame.png [NEW] objects\ship\boosters\bigboosterflame\bigboosterflameavian.object [NEW] objects\ship\boosters\bigboosterflame\bigboosterflameglitch.object [NEW] objects\ship\boosters\bigboosterflame\bigboosterflamehuman.object [NEW] objects\ship\boosters\bigboosterflame\default.frames [NEW] objects\ship\boosters\bigboosterflame\torchicon.png [NEW] objects\ship\boosters\boosterflame\boosterflame.object [NEW] objects\ship\boosters\boosterflame\boosterflame.png [NEW] objects\ship\boosters\boosterflame\boosterflameapex.object [NEW] objects\ship\boosters\boosterflame\boosterflameapex2.object [NEW] objects\ship\boosters\boosterflame\boosterflameapex3.object [NEW] objects\ship\boosters\boosterflame\boosterflamehuman2.object [NEW] objects\ship\boosters\boosterflame\boosterflamehuman3.object [NEW] objects\ship\boosters\boosterflame\boosterflamenovakid.object [NEW] objects\ship\boosters\boosterflame\default.frames [NEW] objects\ship\boosters\boosterflame\torchicon.png [NEW] objects\ship\boosters\boosterflamehuman\boosterflamehuman.object [NEW] objects\ship\boosters\boosterflamehuman\boosterflamehuman.png [NEW] objects\ship\boosters\boosterflamehuman\boostericon.png [NEW] objects\ship\boosters\boosterflamehuman\default.frames [NEW] objects\ship\boosters\smallboosterflame\default.frames [NEW] objects\ship\boosters\smallboosterflame\smallboosterflame.object [NEW] objects\ship\boosters\smallboosterflame\smallboosterflame.png [NEW] objects\ship\boosters\smallboosterflame\smallboosterflameglitch.object [NEW] objects\ship\boosters\smallboosterflame\smallboosterflamehuman2.object [NEW] objects\ship\boosters\smallboosterflame\torchicon.png objects\spawner\monsterspawner.lua objects\spawner\monsterspawner.object objects\spawner\colonydeed\colonydeed.lua objects\traps\wallb\wallb.object objects\wired\door\door.lua objects\wired\forcepad\jumppad.object objects\wired\landmine\landmine.object objects\wired\lightsensor\lightsensor.object objects\wired\liquidsensor\liquidsensor.object objects\wired\logic\and.object objects\wired\logic\bulb.object objects\wired\logic\countdowntimer.object objects\wired\logic\delay.object objects\wired\logic\dlatch.object objects\wired\logic\not.object objects\wired\logic\or.object objects\wired\logic\xor.object [NEW] particles\electricalburn.particle [NEW] particles\fireember.particle [NEW] particles\teslabolt.particle [NEW] particles\shards\tentaclegooshard.particle [NEW] particles\shards\tentacleshard.particle projectiles\activeitems\boomerang\boomerangprojectile.lua projectiles\activeitems\whip\whipcrackpoison.projectile projectiles\activeitems\whip\whipshock.projectile projectiles\guns\arrows\aegisaltarrow\aegisaltarrow.projectile projectiles\guns\arrows\chargedaegisaltarrow\chargedaegisaltarrow.projectile projectiles\guns\arrows\chargedarrow\chargedarrow.projectile projectiles\guns\arrows\chargedflamearrow\chargedflamearrow.projectile projectiles\guns\arrows\chargedfrozenflamearrow\chargedfrozenflamearrow.projectile projectiles\guns\arrows\chargedheartarrow\chargedheartarrow.projectile projectiles\guns\arrows\chargedicearrow\chargedicearrow.projectile projectiles\guns\arrows\chargedironarrow\chargedironarrow.projectile projectiles\guns\arrows\chargedlightarrow\chargedlightarrow.projectile projectiles\guns\arrows\chargedpoisonarrow\chargedpoisonarrow.projectile projectiles\guns\arrows\chargedpurplearrow\chargedpurplearrow.projectile [NEW] projectiles\guns\arrows\electricbolt\electricbolt.frames [NEW] projectiles\guns\arrows\electricbolt\electricbolt.png [NEW] projectiles\guns\arrows\electricbolt\electricbolt.projectile [NEW] projectiles\guns\arrows\electricbolt\icon.png [NEW] projectiles\guns\arrows\explosivebolt\explosivebolt.frames [NEW] projectiles\guns\arrows\explosivebolt\explosivebolt.png [NEW] projectiles\guns\arrows\explosivebolt\explosivebolt.projectile [NEW] projectiles\guns\arrows\explosivebolt\icon.png projectiles\guns\arrows\flamearrow\flamearrow.projectile projectiles\guns\arrows\flamebolt\flamebolt.projectile projectiles\guns\arrows\frozenflamearrow\frozenflamearrow.projectile projectiles\guns\arrows\heartarrow\heartarrow.projectile projectiles\guns\arrows\heckarrow\heckarrow.projectile projectiles\guns\arrows\icearrow\icearrow.projectile projectiles\guns\arrows\icebolt\icebolt.projectile projectiles\guns\arrows\ironarrow\ironarrow.projectile projectiles\guns\arrows\lightarrow\lightarrow.projectile projectiles\guns\arrows\poisonarrow\poisonarrow.projectile projectiles\guns\arrows\poisonbolt\poisonbolt.projectile projectiles\guns\arrows\purplearrow\purplearrow.projectile projectiles\guns\arrows\woodenarrow\woodenarrow.projectile projectiles\guns\arrows\woodenbolt\woodenbolt.projectile [NEW] projectiles\guns\tentaclefist\invisibletentaclefist.frames [NEW] projectiles\guns\tentaclefist\invisibletentaclefist.png [NEW] projectiles\guns\tentaclefist\invisibletentaclefist.projectile [NEW] projectiles\guns\tentaclefist\tentaclefist.frames [NEW] projectiles\guns\tentaclefist\tentaclefist.lua [NEW] projectiles\guns\tentaclefist\tentaclefist.png [NEW] projectiles\guns\tentaclefist\tentaclefist.projectile [NEW] projectiles\npcs\dragonprojectile\dragonblockbuster.projectile projectiles\npcs\dragonprojectile\dragonprojectile.projectile [NEW] projectiles\npcs\eyeball\evileyeball.projectile [NEW] rendering\opengl20.config scripts\behavior.lua scripts\poly.lua scripts\sensors.lua scripts\util.lua scripts\actions\movement.lua scripts\behavior\bgroup.lua scripts\companions\petspawner.lua scripts\companions\player.lua scripts\companions\recruitspawner.lua scripts\quest\manager.lua scripts\quest\messaging.lua scripts\quest\player.lua scripts\questgen\generator.lua scripts\questgen\planner.lua scripts\questgen\plannertests.lua [NEW] sfx\gun\gristlegun1.ogg [NEW] sfx\gun\gristlegun2.ogg [NEW] sfx\gun\gristlegun3.ogg [NEW] sfx\gun\gristlegun4.ogg [NEW] sfx\melee\blunt_hit_metal1.ogg [NEW] sfx\melee\blunt_hit_metal2.ogg [NEW] sfx\melee\blunt_hit_metal3.ogg [NEW] sfx\melee\blunt_hit_metal4.ogg [NEW] sfx\melee\blunt_hit_metal5.ogg [NEW] sfx\melee\blunt_hit_metal6.ogg [NEW] sfx\melee\dagger_hit_metal1.ogg [NEW] sfx\melee\dagger_hit_metal2.ogg [NEW] sfx\melee\dagger_hit_metal3.ogg [NEW] sfx\melee\dagger_hit_metal4.ogg [NEW] sfx\melee\dagger_hit_metal5.ogg [NEW] sfx\melee\dagger_hit_metal6.ogg [NEW] sfx\melee\fist_hit_metal1.ogg [NEW] sfx\melee\fist_hit_metal2.ogg [NEW] sfx\melee\fist_hit_metal3.ogg [NEW] sfx\melee\fist_hit_metal4.ogg [NEW] sfx\melee\fist_hit_metal5.ogg [NEW] sfx\melee\fist_hit_metal6.ogg [NEW] sfx\melee\fist_hit_organic1.ogg [NEW] sfx\melee\fist_hit_organic2.ogg [NEW] sfx\melee\fist_hit_wood1.ogg [NEW] sfx\melee\fist_hit_wood2.ogg [NEW] sfx\melee\fist_hit_wood3.ogg [NEW] sfx\melee\fist_kill_organic.ogg [NEW] sfx\melee\fist_kill_wood1.ogg [NEW] sfx\melee\fist_kill_wood2.ogg [NEW] sfx\melee\fist_stronghit_metal1.ogg [NEW] sfx\melee\fist_stronghit_metal2.ogg [NEW] sfx\melee\fist_stronghit_metal3.ogg [NEW] sfx\melee\fist_stronghit_metal4.ogg [NEW] sfx\melee\fist_stronghit_metal5.ogg [NEW] sfx\melee\fist_stronghit_metal6.ogg [NEW] sfx\melee\fist_stronghit_wood1.ogg [NEW] sfx\melee\fist_stronghit_wood2.ogg [NEW] sfx\melee\fist_stronghit_wood3.ogg [NEW] sfx\melee\soulseeker_swing.ogg [NEW] sfx\melee\sword_hit_metal1.ogg [NEW] sfx\melee\sword_hit_metal2.ogg [NEW] sfx\melee\sword_hit_metal3.ogg [NEW] sfx\melee\sword_hit_metal4.ogg [NEW] sfx\melee\sword_hit_metal5.ogg [NEW] sfx\melee\sword_hit_metal6.ogg [NEW] sfx\tools\energypickaxe_hit1.ogg [NEW] sfx\tools\energypickaxe_hit2.ogg [NEW] sfx\tools\energypickaxe_hit3.ogg [NEW] sfx\tools\energypickaxe_hit4.ogg [NEW] sfx\tools\energypickaxe_hit5.ogg [NEW] sfx\tools\energypickaxe_hit6.ogg [NEW] sfx\tools\energypickaxe_hit7.ogg [NEW] sfx\tools\energypickaxe_hit8.ogg [NEW] sfx\tools\energypickaxe_idle.ogg [NEW] sfx\tools\energypickaxe_start.ogg [NEW] sfx\tools\energypickaxe_stop1.ogg [NEW] sfx\tools\energypickaxe_stop2.ogg spawntypes\uniques.spawntypes stagehands\coordinator.lua stagehands\mission\glitchmissionmanager.lua stagehands\mission\glitchmissionmanager.stagehand stats\effects\levitation\levitation.lua stats\effects\paralysis\paralysis.lua tech\skyrail\skyrail.lua tilesets\packed\objects-by-category\furniture.json tilesets\packed\objects-by-category\other.json tilesets\packed\objects-by-colonytag\apex.json tilesets\packed\objects-by-colonytag\explorer.json tilesets\packed\objects-by-colonytag\human.json tilesets\packed\objects-by-colonytag\nature.json tilesets\packed\objects-by-race\generic.json tilesets\packed\objects-by-type\loungeable.json treasure\dungeon.treasurepools treasure\hunting.treasurepools treasure\monster.treasurepools treasure\missions\apexmission1.treasurepools [NEW] versioning\worldmetadata_18_19.lua DIFFS ----- celestial.config 11c11 < "systemProbability" : 0.01, --- > "systemProbability" : 0.003, 13,14c13,14 < "planetOrbitalLevels" : 12, < "satelliteOrbitalLevels" : 6, --- > "planetOrbitalLevels" : 8, > "satelliteOrbitalLevels" : 4, 19,20c19,20 < "constellationProbability" : 0.8, < "constellationLineCountRange" : [4, 7], --- > "constellationProbability" : 1.5, > "constellationLineCountRange" : [3, 8], 22,23c22,23 < "minimumConstellationLineLength" : 5.0, < "maximumConstellationLineLength" : 25.0, --- > "minimumConstellationLineLength" : 1.0, > "maximumConstellationLineLength" : 20.0, 25c25 < "minimumConstellationLineCloseness" : 4, --- > "minimumConstellationLineCloseness" : 1, 30c30,50 < "maxRecentlyVisitedSystems" : 20, --- > "maxRecentlyVisitedSystems" : 30, > > "systemTypePerlin" : { > "type" : "perlin", > "octaves" : 1, > "frequency" : 0.01, > "amplitude" : 1.0, > "bias" : 0.0 > }, > "systemTypeBins" : [ > [-1.00, "White"], > [-0.35, ""], // rift > [-0.32, "Orange"], > [-0.13, ""], // rift > [-0.10, "Yellow"], > [0.000, ""], // rift > [0.015, "Blue"], > [0.160, ""], // rift > [0.180, "Red"], > [0.300, ""] // dark mysteries > ], 324c344 < "orbitRange" : [2, 10], --- > "orbitRange" : [2, 7], 327,330c347,351 < {"weight" : 0.8, "item" : "Tier2"}, < {"weight" : 0.12, "item" : "GasGiant"}, < {"weight" : 0.04, "item" : "Barren"}, < {"weight" : 0.04, "item" : "AsteroidField"} --- > {"weight" : 0.2, "item" : "Tier1"}, > {"weight" : 0.7, "item" : "Tier2"}, > {"weight" : 0.033, "item" : "GasGiant"}, > {"weight" : 0.033, "item" : "Barren"}, > {"weight" : 0.033, "item" : "AsteroidField"} 333,334c354 < {"weight" : 0.3, "item" : "Tier1"}, < {"weight" : 0.7, "item" : "Tier2"} --- > {"weight" : 1, "item" : "Moon"} 348c368 < "orbitRange" : [12, 12], --- > "orbitRange" : [8, 8], 394c414 < "orbitRange" : [2, 10], --- > "orbitRange" : [2, 7], 403,406c423 < {"weight" : 0.2, "item" : "Tier2"}, < {"weight" : 0.6, "item" : "Tier3"}, < {"weight" : 0.15, "item" : "Tier4"}, < {"weight" : 0.05, "item" : "Moon"} --- > {"weight" : 1, "item" : "Moon"} 420c437 < "orbitRange" : [12, 12], --- > "orbitRange" : [8, 8], 466c483 < "orbitRange" : [2, 10], --- > "orbitRange" : [2, 7], 475,478c492 < {"weight" : 0.2, "item" : "Tier3"}, < {"weight" : 0.6, "item" : "Tier4"}, < {"weight" : 0.15, "item" : "Tier5"}, < {"weight" : 0.05, "item" : "Moon"} --- > {"weight" : 1, "item" : "Moon"} 492c506 < "orbitRange" : [12, 12], --- > "orbitRange" : [8, 8], 502c516 < --- > 539c553 < "orbitRange" : [2, 10], --- > "orbitRange" : [2, 7], 548,551c562 < {"weight" : 0.2, "item" : "Tier4"}, < {"weight" : 0.6, "item" : "Tier5"}, < {"weight" : 0.15, "item" : "Tier6"}, < {"weight" : 0.05, "item" : "Moon"} --- > {"weight" : 1, "item" : "Moon"} 565c576 < "orbitRange" : [12, 12], --- > "orbitRange" : [8, 8], 611c622 < "orbitRange" : [2, 10], --- > "orbitRange" : [2, 7], 620,622c631 < {"weight" : 0.3, "item" : "Tier5"}, < {"weight" : 0.6, "item" : "Tier6"}, < {"weight" : 0.1, "item" : "Moon"} --- > {"weight" : 1, "item" : "Moon"} 636c645 < "orbitRange" : [12, 12], --- > "orbitRange" : [8, 8], 649c658 < "satelliteProbability" : 0.15, --- > "satelliteProbability" : 0.7, 675c684 < "satelliteProbability" : 0.15, --- > "satelliteProbability" : 0.7, 701c710 < "satelliteProbability" : 0.15, --- > "satelliteProbability" : 0.7, 727c736 < "satelliteProbability" : 0.15, --- > "satelliteProbability" : 0.7, 753c762 < "satelliteProbability" : 0.15, --- > "satelliteProbability" : 0.7, 779c788 < "satelliteProbability" : 0.15, --- > "satelliteProbability" : 0.7, 895,896c904,905 < }, < --- > }, > dungeon_worlds.config 156c156 < "musicTrack" : "/music/event-horizon.ogg" --- > "musicTrack" : "" rendering.config 2,3c2 < "chunkCacheTimeToLive" : 1000, < "chunkCacheTimeSmear" : 500, --- > "chunkCacheTimeout" : 1000, 5d3 < "autoCompressTimeout" : 500, 14,15c12 < "colorMultiplier" : 1.275, < "colorMapPixellation" : 0.0, --- > "lightMapMultiplier" : 1.275, terrestrial_worlds.config 263c263 < "secondaryRegions" : ["alien", "barren", "garden", "jungle", "moon", "scorchedcity", "volcanic"], --- > "secondaryRegions" : ["alien", "barren", "garden", "jungle", "scorchedcity", "volcanic"], 375c375 < "secondaryRegions" : [ "alien", "barren", "desert", "forest", "garden", "jungle", "midnight", "moon", "savannah", "scorchedcity", "snow", "tundra", "volcanic" ], --- > "secondaryRegions" : [ "alien", "barren", "desert", "forest", "garden", "jungle", "moon", "savannah", "scorchedcity", "snow", "tundra", "volcanic" ], 763c763 < "caveLiquidSeedDensityRange" : [20, 20], --- > "caveLiquidSeedDensityRange" : [10, 10], universe_server.config 9,11c9,10 < "updateMeasureWindow" : 10000, < "maxBehindUpdates" : 30, < "maxUpdateGroup" : 5, --- > "updateMeasureWindow" : 2.0, > "maxUpdateGroup" : 3, 38c37 < "range" : 50, --- > "range" : 500, versioning.config 3c3 < "WorldMetadata" : 18, --- > "WorldMetadata" : 19, ai\portraits\default.frames 3c3 < "size" : [54, 56], --- > "size" : [66, 68], behaviors\monsters\boss\dragonboss\dragonboss.behavior 7d6 < "/scripts/actions/entities.lua", 8a8 > "/scripts/actions/entities.lua", 11c11,15 < "/scripts/actions/status.lua" --- > "/scripts/actions/status.lua", > "/scripts/actions/sensor.lua", > "/scripts/behavior/bdata.lua", > "/scripts/actions/math.lua", > "/scripts/actions/projectiles.lua" 16,17c20,21 < 5, < 5 --- > 4.125, > 2.5 20,22c24,27 < 3, < -6 < ] --- > 3.75, > -3.5 > ], > "headAngleOffset": 0.7 66a72,79 > "title": "receivedNotification", > "type": "action", > "name": "receivedNotification", > "parameters": { > "type": "bossAggro" > } > }, > { 101c114 < "speed": 10 --- > "speed": 25 105c118 < "title": "Spiderboss", --- > "title": "parallel", 107,108c120,124 < "name": "dynamic", < "parameters": {}, --- > "name": "parallel", > "parameters": { > "fail": -1, > "success": -1 > }, 111c127 < "title": "receivedNotification", --- > "title": "controlApproachVelocity", 113c129 < "name": "receivedNotification", --- > "name": "controlApproachVelocity", 115c131,135 < "type": "bossAggro" --- > "velocity": [ > 0, > 0 > ], > "force": 50 119c139 < "title": "runner", --- > "title": "timer", 121,122c141,144 < "name": "runner", < "parameters": {} --- > "name": "timer", > "parameters": { > "time": 1 > } 124a147,152 > }, > { > "title": "runner", > "type": "action", > "name": "runner", > "parameters": {} 259c287 < "title": "Spiderboss", --- > "title": "selector", 261c289 < "name": "dynamic", --- > "name": "selector", 265c293 < "title": "Reset", --- > "title": "parallel", 267,268c295,299 < "name": "sequence", < "parameters": {}, --- > "name": "parallel", > "parameters": { > "fail": 1, > "success": -1 > }, 275c306 < "percentage": 0.66, --- > "percentage": 0, 280c311,1065 < "title": "setGlobalTag", --- > "title": "Spiderboss", > "type": "composite", > "name": "dynamic", > "parameters": {}, > "children": [ > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": 1, > "success": -1 > }, > "children": [ > { > "title": "wallCollision", > "type": "action", > "name": "wallCollision", > "parameters": { > "direction": 1 > } > }, > { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "boundBox", > "type": "action", > "name": "boundBox", > "parameters": {}, > "output": { > "min": "minBounds", > "max": "maxBounds" > } > }, > { > "title": "offsetPosition", > "type": "action", > "name": "offsetPosition", > "parameters": { > "offset": "", > "position": "self" > }, > "output": { > "position": "headPosition" > } > }, > { > "title": "setVector", > "type": "action", > "name": "setVector", > "parameters": { > "vector": "maxBounds" > }, > "output": { > "vector": "fireOffset" > } > }, > { > "title": "repeater", > "type": "decorator", > "name": "repeater", > "parameters": { > "maxLoops": -1, > "untilSuccess": true > }, > "child": { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "state": "attack", > "type": "attack" > } > }, > { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "breakVector", > "type": "action", > "name": "breakVector", > "parameters": { > "vector": "fireOffset" > }, > "output": { > "y": "fireY" > } > }, > { > "title": "breakVector", > "type": "action", > "name": "breakVector", > "parameters": { > "vector": "minBounds" > }, > "output": { > "y": "minY" > } > }, > { > "title": "greaterThan", > "type": "action", > "name": "greaterThan", > "parameters": { > "first": "fireY", > "second": "minY" > } > } > ] > }, > { > "title": "offsetPosition", > "type": "action", > "name": "offsetPosition", > "parameters": { > "offset": "fireOffset", > "position": "self" > }, > "output": { > "position": "firePosition" > } > }, > { > "title": "distance", > "type": "action", > "name": "distance", > "parameters": { > "from": "headPosition", > "to": "firePosition" > }, > "output": { > "vector": "aimVector" > } > }, > { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "vecMultiply", > "type": "action", > "name": "vecMultiply", > "parameters": { > "first": "aimVector", > "second": [ > "facingDirection", > 1 > ] > }, > "output": { > "vector": "facingVector" > } > }, > { > "title": "vecAngle", > "type": "action", > "name": "vecAngle", > "parameters": { > "vector": "facingVector" > }, > "output": { > "angle": "targetAngle" > } > }, > { > "title": "add", > "type": "action", > "name": "add", > "parameters": { > "addend": "", > "number": "targetAngle" > }, > "output": { > "result": "targetAngle" > } > } > ] > }, > { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "vecRotate", > "type": "action", > "name": "vecRotate", > "parameters": { > "vector": "", > "angle": "targetAngle" > }, > "output": { > "vector": "projectileOffset" > } > }, > { > "title": "vecAdd", > "type": "action", > "name": "vecAdd", > "parameters": { > "first": "projectileOffset", > "second": "" > }, > "output": { > "vector": "projectileOffset" > } > }, > { > "title": "vecMultiply", > "type": "action", > "name": "vecMultiply", > "parameters": { > "first": "projectileOffset", > "second": [ > "facingDirection", > 1 > ] > }, > "output": { > "vector": "projectileOffset" > } > } > ] > }, > { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "resetTransformationGroup", > "type": "action", > "name": "resetTransformationGroup", > "parameters": { > "transformationGroup": "head" > } > }, > { > "title": "rotateTransformationGroup", > "type": "action", > "name": "rotateTransformationGroup", > "parameters": { > "angle": "targetAngle", > "transformationGroup": "head", > "rotationCenter": "" > } > } > ] > }, > { > "title": "spawnProjectile", > "type": "action", > "name": "spawnProjectile", > "parameters": { > "aimVector": "facingVector", > "offset": "projectileOffset", > "position": "self", > "power": 2, > "projectileConfig": {}, > "projectileType": "dragonblockbuster", > "scalePower": true, > "sourceEntity": "self", > "trackSource": false > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 0.2 > } > }, > { > "title": "vecAdd", > "type": "action", > "name": "vecAdd", > "parameters": { > "first": "fireOffset", > "second": [ > 0, > -2 > ] > }, > "output": { > "vector": "fireOffset" > } > } > ] > } > } > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "state": "winddown", > "type": "attack" > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 0.5 > } > } > ] > } > ] > }, > { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "entityInSight", > "type": "action", > "name": "entityInSight", > "parameters": { > "entity": "target" > } > } > }, > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": -1, > "success": -1 > }, > "children": [ > { > "title": "controlApproachVelocity", > "type": "action", > "name": "controlApproachVelocity", > "parameters": { > "velocity": [ > 0, > 0 > ], > "force": 20 > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 0.5 > } > } > ] > }, > { > "title": "vecMultiply", > "type": "action", > "name": "vecMultiply", > "parameters": { > "first": "", > "second": [ > "facingDirection", > 1 > ] > }, > "output": { > "vector": "headRotationCenter" > } > }, > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": 1, > "success": -1 > }, > "children": [ > { > "title": "entityDirection", > "type": "action", > "name": "entityDirection", > "parameters": { > "entity": "self", > "target": "target", > "offset": "headRotationCenter" > }, > "output": { > "vector": "aimVector" > } > }, > { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "vecMultiply", > "type": "action", > "name": "vecMultiply", > "parameters": { > "first": "aimVector", > "second": [ > "facingDirection", > 1 > ] > }, > "output": { > "vector": "facingVector" > } > }, > { > "title": "vecAngle", > "type": "action", > "name": "vecAngle", > "parameters": { > "vector": "facingVector" > }, > "output": { > "angle": "targetAngle" > } > }, > { > "title": "add", > "type": "action", > "name": "add", > "parameters": { > "addend": "", > "number": "targetAngle" > }, > "output": { > "result": "targetAngle" > } > } > ] > }, > { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "vecRotate", > "type": "action", > "name": "vecRotate", > "parameters": { > "vector": "", > "angle": "targetAngle" > }, > "output": { > "vector": "projectileOffset" > } > }, > { > "title": "vecAdd", > "type": "action", > "name": "vecAdd", > "parameters": { > "first": "projectileOffset", > "second": "" > }, > "output": { > "vector": "projectileOffset" > } > }, > { > "title": "vecMultiply", > "type": "action", > "name": "vecMultiply", > "parameters": { > "first": "projectileOffset", > "second": [ > "facingDirection", > 1 > ] > }, > "output": { > "vector": "projectileOffset" > } > } > ] > }, > { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "resetTransformationGroup", > "type": "action", > "name": "resetTransformationGroup", > "parameters": { > "transformationGroup": "head" > } > }, > { > "title": "rotateTransformationGroup", > "type": "action", > "name": "rotateTransformationGroup", > "parameters": { > "angle": "targetAngle", > "transformationGroup": "head", > "rotationCenter": "" > } > } > ] > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "state": "attack", > "type": "attack" > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 0.5 > } > }, > { > "title": "repeater", > "type": "decorator", > "name": "repeater", > "parameters": { > "maxLoops": 3, > "untilSuccess": false > }, > "child": { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "spawnProjectile", > "type": "action", > "name": "spawnProjectile", > "parameters": { > "aimVector": "aimVector", > "offset": "projectileOffset", > "position": "self", > "power": 2, > "projectileConfig": {}, > "projectileType": "dragonblockbuster", > "scalePower": true, > "sourceEntity": "self", > "trackSource": false > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 0.3 > } > } > ] > } > }, > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "state": "winddown", > "type": "attack" > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 0.6 > } > } > ] > } > ] > } > ] > }, > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": -1, > "success": -1 > }, > "children": [ > { > "title": "cooldown", > "type": "decorator", > "name": "cooldown", > "parameters": { > "cooldown": 2, > "onFail": false, > "onSuccess": true > }, > "child": { > "title": "dragonboss-breath", > "type": "module", > "name": "dragonboss-breath", > "parameters": { > "headRotationCenter": "", > "projectileSpawnOffset": "" > } > } > }, > { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "entityInRange", > "type": "action", > "name": "entityInRange", > "parameters": { > "entity": "target", > "xRange": 20, > "position": "self" > } > } > }, > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": -1, > "success": 1 > }, > "children": [ > { > "title": "entityInRange", > "type": "action", > "name": "entityInRange", > "parameters": { > "entity": "target", > "xRange": 10, > "position": "self" > } > }, > { > "title": "flyToPosition", > "type": "action", > "name": "flyToPosition", > "parameters": { > "position": "hoverPosition", > "tolerance": 1, > "speed": 10 > } > } > ] > }, > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": 1, > "success": -1 > }, > "children": [ > { > "title": "controlApproachVelocity", > "type": "action", > "name": "controlApproachVelocity", > "parameters": { > "velocity": [ > 0, > 0 > ], > "force": 20 > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 0.5 > } > } > ] > } > ] > } > ] > }, > { > "title": "runner", > "type": "action", > "name": "runner", > "parameters": {} > } > ] > }, > { > "title": "runner", 282,286c1067,1068 < "name": "setGlobalTag", < "parameters": { < "type": "stage", < "tag": "stage1" < } --- > "name": "runner", > "parameters": {} 297,302c1079,1109 < "title": "resourcePercentage", < "type": "action", < "name": "resourcePercentage", < "parameters": { < "percentage": 0.33, < "resource": "health" --- > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "loadUniqueEntity", > "type": "action", > "name": "loadUniqueEntity", > "parameters": { > "uniqueId": "missionmanager" > }, > "output": { > "entity": "manager" > } > }, > { > "title": "sendEntityMessage", > "type": "action", > "name": "sendEntityMessage", > "parameters": { > "entity": "manager", > "message": "noxBeamout" > } > } > ] 306c1113 < "title": "setGlobalTag", --- > "title": "resetTransformationGroup", 308c1115 < "name": "setGlobalTag", --- > "name": "resetTransformationGroup", 310,311c1117 < "type": "stage", < "tag": "stage2" --- > "transformationGroup": "head" 313,321c1119 < } < ] < }, < { < "title": "Reset", < "type": "composite", < "name": "sequence", < "parameters": {}, < "children": [ --- > }, 323c1121 < "title": "resourcePercentage", --- > "title": "setAnimationState", 325c1123 < "name": "resourcePercentage", --- > "name": "setAnimationState", 327,328c1125,1126 < "percentage": 0, < "resource": "health" --- > "state": "idle", > "type": "attack" 332c1130 < "title": "setGlobalTag", --- > "title": "timer", 334c1132 < "name": "setGlobalTag", --- > "name": "timer", 336,337c1134 < "type": "stage", < "tag": "stage3" --- > "time": 4 339,347c1136 < } < ] < }, < { < "title": "Reset", < "type": "composite", < "name": "sequence", < "parameters": {}, < "children": [ --- > }, 349,354c1138,1174 < "title": "setGlobalTag", < "type": "action", < "name": "setGlobalTag", < "parameters": { < "type": "stage", < "tag": "dead" --- > "title": "coroutine", > "type": "decorator", > "name": "coroutine", > "parameters": {}, > "child": { > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "setAnimationState", > "type": "action", > "name": "setAnimationState", > "parameters": { > "state": "beamOut", > "type": "teleport" > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 0.4 > } > }, > { > "title": "setGlobalTag", > "type": "action", > "name": "setGlobalTag", > "parameters": { > "type": "stage", > "tag": "dead" > } > } > ] 362,365c1182 < "time": 1 < }, < "output": { < "ratio": "" --- > "time": 2 387c1204 < "title": "parallel", --- > "title": "Reset", 389,393c1206,1207 < "name": "parallel", < "parameters": { < "fail": 1, < "success": -1 < }, --- > "name": "sequence", > "parameters": {}, 396,410c1210 < "title": "inverter", < "type": "decorator", < "name": "inverter", < "parameters": {}, < "child": { < "title": "entityInSight", < "type": "action", < "name": "entityInSight", < "parameters": { < "entity": "target" < } < } < }, < { < "title": "controlApproachVelocity", --- > "title": "resourcePercentage", 412c1212 < "name": "controlApproachVelocity", --- > "name": "resourcePercentage", 414,418c1214,1215 < "velocity": [ < 0, < 0 < ], < "force": 20 --- > "percentage": 0.66, > "resource": "health" 422,424c1219,1221 < "title": "repeater", < "type": "decorator", < "name": "repeater", --- > "title": "setGlobalTag", > "type": "action", > "name": "setGlobalTag", 426,442c1223,1224 < "maxLoops": -1, < "untilSuccess": false < }, < "child": { < "title": "dragonboss-breath", < "type": "module", < "name": "dragonboss-breath", < "parameters": { < "headRotationCenter": [ < 5, < 5 < ], < "projectileSpawnOffset": [ < 3, < -6 < ] < } --- > "type": "stage", > "tag": "stage1" 448,468c1230,1251 < "title": "cooldown", < "type": "decorator", < "name": "cooldown", < "parameters": { < "cooldown": 3, < "onFail": false, < "onSuccess": true < }, < "child": { < "title": "dragonboss-breath", < "type": "module", < "name": "dragonboss-breath", < "parameters": { < "headRotationCenter": [ < 5, < 5 < ], < "projectileSpawnOffset": [ < 3, < -6 < ] --- > "title": "Reset", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "resourcePercentage", > "type": "action", > "name": "resourcePercentage", > "parameters": { > "percentage": 0.33, > "resource": "health" > } > }, > { > "title": "setGlobalTag", > "type": "action", > "name": "setGlobalTag", > "parameters": { > "type": "stage", > "tag": "stage2" > } 470c1253 < } --- > ] 479,491c1262,1267 < "title": "inverter", < "type": "decorator", < "name": "inverter", < "parameters": {}, < "child": { < "title": "entityInRange", < "type": "action", < "name": "entityInRange", < "parameters": { < "entity": "target", < "xRange": 15, < "position": "self" < } --- > "title": "resourcePercentage", > "type": "action", > "name": "resourcePercentage", > "parameters": { > "percentage": 0, > "resource": "health" 495,497c1271,1273 < "title": "parallel", < "type": "composite", < "name": "parallel", --- > "title": "setGlobalTag", > "type": "action", > "name": "setGlobalTag", 499,523c1275,1277 < "fail": -1, < "success": 1 < }, < "children": [ < { < "title": "entityInRange", < "type": "action", < "name": "entityInRange", < "parameters": { < "entity": "target", < "xRange": 10, < "position": "self" < } < }, < { < "title": "flyToPosition", < "type": "action", < "name": "flyToPosition", < "parameters": { < "position": "hoverPosition", < "tolerance": 1, < "speed": 10 < } < } < ] --- > "type": "stage", > "tag": "stage3" > } 525a1280,1285 > }, > { > "title": "runner", > "type": "action", > "name": "runner", > "parameters": {} 528,533d1287 < }, < { < "title": "runner", < "type": "action", < "name": "runner", < "parameters": {} behaviors\monsters\boss\dragonboss\dragonbreath.behavior 3d2 < "description": "", 14,15c13,14 < 5, < 5 --- > 4.125, > 2.5 18,20c17,20 < 3, < -6 < ] --- > 3.75, > -3.5 > ], > "headAngleOffset": 0.7 128c128 < "title": "multiply", --- > "title": "add", 130c130 < "name": "multiply", --- > "name": "add", 132,133c132,133 < "number": "targetAngle", < "factor": 0.35 --- > "addend": "", > "number": "targetAngle" behaviors\monsters\mission\cultistballista.behavior 384,393c384,413 < "title": "findNpc", < "type": "action", < "name": "findNpc", < "parameters": { < "orderBy": "nearest", < "position": "self", < "range": 8, < "type": "cultistknight", < "orderby": "nearest" < } --- > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "findNpc", > "type": "action", > "name": "findNpc", > "parameters": { > "orderBy": "nearest", > "position": "self", > "range": 8, > "type": "cultistknight", > "orderby": "nearest" > } > }, > { > "title": "findNpc", > "type": "action", > "name": "findNpc", > "parameters": { > "orderBy": "nearest", > "position": "self", > "range": 8, > "type": "cultistarcher", > "orderby": "nearest" > } > } > ] 681,691d700 < } < }, < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 1 < }, < "output": { < "ratio": "" behaviors\monsters\mission\helicultist.behavior 2a3 > "description": "", 309c310 < "airFriction": 25 --- > "airFriction": 15 behaviors\npc\combat\meleeapproach.behavior 3d2 < "description": "", 10c9 < "/npcs/bmain.lua" --- > "/scripts/actions/dialog.lua" 15c14,15 < "forceRunRange": 15 --- > "forceRunRange": 15, > "cantReachDialog": true 175c175 < "title": "cooldown", --- > "title": "optional", 177c177 < "name": "cooldown", --- > "name": "optional", 179,180c179 < "cooldown": 10, < "onFail": false --- > "shouldRun": "" 183,185c182,184 < "title": "sequence", < "type": "composite", < "name": "sequence", --- > "title": "cooldown", > "type": "decorator", > "name": "cooldown", 187,190c186,187 < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" --- > "cooldown": 10, > "onFail": false 192,199c189,197 < "children": [ < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 2 < } --- > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" 201,223c199,205 < { < "title": "selector", < "type": "composite", < "name": "selector", < "parameters": {}, < "children": [ < { < "title": "chance", < "type": "action", < "name": "chance", < "parameters": { < "chance": 0.75 < } < }, < { < "title": "sayToEntity", < "type": "action", < "name": "sayToEntity", < "parameters": { < "dialogType": "dialog.cantReach", < "entity": "target", < "tags": {} < } --- > "children": [ > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 2 225,227c207,235 < ] < } < ] --- > }, > { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "chance", > "type": "action", > "name": "chance", > "parameters": { > "chance": 0.75 > } > }, > { > "title": "sayToEntity", > "type": "action", > "name": "sayToEntity", > "parameters": { > "dialogType": "dialog.cantReach", > "entity": "target", > "tags": {} > } > } > ] > } > ] > } behaviors\npc\unique\cultistinvader.behavior 4a5 > "/scripts/actions/movement.lua", 10d10 < "/scripts/actions/movement.lua", 28a29,36 > "title": "faceDirection", > "type": "action", > "name": "faceDirection", > "parameters": { > "direction": -1 > } > }, > { 400,402c408,410 < "title": "move", < "type": "action", < "name": "move", --- > "title": "parallel", > "type": "composite", > "name": "parallel", 404,406c412,434 < "direction": -1, < "run": false < } --- > "fail": -1, > "success": -1 > }, > "children": [ > { > "title": "openDoors", > "type": "action", > "name": "openDoors", > "parameters": { > "direction": -1, > "distance": 1.5 > } > }, > { > "title": "move", > "type": "action", > "name": "move", > "parameters": { > "direction": -1, > "run": false > } > } > ] behaviors\sequences\glitchmission\baronstart.behavior 10c10,11 < "/scripts/actions/position.lua" --- > "/scripts/actions/position.lua", > "/scripts/actions/status.lua" 179a181,330 > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": -1, > "success": 1 > }, > "children": [ > { > "title": "failer", > "type": "decorator", > "name": "failer", > "parameters": {}, > "child": { > "title": "openDoors", > "type": "action", > "name": "openDoors", > "parameters": { > "direction": -1, > "distance": 1.5, > "openLocked": true > } > } > }, > { > "title": "move", > "type": "action", > "name": "move", > "parameters": { > "direction": -1, > "run": false > } > }, > { > "title": "cooldown", > "type": "decorator", > "name": "cooldown", > "parameters": { > "cooldown": 0.5, > "onFail": true, > "onSuccess": true > }, > "child": { > "title": "findObject", > "type": "action", > "name": "findObject", > "parameters": { > "position": "self", > "range": 15, > "orderBy": "nearest", > "name": "exitteleporter" > }, > "output": { > "entity": "teleporter" > } > } > } > ] > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "entityPosition", > "type": "action", > "name": "entityPosition", > "parameters": { > "entity": "teleporter" > }, > "output": { > "position": "teleporter" > } > }, > { > "title": "offsetPosition", > "type": "action", > "name": "offsetPosition", > "parameters": { > "offset": [ > 0, > 0 > ], > "position": "teleporter" > }, > "output": { > "position": "teleporter" > } > }, > { > "title": "moveToPosition", > "type": "action", > "name": "moveToPosition", > "parameters": { > "avoidLiquid": true, > "failFast": false, > "groundPosition": true, > "maxGround": 5, > "minGround": -5, > "position": "teleporter", > "run": false > } > } > ] > }, > { > "title": "sequentialdialog", > "type": "module", > "name": "sequentialdialog", > "parameters": { > "dialogWaitTime": 2, > "dialogEndWait": 1, > "dialogKey": "dialog.baron.beamOut" > } > }, > { > "title": "setDeathParticleBurst", > "type": "action", > "name": "setDeathParticleBurst", > "parameters": {} > }, > { > "title": "addEphemeralEffect", > "type": "action", > "name": "addEphemeralEffect", > "parameters": { > "name": "beamoutanddie" > } > }, > { > "title": "sendEntityMessage", > "type": "action", > "name": "sendEntityMessage", > "parameters": { > "arguments": [ > "/cinematics/story/tonauacatoutpost.cinematic", > true > ], > "entity": "player", > "message": "playCinematic" > } > }, > { 353c504 < "dialogEndWait": 4, --- > "dialogEndWait": 0, 379,399c530,545 < "title": "sequentialdialog", < "type": "module", < "name": "sequentialdialog", < "parameters": { < "dialogWaitTime": 6, < "dialogEndWait": 3, < "dialogKey": "dialog.baron.bossSpawn", < "dialogTarget": "player" < } < }, < { < "title": "broadcastNotification", < "type": "action", < "name": "broadcastNotification", < "parameters": { < "position": "self", < "range": 100, < "entityTypes": [ < "monster" < ], < "type": "bossAggro" --- > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "title": "broadcastNotification", > "type": "action", > "name": "broadcastNotification", > "parameters": { > "position": "self", > "range": 150, > "entityTypes": [ > "monster" > ], > "type": "bossAggro" > } 636c782 < "dialogEndWait": 4, --- > "dialogEndWait": 3, 663,673d808 < "title": "sequentialdialog", < "type": "module", < "name": "sequentialdialog", < "parameters": { < "dialogWaitTime": 6, < "dialogEndWait": 4, < "dialogKey": "dialog.baron.alerted", < "dialogTarget": "player" < } < }, < { 690a826,836 > } > }, > { > "title": "sequentialdialog", > "type": "module", > "name": "sequentialdialog", > "parameters": { > "dialogWaitTime": 6, > "dialogEndWait": 4, > "dialogKey": "dialog.baron.alerted", > "dialogTarget": "player" biomes\surface\tentacles.biome 75c75 < "subBlocks" : [ "obsidian", "magmarock", "sewage", "jellyblock" ], --- > "subBlocks" : [ "obsidian", "jellyblock" ], 103,107d102 < { < "mode" : "floor", < "priority" : 0.0, < "variants" : 1, < "distribution" : "/biomes/distributions.config:overgroundChests", 109,111d103 < "type" : "treasureBox", < "treasureBoxSets" : [ "basicChest" ] < }, 113,114c105,106 < "mode" : "floor", < "priority" : 0.0, --- > "mode" : "ceiling", > "priority" : 2.0, 116c108 < "distribution" : "/biomes/distributions.config:overgroundRareChests", --- > "distribution" : "/biomes/distributions.config:scatteredSmall", 118,119c110,114 < "type" : "treasureBox", < "treasureBoxSets" : [ "weaponChest" ] --- > "type" : "tree", > "treeFoliageHueShiftMax" : 0, > "treeStemHueShiftMax" : 0, > "treeStemList" : [ "tentacle" ], > "treeFoliageList" : [ "" ] 125c120 < "distribution" : "/biomes/distributions.config:overgroundRareChests", --- > "distribution" : "/biomes/distributions.config:surfaceCapsules", 130c125 < "pool" : [ [1, "statuspod" ] ], --- > "pool" : [ [0.3, "tentaclepopsmall" ], [0.3, "tentaclepopmed" ], [0.3, "tentaclepopbig" ], [2.0, "tentaclepart1" ], [0.8, "tentaclepart2" ], [0.8, "tentaclepart3" ], [0.4, "tentaclespawner1" ] ], 137,148d131 < "priority" : 2.0, < "variants" : 1, < "distribution" : "/biomes/distributions.config:denseMedium", < < "type" : "tree", < "treeFoliageHueShiftMax" : 0, < "treeStemHueShiftMax" : 0, < "treeStemList" : [ "tentacle" ], < "treeFoliageList" : [ "" ] < }, < { < "mode" : "floor", 151c134 < "distribution" : "/biomes/distributions.config:surfaceCapsules", --- > "distribution" : "/biomes/distributions.config:hazardUndergroundCeilingMid", 156c139 < "pool" : [ [0.35, "tentaclepopsmall" ], [0.35, "tentaclepopmed" ], [0.35, "tentaclepopbig" ] ], --- > "pool" : [ [2.0, "tentaclepart1" ], [0.8, "tentaclepart2" ], [0.8, "tentaclepart3" ], [0.4, "tentaclespawner1" ] ], 170c153 < "pool" : [ [0.20, "tentaclespike" ] ] --- > "pool" : [ [0.1, "tentaclespike" ] ] 183c166 < "pool" : [ [0.20, "tentaclespike" ] ] --- > "pool" : [ [0.1, "tentaclespike" ] ] 194,203c177 < "microdungeons" : [ "block1platforms", "loops", "spiralspikes", "blocks", "stripeblocks", "blockpile", "reversepyramids", "flats", "spikes", "rods", "wiggles", "rockyshapes", "layeredspire", "blank", "none" ] < }, < { < "mode" : "floor", < "priority" : 3.0, < "variants" : 1, < "distribution" : "/biomes/distributions.config:scatteredSmall", < < "type" : "grass", < "grasses" : [ "pebbles" ] --- > "microdungeons" : [ "none" ] 216,224d189 < "priority" : 3.0, < "variants" : 1, < "distribution" : "/biomes/distributions.config:tiyDistPlatform", < < "type" : "microdungeon", < "microdungeons" : [ "aridplatforming" ] < }, < { < "mode" : "floor", 258,266d222 < { < "mode" : "floor", < "priority" : 0.0, < "variants" : 1, < "distribution" : "/biomes/distributions.config:undergroundChests", < < "type" : "treasureBox", < "treasureBoxSets" : [ "basicChest" ] < }, 270,287d225 < "priority" : 0.0, < "variants" : 1, < "distribution" : "/biomes/distributions.config:undergroundtechChests", < < "type" : "treasureBox", < "treasureBoxSets" : [ "techChest" ] < }, < { < "mode" : "floor", < "priority" : 0.0, < "variants" : 1, < "distribution" : "/biomes/distributions.config:undergroundChests", < < "type" : "treasureBox", < "treasureBoxSets" : [ "weaponChest" ] < }, < { < "mode" : "floor", 290c228 < "distribution" : "/biomes/distributions.config:undergroundChests", --- > "distribution" : "/biomes/distributions.config:surfaceCapsules", 295c233 < "pool" : [ [1, "statuspod" ] ], --- > "pool" : [ [0.3, "tentaclepopsmall" ], [0.3, "tentaclepopmed" ], [0.3, "tentaclepopbig" ], [2.0, "tentaclepart1" ], [0.8, "tentaclepart2" ], [0.8, "tentaclepart3" ], [0.4, "tentaclespawner1" ] ], 301c239 < "mode" : "floor", --- > "mode" : "ceiling", 304c242 < "distribution" : "/biomes/distributions.config:undergroundCapsules", --- > "distribution" : "/biomes/distributions.config:hazardUndergroundCeilingMid", 309c247 < "pool" : [ [0.35, "tentaclepopsmall" ], [0.35, "tentaclepopmed" ], [0.35, "tentaclepopbig" ] ], --- > "pool" : [ [2.0, "tentaclepart1" ], [0.8, "tentaclepart2" ], [0.8, "tentaclepart3" ], [0.4, "tentaclespawner1" ] ], 323c261 < "pool" : [ [0.20, "tentaclespike" ] ] --- > "pool" : [ [0.1, "tentaclespike" ] ] 336c274 < "pool" : [ [0.20, "tentaclespike" ] ] --- > "pool" : [ [0.1, "tentaclespike" ] ] 344c282 < "distribution" : "/biomes/distributions.config:denseMedium", --- > "distribution" : "/biomes/distributions.config:scatteredSmall", 354c292 < "priority" : 1.0, --- > "priority" : 2.0, 358,359c296,303 < "type" : "grass", < "grasses" : [ "pebbles" ] --- > "type" : "bush", > "bushes" : [ > { > "name" : "tentacleshrub", > "baseHueShiftMax" : 40, > "modHueShiftMax" : 180 > } > ] damage\axe.damage 258c258 < "sounds" : [ "/sfx/melee/axe_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\broadsword.damage 256c256 < "sounds" : [ "/sfx/melee/sword_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\dagger.damage 257c257 < "sounds" : [ "/sfx/melee/dagger_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/dagger_hit_metal1.ogg", "/sfx/melee/dagger_hit_metal2.ogg", "/sfx/melee/dagger_hit_metal3.ogg", "/sfx/melee/dagger_hit_metal4.ogg", "/sfx/melee/dagger_hit_metal5.ogg", "/sfx/melee/dagger_hit_metal6.ogg" ], damage\electricaxe.damage 262c262 < "sounds" : [ "/sfx/melee/axe_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\electricbroadsword.damage 262c262 < "sounds" : [ "/sfx/melee/sword_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\electricdagger.damage 261c261 < "sounds" : [ "/sfx/melee/dagger_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/dagger_hit_metal1.ogg", "/sfx/melee/dagger_hit_metal2.ogg", "/sfx/melee/dagger_hit_metal3.ogg", "/sfx/melee/dagger_hit_metal4.ogg", "/sfx/melee/dagger_hit_metal5.ogg", "/sfx/melee/dagger_hit_metal6.ogg" ], damage\electrichammer.damage 260c260 < "sounds" : [ "/sfx/melee/blunt_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/blunt_hit_metal1.ogg", "/sfx/melee/blunt_hit_metal2.ogg", "/sfx/melee/blunt_hit_metal3.ogg", "/sfx/melee/blunt_hit_metal4.ogg", "/sfx/melee/blunt_hit_metal5.ogg", "/sfx/melee/blunt_hit_metal6.ogg" ], damage\electricshortsword.damage 262c262 < "sounds" : [ "/sfx/melee/sword_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\electricspear.damage 261c261 < "sounds" : [ "/sfx/melee/spear_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\fireaxe.damage 262c262 < "sounds" : [ "/sfx/melee/axe_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\firebroadsword.damage 262c262 < "sounds" : [ "/sfx/melee/sword_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\firedagger.damage 261c261 < "sounds" : [ "/sfx/melee/dagger_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/dagger_hit_metal1.ogg", "/sfx/melee/dagger_hit_metal2.ogg", "/sfx/melee/dagger_hit_metal3.ogg", "/sfx/melee/dagger_hit_metal4.ogg", "/sfx/melee/dagger_hit_metal5.ogg", "/sfx/melee/dagger_hit_metal6.ogg" ], damage\firehammer.damage 260c260 < "sounds" : [ "/sfx/melee/blunt_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/blunt_hit_metal1.ogg", "/sfx/melee/blunt_hit_metal2.ogg", "/sfx/melee/blunt_hit_metal3.ogg", "/sfx/melee/blunt_hit_metal4.ogg", "/sfx/melee/blunt_hit_metal5.ogg", "/sfx/melee/blunt_hit_metal6.ogg" ], damage\fireshortsword.damage 262c262 < "sounds" : [ "/sfx/melee/sword_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\firespear.damage 261c261 < "sounds" : [ "/sfx/melee/spear_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\fist.damage 256c256 < "sounds" : [ "/sfx/melee/blunt_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/fist_hit_metal1.ogg", "/sfx/melee/fist_hit_metal2.ogg", "/sfx/melee/fist_hit_metal3.ogg" ], 779c779 < "sounds" : [ "/sfx/melee/sword_hit_wood1.ogg", "/sfx/melee/sword_hit_wood2.ogg", "/sfx/melee/sword_hit_wood3.ogg" ], --- > "sounds" : [ "/sfx/melee/fist_hit_wood1.ogg", "/sfx/melee/fist_hit_wood2.ogg", "/sfx/melee/fist_hit_wood3.ogg" ], damage\hammer.damage 256c256 < "sounds" : [ "/sfx/melee/blunt_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/blunt_hit_metal1.ogg", "/sfx/melee/blunt_hit_metal2.ogg", "/sfx/melee/blunt_hit_metal3.ogg", "/sfx/melee/blunt_hit_metal4.ogg", "/sfx/melee/blunt_hit_metal5.ogg", "/sfx/melee/blunt_hit_metal6.ogg" ], damage\iceaxe.damage 262c262 < "sounds" : [ "/sfx/melee/axe_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\icebroadsword.damage 262c262 < "sounds" : [ "/sfx/melee/sword_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\icedagger.damage 261c261 < "sounds" : [ "/sfx/melee/dagger_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/dagger_hit_metal1.ogg", "/sfx/melee/dagger_hit_metal2.ogg", "/sfx/melee/dagger_hit_metal3.ogg", "/sfx/melee/dagger_hit_metal4.ogg", "/sfx/melee/dagger_hit_metal5.ogg", "/sfx/melee/dagger_hit_metal6.ogg" ], damage\icehammer.damage 260c260 < "sounds" : [ "/sfx/melee/blunt_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/blunt_hit_metal1.ogg", "/sfx/melee/blunt_hit_metal2.ogg", "/sfx/melee/blunt_hit_metal3.ogg", "/sfx/melee/blunt_hit_metal4.ogg", "/sfx/melee/blunt_hit_metal5.ogg", "/sfx/melee/blunt_hit_metal6.ogg" ], damage\iceshortsword.damage 262c262 < "sounds" : [ "/sfx/melee/sword_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\icespear.damage 261c261 < "sounds" : [ "/sfx/melee/spear_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\lash.damage 255c255 < "sounds" : [ "/sfx/melee/dagger_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/dagger_hit_metal1.ogg", "/sfx/melee/dagger_hit_metal2.ogg", "/sfx/melee/dagger_hit_metal3.ogg", "/sfx/melee/dagger_hit_metal4.ogg", "/sfx/melee/dagger_hit_metal5.ogg", "/sfx/melee/dagger_hit_metal6.ogg" ], damage\poison.damage 31c31 < "sounds" : [ "/sfx/gun/impact_plasma.ogg" ], --- > "sounds" : [ "/sfx/gun/impact_flesh.ogg" ], damage\poisonaxe.damage 262c262 < "sounds" : [ "/sfx/melee/axe_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\poisonbroadsword.damage 262c262 < "sounds" : [ "/sfx/melee/sword_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\poisondagger.damage 261c261 < "sounds" : [ "/sfx/melee/dagger_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/dagger_hit_metal1.ogg", "/sfx/melee/dagger_hit_metal2.ogg", "/sfx/melee/dagger_hit_metal3.ogg", "/sfx/melee/dagger_hit_metal4.ogg", "/sfx/melee/dagger_hit_metal5.ogg", "/sfx/melee/dagger_hit_metal6.ogg" ], damage\poisonhammer.damage 260c260 < "sounds" : [ "/sfx/melee/blunt_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/blunt_hit_metal1.ogg", "/sfx/melee/blunt_hit_metal2.ogg", "/sfx/melee/blunt_hit_metal3.ogg", "/sfx/melee/blunt_hit_metal4.ogg", "/sfx/melee/blunt_hit_metal5.ogg", "/sfx/melee/blunt_hit_metal6.ogg" ], damage\poisonshortsword.damage 262c262 < "sounds" : [ "/sfx/melee/sword_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\poisonspear.damage 261c261 < "sounds" : [ "/sfx/melee/spear_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\shortsword.damage 258c258 < "sounds" : [ "/sfx/melee/sword_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\slash.damage 256c256 < "sounds" : [ "/sfx/melee/sword_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], damage\spear.damage 257c257 < "sounds" : [ "/sfx/melee/spear_hit_robotic.ogg" ], --- > "sounds" : [ "/sfx/melee/sword_hit_metal1.ogg", "/sfx/melee/sword_hit_metal2.ogg", "/sfx/melee/sword_hit_metal3.ogg", "/sfx/melee/sword_hit_metal4.ogg", "/sfx/melee/sword_hit_metal5.ogg", "/sfx/melee/sword_hit_metal6.ogg" ], dungeons\apex\apexcity\apexcityhouse5.json [TMX file differences are left out for huge size.] dungeons\apex\apexcity\apexcitymansion2.json [TMX file differences are left out for huge size.] dungeons\apex\apexcity\apexcitystore1.json [TMX file differences are left out for huge size.] dungeons\missions\glitchmissions\glitchmission1.json [TMX file differences are left out for huge size.] dungeons\other\naturalcave\naturalcave.dungeon 253,254c253,260 < "comment" : "foreground bones", < "brush" : [ [ "clear" ], [ "back", "bonematerial" ], [ "front", "bonematerial" ] ] --- > "comment" : "foreground plantmatter", > "brush" : [ [ "clear" ], [ "back", "plantmatter" ], [ "front", "plantmatter" ] ] > }, > > { > "value" : [133, 115, 79, 255], > "comment" : "background plantmatter", > "brush" : [ [ "clear" ], [ "back", "plantmatter" ] ] 839c845 < "broadcastArea" : [-18, -18, 18, 18], --- > "broadcastArea" : [-8, -8, 8, 8], interface\chests\chest1.config 16a17,24 > "clear" : { > "type" : "button", > "base" : "/interface/button.png", > "hover" : "/interface/buttonhover.png", > "press" : "/interface/buttonhover.png", > "caption" : "Take all", > "position" : [14, 39] > }, interface\chests\chest12.config 16a17,24 > "clear" : { > "type" : "button", > "base" : "/interface/button.png", > "hover" : "/interface/buttonhover.png", > "press" : "/interface/buttonhover.png", > "caption" : "Take all", > "position" : [14, 36] > }, interface\chests\chest16.config 16a17,24 > "clear" : { > "type" : "button", > "base" : "/interface/button.png", > "hover" : "/interface/buttonhover.png", > "press" : "/interface/buttonhover.png", > "caption" : "Take all", > "position" : [14, 35] > }, interface\chests\chest24.config 16a17,24 > "clear" : { > "type" : "button", > "base" : "/interface/button.png", > "hover" : "/interface/buttonhover.png", > "press" : "/interface/buttonhover.png", > "caption" : "Take all", > "position" : [14, 58] > }, interface\chests\chest32.config 16a17,24 > "clear" : { > "type" : "button", > "base" : "/interface/button.png", > "hover" : "/interface/buttonhover.png", > "press" : "/interface/buttonhover.png", > "caption" : "Take all", > "position" : [14, 77] > }, interface\chests\chest40.config 16a17,24 > "clear" : { > "type" : "button", > "base" : "/interface/button.png", > "hover" : "/interface/buttonhover.png", > "press" : "/interface/buttonhover.png", > "caption" : "Take all", > "position" : [14, 95] > }, interface\chests\chest48.config 16a17,24 > "clear" : { > "type" : "button", > "base" : "/interface/button.png", > "hover" : "/interface/buttonhover.png", > "press" : "/interface/buttonhover.png", > "caption" : "Take all", > "position" : [14, 114] > }, interface\chests\chest56.config 16a17,24 > "clear" : { > "type" : "button", > "base" : "/interface/button.png", > "hover" : "/interface/buttonhover.png", > "press" : "/interface/buttonhover.png", > "caption" : "Take all", > "position" : [14, 133] > }, interface\chests\chest60.config 16a17,24 > "clear" : { > "type" : "button", > "base" : "/interface/button.png", > "hover" : "/interface/buttonhover.png", > "press" : "/interface/buttonhover.png", > "caption" : "Take all", > "position" : [14, 152] > }, interface\chests\chest64.config 16a17,24 > "clear" : { > "type" : "button", > "base" : "/interface/button.png", > "hover" : "/interface/buttonhover.png", > "press" : "/interface/buttonhover.png", > "caption" : "Take all", > "position" : [14, 152] > }, interface\chests\chest9.config 16a17,24 > "clear" : { > "type" : "button", > "base" : "/interface/button.png", > "hover" : "/interface/buttonhover.png", > "press" : "/interface/buttonhover.png", > "caption" : "Take all", > "position" : [14, 35] > }, interface\easel\signstoregui.lua 12c12 < --world.logInfo("World Storage Found: %s", world.getProperty(uniqueEaselIdentifier.."storage")) --- > --sb.logInfo("World Storage Found: %s", world.getProperty(uniqueEaselIdentifier.."storage")) 14c14 < --world.logInfo("World Templates Found: %s", world.getProperty(uniqueEaselIdentifier.."templates")) --- > --sb.logInfo("World Templates Found: %s", world.getProperty(uniqueEaselIdentifier.."templates")) 19c19 < --- > 21c21 < --- > 36c36 < {"gold", "b79c40FF", "a58038FF"}, --- > {"gold", "b79c40FF", "a58038FF"}, 45c45 < --- > 48,51c48,51 < ["templates"] = {7, 8}, < ["main"] = {70,2}, < ["color"] = {294,8}, < ["colorWindow"] = {25,5}, --- > ["templates"] = {7, 8}, > ["main"] = {70,2}, > ["color"] = {294,8}, > ["colorWindow"] = {25,5}, 110c110 < --- > 113c113 < --to store and retrieve data. --- > --to store and retrieve data. 125c125 < --- > 127c127 < --- > 149c149 < --- > 163c163 < if storage.oldButton == "pixelPress" then --- > if storage.oldButton == "pixelPress" then 176c176 < --- > 184c184 < doButton("pickPixel", toPointer) --- > doButton("pickPixel", toPointer) 193c193 < --- > 214c214 < --- > 263c263 < --world.logInfo("Click @ %s", position) --- > --sb.logInfo("Click @ %s", position) 287c287 < else --- > else 292c292 < self.clickplease = 0 --- > self.clickplease = 0 300c300 < if 33<=key and key<=126 then keyString = string.char(key) else keyString = keyCodes[key] end --- > if 33<=key and key<=126 then keyString = string.char(key) else keyString = keyCodes[key] end 311,313c311,313 < keyString = string.char(key) < else < keyString = keyCodes[key] --- > keyString = string.char(key) > else > keyString = keyCodes[key] 316c316 < --- > 318c318 < if keyString == "shift" then --- > if keyString == "shift" then 329c329 < --- > 336c336 < --- > 350c350 < --- > 363c363 < --- > 368,371c368,371 < console.canvasDrawImage("/interface/easel/staticpanels.png", buttonPosition("S:mainStatics"), 1) < --console.canvasDrawImage("/interface/easel/icongrab.png:"..storage.buttonStates["iconGrab"],buttonPosition("iconGrab"), 1) < console.canvasDrawImage("/interface/easel/signbacking.png:"..storage.backingTypes[storage.backingTypesIndex], buttonPosition("pixelPress"), 1.5) < console.canvasDrawImage("/interface/easel/signframe.png:"..storage.frameTypes[storage.frameTypesIndex][1], buttonPosition("framePress"), 1.5) --- > console.canvasDrawImage("/interface/easel/staticpanels.png", buttonPosition("S:mainStatics"), 1) > --console.canvasDrawImage("/interface/easel/icongrab.png:"..storage.buttonStates["iconGrab"],buttonPosition("iconGrab"), 1) > console.canvasDrawImage("/interface/easel/signbacking.png:"..storage.backingTypes[storage.backingTypesIndex], buttonPosition("pixelPress"), 1.5) > console.canvasDrawImage("/interface/easel/signframe.png:"..storage.frameTypes[storage.frameTypesIndex][1], buttonPosition("framePress"), 1.5) 373,384c373,384 < console.canvasDrawImage("/interface/easel/scrollleft.png:"..storage.buttonStates["backingLeft"], buttonPosition("backingLeft"), 1) < console.canvasDrawImage("/interface/easel/scrollright.png:"..storage.buttonStates["backingRight"], buttonPosition("backingRight"), 1) < console.canvasDrawImage("/interface/easel/scrollleft.png:"..storage.buttonStates["frameLeft"], buttonPosition("frameLeft"), 1) < console.canvasDrawImage("/interface/easel/scrollright.png:"..storage.buttonStates["frameRight"], buttonPosition("frameRight"), 1) < console.canvasDrawImage("/interface/easel/delete.png:"..storage.buttonStates["frameDelete"], buttonPosition("frameDelete"), 1) < console.canvasDrawImage("/interface/easel/add.png:"..storage.buttonStates["frameAdd"], buttonPosition("frameAdd"), 1) < console.canvasDrawImage("/interface/easel/shiftleftright.png:right"..storage.buttonStates["shiftRight"], buttonPosition("shiftRight"), 1) < console.canvasDrawImage("/interface/easel/shiftleftright.png:left"..storage.buttonStates["shiftLeft"], buttonPosition("shiftLeft"), 1) < console.canvasDrawImage("/interface/easel/shiftupdown.png:up"..storage.buttonStates["shiftUp"], buttonPosition("shiftUp"), 1) < console.canvasDrawImage("/interface/easel/shiftupdown.png:down"..storage.buttonStates["shiftDown"], buttonPosition("shiftDown"), 1) < console.canvasDrawImage("/interface/easel/wiredicon.png:"..storage.buttonStates["isWired"], buttonPosition("isWired"), 1) < --- > console.canvasDrawImage("/interface/easel/scrollleft.png:"..storage.buttonStates["backingLeft"], buttonPosition("backingLeft"), 1) > console.canvasDrawImage("/interface/easel/scrollright.png:"..storage.buttonStates["backingRight"], buttonPosition("backingRight"), 1) > console.canvasDrawImage("/interface/easel/scrollleft.png:"..storage.buttonStates["frameLeft"], buttonPosition("frameLeft"), 1) > console.canvasDrawImage("/interface/easel/scrollright.png:"..storage.buttonStates["frameRight"], buttonPosition("frameRight"), 1) > console.canvasDrawImage("/interface/easel/delete.png:"..storage.buttonStates["frameDelete"], buttonPosition("frameDelete"), 1) > console.canvasDrawImage("/interface/easel/add.png:"..storage.buttonStates["frameAdd"], buttonPosition("frameAdd"), 1) > console.canvasDrawImage("/interface/easel/shiftleftright.png:right"..storage.buttonStates["shiftRight"], buttonPosition("shiftRight"), 1) > console.canvasDrawImage("/interface/easel/shiftleftright.png:left"..storage.buttonStates["shiftLeft"], buttonPosition("shiftLeft"), 1) > console.canvasDrawImage("/interface/easel/shiftupdown.png:up"..storage.buttonStates["shiftUp"], buttonPosition("shiftUp"), 1) > console.canvasDrawImage("/interface/easel/shiftupdown.png:down"..storage.buttonStates["shiftDown"], buttonPosition("shiftDown"), 1) > console.canvasDrawImage("/interface/easel/wiredicon.png:"..storage.buttonStates["isWired"], buttonPosition("isWired"), 1) > 388c388 < console.canvasDrawImage("/interface/easel/lightbutton.png:"..storage.buttonStates["lightSelect"], buttonPosition("lightSelect"), 1) --- > console.canvasDrawImage("/interface/easel/lightbutton.png:"..storage.buttonStates["lightSelect"], buttonPosition("lightSelect"), 1) 390c390 < console.canvasDrawImage("/interface/easel/lightbutton.png:"..storage.buttonStates["lightSelect"], buttonPosition("lightSelect"), 1) --- > console.canvasDrawImage("/interface/easel/lightbutton.png:"..storage.buttonStates["lightSelect"], buttonPosition("lightSelect"), 1) 396,398c396,398 < console.canvasDrawImage("/interface/easel/numbers.png:"..digit11,buttonPosition("S:digit11"), 1) < console.canvasDrawImage("/interface/easel/numbers.png:"..digit12, buttonPosition("S:digit12"), 1) < console.canvasDrawImage("/interface/easel/numbers.png:"..digit21,buttonPosition("S:digit21"), 1) --- > console.canvasDrawImage("/interface/easel/numbers.png:"..digit11,buttonPosition("S:digit11"), 1) > console.canvasDrawImage("/interface/easel/numbers.png:"..digit12, buttonPosition("S:digit12"), 1) > console.canvasDrawImage("/interface/easel/numbers.png:"..digit21,buttonPosition("S:digit21"), 1) 411c411 < ------------------- --- > ------------------- 416c416 < --- > 422c422 < if storage.buttonStates["templateSlotCopy"] == "highlight" then --- > if storage.buttonStates["templateSlotCopy"] == "highlight" then 426c426 < --- > 434,435c434,435 < < --- > > 438c438 < ---------------- --- > ---------------- 445c445 < --- > 450c450 < --- > 485c485 < end --- > end 504c504 < --- > 516c516 < --world.logInfo("Button: %s", button) --- > --sb.logInfo("Button: %s", button) 523c523 < end --- > end 545c545 < if storage.currentFrame == 1 then --- > if storage.currentFrame == 1 then 598c598 < elseif button == "iconGrab" then --totally deprecated, as this is automatic now. --- > elseif button == "iconGrab" then --totally deprecated, as this is automatic now. 606c606 < --world.logInfo("Undoing %s", action) --- > --sb.logInfo("Undoing %s", action) 631c631 < elseif action[1] == "restoreColor" then --- > elseif action[1] == "restoreColor" then 654c654 < elseif button == "fillToggle" then --- > elseif button == "fillToggle" then 664c664 < elseif button == "fillPixel" then --- > elseif button == "fillPixel" then 704c704 < -- storage.lightData["f"..tostring(storage.currentFrame)] = string.sub(storage.paintColor, 1, -3) --- > -- storage.lightData["f"..tostring(storage.currentFrame)] = string.sub(storage.paintColor, 1, -3) 710c710 < storage.lightData = string.sub(storage.paintColor, 1, -3) --- > storage.lightData = string.sub(storage.paintColor, 1, -3) 712c712 < end --- > end 792c792 < --mmm patterns I should use more of those --- > --mmm patterns I should use more of those 826,827c826,827 < --world.logInfo("Dropped sign: %s", data.droppedSign) < templates["fromContainer"].signPixels = deconstructDirectiveStrings(self.droppedSign["signData"]) --- > --sb.logInfo("Dropped sign: %s", data.droppedSign) > templates["fromContainer"].signPixels = deconstructDirectiveStrings(self.droppedSign["signData"]) 830,831c830,831 < if templates["fromContainer"].frameTypesIndex[1] == q[2] and templates["fromContainer"].frameTypesIndex[2] == q[3] then < templates["fromContainer"].frameTypesIndex = p break --- > if templates["fromContainer"].frameTypesIndex[1] == q[2] and templates["fromContainer"].frameTypesIndex[2] == q[3] then > templates["fromContainer"].frameTypesIndex = p break 838c838 < if self.droppedSign["isWired"] then --- > if self.droppedSign["isWired"] then 843c843 < templates["fromContainer"].currentIcon = self.droppedSign["inventoryIcon"] --- > templates["fromContainer"].currentIcon = self.droppedSign["inventoryIcon"] 855,856c855,856 < local pix = 1 local piy = 1 < for i=1,#directiveStrings do --- > local pix = 1 local piy = 1 > for i=1,#directiveStrings do 870c870 < --world.logInfo("Frame %s, Pixel %s,%s", i, pix, piy) --- > --sb.logInfo("Frame %s, Pixel %s,%s", i, pix, piy) 880c880 < --world.logInfo("//////////Printing Sign//////////") --- > --sb.logInfo("//////////Printing Sign//////////") 890c890 < --- > 894c894 < parameters.signData = storage.signDirectiveStrings --- > parameters.signData = storage.signDirectiveStrings 896c896 < parameters.signBacking = storage.backingTypes[storage.backingTypesIndex] --- > parameters.signBacking = storage.backingTypes[storage.backingTypesIndex] 904,905c904,905 < --world.logInfo("Wired: %s - Container: %s - Backing: %s - Frame: %s", storage.isWired, storage.isContainer, storage.backingTypes[storage.backingTypesIndex], storage.frameTypes[storage.frameTypesIndex][2]) < --world.logInfo("%s", storage.signDirectiveStrings") --- > --sb.logInfo("Wired: %s - Container: %s - Backing: %s - Frame: %s", storage.isWired, storage.isContainer, storage.backingTypes[storage.backingTypesIndex], storage.frameTypes[storage.frameTypesIndex][2]) > --sb.logInfo("%s", storage.signDirectiveStrings") 912c912 < --world.logInfo("Sign To Place: %s", signToPlace) --- > --sb.logInfo("Sign To Place: %s", signToPlace) 917c917 < --- > 935c935 < --world.logInfo("---------------------------------") --- > --sb.logInfo("---------------------------------") 956c956 < end --- > end 969c969 < if canvasButtonOffsets[button] == nil then world.logInfo("%s", button) end --- > if canvasButtonOffsets[button] == nil then sb.logInfo("%s", button) end 982c982 < if type(input) ~= "table" then --- > if type(input) ~= "table" then 984c984 < return newinput --- > return newinput 996c996 < --world.logInfo("Filling at position %s: %s to %s", p, storage.paintColor, oc) --- > --sb.logInfo("Filling at position %s: %s to %s", p, storage.paintColor, oc) 1016c1016 < --- > 1022c1022 < --- > 1028,1029c1028,1029 < < if self.currentCursorModifier == "pickPixel" then --- > > if self.currentCursorModifier == "pickPixel" then 1031,1032c1031,1032 < else < storage.buttonStates["pickToggle"] = "off" --- > else > storage.buttonStates["pickToggle"] = "off" 1034,1038c1034,1038 < < if self.currentCursorModifier == "fillPixel" then < storage.buttonStates["fillToggle"] = "on" < else < storage.buttonStates["fillToggle"] = "off" --- > > if self.currentCursorModifier == "fillPixel" then > storage.buttonStates["fillToggle"] = "on" > else > storage.buttonStates["fillToggle"] = "off" 1040c1040 < --- > interface\fuel\fuel.config 12a13,18 > "bgShine" : { > "type" : "image", > "file" : "/interface/fuel/fuelshine.png", > "position" : [0, -2], > "zlevel" : -10 > }, interface\games\fossilgame\fossilgame.lua 168c168 < --- > 244c244 < if toolUsesRemaining()==0 then --- > if toolUsesRemaining()==0 then 322c322 < --world.logInfo("Button %s was pressed at %s", button, position) --- > --sb.logInfo("Button %s was pressed at %s", button, position) 330c330 < --world.logInfo("Button %s was released at %s", button, position) --- > --sb.logInfo("Button %s was released at %s", button, position) 348c348 < --world.logInfo("Key %s was pressed", key) --- > --sb.logInfo("Key %s was pressed", key) 359c359 < --world.logInfo("Key %s was released", key) --- > --sb.logInfo("Key %s was released", key) 380c380 < end \ No newline at end of file --- > end interface\games\fossilgame\generator.lua 30c30 < -- world.logInfo("toolUses=%s",toolUses) --- > -- sb.logInfo("toolUses=%s",toolUses) 172c172 < end \ No newline at end of file --- > end interface\objectcrafting\campfire.config 11c11 < "position" : [5, 39], --- > "position" : [42, 36], 14,15c14,29 < "caption" : "COOK" < }, --- > "caption" : "Cook" > }, > "close" : { > "type" : "button", > "base" : "/interface/inventory/x.png", > "hover" : "/interface/inventory/xhover.png", > "press" : "/interface/inventory/xpress.png", > "position" : [123, 105] > }, > "lblText" : { > "type" : "label", > "position" : [70, 78], > "hAnchor" : "mid", > "wrapWidth" : 125, > "value" : "^#b9b5b2;Place one or more ingredients in the left slot." > }, 18c32 < "position" : [74, 37], --- > "position" : [40, 54], 26c40 < "position" : [110, 37], --- > "position" : [76, 54], 33c47 < "position" : [96, 40], --- > "position" : [62, 57], interface\objectcrafting\fossilstation.config 192c192 < "position" : [25, 224], --- > "position" : [25, 222], 198c198 < "position" : [45, 223], --- > "position" : [47, 223], interface\objectcrafting\pethealing.config 11c11 < "position" : [5, 39], --- > "position" : [42, 36], 14,15c14,29 < "caption" : "HEAL" < }, --- > "caption" : "Heal" > }, > "close" : { > "type" : "button", > "base" : "/interface/inventory/x.png", > "hover" : "/interface/inventory/xhover.png", > "press" : "/interface/inventory/xpress.png", > "position" : [123, 105] > }, > "lblText" : { > "type" : "label", > "position" : [70, 78], > "hAnchor" : "mid", > "wrapWidth" : 125, > "value" : "^#b9b5b2;Place Capture Pod in the left slot." > }, 18c32 < "position" : [74, 37], --- > "position" : [40, 54], 26c40 < "position" : [110, 37], --- > "position" : [76, 54], 33c47 < "position" : [96, 40], --- > "position" : [62, 57], 39c53 < "position" : [-20, 20] --- > "position" : [0, 12] interface\objectcrafting\refinery.config 11c11 < "position" : [5, 39], --- > "position" : [42, 36], 14c14 < "caption" : "REFINE" --- > "caption" : "Refine" 18c18 < "position" : [74, 37], --- > "position" : [40, 54], 28,29c28,36 < "position" : [123, 64] < }, --- > "position" : [123, 105] > }, > "lblText" : { > "type" : "label", > "position" : [70, 78], > "hAnchor" : "mid", > "wrapWidth" : 125, > "value" : "^#b9b5b2;Place one or more ores in the left slot." > }, 33c40 < "position" : [110, 37], --- > "position" : [76, 54], 40c47 < "position" : [96, 40], --- > "position" : [62, 57], interface\objectcrafting\repairo.config 11c11 < "position" : [43, 39], --- > "position" : [43, 56], 15a16,22 > "lblText" : { > "type" : "label", > "position" : [70, 82], > "hAnchor" : "mid", > "wrapWidth" : 125, > "value" : "^#b9b5b2;\"Place Auto Chip and vehicle Controller below!\"" > }, 21c28,35 < "position" : [123, 65] --- > "position" : [123, 110] > }, > "toggleCrafting" : { > "type" : "button", > "position" : [42, 36], > "base" : "/interface/objectcrafting/cook.png", > "hover" : "/interface/objectcrafting/cookover.png", > "caption" : "Repair" 26c40 < "position" : [112, 39], --- > "position" : [112, 56], 33,34c47,48 < "file" : "/interface/objectcrafting/campfire_shine.png", < "position" : [-20, 20] --- > "file" : "/interface/objectcrafting/repairoshine.png", > "position" : [0, 11] interface\optionsmenu\optionsmenu.config 115c115 < "position" : [57, 84], --- > "position" : [62, 84], 121c121,136 < "position" : [99, 87], --- > "pressedOffset" : [0, 0], > "position" : [107, 87], > "base" : "/interface/optionsmenu/checkboxnocheck.png", > "baseImageChecked" : "/interface/optionsmenu/checkboxcheck.png", > "checkable" : true > }, > "tutorialMessagesLabel" : { > "type" : "label", > "position" : [62, 73], > "hAnchor" : "mid", > "value" : "TUTORIAL MESSAGES" > }, > "tutorialMessagesCheckbox" : { > "type" : "button", > "pressedOffset" : [0, 0], > "position" : [107, 76], 128c143 < "position" : [57, 73], --- > "position" : [62, 62], 134c149,150 < "position" : [99, 76], --- > "pressedOffset" : [0, 0], > "position" : [107, 65], interface\radiomessage\radiomessage.config 16c16 < "position" : [2, 2] --- > "position" : [-4, -4] 42c42 < } \ No newline at end of file --- > } interface\windowconfig\craftingfood.config 18,19c18,19 < "title" : " KITCHEN COUNTER", < "subtitle" : " Yum Yum", --- > "title" : "Kitchen Counter", > "subtitle" : "Yum, yum", interface\windowconfig\keybindingsmenu.config 3,4c3,4 < "modFilter" : ["Num", "Caps", "Mode", "Reserved"], < "assignOnKeyUp" : ["LCtrl", "RCtrl", "LAlt", "RAlt", "LMeta", "RMeta", "LShift", "RShift"], --- > "modFilter" : ["Num", "Caps", "Mode"], > "assignOnKeyUp" : ["LCtrl", "RCtrl", "LAlt", "RAlt", "LGui", "RGui", "LShift", "RShift"], 283a284,289 > }, > "bgShine" : { > "type" : "image", > "file" : "/interface/keybindings/shine.png", > "position" : [5, 12], > "zlevel" : 1 interface\windowconfig\newquestshort.config 35,36c35,36 < "file" : "/interface/quests/newquest/shine.png", < "position" : [0, 22], --- > "file" : "/interface/quests/newquest/shineshort.png", > "position" : [-1, 11], interface\windowconfig\questlog.config 17c17 < "position" : [310, 257] --- > "position" : [318, 279] 23c23 < "position" : [0, 254], --- > "position" : [-2, 260], 46c46 < "position" : [176, 22], --- > "position" : [184, 27], 53c53 < "position" : [258, 22], --- > "position" : [269, 27], 58c58 < "position" : [207, 44], --- > "position" : [219, 57], 66c66 < "position" : [166, 48], --- > "position" : [177, 61], 100c100 < "position" : [240, 240], --- > "position" : [250, 261], 110c110 < "position" : [166, 229], --- > "position" : [177, 245], 114c114 < "lineSpacing" : 1.0, --- > "lineSpacing" : 1.1, 120c120 < "rect" : [5, 32, 156, 232], --- > "rect" : [6, 32, 167, 253], 128c128 < "memberSize" : [142, 19], --- > "memberSize" : [150, 19], 133c133 < "position" : [0, 0], --- > "position" : [1, 0], 139c139 < "position" : [2, 2] --- > "position" : [1, 2] 155c155 < "position" : [0, 0] --- > "position" : [1, 0] 167c167 < "position" : [3, 238], --- > "position" : [3, 253], 172c172,174 < "data" : "inProgress" --- > "data" : "inProgress", > "text" : "In Progress", > "pressedOffset" : [0, 0] 175c177 < "position" : [58, 238], --- > "position" : [55, 253], 179c181,183 < "data" : "completed" --- > "data" : "completed", > "text" : "Completed", > "pressedOffset" : [0, 0] 182c186 < "position" : [105, 238], --- > "position" : [107, 253], 186c190,192 < "data" : "failed" --- > "data" : "failed", > "text" : "Failed", > "pressedOffset" : [0, 0] interface\windowconfig\teleportdialog.config 22,23c22,23 < "title" : "TELEPORT", < "subtitle" : "Choose a Destination", --- > "title" : "Teleporter", > "subtitle" : "Choose a destination", items\active\effects\chain.lua 9,20c9,12 < -- sb.logInfo("Building drawables for chain %s", chain) < local startPosition = chain.startPosition or vec2.add(activeItemAnimation.ownerPosition(), activeItemAnimation.handPosition(chain.startOffset)) < local endPosition = chain.endPosition or vec2.add(activeItemAnimation.ownerPosition(), activeItemAnimation.handPosition(chain.endOffset)) < < local chainVec = vec2.sub(endPosition, startPosition) < local chainDirection = chainVec[1] < 0 and -1 or 1 < local chainLength = vec2.mag(chainVec) < < local arcAngle = 0 < if chain.arcRadius then < arcAngle = chainDirection * 2 * math.asin(chainLength / (2 * chain.arcRadius)) < chainLength = chainDirection * arcAngle * chain.arcRadius --- > if chain.targetEntityId then > if world.entityExists(chain.targetEntityId) then > chain.endPosition = world.entityPosition(chain.targetEntityId) > end 23,47c15,28 < local segmentCount = math.floor((chainLength / chain.segmentSize) + 0.5) < if segmentCount > 0 then < local chainStartAngle = vec2.angle(chainVec) - arcAngle / 2 < if chainVec[1] < 0 then chainStartAngle = math.pi - chainStartAngle end < < local segmentOffset = vec2.mul(vec2.norm(chainVec), chain.segmentSize) < segmentOffset = vec2.rotate(segmentOffset, -arcAngle / 2) < local thisOffset = vec2.add(startPosition, vec2.mul(segmentOffset, 0.5)) < local lastDrawnSegment = chain.drawPercentage and math.ceil(segmentCount * chain.drawPercentage) or segmentCount < for i = 1, lastDrawnSegment do < local image = chain.segmentImage < if i == lastDrawnSegment and chain.endSegmentImage then image = chain.endSegmentImage end < if chain.taper then < local taperFactor = 1 - ((i - 1) / lastDrawnSegment) * chain.taper < image = image .. "?scale=1.0=" .. util.round(taperFactor, 1) < end < local drawable = { < image = image, < centered = true, < mirrored = chainVec[1] < 0, < rotation = chainStartAngle + (i - 1) * chainDirection * (arcAngle / segmentCount), < position = thisOffset, < fullbright = chain.fullbright or false < } < table.insert(drawables, {drawable}) --- > if not chain.targetEntityId or world.entityExists(chain.targetEntityId) then > -- sb.logInfo("Building drawables for chain %s", chain) > local startPosition = chain.startPosition or vec2.add(activeItemAnimation.ownerPosition(), activeItemAnimation.handPosition(chain.startOffset)) > local endPosition = chain.endPosition or vec2.add(activeItemAnimation.ownerPosition(), activeItemAnimation.handPosition(chain.endOffset)) > > local chainVec = vec2.sub(endPosition, startPosition) > local chainDirection = chainVec[1] < 0 and -1 or 1 > local chainLength = vec2.mag(chainVec) > > local arcAngle = 0 > if chain.arcRadius then > arcAngle = chainDirection * 2 * math.asin(chainLength / (2 * chain.arcRadius)) > chainLength = chainDirection * arcAngle * chain.arcRadius > end 49,50c30,58 < segmentOffset = vec2.rotate(segmentOffset, arcAngle / segmentCount) < thisOffset = vec2.add(thisOffset, segmentOffset) --- > local segmentCount = math.floor((chainLength / chain.segmentSize) + 0.5) > if segmentCount > 0 then > local chainStartAngle = vec2.angle(chainVec) - arcAngle / 2 > if chainVec[1] < 0 then chainStartAngle = math.pi - chainStartAngle end > > local segmentOffset = vec2.mul(vec2.norm(chainVec), chain.segmentSize) > segmentOffset = vec2.rotate(segmentOffset, -arcAngle / 2) > local thisOffset = vec2.add(startPosition, vec2.mul(segmentOffset, 0.5)) > local lastDrawnSegment = chain.drawPercentage and math.ceil(segmentCount * chain.drawPercentage) or segmentCount > for i = 1, lastDrawnSegment do > local image = chain.segmentImage > if i == lastDrawnSegment and chain.endSegmentImage then image = chain.endSegmentImage end > if chain.taper then > local taperFactor = 1 - ((i - 1) / lastDrawnSegment) * chain.taper > image = image .. "?scale=1.0=" .. util.round(taperFactor, 1) > end > local drawable = { > image = image, > centered = true, > mirrored = chainVec[1] < 0, > rotation = chainStartAngle + (i - 1) * chainDirection * (arcAngle / segmentCount), > position = thisOffset, > fullbright = chain.fullbright or false > } > table.insert(drawables, {drawable}) > > segmentOffset = vec2.rotate(segmentOffset, arcAngle / segmentCount) > thisOffset = vec2.add(thisOffset, segmentOffset) > end items\active\effects\laserbeam.lua 13,16c13,21 < local muzzleOffset = activeItemAnimation.animationParameter("muzzleOffset") or {0,0} < local laserColor = activeItemAnimation.animationParameter("laserColor") or {255,255,255,255} < local maxLength = activeItemAnimation.animationParameter("laserLength") or 30 < local parts = activeItemAnimation.animationParameter("segments") or 1 --- > local beams = activeItemAnimation.animationParameter("beams") or {} > local lineSegments = {} > > for _,beam in pairs(beams) do > local offset = beam.offset or {0,0} > local color = beam.color or {255,255,255,255} > local maxLength = beam.length or 30 > local segmentCount = beam.segments or 1 > local angle = beam.angle or 0 18,20c23,25 < if #laserColor == 3 then < laserColor[4] = 255 < end --- > if #color == 3 then > color[4] = 255 > end 22,49c27,53 < local muzzlePosition = vec2.add(activeItemAnimation.ownerPosition(), activeItemAnimation.handPosition(muzzleOffset)) < local aimPosition = activeItemAnimation.ownerAimPosition() < local aimAngle = activeItemAnimation.ownerArmAngle() < local aimVector = {activeItemAnimation.ownerFacingDirection() * math.cos(aimAngle), math.sin(aimAngle)} < < local lineEnd = vec2.mul(aimVector, maxLength) < < local blocks = world.collisionBlocksAlongLine(muzzlePosition, vec2.add(muzzlePosition, lineEnd)) < if #blocks > 0 then < blockPosition = blocks[1] < --When approaching the block from the right or top, the intersecting edges will be the right or top ones < if aimVector[1] < 0 then blockPosition[1] = blockPosition[1] + 1 end < if aimVector[2] < 0 then blockPosition[2] = blockPosition[2] + 1 end < < local blockDistance = world.distance(blockPosition, muzzlePosition) < < -- If the block's edge is in a different direction than the aim direction < -- it is impossible to have hit that edge, make sure we draw the beam to the other edge < if aimVector[1] * (blockPosition[1] - muzzlePosition[1]) < 0 then blockDistance[1] = 0 end < if aimVector[2] * (blockPosition[2] - muzzlePosition[2]) < 0 then blockDistance[2] = 0 end < < -- How long does the beam need to be to move 1 block in each axis < local deltaDistX = 1 / math.abs(aimVector[1]) < local deltaDistY = 1 / math.abs(aimVector[2]) < < -- How long does the beam need to be to reach the collided block on each axis < local distX = math.abs(blockDistance[1]) * deltaDistX < local distY = math.abs(blockDistance[2]) * deltaDistY --- > local beamPosition = vec2.add(activeItemAnimation.ownerPosition(), activeItemAnimation.handPosition(offset)) > local aimAngle = activeItemAnimation.ownerArmAngle() + angle > local aimVector = {activeItemAnimation.ownerFacingDirection() * math.cos(aimAngle), math.sin(aimAngle)} > > local lineEnd = vec2.mul(aimVector, maxLength) > > local blocks = world.collisionBlocksAlongLine(beamPosition, vec2.add(beamPosition, lineEnd)) > if #blocks > 0 then > blockPosition = blocks[1] > --When approaching the block from the right or top, the intersecting edges will be the right or top ones > if aimVector[1] < 0 then blockPosition[1] = blockPosition[1] + 1 end > if aimVector[2] < 0 then blockPosition[2] = blockPosition[2] + 1 end > > local blockDistance = world.distance(blockPosition, beamPosition) > > -- If the block's edge is in a different direction than the aim direction > -- it is impossible to have hit that edge, make sure we draw the beam to the other edge > if aimVector[1] * (blockPosition[1] - beamPosition[1]) < 0 then blockDistance[1] = 0 end > if aimVector[2] * (blockPosition[2] - beamPosition[2]) < 0 then blockDistance[2] = 0 end > > -- How long does the beam need to be to move 1 block in each axis > local deltaDistX = 1 / math.abs(aimVector[1]) > local deltaDistY = 1 / math.abs(aimVector[2]) > > -- How long does the beam need to be to reach the collided block on each axis > local distX = math.abs(blockDistance[1]) * deltaDistX > local distY = math.abs(blockDistance[2]) * deltaDistY 51,53c55,57 < -- The largest of the distances is the length of the beam when colliding with the block < lineEnd = vec2.mul(aimVector, math.max(distX, distY)) < end --- > -- The largest of the distances is the length of the beam when colliding with the block > lineEnd = vec2.mul(aimVector, math.max(distX, distY)) > end 55d58 < local segments = {} 57,63c60,66 < local unit = vec2.norm(lineEnd) < for i = 0, parts-1 do < if i * maxLength / parts >= vec2.mag(lineEnd) then < break < end < local startPosition = vec2.mul(unit, maxLength * i / parts) < local endPosition = vec2.mul(unit, math.min(vec2.mag(lineEnd), maxLength * (i+1) / parts)) --- > local unit = vec2.norm(lineEnd) > for i = 0, segmentCount-1 do > if i * maxLength / segmentCount >= vec2.mag(lineEnd) then > break > end > local startPosition = vec2.mul(unit, maxLength * i / segmentCount) > local endPosition = vec2.mul(unit, math.min(vec2.mag(lineEnd), maxLength * (i+1) / segmentCount)) 65,66c68,69 < local segmentColor = copy(laserColor) < segmentColor[4] = segmentColor[4] * (1 - i/parts) --- > local segmentColor = copy(color) > segmentColor[4] = segmentColor[4] * (1 - i/segmentCount) 68c71,72 < table.insert(segments, {{line = {startPosition, endPosition}, width = 1, color = segmentColor, position = muzzlePosition, fullbright = true}}) --- > table.insert(lineSegments, {{line = {startPosition, endPosition}, width = 1, color = segmentColor, position = beamPosition, fullbright = true}}) > end 71c75 < return segments --- > return lineSegments items\active\effects\lightning.lua 61c61 < --world.logInfo("Drawable count: %s", #Drawables) --- > --sb.logInfo("Drawable count: %s", #Drawables) items\active\effects\rope.lua 47c47 < --world.logInfo("Drawable count: %s", #newDrawables) --- > --sb.logInfo("Drawable count: %s", #newDrawables) items\active\unsorted\filledcapturepod\filledcapturepod.lua 17c17 < world.logInfo("Error messaging pet system %s with %s: %s", owner, message, promise:error()) --- > sb.logInfo("Error messaging pet system %s with %s: %s", owner, message, promise:error()) items\active\unsorted\partypopper\partypopper.lua 4c4 < -- world.logInfo("Initializing metagun") --- > -- sb.logInfo("Initializing metagun") 19c19 < -- world.logInfo("Uninitializing metagun") --- > -- sb.logInfo("Uninitializing metagun") 23c23 < -- world.logInfo("Updating metagun with fireMode %s and shiftHeld %s", fireMode, shiftHeld) --- > -- sb.logInfo("Updating metagun with fireMode %s and shiftHeld %s", fireMode, shiftHeld) 51c51 < -- world.logInfo("Activating metagun with fireMode %s and shiftHeld %s", fireMode, shiftHeld) --- > -- sb.logInfo("Activating metagun with fireMode %s and shiftHeld %s", fireMode, shiftHeld) items\active\weapons\fist\boxingglove.activeitem 21c21 < "fire" : [ "/sfx/melee/swing_shortsword.ogg" ] --- > "fire" : [ "/sfx/melee/swing_dagger.ogg" ] items\active\weapons\fist\combofinishers\powerpunch.combofinisher 54c54 < "damageSourceKind" : "fist", --- > "damageSourceKind" : "fiststrong", items\active\weapons\fist\combofinishers\snaproot.combofinisher 17,18c17,18 < "damageSourceKind" : "lash", < "knockback" : 15, --- > "damageSourceKind" : "fiststrong", > "knockback" : 25, items\active\weapons\melee\altabilities\broadsword\traildash\traildash.altability 69c69 < "cooldownTime" : 0.0, --- > "cooldownTime" : 0.4, 107c107 < "duration" : 0.2, --- > "duration" : 0.5, items\active\weapons\melee\pickaxe\energypickaxe.animation 23c23 < "immediateSound" : "/sfx/melee/elemental_aura_activate.ogg", --- > "immediateSound" : "/sfx/tools/energypickaxe_start.ogg", 33c33 < "persistentSound" : "/sfx/melee/elemental_aura.ogg", --- > "persistentSound" : "/sfx/tools/energypickaxe_idle.ogg", 44c44 < "immediateSound" : "/sfx/melee/elemental_aura_deactivate2.ogg", --- > "immediateSound" : "/sfx/tools/energypickaxe_stop2.ogg", 130c130 < "fire" : [ "/sfx/melee/charge_full_swing2.ogg" ], --- > "fire" : [ "/sfx/tools/energypickaxe_hit2.ogg", "/sfx/tools/energypickaxe_hit3.ogg", "/sfx/tools/energypickaxe_hit4.ogg", "/sfx/tools/energypickaxe_hit5.ogg", "/sfx/tools/energypickaxe_hit6.ogg", "/sfx/tools/energypickaxe_hit7.ogg", "/sfx/tools/energypickaxe_hit8.ogg" ], items\active\weapons\other\adaptablecrossbow\adaptableammo.altability 11c11 < "particleEmittersOff" : [ "poisonAmmo", "iceAmmo" ] --- > "particleEmittersOff" : [ "fireAmmo", "iceAmmo", "electricAmmo", "poisonAmmo" ] 17,18c17,18 < "particleEmittersOff" : [ "iceAmmo" ], < "particleEmittersOn" : [ "poisonAmmo" ] --- > "particleEmittersOff" : [ "iceAmmo", "electricAmmo", "poisonAmmo" ], > "particleEmittersOn" : [ "fireAmmo" ] 24,25c24,39 < "particleEmittersOn" : [ "iceAmmo" ], < "particleEmittersOff" : [ "poisonAmmo" ] --- > "particleEmittersOff" : [ "fireAmmo", "electricAmmo", "poisonAmmo" ], > "particleEmittersOn" : [ "iceAmmo" ] > } > }, > "4" : { > "frames" : 1, > "properties" : { > "particleEmittersOff" : [ "fireAmmo", "iceAmmo", "poisonAmmo" ], > "particleEmittersOn" : [ "electricAmmo" ] > } > }, > "5" : { > "frames" : 1, > "properties" : { > "particleEmittersOff" : [ "fireAmmo", "iceAmmo", "electricAmmo" ], > "particleEmittersOn" : [ "poisonAmmo" ] 47c61 < "image" : ":poison." --- > "image" : ":explosive." 53a68,77 > }, > "4" : { > "properties" : { > "image" : ":electric." > } > }, > "5" : { > "properties" : { > "image" : ":poison." > } 62c86 < "poisonAmmo" : { --- > "fireAmmo" : { 65c89 < "emissionRate" : 1.0, --- > "emissionRate" : 3.0, 67,69c91,93 < { "particle" : "poisondrip2" }, < { "particle" : "poisondrip2" }, < { "particle" : "poisondrip2" } --- > { "particle" : "fireember" }, > { "particle" : "fireember" }, > { "particle" : "fireember" } 78a103,124 > }, > "electricAmmo" : { > "transformationGroups" : ["weapon"], > "offsetRegion" : [0, 0, 1.5, 0], > "emissionRate" : 1.0, > "particles" : [ > { "particle" : "teslabolt" }, > { "particle" : "electricalburn" }, > { "particle" : "electricalburn" }, > { "particle" : "electricswoosh2" }, > { "particle" : "electricswoosh2" } > ] > }, > "poisonAmmo" : { > "transformationGroups" : ["weapon"], > "offsetRegion" : [0, 0, 1.5, 0], > "emissionRate" : 1.0, > "particles" : [ > { "particle" : "poisondrip2" }, > { "particle" : "poisondrip2" }, > { "particle" : "poisondrip2" } > ] 98c144 < "energyUsage" : 19.5 --- > "energyUsage" : 20 101,102c147,148 < "projectileType" : "poisonbolt", < "energyUsage" : 25 --- > "projectileType" : "explosivebolt", > "energyUsage" : 40 106c152,160 < "energyUsage" : 25 --- > "energyUsage" : 30 > }, > { > "projectileType" : "electricbolt", > "energyUsage" : 30 > }, > { > "projectileType" : "poisonbolt", > "energyUsage" : 30 items\active\weapons\other\adaptablecrossbow\adaptablecrossbow.activeitem 9c9 < "level" : 1, --- > "level" : 4, 40,41c40,41 < "baseDps" : 5.5, < "energyUsage" : 19.5, --- > "baseDps" : 6.0, > "energyUsage" : 20, items\active\weapons\other\adaptablecrossbow\adaptablecrossbow.frames 4c4 < "dimensions" : [3, 1], --- > "dimensions" : [5, 1], 6c6 < ["wooden.1", "poison.1", "ice.1"] --- > ["wooden.1", "explosive.1", "ice.1", "electric.1", "poison.1" ] items\active\weapons\other\electricrailgun\electricrailgun.activeitem 21a22 > "middlefullbright" : "electricrailgunfullbright.png", 25a27,31 > "lights" : { "glow" : { > "active" : true, > "position" : [0.75, 0.5], > "color" : [101, 52, 120] > }}, items\active\weapons\other\electricrailgun\electricrailgun.animation 56a57,74 > "middlefullbright" : { > "properties" : { > "centered" : true, > "offset" : [0.9, 0.6], > "zLevel" : 1, > "transformationGroups" : ["weapon"], > "fullbright" : true > }, > "partStates" : { > "middle" : { > "idle" : { > "properties" : { > "image" : ":idle." > } > } > } > } > }, items\active\weapons\other\exmachina\exmachina.activeitem 63,66c63,71 < "muzzleOffset" : [2.875, 0], < "laserColor" : [255, 0, 0, 128], < "laserLength" : 60, < "segments" : 6 --- > "beams" : [ > { > "offset" : [2.875, 0], > "color" : [255, 0, 0, 128], > "length" : 60, > "segments" : 6, > "angle" : 0 > } > ] items\active\weapons\other\gristlegun\gristlegun.activeitem 34c34 < "fire" : [ "/sfx/gun/bonepistol.ogg" ] --- > "fire" : [ "/sfx/gun/gristlegun3.ogg" ] 49c49 < "baseDps" : 4.25, --- > "baseDps" : 5, 57c57 < "knockback" : 4, --- > "knockback" : 8, 59c59,60 < "bounces" : 1 --- > "bounces" : 1, > "damageKind" : "poisonbullet" items\active\weapons\other\magnorbs\magnorbs.animation 71c71 < "shieldPoly" : [ [-0.25, -1.75], [-0.25, 2.0], [0.75, 1.0], [0.75, -0.75] ] --- > "shieldPoly" : [ [0.0, -1.75], [0.0, 2.25], [0.875, 1.0], [0.875, -0.5] ] items\active\weapons\other\soulseeker\soulseeker.activeitem 24c24 < "fire" : [ "/sfx/melee/swing_broadsword.ogg" ] --- > "fire" : [ "/sfx/melee/soulseeker_swing.ogg" ] items\active\weapons\protectorate\brokenprotectoratebroadsword.activeitem 43c43 < "knockback" : [20, 30], --- > "knockback" : 30, items\active\weapons\whip\energywhip.activeitem 3c3 < "level" : 3, --- > "level" : 6, 43,45c43,45 < "fireTime" : 1.0, < "chainDps" : 2.0, < "crackDps" : 6.0, --- > "fireTime" : 1.1, > "chainDps" : 2.4, > "crackDps" : 7.2, items\active\weapons\whip\ropewhip.activeitem 3c3 < "level" : 3, --- > "level" : 2, 5c5 < "rarity" : "legendary", --- > "rarity" : "Uncommon", 36,37c36,37 < "fireTime" : 0.8, < "chainDps" : 2.0, --- > "fireTime" : 1.2, > "chainDps" : 0.0, 94c94 < "length" : [3, 15], --- > "length" : [3, 14], items\active\weapons\whip\vinewhip.activeitem 3c3 < "level" : 3, --- > "level" : 4, 5c5 < "rarity" : "legendary", --- > "rarity" : "Rare", 41,43c41,43 < "fireTime" : 1.4, < "chainDps" : 2.0, < "crackDps" : 6.0, --- > "fireTime" : 1.0, > "chainDps" : 1.5, > "crackDps" : 4.5, 47c47 < "damageSourceKind" : "poison", --- > "damageSourceKind" : "poisonlash", items\active\weapons\whip\whipcrack.lua 11a12,13 > animator.setAnimationState("attack", "idle") > activeItem.setScriptedAnimationParameter("chains", nil) 109c111,113 < self.weapon:setDamage(self.damageConfig, {self.chain.startOffset, {self.chain.endOffset[1] + 0.75, self.chain.endOffset[2]}}, self.fireTime) --- > if self.damageConfig.baseDamage > 0 then > self.weapon:setDamage(self.damageConfig, {self.chain.startOffset, {self.chain.endOffset[1] + 0.75, self.chain.endOffset[2]}}, self.fireTime) > end 123a128 > activeItem.setScriptedAnimationParameter("chains", nil) items\active\weapons\whip\altabilities\energyorb.altability 18c18 < "baseDamage" : 2, --- > "baseDamage" : 2.5, items\active\weapons\whip\altabilities\energyorb.lua 73a74 > activeItem.setScriptedAnimationParameter("chains", nil) items\armors\backitems\oxygentank\oxygentank.back 6c6 < "description" : "An oxygen tank. Never drown again.", --- > "description" : "An oxygen tank. Unfortunately, it's empty.", items\buildscripts\abilities.lua 20d19 < -- TODO remove altAbilitySource - load abilities entirely from *AbilityType 22c21 < return getAbilitySourceFromType(abilityType) or parameters[sourceKey] or config[sourceKey] --- > return getAbilitySourceFromType(abilityType) or config[sourceKey] 38a38,39 > > parameters[abilitySlot .. "AbilityType"] = abilityType 53d53 < -- TODO randomize ability TYPE, not SOURCE 55,56d54 < < -- TODO: save ability type to parameters here so generated weapon abilities don't change items\buildscripts\weaponabilities.config 48c48,50 < "adaptableammo" : "/items/active/weapons/other/adaptablecrossbow/adaptableammo.altability" --- > "adaptableammo" : "/items/active/weapons/other/adaptablecrossbow/adaptableammo.altability", > "evileye" : "/items/active/weapons/other/evileye/evileye.altability", > "tentaclegun" : "/items/active/weapons/other/tentaclegun/tentaclegun.altability" items\guns\unsorted\test.lua 2c2 < world.logInfo("firableItem: init") --- > sb.logInfo("firableItem: init") 6c6 < world.logInfo("firableItem: uninit") --- > sb.logInfo("firableItem: uninit") 10c10 < world.logInfo("fireableItem: update with dt %s", dt) --- > sb.logInfo("fireableItem: update with dt %s", dt) 14c14 < world.logInfo("firableItem: fireTriggered") --- > sb.logInfo("firableItem: fireTriggered") 18c18 < world.logInfo("firableItem: startTriggered") --- > sb.logInfo("firableItem: startTriggered") 22c22 < world.logInfo("firableItem: attemptedFire") --- > sb.logInfo("firableItem: attemptedFire") 26c26 < world.logInfo("firableItem: endFire") --- > sb.logInfo("firableItem: endFire") 30c30 < world.logInfo("firableItem: triggerWindup") --- > sb.logInfo("firableItem: triggerWindup") 34c34 < world.logInfo("firableItem: continueFire") --- > sb.logInfo("firableItem: continueFire") 38c38 < world.logInfo("firableItem: triggerCooldown") --- > sb.logInfo("firableItem: triggerCooldown") monsters\monster.lua 31c31 < if animator.hasSound("deathPuff") then --- > if animator.hasSound("deathPuff") then 37c37 < --- > 76c76 < return --- > return 256c256 < tag = nil --- > tag = nil 322c322 < transformationGroup = nil --- > transformationGroup = nil 351c351 < touchDamage = false --- > touchDamage = false 365c365 < aggressive = false --- > aggressive = false 400c400 < active = true --- > active = true 431c431 < world.logInfo("The monster's musicStagehand parameter (a uniqueId) must be configured for startBattleMusic") --- > sb.logInfo("The monster's musicStagehand parameter (a uniqueId) must be configured for startBattleMusic") 451c451 < active = true --- > active = true monsters\simplerangedattack.lua 11c11 < config.getParameter("projectileType", "bullet-1"), --- > config.getParameter("projectileType", "bullet-1"), 28c28 < rangedAttack.projectileConfig = projectileConfig --- > rangedAttack.projectileConfig = projectileConfig 40c40 < -- world.logInfo("Ranged attack firing with projectile %s, position %s, direction %s, trackEntity %s, projectileConfig %s", projectile or rangedAttack.projectile, monster.toAbsolutePosition(rangedAttack.sourceOffset), aimVector or rangedAttack.aimVector, trackEntity or false, projectileConfig or rangedAttack.projectileConfig) --- > -- sb.logInfo("Ranged attack firing with projectile %s, position %s, direction %s, trackEntity %s, projectileConfig %s", projectile or rangedAttack.projectile, monster.toAbsolutePosition(rangedAttack.sourceOffset), aimVector or rangedAttack.aimVector, trackEntity or false, projectileConfig or rangedAttack.projectileConfig) monsters\boss\dragonboss\dragonboss.animation 49a50,64 > }, > "teleport" : { > "default" : "none", > "states" : { > "none" : { }, > "beamOut" : { > "frames" : 12, > "cycle" : 0.75, > "mode" : "transition", > "transition" : "none", > "properties" : { > "immediateSound" : "/sfx/tools/teleport_up.ogg" > } > } > } 80c95 < "offset" : [5, 3], --- > "offset" : [5.625, 3.5], 102a118,152 > }, > "beamoutBase" : { > "properties" : { > "fullbright" : true, > "centered" : true, > "zLevel" : 3, > "offset": [5.875, 9.75] > }, > "partStates" : { > "teleport" : { > "none" : { }, > "beamOut" : { > "properties" : { > "image" : "/animations/teleport/orangewarpout.png:" > } > } > } > } > }, > "beamoutBeam" : { > "properties" : { > "fullbright" : true, > "centered" : true, > "zLevel" : 3, > "offset" : [5.875, 39.75] > }, > "partStates" : { > "teleport" : { > "beamOut" : { > "properties" : { > "image" : "/animations/teleport/orangewarpoutbeam.png:?scalenearest=1;60;" > } > } > } > } 115a166,168 > "emissionRate" : 1.0, > "offsetRegion" : [-5, -9, 5, 5], > "burstCount" : 2, 117,133c170,197 < { "particle" : "monstersplosion" }, < { "particle" : "deathember" }, < { "particle" : "deathember" }, < { "particle" : "deathember" }, < { "particle" : "deathember" }, < { "particle" : "deathember" }, < { "particle" : "deathember" }, < { "particle" : "deathember" }, < { "particle" : "deathember" }, < { "particle" : "deathfizz1left" }, < { "particle" : "deathfizz1right" }, < { "particle" : "deathfizz2left" }, < { "particle" : "deathfizz2right" }, < { "particle" : "deathfizz3left" }, < { "particle" : "deathfizz3right" }, < { "particle" : "deathfizz4left" }, < { "particle" : "deathfizz4right" } --- > { > "particle" : { > "type" : "animated", > "animation" : "/animations/puff2c/puff2c.animation", > "size" : 1, > "angularVelocity" : 35, > "fade" : 1, > "destructionTime" : 7, > "position" : [0, 0], > "initialVelocity" : [0, 0], > "finalVelocity" : [0, 0], > "approach" : [1, 1], > "timeToLive" : 0.4, > "layer" : "middle" > } > }, > { "particle" : "shellshard1" }, > { "particle" : "shellshard2" }, > { "particle" : "shellshard3" }, > { "particle" : "shellshard4" }, > { "particle" : "shellshard5" }, > { "particle" : "shellshard6" }, > { "particle" : "dust4" }, > { "particle" : "dust4" }, > { "particle" : "dust4" }, > { "particle" : "dust4" }, > { "particle" : "dust4" }, > { "particle" : "dust4" } monsters\boss\dragonboss\dragonboss.monstertype 26a27,28 > "selfDamagePoly" : [ [-4, -13.5], [4, -13.5], [13, 1], [13, 4], [8, 7], [-8, 7], [-13, 4], [-13, 1] ], > 29c31 < "collisionPoly" : [ [-4, -13.5], [4, -13.5], [9, 5], [-9, 5] ], --- > "collisionPoly" : [ [-13, -13.5], [-13, 7], [13, 7], [13, -13.5] ], monsters\generated\swimming\attackstate.lua 12c12 < -- world.logInfo("Entering attack state") --- > -- sb.logInfo("Entering attack state") 19c19 < --- > 25c25 < -- world.logInfo("winding up...") --- > -- sb.logInfo("winding up...") 33c33 < -- world.logInfo("charging...") --- > -- sb.logInfo("charging...") 51c51 < --- > monsters\generated\swimming\fleestate.lua 14c14 < -- world.logInfo("Entering flee state") --- > -- sb.logInfo("Entering flee state") monsters\generated\swimming\flopstate.lua 18,19c18,19 < -- world.logInfo("Entering flop state") < --- > -- sb.logInfo("Entering flop state") > 47c47 < --- > monsters\generated\swimming\wanderstate.lua 22c22 < -- world.logInfo("Entering wander state") --- > -- sb.logInfo("Entering wander state") 40c40 < --- > monsters\ghosts\lumoth\lumoth.animation 30,33c30 < "mode" : "loop", < "frameProperties" : { < "immediateSound" : [ "/sfx/npc/monsters/batong_flap3.ogg", "" ] < } --- > "mode" : "loop" monsters\mission\ballista\ballista.animation 144a145,146 > "burstCount" : 60, > "offsetRegion" : [-4, -2.375, 4, 2.375], 145a148 > { "particle" : "woodshard" } monsters\mission\ballista\ballista.monstertype 35c35 < "knockoutTime" : 0.3, --- > "knockoutTime" : 0.0, 37d36 < "damage" : "stunned" 69c68 < "baseValue" : 0.0 --- > "baseValue" : 50 72a72,83 > }, > "fireStatusImmunity" : { > "baseValue" : 1.0 > }, > "iceStatusImmunity" : { > "baseValue" : 1.0 > }, > "electricStatusImmunity" : { > "baseValue" : 1.0 > }, > "poisonStatusImmunity" : { > "baseValue" : 1.0 monsters\mission\kluextotem\kluextotem.monstertype 11c11 < "dropPools" : [ ], --- > "dropPools" : [ { "default" : "kluexsentryTreasure", "bow" : "kluexsentryHunting" } ], monsters\mission\minidrone\minidrone.monstertype 13,19c13 < "dropPools" : [ < { < "default" : "MinidroneTreasure", < "bow" : "MinidroneTreasure", < "brain" : "MinidroneTreasure" < } < ], --- > "dropPools" : [ { "default" : "minidroneTreasure" } ], monsters\walkers\adultpoptop\motherpoptop.monstertype 11c11 < "dropPools" : [ { "default" : "adultpoptopTreasure", "bow" : "adultpoptopHunting" } ], --- > "dropPools" : [ { "default" : "motherpoptopTreasure", "bow" : "motherpoptopTreasure" } ], 153,154c153,154 < "walkSpeed" : 2, < "runSpeed" : 3, --- > "walkSpeed" : 9, > "runSpeed" : 11, 195c195 < "baseValue" : 180 --- > "baseValue" : 500 npcs\mission\castlearcher.npctype 11,12c11 < "damageTeamType" : "friendly", < "damageTeam" : 0, --- > "damageTeamType" : "assistant", npcs\story\baron.npctype 64,70c64 < "Relieved. I think my keep is quite safe for now." < ] < } < }, < "bossSpawn" : { < "default" : { < "default" : [ --- > "Relieved. I think my keep is quite safe for now.", 83a78,84 > ] > } > }, > "beamOut" : { > "default" : { > "default" : [ > "See you at the outpost, man. Thanks for keeping me safe, that was sick." npcs\story\lanafight.npctype 60a61,67 > "statusControllerSettings" : { > "stats" : { > "powerMultiplier" : { > "baseValue" : 0.3 > } > } > }, npcs\story\nurufight.npctype 26c26,27 < "leapChance" : 1.0 --- > "leapChance" : 1.0, > "cantReachDialog" : false 66a68,76 > > "statusControllerSettings" : { > "stats" : { > "powerMultiplier" : { > "baseValue" : 0.3 > } > } > }, > objects\biome\heck\heckbush1\heckbush1.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\heck\heckbush10\heckbush10.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\heck\heckbush2\heckbush2.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\heck\heckbush3\heckbush3.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\heck\heckbush4\heckbush4.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\heck\heckbush5\heckbush5.object 10c10 < "race" : "apex", --- > "race" : "generics", objects\biome\heck\heckbush6\heckbush6.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\heck\heckbush7\heckbush7.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\heck\heckbush8\heckbush8.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\heck\heckbush9\heckbush9.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\jungle\junglebush1\junglebush1.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\jungle\junglebush10\junglebush10.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\jungle\junglebush11\junglebush11.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\jungle\junglebush12\junglebush12.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\jungle\junglebush13\junglebush13.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\jungle\junglebush14\junglebush14.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\jungle\junglebush15\junglebush15.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\jungle\junglebush16\junglebush16.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\jungle\junglebush17\junglebush17.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\jungle\junglebush18\junglebush18.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\jungle\junglebush2\junglebush2.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\jungle\junglebush3\junglebush3.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\jungle\junglebush4\junglebush4.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\jungle\junglebush5\junglebush5.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\jungle\junglebush6\junglebush6.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\jungle\junglebush7\junglebush7.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\jungle\junglebush8\junglebush8.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\jungle\junglebush9\junglebush9.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\scorchedcity\bombsheltershelf1\bombsheltershelf1.object 7c7 < "description" : "There are some healing items on this shelf.", --- > "description" : "Everything you need to survive. Almost.", 12,13c12,13 < /* todo < "apexDescription" : "There are some healing items on this shelf.", --- > > "apexDescription" : "There are some useful items on this shelf.", 15,20c15,20 < "floranDescription" : "There are some healing items on this shelf.", < "glitchDescription" : "There are some healing items on this shelf.", < "humanDescription" : "There are some healing items on this shelf.", < "hylotlDescription" : "There are some healing items on this shelf.", < "novakidDescription" : "There are some healing items on this shelf.", < */ --- > "floranDescription" : "Shelf containss itemss.", > "glitchDescription" : "Relieved. This shelf contains many useful items.", > "humanDescription" : "This would be useful if there was some sort of disaster.", > "hylotlDescription" : "This was built for function, not beauty.", > "novakidDescription" : "This sure would be useful in a pinch!", > objects\biome\scorchedcity\dumpster\dumpster.object 12,13c12,13 < /* todo < "apexDescription" : "A dumpster.", --- > > "apexDescription" : "A standard dumpster.", 15,20c15,20 < "floranDescription" : "A dumpster.", < "glitchDescription" : "A dumpster.", < "humanDescription" : "A dumpster.", < "hylotlDescription" : "A dumpster.", < "novakidDescription": "A dumpster.", < */ --- > "floranDescription" : "Dumpssster.", > "glitchDescription" : "Surprised. A dumpster.", > "humanDescription" : "Is dumpster diving still a thing?", > "hylotlDescription" : "A dumpster. Filthy but necessary.", > "novakidDescription": "A big ol' dumpster.", > objects\biome\scorchedcity\lasertripwire\lasertripwire.object 14,20c14,20 < // "apexDescription" : "-todo-", < // "avianDescription" : "-todo-", < // "floranDescription" : "-todo-", < // "glitchDescription" : "-todo-", < // "humanDescription" : "-todo-", < // "hylotlDescription" : "-todo-", < // "novakidDescription" : "-todo-", --- > "apexDescription" : "A laser tripwire. Useful for traps.", > "avianDescription" : "This laser tripwire could be useful.", > "floranDescription" : "Lassser tripwire.", > "glitchDescription" : "Impressed. A tripwire with a laser.", > "humanDescription" : "Crossing this laser beam might trigger something!", > "hylotlDescription" : "A laser tripwire, useful for fooling trespassers.", > "novakidDescription" : "This reminds me of all those bank heists...", objects\biome\smashablerocks\copperrock\copperrock.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\smashablerocks\copperrocksmall\copperrocksmall.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\smashablerocks\diamondrock\diamondrock.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\smashablerocks\diamondrocksmall\diamondrocksmall.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\smashablerocks\goldrock\goldrock.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\smashablerocks\goldrocksmall\goldrocksmall.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\smashablerocks\platinumrock\platinumrock.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\smashablerocks\platinumrocksmall\platinumrocksmall.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\smashablerocks\silverrock\silverrock.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\smashablerocks\silverrocksmall\silverrocksmall.object 10c10 < "race" : "apex", --- > "race" : "generic", objects\biome\tentacle\tentacleegg\tentacleegg.object 9c9 < "race" : "tentacle", --- > "race" : "generic", 11,17c11,17 < "apexDescription" : "A hand basin and mirror.", < "avianDescription" : "It's a hand basin.", < "floranDescription" : "Clean water for sssplashing or washing.", < "glitchDescription" : "Jealous. Some other students brush their teeth here. Sometimes I polish my jaw.", < "humanDescription" : "I don't have time to brush my teeth!", < "hylotlDescription" : "Sometimes I come in here and turn the tap on. The sound of running water is calming.", < "novakidDescription" : "A hand basin an' a mirror.", --- > "apexDescription" : "-todo-", > "avianDescription" : "-todo-", > "floranDescription" : "-todo-", > "glitchDescription" : "-todo-", > "humanDescription" : "-todo-", > "hylotlDescription" : "-todo-", > "novakidDescription" : "-todo-", objects\biome\tentacle\tentaclepopbig\tentaclepopbig.object 8c8 < "description" : "A large breakable capsule. Wonder what's inside.", --- > "description" : "-todo-", 10c10 < "race" : "apex", --- > "race" : "generic", 12,18c12,18 < "apexDescription" : "A capsule. These often contain supplies.-todo-", < "avianDescription" : "A capsule. Something is inside, I wonder what it is...", < "floranDescription" : "Sssmash it open! Get the goodiess insside!", < "glitchDescription" : "Destructive. It is difficult to resist the urge to break this capsule.", < "humanDescription" : "I think there's something in there. I can probably break it open.", < "hylotlDescription" : "Sometimes force can yield rewards.", < "novakidDescription" : "This capsule'd be perfect for target practice.", --- > "apexDescription" : "-todo-", > "avianDescription" : "-todo-", > "floranDescription" : "-todo-", > "glitchDescription" : "-todo-", > "humanDescription" : "-todo-", > "hylotlDescription" : "-todo-", > "novakidDescription" : "-todo-", objects\biome\tentacle\tentaclepopmed\tentaclepopmed.object 10c10 < "race" : "apex", --- > "race" : "generic", 12,18c12,18 < "apexDescription" : "A capsule. These often contain supplies.-todo-", < "avianDescription" : "A capsule. Something is inside, I wonder what it is...", < "floranDescription" : "Sssmash it open! Get the goodiess insside!", < "glitchDescription" : "Destructive. It is difficult to resist the urge to break this capsule.", < "humanDescription" : "I think there's something in there. I can probably break it open.", < "hylotlDescription" : "Sometimes force can yield rewards.", < "novakidDescription" : "This capsule'd be perfect for target practice.", --- > "apexDescription" : "-todo-", > "avianDescription" : "-todo-", > "floranDescription" : "-todo-", > "glitchDescription" : "-todo-", > "humanDescription" : "-todo-", > "hylotlDescription" : "-todo-", > "novakidDescription" : "-todo-", objects\biome\tentacle\tentaclepopsmall\tentaclepopsmall.object 10c10 < "race" : "apex", --- > "race" : "generic", 12,18c12,18 < "apexDescription" : "A capsule. These often contain supplies.-todo-", < "avianDescription" : "A capsule. Something is inside, I wonder what it is...", < "floranDescription" : "Sssmash it open! Get the goodiess insside!", < "glitchDescription" : "Destructive. It is difficult to resist the urge to break this capsule.", < "humanDescription" : "I think there's something in there. I can probably break it open.", < "hylotlDescription" : "Sometimes force can yield rewards.", < "novakidDescription" : "This capsule'd be perfect for target practice.", --- > "apexDescription" : "-todo-", > "avianDescription" : "-todo-", > "floranDescription" : "-todo-", > "glitchDescription" : "-todo-", > "humanDescription" : "-todo-", > "hylotlDescription" : "-todo-", > "novakidDescription" : "-todo-", objects\biome\tentacle\tentaclespike\tentaclespike.object 12,18c12,18 < "apexDescription" : "A sharp spike, made of bone.", < "avianDescription" : "The bone looks razor sharp.", < "floranDescription" : "Sssharp and pointy.", < "glitchDescription" : "Cautious. Sharp bone could penetrate Glitch shell.", < "humanDescription" : "I'd better not touch these.", < "hylotlDescription" : "I will gracefully avoid these.", < "novakidDescription" : "Best to avoid that kinda thing.", --- > "apexDescription" : "-todo-", > "avianDescription" : "-todo-", > "floranDescription" : "-todo-", > "glitchDescription" : "-todo-", > "humanDescription" : "-todo-", > "hylotlDescription" : "-todo-", > "novakidDescription" : "-todo-", objects\crafting\capturestation\capturestation.object 10,11c10,11 < "title" : " Pet Station", < "subtitle" : " For everything to do with capturing pets!", --- > "title" : "Pet Station", > "subtitle" : "For everything to do with capturing pets", objects\crafting\fossilstation\fossilstation.object 11,12c11,12 < "title" : " Fossil Station", < "subtitle" : " Fossil hammers and display stands.", --- > "title" : "Fossil Station", > "subtitle" : "Fossil hammers and display stands", objects\crafting\pethealingstation\pethealingstation.object 7c7 < "shortdescription" : "^orange;Creature Healing Station^white;", --- > "shortdescription" : "^orange;Pet Healing Station^white;", 15c15 < "subtitle" : "For Sad Pets", --- > "subtitle" : "For sad pets", objects\crafting\pixelcompressor\pixelcompressor.object 11,12c11,12 < "title" : " Pixel Compressor", < "subtitle" : " Safely compress your pixels!", --- > "title" : "Pixel Compressor", > "subtitle" : "Safely compress your pixels", objects\crafting\refinery\refinery.object 7c7 < "subtitle" : "Ore into pixels", --- > "subtitle" : "Turn ores into pixels", objects\crafting\skyrail\skyrailtable.object 10,11c10,11 < "title" : " SKYRAIL STATION", < "subtitle" : " Build your very own skyrail network to travel in style!", --- > "title" : "Skyrail Station", > "subtitle" : "Build your very own skyrail network to travel in style", objects\crafting\upgradeablecraftingobjects\inventorstable\inventorstable.object 63,64c63,64 < "title" : " INVENTOR'S TABLE", < "subtitle" : " Innovation Station", --- > "title" : "Inventor's Table", > "subtitle" : "Innovation station", 109,110c109,110 < "title" : " ENGINEER'S TABLE", < "subtitle" : " Innovation Station", --- > "title" : "Engineer's Table", > "subtitle" : "Innovation station", 155,156c155,156 < "title" : " ARCHITECT'S TABLE", < "subtitle" : " Innovation Station", --- > "title" : "Architecht's Table", > "subtitle" : "Innovation station", objects\crafting\wiringstation\wiringstation.object 10,11c10,11 < "title" : " WIRING STATION", < "subtitle" : " For everything to do with wiring!", --- > "title" : "Wiring Station", > "subtitle" : "For everything to do with wiring", objects\fossils\displaystands\fossildisplay.lua 12c12 < --world.logInfo("fossilDisplay Init: fossilList=%s complete=%s",self.fossilList,self.isComplete) --- > --sb.logInfo("fossilDisplay Init: fossilList=%s complete=%s",self.fossilList,self.isComplete) 24c24 < --world.logInfo("Contents changed") --- > --sb.logInfo("Contents changed") 33c33 < --world.logInfo("update") --- > --sb.logInfo("update") 38c38 < self.needsUpdate=false --- > self.needsUpdate=false 50c50 < --world.logInfo("Checking Object=%s",item.name) --- > --sb.logInfo("Checking Object=%s",item.name) 64c64 < ejectItemFromSlot(i) --- > ejectItemFromSlot(i) 80c80 < --world.logInfo("Ejecting Object=%s",item.name) --- > --sb.logInfo("Ejecting Object=%s",item.name) 96c96 < --world.logInfo("Sorting Object=%s",fossil.name) --- > --sb.logInfo("Sorting Object=%s",fossil.name) 133c133 < --world.logInfo("Displaying %s in slot %s",displayImage,tagName) --- > --sb.logInfo("Displaying %s in slot %s",displayImage,tagName) 162c162 < --world.logInfo("Completed fossil") --- > --sb.logInfo("Completed fossil") 180c180 < local key=raceDescriptorKeyList[i] --- > local key=raceDescriptorKeyList[i] objects\outpost\customsign\customsign.lua 9c9 < --- > 43,45c43,45 < storage.frame = 2 < else < storage.frame = 1 --- > storage.frame = 2 > else > storage.frame = 1 80c80 < if storage.isOn then --- > if storage.isOn then 100,103c100,103 < if storage.frame < #self.signDirectiveStrings then < storage.frame = storage.frame + 1 < else < storage.frame = 2 --- > if storage.frame < #self.signDirectiveStrings then > storage.frame = storage.frame + 1 > else > storage.frame = 2 129c129 < if self.scanTimer <= 0 then --- > if self.scanTimer <= 0 then 141c141 < function updateFrameSegments() --- > function updateFrameSegments() 143,145c143,145 < --world.logInfo("//////////Checking frame//////////") < --world.logInfo("%s %s at %s", object.name(), entity.id(), object.position()) < --world.logInfo("Old Spaces: %s", storage.nearSpaces) --- > --sb.logInfo("//////////Checking frame//////////") > --sb.logInfo("%s %s at %s", object.name(), entity.id(), object.position()) > --sb.logInfo("Old Spaces: %s", storage.nearSpaces) 154,155c154,155 < --world.logInfo("%s, %s", v[1] ,signPos) < if signPos[2] == v[1][2] and signPos[1] <= v[1][1] + 2 and signPos[1] >= v[1][1] - 1 then --- > --sb.logInfo("%s, %s", v[1] ,signPos) > if signPos[2] == v[1][2] and signPos[1] <= v[1][1] + 2 and signPos[1] >= v[1][1] - 1 then 172c172 < end --- > end 182,184c182,184 < < --world.logInfo("New Spaces: %s", storage.nearSpaces) < if needsRedraw then --- > > --sb.logInfo("New Spaces: %s", storage.nearSpaces) > if needsRedraw then 187c187 < --world.logInfo("----------------------------------") --- > --sb.logInfo("----------------------------------") objects\protectorate\objects\protectorateinfobooth\protectorateinfobooth.object 70d69 < "You can craft your pixels into valuable goods by taking them to a merchant!", objects\spawner\monsterspawner.lua 6c6 < world.logInfo("Monster spawner at %s is missing configuration! Prepare for some serious Lua errors!", object.position()) --- > sb.logInfo("Monster spawner at %s is missing configuration! Prepare for some serious Lua errors!", object.position()) 12c12 < storage.cooldown = storage.cooldown or util.randomInRange(config.getParameter("spawner.frequency")) --- > storage.cooldown = storage.cooldown or util.randomInRange(self.frequency or {0, 0}) 28c28,36 < storage.cooldown = util.randomInRange(config.getParameter("spawner.frequency")) --- > storage.cooldown = util.randomInRange(self.frequency or {0, 0}) > end > end > end > > function die() > if self.trigger == "break" then > for i = 1, storage.stock do > spawn() 46,47c54,55 < local monsterType = util.randomFromList(config.getParameter("spawner.monsterTypes")) < self.monsterParams.level = util.randomInRange(config.getParameter("spawner.monsterLevel")) --- > local monsterType = util.randomFromList(self.monsterTypes) > self.monsterParams.level = self.monsterLevel and util.randomInRange(self.monsterLevel) or world.threatLevel() 49c57 < local monsterId = world.spawnMonster(monsterType, spawnPosition, self.monsterParams) --- > local monsterId = world.spawnMonster(monsterType, spawnPosition, self.monsterParams or {}) objects\spawner\monsterspawner.object 30c30 < "monsterLevel" : [1, 10], //level of monster to spawn (random within range) --- > "monsterLevel" : [1, 10], //level of monster to spawn (random within range, or leave blank for world threat level) 38c38 < "trigger" : null, //options include "wire", "interact", null (periodic) --- > "trigger" : null, //options include "wire", "interact", "break", null (periodic) objects\spawner\colonydeed\colonydeed.lua 7c7 < world.logInfo("Colony deed at %s is missing configuration.", object.position()) --- > sb.logInfo("Colony deed at %s is missing configuration.", object.position()) 238c238 < --- > 438c438 < world.logInfo("colonydeed can't be used to spawn entity type '" .. tenant.spawn .. "'") --- > sb.logInfo("colonydeed can't be used to spawn entity type '" .. tenant.spawn .. "'") objects\traps\wallb\wallb.object 14,20c14,20 < // "apexDescription" : "-todo-", < // "avianDescription" : "-todo-", < // "floranDescription" : "-todo-", < // "glitchDescription" : "-todo-", < // "humanDescription" : "-todo-", < // "hylotlDescription" : "-todo-", < // "novakidDescription" : "-todo-", --- > "apexDescription" : "This looks small but causes a big explosion.", > "avianDescription" : "This little thing can cause an explosion.", > "floranDescription" : "Thiss caussse big boom!", > "glitchDescription" : "Cautious. This may look small, but it is powerful", > "humanDescription" : "This thing can be rigged to explode!", > "hylotlDescription" : "A useful security device. If you like explosions.", > "novakidDescription" : "This here lil' thing can cause one hell of a boom!", objects\wired\door\door.lua 73c73,75 < if object.isInboundNodeConnected(0) or storage.locked then --- > if capability == 'lockedDoor' then > return storage.locked > elseif object.isInboundNodeConnected(0) or storage.locked then objects\wired\forcepad\jumppad.object 7c7 < "description" : "Boing boing!", --- > "description" : "Repels objects with a strong elastic force", 12a13,15 > > "floranDescription" : "Repelss objectss with a ssstrong elastic force", > "glitchDescription" : "Impressed. Repels objects with a strong elastic force", objects\wired\landmine\landmine.object 10c10 < "description" : "Watch your step!", --- > "description" : "Watch your step, this looks explosive!", 12a13,15 > > "floranDescription" : "Watch your ssstep!", > "glitchDescription" : "Caution. Watch your step.", objects\wired\lightsensor\lightsensor.object 11a12,14 > "floranDescription" : "Activatesss the bottom node in dim light and the top node in bright light.", > "glitchDescription" : "Thoughtful. Activates the bottom node in dim light and the top node in bright light.", > objects\wired\liquidsensor\liquidsensor.object 11a12,15 > "floranDescription" : "Don't use your finger! This ssensor indicatesss the presence of liquidss.", > "glitchDescription" : "Impressed. This trusty sensor indicates the presence of liquids.", > > objects\wired\logic\and.object 6,7c6,7 < "description" : "", < "shortdescription" : "And Switch", --- > "description" : "An /'AND'/ switch. Requires all inputs to be /'on'/ to work.", > "shortdescription" : "AND Switch", 11a12,14 > > "floranDescription" : "An /'AND'/ ssswitch. Requiress all inputs to be /'on'/ to work.", > "glitchDescription" : "Pleased. An /'AND'/ switch. Requires all inputs to be /'on'/ to work.", objects\wired\logic\bulb.object 6c6 < "description" : "", --- > "description" : "An output light. Indicates whether something is on or off.", 11a12,14 > > "floranDescription" : "An output light. Indicatesss whether ssomething is on or off.", > "glitchDescription" : "Remark. An output light. Indicates whether something is on or off.", objects\wired\logic\countdowntimer.object 6c6 < "description" : "", --- > "description" : "A timer that stays active for a set duration.", 11a12,14 > > "floranDescription" : "A timer that sstays active for a ssset duration.", > "glitchDescription" : "Impressed. A timer that stays active for a set duration.", objects\wired\logic\delay.object 6c6 < "description" : "", --- > "description" : "A circuit that relays signals after a set delay.", 11a12,14 > > "floranDescription" : "A circuit that relays signalsss after a sset delay.", > "glitchDescription" : "Remark. A circuit that relays signals after a set delay.", objects\wired\logic\dlatch.object 6c6 < "description" : "", --- > "description" : "A Latch. Can be used to store a wire state.", 11a12,14 > > "floranDescription" : "A Latch. Can be used to sstore a wire sstate.", > "glitchDescription" : "Fascinated. A Latch. Can be used to store a wire state.", objects\wired\logic\not.object 6,7c6,7 < "description" : "", < "shortdescription" : "Not Switch", --- > "description" : "", > "shortdescription" : "NOT Switch", objects\wired\logic\or.object 6,7c6,7 < "description" : "", < "shortdescription" : "Or Switch", --- > "description" : "An /'OR'/ switch. Allows you to have multiple individual inputs.", > "shortdescription" : "OR Switch", 11a12,14 > > "floranDescription" : "An /'OR'/ sswitch. Allowsss you to have multiple individual inputs.", > "glitchDescription" : "Pleased. An /'OR'/ switch. Allows you to have multiple individual inputs.", objects\wired\logic\xor.object 6,7c6,7 < "description" : "", < "shortdescription" : "X Or Switch", --- > "description" : "An /'XOR'/ switch. Requires one input to be on, and one off.", > "shortdescription" : "XOR Switch", 11a12,14 > > "floranDescription" : "An /'XOR'/ sswitch. Requiresss one input to be on, and one off.", > "glitchDescription" : "Observation. An /'XOR'/ switch. Requires one input to be on, and one off.", projectiles\activeitems\boomerang\boomerangprojectile.lua 12a13 > self.minVelocity = config.getParameter("minVelocity", 0.2) 29c30 < if (not self.ignoreTerrain and mcontroller.isColliding()) or vec2.mag(mcontroller.velocity()) < 0.2 then --- > if (not self.ignoreTerrain and mcontroller.isColliding()) or vec2.mag(mcontroller.velocity()) < self.minVelocity then 59c60 < end \ No newline at end of file --- > end projectiles\activeitems\whip\whipcrackpoison.projectile 13c13 < "damageKind" : "poison", --- > "damageKind" : "poisonlash", 16c16 < "knockback" : 15, --- > "knockback" : 10, projectiles\activeitems\whip\whipshock.projectile 9a10 > "knockbackDirectional" : true, projectiles\guns\arrows\aegisaltarrow\aegisaltarrow.projectile 9c9,10 < "knockback" : 5, --- > "knockback" : 10, > "knockbackDirectional" : true, projectiles\guns\arrows\chargedaegisaltarrow\chargedaegisaltarrow.projectile 19a20 > "knockbackDirectional" : true, projectiles\guns\arrows\chargedarrow\chargedarrow.projectile 19a20 > "knockbackDirectional" : true, projectiles\guns\arrows\chargedflamearrow\chargedflamearrow.projectile 13a14 > "knockbackDirectional" : true, projectiles\guns\arrows\chargedfrozenflamearrow\chargedfrozenflamearrow.projectile 12a13 > "knockbackDirectional" : true, projectiles\guns\arrows\chargedheartarrow\chargedheartarrow.projectile 19a20 > "knockbackDirectional" : true, projectiles\guns\arrows\chargedicearrow\chargedicearrow.projectile 12a13 > "knockbackDirectional" : true, projectiles\guns\arrows\chargedironarrow\chargedironarrow.projectile 19a20 > "knockbackDirectional" : true, projectiles\guns\arrows\chargedlightarrow\chargedlightarrow.projectile 20a21 > "knockbackDirectional" : true, projectiles\guns\arrows\chargedpoisonarrow\chargedpoisonarrow.projectile 23a24 > "knockbackDirectional" : true, projectiles\guns\arrows\chargedpurplearrow\chargedpurplearrow.projectile 19a20 > "knockbackDirectional" : true, projectiles\guns\arrows\flamearrow\flamearrow.projectile 10c10,11 < "knockback" : 5, --- > "knockback" : 10, > "knockbackDirectional" : true, projectiles\guns\arrows\flamebolt\flamebolt.projectile 8,10c8,10 < "emitters" : [ "flames" ], < "damageKindImage" : "/interface/statuses/fire.png", < "damageKind" : "bow", --- > "emitters" : [ "flamesfast" ], > "damageKind" : "firebow", > "damagePoly" : [ [8, -0.2], [8.5, -0.2], [8.5, 0.2], [8, 0.2] ], 12a13 > "knockbackDirectional" : true, 14c15 < "timeToLive" : 30, --- > "timeToLive" : 20, projectiles\guns\arrows\frozenflamearrow\frozenflamearrow.projectile 10c10,11 < "knockback" : 5, --- > "knockback" : 10, > "knockbackDirectional" : true, projectiles\guns\arrows\heartarrow\heartarrow.projectile 18c18,19 < "knockback" : 5, --- > "knockback" : 10, > "knockbackDirectional" : true, projectiles\guns\arrows\heckarrow\heckarrow.projectile 18c18,19 < "knockback" : 5, --- > "knockback" : 10, > "knockbackDirectional" : true, projectiles\guns\arrows\icearrow\icearrow.projectile 10c10,11 < "knockback" : 5, --- > "knockback" : 10, > "knockbackDirectional" : true, projectiles\guns\arrows\icebolt\icebolt.projectile 3c3 < "physics" : "arrow", --- > "physics" : "arrownosticky", 8,9c8 < "damageKindImage" : "/interface/statuses/ice.png", < "timeToLive" : 30, --- > "timeToLive" : 10, 11c10 < "light" : [13, 70, 79], --- > "lightColor" : [13, 70, 79], 13c12,13 < "knockback" : 10, --- > "knockback" : 20, > "knockbackDirectional" : true, 15c15,16 < "damageKind" : "default", --- > "damageKind" : "icebow", > "damagePoly" : [ [8, -0.2], [8.5, -0.2], [8.5, 0.2], [8, 0.2] ], 21,22c22,106 < "action" : "config", < "file" : "/projectiles/explosions/bulletexplosion/bulletexplosion.config" --- > "action" : "sound", > "options" : [ "/sfx/projectiles/ice_barrier_break1.ogg", "/sfx/projectiles/ice_barrier_break2.ogg", "/sfx/projectiles/ice_barrier_break3.ogg", "/sfx/projectiles/ice_barrier_break4.ogg", "/sfx/projectiles/ice_barrier_break5.ogg", "/sfx/projectiles/ice_barrier_break6.ogg", "/sfx/projectiles/ice_barrier_break7.ogg", "/sfx/projectiles/ice_barrier_break8.ogg", "/sfx/projectiles/ice_barrier_break9.ogg", "/sfx/projectiles/ice_barrier_break10.ogg" ] > }, > { > "action" : "loop", > "count" : 4, > "body" : [ > { > "action" : "particle", > "specification" : { > "type" : "animated", > "looping" : true, > "animation" : "/animations/shards/iceshard.animation", > "size" : 0.5, > "approach" : [30, 30], > "timeToLive" : 1, > "destructionAction" : "shrink", > "destructionTime" : 1, > "layer" : "middle", > "variance" : { > "position" : [0.5, 0.5], > "finalVelocity" : [5, 5], > "timeToLive" : 1 > } > } > }, > { > "action" : "particle", > "specification" : { > "type" : "animated", > "looping" : true, > "animation" : "/animations/statuseffects/frozen/frozen.animation", > "size" : 0.5, > "approach" : [30, 30], > "timeToLive" : 0.5, > "destructionAction" : "shrink", > "destructionTime" : 0.425, > "layer" : "middle", > "variance" : { > "position" : [0.5, 0.5], > "finalVelocity" : [1.5, 1.5], > "timeToLive" : 0.3 > } > } > }, > { > "action" : "particle", > "specification" : { > "type" : "animated", > "looping" : true, > "animation" : "/animations/frozendust2/frozendust2.animation", > "size" : 0.5, > "approach" : [30, 30], > "timeToLive" : 0.5, > "destructionAction" : "shrink", > "destructionTime" : 0.425, > "layer" : "middle", > "variance" : { > "position" : [0.5, 0.5], > "finalVelocity" : [1.5, 1.5], > "timeToLive" : 0.3 > } > } > }, > { > "action" : "particle", > "specification" : { > "type" : "ember", > "size" : 1.5, > "color" : [99, 216, 232, 255], > "fade" : 0.9, > "approach" : [30, 30], > "light" : [13, 70, 79], > "timeToLive" : 0.5, > "layer" : "middle", > "variance" : { > "position" : [0.5, 0.5], > "finalVelocity" : [1.5, 1.5], > "size" : 0.5, > "timeToLive" : 0.3, > "fade" : 0.3 > } > } > } > ] projectiles\guns\arrows\ironarrow\ironarrow.projectile 9a10 > "knockbackDirectional" : true, projectiles\guns\arrows\lightarrow\lightarrow.projectile 18c18,19 < "knockback" : 5, --- > "knockback" : 10, > "knockbackDirectional" : true, projectiles\guns\arrows\poisonarrow\poisonarrow.projectile 9c9,10 < "knockback" : 5, --- > "knockback" : 10, > "knockbackDirectional" : true, projectiles\guns\arrows\poisonbolt\poisonbolt.projectile 7,10c7,11 < "damageKindImage" : "/interface/statuses/poison.png", < "timeToLive" : 30, < "pointLight" : true, < "lightColor" : [48, 79, 13], --- > "damageKind" : "poisonbow", > "damagePoly" : [ [8, -0.2], [8.5, -0.2], [8.5, 0.2], [8, 0.2] ], > "timeToLive" : 10, > // "pointLight" : true, > // "lightColor" : [48, 79, 13], 14,19d14 < "actionOnReap" : [ < { < "action" : "config", < "file" : "/projectiles/explosions/bulletexplosion/bulletexplosion.config" < } < ], 21,23c16,18 < "knockback" : 10, < "speed" : 100, < "damageKind" : "bow" --- > "knockback" : 20, > "knockbackDirectional" : true, > "speed" : 100 projectiles\guns\arrows\purplearrow\purplearrow.projectile 9c9,10 < "knockback" : 5, --- > "knockback" : 10, > "knockbackDirectional" : true, projectiles\guns\arrows\woodenarrow\woodenarrow.projectile 9a10 > "knockbackDirectional" : true, projectiles\guns\arrows\woodenbolt\woodenbolt.projectile 7,8c7,9 < "damageKindImage" : "icon.png", < "timeToLive" : 30, --- > "damageKind" : "bow", > "damagePoly" : [ [8, -0.2], [8.5, -0.2], [8.5, 0.2], [8, 0.2] ], > "timeToLive" : 10, 10,15d10 < "actionOnReap" : [ < { < "action" : "config", < "file" : "/projectiles/explosions/bulletexplosion/bulletexplosion.config" < } < ], 17,19c12,14 < "knockback" : 10, < "speed" : 100, < "damageKind" : "bow" --- > "knockback" : 20, > "knockbackDirectional" : true, > "speed" : 100 projectiles\npcs\dragonprojectile\dragonprojectile.projectile 25c25 < "type" : "molotovflame", --- > "type" : "molotovflamemonster", scripts\behavior.lua 303c303 < world.logInfo("Invalid node type %s", node.type) --- > sb.logInfo("Invalid node type %s", node.type) 327c327 < world.logInfo("Could not find parameter for tag '%s'", tagString) --- > sb.logInfo("Could not find parameter for tag '%s'", tagString) 363c363 < text = "log info" --- > text = "log info" 365c365 < world.logInfo(args.text) --- > sb.logInfo(args.text) 491c491 < world.logInfo("Worker error: %s", result) --- > sb.logInfo("Worker error: %s", result) scripts\poly.lua 27a28,33 > function poly.scale(points, scale) > return util.map(points, function(point) > return vec2.mul(point, scale) > end) > end > scripts\sensors.lua 15c15 < -- world.logInfo("reading: %s at %s", reading.value, reading.position) --- > -- sb.logInfo("reading: %s at %s", reading.value, reading.position) scripts\util.lua 327c327 < --- > 332c332 < --- > 337c337 < --- > 342c342 < --- > 460c460 < function util.debugLog(...) return self.debug and world.logInfo(...) end --- > function util.debugLog(...) return self.debug and sb.logInfo(...) end 600c600 < return true --- > return true scripts\actions\movement.lua 518a519 > -- param openLocked 522c523,524 < distance = 1.5 --- > distance = 1.5, > openLocked = false 523a526 > local openLocked = BData:getBool(args.openLocked) 535,537c538,544 < local closedDoorIds = world.entityLineQuery(line[1], line[2], { includedTypes = {"object"}, callScript = "hasCapability", callScriptArgs = { "closedDoor" } }) < for _, closedDoorId in pairs(closedDoorIds) do < local toDoor = world.distance(world.entityPosition(closedDoorId), mcontroller.position()) --- > local closedDoors = world.entityLineQuery(line[1], line[2], { includedTypes = {"object"}, callScript = "hasCapability", callScriptArgs = { "closedDoor" } }) > if openLocked then > local lockedDoors = world.entityLineQuery(line[1], line[2], { includedTypes = {"object"}, callScript = "hasCapability", callScriptArgs = { "lockedDoor" } }) > closedDoors = util.mergeLists(closedDoors, lockedDoors) > end > for _, doorId in pairs(closedDoors) do > local toDoor = world.distance(world.entityPosition(doorId), mcontroller.position()) 539c546 < world.callScriptedEntity(closedDoorId, "openDoor") --- > world.callScriptedEntity(doorId, "openDoor") 660a668,678 > > -- output min > -- output max > function boundBox(args, output) > args = parseArgs(args, {}) > local bounds = mcontroller.boundBox() > > BData:setVec2(output.min, {bounds[1], bounds[2]}) > BData:setVec2(output.max, {bounds[3], bounds[4]}) > return true > end \ No newline at end of file scripts\behavior\bgroup.lua 13c13 < if goalType == "entity" then --- > if goalType == "entity" then 15,16c15,16 < elseif goalType == "position" then < return goal --- > elseif goalType == "position" then > return goal 18c18 < world.logInfo("Cannot get position for goal type \"list\"") --- > sb.logInfo("Cannot get position for goal type \"list\"") 31c31 < --- > 72c72 < --world.logInfo("%s left group %s", entity.id(), groupId) --- > --sb.logInfo("%s left group %s", entity.id(), groupId) scripts\companions\petspawner.lua 357c357 < --- > 384c384 < world.logInfo("Cannot update pet %s from invalid pod %s", uniqueId, podUuid) --- > sb.logInfo("Cannot update pet %s from invalid pod %s", uniqueId, podUuid) 390c390 < world.logInfo("Cannot update invalid pet %s from pod %s", uniqueId, podUuid) --- > sb.logInfo("Cannot update invalid pet %s from pod %s", uniqueId, podUuid) 401c401 < world.logInfo("Cannot disassociate pet %s from invalid pod %s", uniqueId, podUuid) --- > sb.logInfo("Cannot disassociate pet %s from invalid pod %s", uniqueId, podUuid) 412c412 < world.logInfo("Cannot associate non-existent pet with pod %s", podUuid) --- > sb.logInfo("Cannot associate non-existent pet with pod %s", podUuid) 418c418 < world.logInfo("Cannot associate pet %s with invalid pod %s", uniqueId, podUuid) --- > sb.logInfo("Cannot associate pet %s with invalid pod %s", uniqueId, podUuid) 431c431 < world.logInfo("Cannot set a collar %s on invalid pod %s", collar and collar.name, podUuid) --- > sb.logInfo("Cannot set a collar %s on invalid pod %s", collar and collar.name, podUuid) scripts\companions\player.lua 241c241 < world.logInfo("Cannot activate invalid pod %s", podUuid) --- > sb.logInfo("Cannot activate invalid pod %s", podUuid) 263c263 < world.logInfo("Cannot deactivate invalid pod %s", podUuid) --- > sb.logInfo("Cannot deactivate invalid pod %s", podUuid) 285c285 < world.logInfo("Cannot spawn pet from invalid pod %s", podUuid) --- > sb.logInfo("Cannot spawn pet from invalid pod %s", podUuid) 295,296c295,296 < --world.logInfo("Followers: %s / %s", recruitSpawner:followerCount(), recruitSpawner.activeCrewLimit) < --world.logInfo("Crew: %s / %s", recruitSpawner:crewSize(), recruitSpawner.crewLimit()) --- > --sb.logInfo("Followers: %s / %s", recruitSpawner:followerCount(), recruitSpawner.activeCrewLimit) > --sb.logInfo("Crew: %s / %s", recruitSpawner:crewSize(), recruitSpawner.crewLimit()) 468c468 < world.logInfo("Cannot trigger field benefits for unknown recruit %s", recruitUuid) --- > sb.logInfo("Cannot trigger field benefits for unknown recruit %s", recruitUuid) 478c478 < world.logInfo("Cannot trigger combat benefits for unknown recruit %s", recruitUuid) --- > sb.logInfo("Cannot trigger combat benefits for unknown recruit %s", recruitUuid) scripts\companions\recruitspawner.lua 274c274 < world.logInfo("Cannot update unknown recruit %s", recruitUuid) --- > sb.logInfo("Cannot update unknown recruit %s", recruitUuid) 324c324 < world.logInfo("Cannot update following state of unknown recruit %s", recruitUuid) --- > sb.logInfo("Cannot update following state of unknown recruit %s", recruitUuid) 339c339 < world.logInfo("Cannot dismiss unknown recruit %s", recruitUuid) --- > sb.logInfo("Cannot dismiss unknown recruit %s", recruitUuid) scripts\quest\manager.lua 124c124 < self.outbox:sendMessage(player, questId .. "." .. message, ...) --- > self.outbox:sendMessage(player, questId .. "." .. message, ...) 176c176 < --- > 214c214 < --- > 261c261 < world.logInfo("QuestManager messaging failure. Recipient: "..messageData.recipient.." Message: "..messageData.message.." Reason: "..reason) --- > sb.logInfo("QuestManager messaging failure. Recipient: "..messageData.recipient.." Message: "..messageData.message.." Reason: "..reason) scripts\quest\messaging.lua 146c146 < world.logInfo(tostring(entity.entityType()).." "..uniqueId.." "..tostring(text)) --- > sb.logInfo(tostring(entity.entityType()).." "..uniqueId.." "..tostring(text)) scripts\quest\player.lua 122c122 < world.logInfo("QuestPlayer messaging failure. Recipient: "..messageData.recipient.." Message: "..messageData.message.." Reason: "..reason) --- > sb.logInfo("QuestPlayer messaging failure. Recipient: "..messageData.recipient.." Message: "..messageData.message.." Reason: "..reason) scripts\questgen\generator.lua 17c17 < world.logInfo(...) --- > sb.logInfo(...) 48c48 < world.logInfo("Time elapsed %s: %sms", description, elapsed * 1000) --- > sb.logInfo("Time elapsed %s: %sms", description, elapsed * 1000) 72c72 < world.logInfo("Quest generator broke: %s", result) --- > sb.logInfo("Quest generator broke: %s", result) scripts\questgen\planner.lua 827c827 < world.logInfo(table.unpack(args)) --- > sb.logInfo(table.unpack(args)) 982c982 < --- > scripts\questgen\plannertests.lua 5,6c5,6 < world = {} < world.logInfo = function (...) --- > sb = {} > sb.logInfo = function (...) 16c16 < world.logInfo("Planner broke: %s", debug.traceback(co, result)) --- > sb.logInfo("Planner broke: %s", debug.traceback(co, result)) 317c317 < --- > spawntypes\uniques.spawntypes 14c14 < "targetDensity" : 0.1, --- > "targetDensity" : 0.025, 30c30 < "targetDensity" : 0.075, --- > "targetDensity" : 0.01, 45c45 < "targetDensity" : 0.0125, --- > "targetDensity" : 0.005, 60c60 < "targetDensity" : 0.005, --- > "targetDensity" : 0.0025, 75c75 < "targetDensity" : 0.005, --- > "targetDensity" : 0.0025, 90c90 < "targetDensity" : 0.015, --- > "targetDensity" : 0.02, stagehands\coordinator.lua 39c39 < function update(dt) --- > function update(dt) 68c68 < --world.logInfo("Entity: %s, Self: %s %s, Args: %s %s", entityId, self.goalType, self.goal, goalType, goal) --- > --sb.logInfo("Entity: %s, Self: %s %s, Args: %s %s", entityId, self.goalType, self.goal, goalType, goal) 100c100 < return self.groupResources:get(resource) --- > return self.groupResources:get(resource) 177c177 < if #self.members >= self.max then --- > if #self.members >= self.max then stagehands\mission\glitchmissionmanager.lua 11a12,15 > message.setHandler("noxBeamout", function() > stopMusic() > radioMessage("noxBeamout") > end) 20a25,27 > self.enemies = {} > self.players = {} > 28c35,60 < self.players = world.entityQuery({self.missionArea[1], self.missionArea[2]}, {self.missionArea[3], self.missionArea[4]}, { includedTypes = {"player"} }) --- > local players = world.entityQuery({self.missionArea[1], self.missionArea[2]}, {self.missionArea[3], self.missionArea[4]}, { includedTypes = {"player"} }) > local newPlayers = util.filter(players, function(entityId) > return contains(self.players, entityId) > end) > for _,playerId in pairs(newPlayers) do > if self.music then > world.sendEntityMessage(playerId, "playAltMusic", self.music, config.getParameter("musicFadeInTime")) > end > end > self.players = players > end > > function startMusic(musicKey) > self.music = config.getParameter(musicKey) > for _,playerId in pairs(self.players) do > world.sendEntityMessage(playerId, "playAltMusic", self.music, config.getParameter("musicFadeInTime")) > end > end > > function stopMusic() > if self.music then > self.music = nil > for _,playerId in pairs(self.players) do > world.sendEntityMessage(playerId, "playAltMusic", jarray(), config.getParameter("musicFadeOutTime")) > end > end 52a85,88 > if #self.coroutines == 0 and self.music then > stopMusic() > end > 71c107,112 < self.enemies = {} --- > -- Start battle music later > table.insert(self.coroutines, coroutine.create(function() > util.wait(8.0) > startMusic("battleMusic") > end)) > 76d116 < radioMessage("firstWave") 203,204d242 < local cultists = {} < cultists["campspawn"], cultists["midfieldspawn"], cultists["gatespawn"] = {}, {}, {} 206,213c244,248 < for spawnPoint,entities in pairs(cultists) do < entities = util.filter(entities, world.entityExists) < if #entities == 0 then < util.wait(6.0) < cultists[spawnPoint] = spawnWave(spawnPoint, { { entityType = "cultistknight", count = 3} }) < end < end < coroutine.yield() --- > spawnWave("campspawn", { > { entityType = "cultistknight", count = 2, parameters = { moveLeft = true } }, > { entityType = "cultistarcher", count = 1, parameters = { moveLeft = true } } > }) > util.wait(8.0) 219a255,261 > util.wait(2.0) > > radioMessage("noxGreeting") > > util.wait(4.0) > startMusic("bossMusic") > 224a267,271 > -- Stop spawning cultists when the boss dies > self.coroutines = util.filter(self.coroutines, function(cor) return cor ~= spawnCultists end) > > util.wait(2.0) > 231c278 < util.wait(2.0) --- > util.wait(6.0) 232a280 > radioMessage("bossDefeated") 282,283c330,334 < local spawnPositionRange = config.getParameter("spawnPositionRange", 5) < position = vec2.add(position, {math.random(spawnPositionRange[1], spawnPositionRange[2]), 0}) --- > > if contains({"cultistknight", "cultistarcher", "helicultist"}, spawn.entityType) then > local spawnPositionRange = config.getParameter("spawnPositionRange", 5) > position = vec2.add(position, {math.random(spawnPositionRange[1], spawnPositionRange[2]), 0}) > end stagehands\mission\glitchmissionmanager.stagehand 13a14,18 > "musicFadeInTime" : 1.0, > "musicFadeOutTime" : 1.0, > "battleMusic" : [ "/music/arctic-battle1-loop.ogg" ], > "bossMusic" : [ "/music/forest-battle2.ogg" ], > 17c22 < "spawnPositionRange" : [-15, 15], --- > "spawnPositionRange" : [-12, 15], 20d24 < "firstWave" : [ "Alarmed! A few of these scoundrels are approaching from a camp in the outskirts of the keep. Hunt them down and kill them!", "/interface/chatbubbles/baron.png", "Baron" ], 25,26c29,33 < "reinforcements" : [ "Ehm, hello? Can you hear me? We're seeing a lot of those cultist people incoming to your location. Don't worry! We can help.", "/interface/chatbubbles/koichi.png", "Koichi" ], < "finalWaveComplete" : [ "Relieved. I believe that's the lot of them. Come back to the keep and speak to me.", "/interface/chatbubbles/baron.png", "Baron" ] --- > "reinforcements" : [ "Ehm, hello? Can you hear me? We're seeing a lot of those cultist people incoming to your location. Don't worry! We can help.", "/interface/chatbubbles/koichi.png:0", "Koichi" ], > "finalWaveComplete" : [ "Relieved. I believe that's the lot of them. Come back to the keep and speak to me.", "/interface/chatbubbles/baron.png", "Baron" ], > "noxGreeting" : [ "All of those people... my brothers and sisters... dead. Their blood is on your hands! Die!", "/interface/chatbubbles/nox.png", "Nox" ], > "noxBeamout" : [ "Agh! Very well, have your artifact. It's too late now anyway. I will be seeing you soon...", "/interface/chatbubbles/nox.png", "Nox"], > "bossDefeated" : [ "Cautious. Is it gone? Are we safe? Come talk to me when it's gone!", "/interface/chatbubbles/baron.png", "Baron" ] stats\effects\levitation\levitation.lua 111c111 < -- world.logInfo("Block: %s Distance: %s", blocks[1], yDistance) --- > -- sb.logInfo("Block: %s Distance: %s", blocks[1], yDistance) 125c125 < position[1] + self.edges.left + sideEdgeOffset, --- > position[1] + self.edges.left + sideEdgeOffset, 129c129 < lineStart[1], --- > lineStart[1], 142c142 < lineStart[1], --- > lineStart[1], 151c151 < position[1], --- > position[1], 155c155 < lineStart[1], --- > lineStart[1], stats\effects\paralysis\paralysis.lua 2c2,4 < status.setResource("stunned", math.max(status.resource("stunned"), effect.duration())) --- > if status.isResource("stunned") then > status.setResource("stunned", math.max(status.resource("stunned"), effect.duration())) > end 15c17 < end \ No newline at end of file --- > end tech\skyrail\skyrail.lua 264c264 < --world.logInfo("LN: " .. self.railSearchOrder) --- > --sb.logInfo("LN: " .. self.railSearchOrder) 273c273 < --world.logInfo("RN" .. self.railSearchOrder) --- > --sb.logInfo("RN" .. self.railSearchOrder) 391c391 < world.logInfo("SKYRAIL: error - attempted to join nil rail!") --- > sb.logInfo("SKYRAIL: error - attempted to join nil rail!") tilesets\packed\objects-by-category\furniture.json 7c7 < "tilecount" : 316, --- > "tilecount" : 317, 76c76 < "//shortdescription" : "Sleeping Bag", --- > "//shortdescription" : "Blue Sleeping Bag", 2091c2091 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Red Dome Tent", 2100c2100 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Blue Dome Tent", 2109c2109 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Yellow Basic Tent", 2118c2118 < "//shortdescription" : "Sleeping Bag", --- > "//shortdescription" : "Red Sleeping Bag", 2127c2127 < "//shortdescription" : "Sleeping Bag", --- > "//shortdescription" : "Green Sleeping Bag", 2132a2133,2141 > "316" : { > "//description" : "A military tent.", > "//name" : "apextent", > "//shortdescription" : "Military Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "apextent", > "tilesetDirection" : "right" > }, 2533c2542 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Green Basic Tent", 2604c2613 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Green Dome Tent", 3470a3480,3482 > }, > "316" : { > "image" : "../../../../../tiled/packed/objects/apextent.png" tilesets\packed\objects-by-category\other.json 1687,1688c1687 < "object" : "glowbug", < "tilesetDirection" : "right" --- > "object" : "glowbug" tilesets\packed\objects-by-colonytag\apex.json 7c7 < "tilecount" : 172, --- > "tilecount" : 173, 722a723,731 > "172" : { > "//description" : "A military tent.", > "//name" : "apextent", > "//shortdescription" : "Military Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "apextent", > "tilesetDirection" : "right" > }, 1758a1768,1770 > }, > "172" : { > "image" : "../../../../../tiled/packed/objects/apextent.png" tilesets\packed\objects-by-colonytag\explorer.json 7c7 < "tilecount" : 15, --- > "tilecount" : 16, 22c22 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Green Dome Tent", 31c31 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Red Dome Tent", 40c40 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Blue Dome Tent", 49c49 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Yellow Basic Tent", 58c58 < "//shortdescription" : "Sleeping Bag", --- > "//shortdescription" : "Red Sleeping Bag", 67c67 < "//shortdescription" : "Sleeping Bag", --- > "//shortdescription" : "Green Sleeping Bag", 72a73,81 > "15" : { > "//description" : "A military tent.", > "//name" : "apextent", > "//shortdescription" : "Military Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "apextent", > "tilesetDirection" : "right" > }, 85c94 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Green Basic Tent", 112c121 < "//shortdescription" : "Sleeping Bag", --- > "//shortdescription" : "Blue Sleeping Bag", 165a175,177 > }, > "15" : { > "image" : "../../../../../tiled/packed/objects/apextent.png" tilesets\packed\objects-by-colonytag\human.json 198c198 < "//shortdescription" : "Sleeping Bag", --- > "//shortdescription" : "Blue Sleeping Bag", 1404c1404 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Red Dome Tent", 1413c1413 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Blue Dome Tent", 1422c1422 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Yellow Basic Tent", 1431c1431 < "//shortdescription" : "Sleeping Bag", --- > "//shortdescription" : "Red Sleeping Bag", 1440c1440 < "//shortdescription" : "Sleeping Bag", --- > "//shortdescription" : "Green Sleeping Bag", 1831c1831 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Green Dome Tent", 1920c1920 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Green Basic Tent", tilesets\packed\objects-by-colonytag\nature.json 752,753c752 < "object" : "glowbug", < "tilesetDirection" : "right" --- > "object" : "glowbug" tilesets\packed\objects-by-race\generic.json 7c7 < "tilecount" : 1609, --- > "tilecount" : 1610, 5700c5700 < "//shortdescription" : "Sleeping Bag", --- > "//shortdescription" : "Red Sleeping Bag", 5709c5709 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Red Dome Tent", 5718c5718 < "//shortdescription" : "Sleeping Bag", --- > "//shortdescription" : "Green Sleeping Bag", 5727c5727 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Blue Dome Tent", 5736c5736 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Yellow Basic Tent", 5759a5760,5768 > "1609" : { > "//description" : "A military tent.", > "//name" : "apextent", > "//shortdescription" : "Military Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "apextent", > "tilesetDirection" : "right" > }, 6750c6759 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Green Basic Tent", 6981c6990 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Green Dome Tent", 7095,7096c7104 < "object" : "glowbug", < "tilesetDirection" : "right" --- > "object" : "glowbug" 7671c7679 < "//shortdescription" : "Sleeping Bag", --- > "//shortdescription" : "Blue Sleeping Bag", 15696a15705,15707 > }, > "1609" : { > "image" : "../../../../../tiled/packed/objects/apextent.png" tilesets\packed\objects-by-type\loungeable.json 7c7 < "tilecount" : 242, --- > "tilecount" : 243, 1372c1372 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Red Dome Tent", 1381c1381 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Blue Dome Tent", 1390c1390 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Yellow Basic Tent", 1408c1408 < "//shortdescription" : "Sleeping Bag", --- > "//shortdescription" : "Red Sleeping Bag", 1417c1417 < "//shortdescription" : "Sleeping Bag", --- > "//shortdescription" : "Green Sleeping Bag", 1422a1423,1431 > "242" : { > "//description" : "A military tent.", > "//name" : "apextent", > "//shortdescription" : "Military Tent", > "imagePositionX" : "-24", > "imagePositionY" : "0", > "object" : "apextent", > "tilesetDirection" : "right" > }, 1730c1739 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Green Basic Tent", 1756c1765 < "//shortdescription" : "Basic Tent", --- > "//shortdescription" : "Green Dome Tent", 1850c1859 < "//shortdescription" : "Sleeping Bag", --- > "//shortdescription" : "Blue Sleeping Bag", 2596a2606,2608 > }, > "242" : { > "image" : "../../../../../tiled/packed/objects/apextent.png" treasure\dungeon.treasurepools 40a41,59 > "apexfacilitytreasure" : [ > [1, { > "pool" : [ > {"weight" : 0.70, "pool" : "money"}, > {"weight" : 0.10, "pool" : "stim"}, > {"weight" : 0.02, "item" : [ "scientistchest", 1]}, > {"weight" : 0.02, "item" : [ "scientistlegs", 1]}, > {"weight" : 0.02, "item" : [ "scientisthead", 1]}, > {"weight" : 0.14, "item" : [ "banana", 2]} > ], > "poolRounds" : [ > [0.50, 0], > [0.25, 1], > [0.25, 2] > ], > "allowDuplication" : false > }] > ], > 246a266 > {"weight" : 0.2, "item" : ["corefragmentore", 1]}, 248,249d267 < {"weight" : 0.15, "item" : ["darkwoodmaterial", 10]}, < {"weight" : 0.15, "item" : ["platform", 10]}, 250a269 > {"weight" : 0.1, "item" : ["darkwoodmaterial", 10]}, treasure\hunting.treasurepools 222c222 < {"weight" : 0.001, "item" : "iguarmoraf"} --- > {"weight" : 0.001, "item" : "iguarmoraf"} 451c451 < {"weight" : 0.001, "item" : "pteropodaf"} --- > {"weight" : 0.001, "item" : "pteropodaf"} treasure\monster.treasurepools 138a139,147 > "motherpoptopTreasure" : [ > [1, { > "fill" : [ > {"item" : [ "corefragmentore", 10]}, > {"pool" : "adultpoptopTreasure"} > ] > }] > ], > 838c847 < {"weight" : 0.05, "item" : "cryonicextract"}, --- > {"weight" : 0.10, "item" : "cryonicextract"}, treasure\missions\apexmission1.treasurepools 52c52 < "MinidroneTreasure" : [ --- > "minidroneTreasure" : [